From 3661a6cbbcd8da920eb0bb26dbcc41825baeff31 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Jan 2025 21:11:19 +0000 Subject: [PATCH] Automatic Build and Deploy run by GitHub Actions --- .github/workflows/ci.yml | 32 - .github/workflows/pages.yml | 15 - .gitignore | 154 - .mocharc.json | 5 - .prettierrc | 3 - 404.html | 27 + README.md | 3 - amo/0/index.html | 438 + amo/0/index.pageContext.json | 1 + amo/1/index.html | 348 + amo/1/index.pageContext.json | 1 + amo/2/index.html | 381 + amo/2/index.pageContext.json | 1 + amo/3/index.html | 309 + amo/3/index.pageContext.json | 1 + amo/4/index.html | 622 ++ amo/4/index.pageContext.json | 1 + amo/5/index.html | 775 ++ amo/5/index.pageContext.json | 1 + amo/6/index.html | 453 + amo/6/index.pageContext.json | 1 + amo/7/index.html | 621 ++ amo/7/index.pageContext.json | 1 + amo/8/index.html | 626 ++ amo/8/index.pageContext.json | 1 + amo/9/index.html | 366 + amo/9/index.pageContext.json | 1 + amo/index.html | 28 + amo/index.pageContext.json | 1 + amo/lecture1.md | 356 - amo/lecture10.md | 282 - amo/lecture2.md | 331 - amo/lecture3.md | 363 - amo/lecture4.md | 318 - amo/lecture5.md | 353 - amo/lecture6.md | 380 - amo/lecture7.md | 345 - amo/lecture8.md | 378 - amo/lecture9.md | 373 - ... cooking recipes for Quantum Mechanics.tex | 300 - ...opagation of light in dielectric media.tex | 303 - .../Lecture 11 - Laser fundamentals.tex | 374 - amo/tex_files/Lecture 12- Entanglement.tex | 427 - ...Lecture 13 - Atoms with many electrons.tex | 334 - ... The spin in atoms with many electrons.tex | 326 - .../Lecture 15 - Diatomic molecules.tex | 341 - ...lecular Orbitals of Diatomic Molecules.tex | 316 - ... - Rotation and Vibration of Molecules.tex | 357 - ...ntization of the Electromagnetic field.tex | 370 - ...-Light Interactions and Dressed States.tex | 481 - ... cooking recipes for quantum mechanics.tex | 319 - ...quantum computing with trapped ions(1).tex | 437 - ...ng spontaneous emission and absorption.tex | 353 - .../Lecture 22 - Quantum degenerate gases.tex | 324 - ...ipping the toes into quantum computing.tex | 288 - .../Lecture 3 - The two-level system(1).tex | 362 - ...ecture 4 - Atoms in oscillating fields.tex | 335 - .../Lecture 5 - The Hydrogen Atom.tex | 339 - ...ole approximation in the hydrogen atom.tex | 426 - ...re 7 - Beyond the boring hydrogen atom.tex | 345 - amo/tex_files/Lecture 8 - The Helium atom.tex | 414 - .../Lecture 9 - More on the Helium atom.tex | 424 - assets/chunks/chunk-1FbNI5qA.js | 44 + assets/chunks/chunk-69ijPTbK.js | 1 + assets/chunks/chunk-B6MK7gFR.js | 1 + assets/chunks/chunk-BcEW-Cv4.js | 2 + assets/chunks/chunk-C45O1yEu.js | 66 + assets/chunks/chunk-D7HrI6pR.js | 1 + assets/chunks/chunk-DjXTsExv.js | 49 + assets/chunks/chunk-ghC-DV5X.js | 295 + .../entries/entry-client-routing.BG88Oxnn.js | 3 + assets/entries/pages_amo.Dei93Ii3.js | 1 + assets/entries/pages_amo_-id.Bo-MT0uZ.js | 1 + assets/entries/pages_blog.CLJEyjOt.js | 1 + assets/entries/pages_blog_-id.wPjLVB1P.js | 1 + assets/entries/pages_error.DRgSAV9W.js | 1 + assets/entries/pages_index.aFbag0J2.js | 1 + .../static/KaTeX_AMS-Regular.BQhdFMY1.woff2 | Bin 0 -> 28076 bytes assets/static/KaTeX_AMS-Regular.DMm9YOAa.woff | Bin 0 -> 33516 bytes assets/static/KaTeX_AMS-Regular.DRggAlZN.ttf | Bin 0 -> 63632 bytes .../KaTeX_Caligraphic-Bold.ATXxdsX0.ttf | Bin 0 -> 12368 bytes .../KaTeX_Caligraphic-Bold.BEiXGLvX.woff | Bin 0 -> 7716 bytes .../KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 | Bin 0 -> 6912 bytes .../KaTeX_Caligraphic-Regular.CTRA-rTL.woff | Bin 0 -> 7656 bytes .../KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 | Bin 0 -> 6908 bytes .../KaTeX_Caligraphic-Regular.wX97UBjC.ttf | Bin 0 -> 12344 bytes assets/static/KaTeX_Fraktur-Bold.BdnERNNW.ttf | Bin 0 -> 19584 bytes .../static/KaTeX_Fraktur-Bold.BsDP51OF.woff | Bin 0 -> 13296 bytes .../static/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 | Bin 0 -> 11348 bytes .../static/KaTeX_Fraktur-Regular.CB_wures.ttf | Bin 0 -> 19572 bytes .../KaTeX_Fraktur-Regular.CTYiF6lA.woff2 | Bin 0 -> 11316 bytes .../KaTeX_Fraktur-Regular.Dxdc4cR9.woff | Bin 0 -> 13208 bytes assets/static/KaTeX_Main-Bold.Cx986IdX.woff2 | Bin 0 -> 25324 bytes assets/static/KaTeX_Main-Bold.Jm3AIy58.woff | Bin 0 -> 29912 bytes assets/static/KaTeX_Main-Bold.waoOVXN0.ttf | Bin 0 -> 51336 bytes .../KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 | Bin 0 -> 16780 bytes .../static/KaTeX_Main-BoldItalic.DzxPMmG6.ttf | Bin 0 -> 32968 bytes .../KaTeX_Main-BoldItalic.SpSLRI95.woff | Bin 0 -> 19412 bytes assets/static/KaTeX_Main-Italic.3WenGoN9.ttf | Bin 0 -> 33580 bytes assets/static/KaTeX_Main-Italic.BMLOBm91.woff | Bin 0 -> 19676 bytes .../static/KaTeX_Main-Italic.NWA7e6Wa.woff2 | Bin 0 -> 16988 bytes .../static/KaTeX_Main-Regular.B22Nviop.woff2 | Bin 0 -> 26272 bytes .../static/KaTeX_Main-Regular.Dr94JaBh.woff | Bin 0 -> 30772 bytes assets/static/KaTeX_Main-Regular.ypZvNtVU.ttf | Bin 0 -> 53580 bytes .../static/KaTeX_Math-BoldItalic.B3XSjfu4.ttf | Bin 0 -> 31196 bytes .../KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 | Bin 0 -> 16400 bytes .../KaTeX_Math-BoldItalic.iY-2wyZ7.woff | Bin 0 -> 18668 bytes assets/static/KaTeX_Math-Italic.DA0__PXp.woff | Bin 0 -> 18748 bytes assets/static/KaTeX_Math-Italic.flOr_0UB.ttf | Bin 0 -> 31308 bytes .../static/KaTeX_Math-Italic.t53AETM-.woff2 | Bin 0 -> 16440 bytes .../static/KaTeX_SansSerif-Bold.CFMepnvq.ttf | Bin 0 -> 24504 bytes .../KaTeX_SansSerif-Bold.D1sUS0GD.woff2 | Bin 0 -> 12216 bytes .../static/KaTeX_SansSerif-Bold.DbIhKOiC.woff | Bin 0 -> 14408 bytes .../KaTeX_SansSerif-Italic.C3H0VqGB.woff2 | Bin 0 -> 12028 bytes .../KaTeX_SansSerif-Italic.DN2j7dab.woff | Bin 0 -> 14112 bytes .../KaTeX_SansSerif-Italic.YYjJ1zSn.ttf | Bin 0 -> 22364 bytes .../KaTeX_SansSerif-Regular.BNo7hRIc.ttf | Bin 0 -> 19436 bytes .../KaTeX_SansSerif-Regular.CS6fqUqJ.woff | Bin 0 -> 12316 bytes .../KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 | Bin 0 -> 10344 bytes .../static/KaTeX_Script-Regular.C5JkGWo-.ttf | Bin 0 -> 16648 bytes .../KaTeX_Script-Regular.D3wIWfF6.woff2 | Bin 0 -> 9644 bytes .../static/KaTeX_Script-Regular.D5yQViql.woff | Bin 0 -> 10588 bytes .../static/KaTeX_Size1-Regular.C195tn64.woff | Bin 0 -> 6496 bytes .../static/KaTeX_Size1-Regular.Dbsnue_I.ttf | Bin 0 -> 12228 bytes .../static/KaTeX_Size1-Regular.mCD8mA8B.woff2 | Bin 0 -> 5468 bytes .../static/KaTeX_Size2-Regular.B7gKUWhC.ttf | Bin 0 -> 11508 bytes .../static/KaTeX_Size2-Regular.Dy4dx90m.woff2 | Bin 0 -> 5208 bytes .../static/KaTeX_Size2-Regular.oD1tc_U0.woff | Bin 0 -> 6188 bytes .../static/KaTeX_Size3-Regular.CTq5MqoE.woff | Bin 0 -> 4420 bytes .../static/KaTeX_Size3-Regular.DgpXs0kz.ttf | Bin 0 -> 7588 bytes .../static/KaTeX_Size4-Regular.BF-4gkZK.woff | Bin 0 -> 5980 bytes .../static/KaTeX_Size4-Regular.DWFBv043.ttf | Bin 0 -> 10364 bytes .../static/KaTeX_Size4-Regular.Dl5lxZxV.woff2 | Bin 0 -> 4928 bytes .../KaTeX_Typewriter-Regular.C0xS9mPB.woff | Bin 0 -> 16028 bytes .../KaTeX_Typewriter-Regular.CO6r4hn1.woff2 | Bin 0 -> 13568 bytes .../KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf | Bin 0 -> 27556 bytes assets/static/katex-afcc0501.C3UTweSs.css | 1 + .../layouts_style-b34a8e57.a91n6qlS.css | 1 + .../static/vike-react-b64a028b.BcWtY8Ol.css | 1 + blog/0/index.html | 89 + blog/0/index.pageContext.json | 1 + blog/1/index.html | 99 + blog/1/index.pageContext.json | 1 + blog/2/index.html | 104 + blog/2/index.pageContext.json | 1 + blog/blog_stack.md | 22 - blog/hello_world.mdx | 6 - blog/index.html | 29 + blog/index.pageContext.json | 1 + blog/moving_lectures.md | 30 - components/AmoList.tsx | 22 - components/BlogList.tsx | 22 - components/Link.tsx | 13 - components/MyFigure.tsx | 10 - components/Post.tsx | 41 - eslint.config.js | 65 - index.html | 29 + index.pageContext.json | 1 + layouts/LayoutDefault.tsx | 62 - layouts/style.css | 29 - package-lock.json | 9696 ----------------- package.json | 47 - pages/+Head.tsx | 19 - pages/+config.ts | 17 - pages/+onPageTransitionEnd.ts | 6 - pages/+onPageTransitionStart.ts | 6 - pages/_error/+Page.tsx | 20 - pages/amo/+Page.tsx | 19 - pages/amo/@id/+Page.tsx | 32 - pages/amo/@id/+onBeforePrerenderStart.js | 11 - pages/blog/+Page.tsx | 15 - pages/blog/@id/+Page.tsx | 31 - pages/blog/@id/+onBeforePrerenderStart.js | 11 - pages/index/+Page.tsx | 15 - public/robots.txt => robots.txt | 0 test/blog/post1.mdx | 8 - test/blog/post2.mdx | 3 - test/getBlogs.spec.ts | 10 - tsconfig.json | 21 - types/BlogOptions.ts | 4 - types/BlogPost.ts | 6 - utils/cleanMd.ts | 46 - utils/cleanVike.ts | 36 - utils/copyImg.ts | 25 - utils/getAmo.ts | 5 - utils/getBlogs.ts | 81 - utils/preBuild.ts | 11 - vite.config.ts | 17 - 188 files changed, 5831 insertions(+), 22526 deletions(-) delete mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/pages.yml delete mode 100644 .gitignore delete mode 100644 .mocharc.json delete mode 100644 .prettierrc create mode 100644 404.html delete mode 100644 README.md create mode 100644 amo/0/index.html create mode 100644 amo/0/index.pageContext.json create mode 100644 amo/1/index.html create mode 100644 amo/1/index.pageContext.json create mode 100644 amo/2/index.html create mode 100644 amo/2/index.pageContext.json create mode 100644 amo/3/index.html create mode 100644 amo/3/index.pageContext.json create mode 100644 amo/4/index.html create mode 100644 amo/4/index.pageContext.json create mode 100644 amo/5/index.html create mode 100644 amo/5/index.pageContext.json create mode 100644 amo/6/index.html create mode 100644 amo/6/index.pageContext.json create mode 100644 amo/7/index.html create mode 100644 amo/7/index.pageContext.json create mode 100644 amo/8/index.html create mode 100644 amo/8/index.pageContext.json create mode 100644 amo/9/index.html create mode 100644 amo/9/index.pageContext.json create mode 100644 amo/index.html create mode 100644 amo/index.pageContext.json delete mode 100644 amo/lecture1.md delete mode 100644 amo/lecture10.md delete mode 100644 amo/lecture2.md delete mode 100644 amo/lecture3.md delete mode 100644 amo/lecture4.md delete mode 100644 amo/lecture5.md delete mode 100644 amo/lecture6.md delete mode 100644 amo/lecture7.md delete mode 100644 amo/lecture8.md delete mode 100644 amo/lecture9.md delete mode 100644 amo/tex_files/Lecture 1 - Some cooking recipes for Quantum Mechanics.tex delete mode 100644 amo/tex_files/Lecture 10 - Propagation of light in dielectric media.tex delete mode 100644 amo/tex_files/Lecture 11 - Laser fundamentals.tex delete mode 100644 amo/tex_files/Lecture 12- Entanglement.tex delete mode 100644 amo/tex_files/Lecture 13 - Atoms with many electrons.tex delete mode 100644 amo/tex_files/Lecture 14 - The spin in atoms with many electrons.tex delete mode 100644 amo/tex_files/Lecture 15 - Diatomic molecules.tex delete mode 100644 amo/tex_files/Lecture 16 - Molecular Orbitals of Diatomic Molecules.tex delete mode 100644 amo/tex_files/Lecture 17 - Rotation and Vibration of Molecules.tex delete mode 100644 amo/tex_files/Lecture 18 - Quantization of the Electromagnetic field.tex delete mode 100644 amo/tex_files/Lecture 19 - Atom-Light Interactions and Dressed States.tex delete mode 100644 amo/tex_files/Lecture 2 - A few more cooking recipes for quantum mechanics.tex delete mode 100644 amo/tex_files/Lecture 20 - A few words on quantum computing with trapped ions(1).tex delete mode 100644 amo/tex_files/Lecture 20 - Controlling spontaneous emission and absorption.tex delete mode 100644 amo/tex_files/Lecture 22 - Quantum degenerate gases.tex delete mode 100644 amo/tex_files/Lecture 23 - Dipping the toes into quantum computing.tex delete mode 100644 amo/tex_files/Lecture 3 - The two-level system(1).tex delete mode 100644 amo/tex_files/Lecture 4 - Atoms in oscillating fields.tex delete mode 100644 amo/tex_files/Lecture 5 - The Hydrogen Atom.tex delete mode 100644 amo/tex_files/Lecture 6 - The dipole approximation in the hydrogen atom.tex delete mode 100644 amo/tex_files/Lecture 7 - Beyond the boring hydrogen atom.tex delete mode 100644 amo/tex_files/Lecture 8 - The Helium atom.tex delete mode 100644 amo/tex_files/Lecture 9 - More on the Helium atom.tex create mode 100644 assets/chunks/chunk-1FbNI5qA.js create mode 100644 assets/chunks/chunk-69ijPTbK.js create mode 100644 assets/chunks/chunk-B6MK7gFR.js create mode 100644 assets/chunks/chunk-BcEW-Cv4.js create mode 100644 assets/chunks/chunk-C45O1yEu.js create mode 100644 assets/chunks/chunk-D7HrI6pR.js create mode 100644 assets/chunks/chunk-DjXTsExv.js create mode 100644 assets/chunks/chunk-ghC-DV5X.js create mode 100644 assets/entries/entry-client-routing.BG88Oxnn.js create mode 100644 assets/entries/pages_amo.Dei93Ii3.js create mode 100644 assets/entries/pages_amo_-id.Bo-MT0uZ.js create mode 100644 assets/entries/pages_blog.CLJEyjOt.js create mode 100644 assets/entries/pages_blog_-id.wPjLVB1P.js create mode 100644 assets/entries/pages_error.DRgSAV9W.js create mode 100644 assets/entries/pages_index.aFbag0J2.js create mode 100644 assets/static/KaTeX_AMS-Regular.BQhdFMY1.woff2 create mode 100644 assets/static/KaTeX_AMS-Regular.DMm9YOAa.woff create mode 100644 assets/static/KaTeX_AMS-Regular.DRggAlZN.ttf create mode 100644 assets/static/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf create mode 100644 assets/static/KaTeX_Caligraphic-Bold.BEiXGLvX.woff create mode 100644 assets/static/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 create mode 100644 assets/static/KaTeX_Caligraphic-Regular.CTRA-rTL.woff create mode 100644 assets/static/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 create mode 100644 assets/static/KaTeX_Caligraphic-Regular.wX97UBjC.ttf create mode 100644 assets/static/KaTeX_Fraktur-Bold.BdnERNNW.ttf create mode 100644 assets/static/KaTeX_Fraktur-Bold.BsDP51OF.woff create mode 100644 assets/static/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 create mode 100644 assets/static/KaTeX_Fraktur-Regular.CB_wures.ttf create mode 100644 assets/static/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 create mode 100644 assets/static/KaTeX_Fraktur-Regular.Dxdc4cR9.woff create mode 100644 assets/static/KaTeX_Main-Bold.Cx986IdX.woff2 create mode 100644 assets/static/KaTeX_Main-Bold.Jm3AIy58.woff create mode 100644 assets/static/KaTeX_Main-Bold.waoOVXN0.ttf create mode 100644 assets/static/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 create mode 100644 assets/static/KaTeX_Main-BoldItalic.DzxPMmG6.ttf create mode 100644 assets/static/KaTeX_Main-BoldItalic.SpSLRI95.woff create mode 100644 assets/static/KaTeX_Main-Italic.3WenGoN9.ttf create mode 100644 assets/static/KaTeX_Main-Italic.BMLOBm91.woff create mode 100644 assets/static/KaTeX_Main-Italic.NWA7e6Wa.woff2 create mode 100644 assets/static/KaTeX_Main-Regular.B22Nviop.woff2 create mode 100644 assets/static/KaTeX_Main-Regular.Dr94JaBh.woff create mode 100644 assets/static/KaTeX_Main-Regular.ypZvNtVU.ttf create mode 100644 assets/static/KaTeX_Math-BoldItalic.B3XSjfu4.ttf create mode 100644 assets/static/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 create mode 100644 assets/static/KaTeX_Math-BoldItalic.iY-2wyZ7.woff create mode 100644 assets/static/KaTeX_Math-Italic.DA0__PXp.woff create mode 100644 assets/static/KaTeX_Math-Italic.flOr_0UB.ttf create mode 100644 assets/static/KaTeX_Math-Italic.t53AETM-.woff2 create mode 100644 assets/static/KaTeX_SansSerif-Bold.CFMepnvq.ttf create mode 100644 assets/static/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 create mode 100644 assets/static/KaTeX_SansSerif-Bold.DbIhKOiC.woff create mode 100644 assets/static/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 create mode 100644 assets/static/KaTeX_SansSerif-Italic.DN2j7dab.woff create mode 100644 assets/static/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf create mode 100644 assets/static/KaTeX_SansSerif-Regular.BNo7hRIc.ttf create mode 100644 assets/static/KaTeX_SansSerif-Regular.CS6fqUqJ.woff create mode 100644 assets/static/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 create mode 100644 assets/static/KaTeX_Script-Regular.C5JkGWo-.ttf create mode 100644 assets/static/KaTeX_Script-Regular.D3wIWfF6.woff2 create mode 100644 assets/static/KaTeX_Script-Regular.D5yQViql.woff create mode 100644 assets/static/KaTeX_Size1-Regular.C195tn64.woff create mode 100644 assets/static/KaTeX_Size1-Regular.Dbsnue_I.ttf create mode 100644 assets/static/KaTeX_Size1-Regular.mCD8mA8B.woff2 create mode 100644 assets/static/KaTeX_Size2-Regular.B7gKUWhC.ttf create mode 100644 assets/static/KaTeX_Size2-Regular.Dy4dx90m.woff2 create mode 100644 assets/static/KaTeX_Size2-Regular.oD1tc_U0.woff create mode 100644 assets/static/KaTeX_Size3-Regular.CTq5MqoE.woff create mode 100644 assets/static/KaTeX_Size3-Regular.DgpXs0kz.ttf create mode 100644 assets/static/KaTeX_Size4-Regular.BF-4gkZK.woff create mode 100644 assets/static/KaTeX_Size4-Regular.DWFBv043.ttf create mode 100644 assets/static/KaTeX_Size4-Regular.Dl5lxZxV.woff2 create mode 100644 assets/static/KaTeX_Typewriter-Regular.C0xS9mPB.woff create mode 100644 assets/static/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 create mode 100644 assets/static/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf create mode 100644 assets/static/katex-afcc0501.C3UTweSs.css create mode 100644 assets/static/layouts_style-b34a8e57.a91n6qlS.css create mode 100644 assets/static/vike-react-b64a028b.BcWtY8Ol.css create mode 100644 blog/0/index.html create mode 100644 blog/0/index.pageContext.json create mode 100644 blog/1/index.html create mode 100644 blog/1/index.pageContext.json create mode 100644 blog/2/index.html create mode 100644 blog/2/index.pageContext.json delete mode 100644 blog/blog_stack.md delete mode 100644 blog/hello_world.mdx create mode 100644 blog/index.html create mode 100644 blog/index.pageContext.json delete mode 100644 blog/moving_lectures.md delete mode 100644 components/AmoList.tsx delete mode 100644 components/BlogList.tsx delete mode 100644 components/Link.tsx delete mode 100644 components/MyFigure.tsx delete mode 100644 components/Post.tsx delete mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 index.pageContext.json delete mode 100644 layouts/LayoutDefault.tsx delete mode 100644 layouts/style.css delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 pages/+Head.tsx delete mode 100644 pages/+config.ts delete mode 100644 pages/+onPageTransitionEnd.ts delete mode 100644 pages/+onPageTransitionStart.ts delete mode 100644 pages/_error/+Page.tsx delete mode 100644 pages/amo/+Page.tsx delete mode 100644 pages/amo/@id/+Page.tsx delete mode 100644 pages/amo/@id/+onBeforePrerenderStart.js delete mode 100644 pages/blog/+Page.tsx delete mode 100644 pages/blog/@id/+Page.tsx delete mode 100644 pages/blog/@id/+onBeforePrerenderStart.js delete mode 100644 pages/index/+Page.tsx rename public/robots.txt => robots.txt (100%) delete mode 100644 test/blog/post1.mdx delete mode 100644 test/blog/post2.mdx delete mode 100644 test/getBlogs.spec.ts delete mode 100644 tsconfig.json delete mode 100644 types/BlogOptions.ts delete mode 100644 types/BlogPost.ts delete mode 100644 utils/cleanMd.ts delete mode 100644 utils/cleanVike.ts delete mode 100644 utils/copyImg.ts delete mode 100644 utils/getAmo.ts delete mode 100644 utils/getBlogs.ts delete mode 100644 utils/preBuild.ts delete mode 100644 vite.config.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index d3118a6..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Lint - -on: - push: - branches: ["main"] - pull_request: - branches: ["main"] - -jobs: - lint: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: "18" - - - name: Install dependencies - run: npm install --include=dev - - - name: Lint - run: npm run lint - - - name: Test build - run: npm run build - - - name: Test - run: npm run test diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml deleted file mode 100644 index 366f643..0000000 --- a/.github/workflows/pages.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Build and Deploy - -on: - push: - branches: ["main"] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Build and Deploy React app to GitHub Pages - uses: omkartapale/react-deployment-gh-pages@v1.0.0 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 09e1a1d..0000000 --- a/.gitignore +++ /dev/null @@ -1,154 +0,0 @@ -# the public repo images - -public/amo - -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# firebase-admin service-account -firebase - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* - -# Cloudflare -.wrangler/ - -# Sentry Vite Plugin -.env.sentry-build-plugin - -# aws-cdk -.cdk.staging -cdk.out - -## Panda -styled-system -styled-system-studio -.DS_Store -test/blog/blogs.json -blog/blogs.json -amo/blogs.json diff --git a/.mocharc.json b/.mocharc.json deleted file mode 100644 index 7d776b7..0000000 --- a/.mocharc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extension": ["ts"], - "spec": "test/**/*.spec.ts", - "node-option": ["import=tsx"] -} diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 963354f..0000000 --- a/.prettierrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "printWidth": 120 -} diff --git a/404.html b/404.html new file mode 100644 index 0000000..ae5465b --- /dev/null +++ b/404.html @@ -0,0 +1,27 @@ + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

404 Page Not Found

This page could not be found.

+ + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index ea1fe8c..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Personal website. Not more. Not less. - -Blog posts, including the text and all images made by myself, are released freely to the world under the [WTFPL](http://www.wtfpl.net/). diff --git a/amo/0/index.html b/amo/0/index.html new file mode 100644 index 0000000..5603ec8 --- /dev/null +++ b/amo/0/index.html @@ -0,0 +1,438 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Lecture 1 - Some cooking recipes for Quantum Mechanics

In this first lecture we will review the foundations of quantum +mechanics at the level of a cooking recipe. This will enable us to use +them later for the discussion of the atomic structure and interaction +between atoms and light.

+

This is the first lecture of the Advanced Atomic Physics course at +Heidelberg University, as tought in the wintersemester 2019/2020. It is +intended for master students, which have a basic understanding of +quantum mechanics and electromagnetism. In total, we will study multiple +topics of modern atomic, molecular and optical physics over a total of +24 lectures, where each lectures is approximately 90 minutes.

+
    +
  • +

    We will start the series with some basics on quantum mechanics.

    +
  • +
  • +

    Then work our way into the harmonic oscillator and the hydrogen +atom.

    +
  • +
  • +

    We will then leave the path of increasingly complex atoms for a +moment to have some fun with light-propagation, lasers and +discussion of the Bell inequalities.

    +
  • +
  • +

    A discussion of more complex atoms gives us the acutual tools at +hand that are in the lab.

    +
  • +
  • +

    This sets up a discussion of di-atomic molecules, which ends the +old-school AMO.

    +
  • +
  • +

    We move on to quantized atom-light interaction, the Jaynes Cummings +model and strong-field lasers.

    +
  • +
  • +

    We will finally finish with modern ways to implement quantum +simulators and quantum computers.

    +
  • +
+

The topics of the lectures will be discussed in more details in the +associated tutorials.

+

Introduction

+

In AMO physics we will encounter the consequences of quantum mechanics +all the time. So we will start out with a review of the basic +ingredients to facilitate the later discussion of the experiments.

+

Some good introductions on the traditional approach can be found in +1, 2, 3, 4. Previously, we mostly followed the discussion +of Ref. 2. Nowadays, I also recommend the works by Scott Aaronson in this and this lecture. There is also a good article by +Quanta-Magazine +on the whole effort to derive quantum mechanics from some simple +principles. This effort started with this paper, which actually +makes for a nice read.

+

Before we start with the detailled cooking recipe let us give you some +examples of quantum systems, which are of major importance throughout +the lecture:

+
    +
  1. +

    Orbit in an atom, molecule etc. Most of you might have studied +this during the introduction into quantum mechanics.

    +
  2. +
  3. +

    Occupation number of a photon mode. Any person working on quantum +optics has to understand the quantum properties of photons.

    +
  4. +
  5. +

    Position of an atom is of great importance for double slit +experiments, the quantum simulation of condensed matter systems with +atoms, or matterwave experiments.

    +
  6. +
  7. +

    The spin degree of freedom of an atom like in the historical +Stern-Gerlach experiment.

    +
  8. +
  9. +

    The classical coin-toss or bit, which connects us nicely to simple +classical probability theory or computing

    +
  10. +
+

The possible outcomes (the Hilbert Space) for the Problem in Question

+

The first step is to identify the right Hilbert space for your problem. +For a classical problem, we would simply list all the different possible +outcomes in a list (p1,,pN)(p_1, \cdots, p_N) of real numbers. As one of the +outcomes has to happen, we obtain the normalization condition:

+ipi=1 \sum_i p_i = 1 + +

In quantum mechanics, we follow a similar approach of first identifying +the possible outcomes. But instead of describing the outcomes with real +numbers, we now associate a complex number αi\alpha_i to each outcome +(α1,,αN)(\alpha_1, \cdots, \alpha_N), with αiC\alpha_i \in \mathbb{C}. Given +that they should also describe some probability they have to be +normalized to one, but now we have the condition:

+iαi2=1\sum_i |\alpha_i|^2 = 1 +

Aaronson claims that this is just measuring probabilities in in L2L_2 +norm. I would highly recommend his discussions on his blog for a more +instructive derivation[@quantum]. Next we will not use the traditional +lists, but the bra-ket notation, by writing:

+ψ=iαii\left|\psi\right\rangle = \sum_i \alpha_i \left|i\right\rangle +

And given that these are complex vectors, we will measure their overlap +through a Hermitian scalar product

+ψ1ψ2=(ψ2ψ1).\langle\psi_1 \psi_2\rangle=(\langle{\psi_2}| \psi_1\rangle)^*. +

The coin toss

+

The situation becomes particularly nice to follow for the two level +system or the coin toss. In classical systems, we will get heads up +\uparrow with a certain probability p. So the inverse \downarrow +arrives with likelyhood 1p1-p. We would then classical list the +probabilities with (p,1p)(p,1-p). In the quantum world we achieve such a +coin for example in spin 1/2 systems or qubits in general. We will then +describe the system through the state:

+ψ=α+αwith  ψψ=1.\left|\psi\right\rangle = \alpha_\uparrow \left|\uparrow\right\rangle + \alpha_\downarrow \left|\downarrow\right\rangle \qquad \text{with} \; \langle\psi | \psi\rangle = 1. +

The next problem is how to act on the system in the classical world or +in the quantum world.

+

Quantum rules

+

Having set up the space on which we want to act we have to follow the +rules of quantum mechanics. The informal way of describing is actually +nicely described by Chris Monroe in this +video. We might summarize them as +follows:

+
    +
  1. +

    Quantum objects can be in several states at the same time.

    +
  2. +
  3. +

    Rule number one only works when you are not looking.

    +
  4. +
+

The more methematical fashion is two say that there two ways of +manipulating quantum states:

+
    +
  1. +

    Unitary transformations U^\hat{U}.

    +
  2. +
  3. +

    Measurements.

    +
  4. +
+

Unitary transformations

+

As states change and evolve, we know that the total probability should +be conserved. So we transform the state by some operator U^\hat{U}, +which just maps the state +ψUψ\left|\psi\right\rangle\xrightarrow[]{U}\left|\psi'\right\rangle. +This should not change the norm, and we obtain the condition:

+ψU^U^ψ=1U^U^=1\left\langle\psi\right|\hat{U}^\dag\hat{U} \left|\psi\right\rangle = 1\\ +\hat{U}^\dag\hat{U} = \mathbb{1} +

That's the very definition of unitary operators and +unitary matrices. Going back to the case of a coin toss, we see that we +can then transform our qubit through the unitary operator:

+U^=12(1111)\hat{U}=\frac{1}{\sqrt{2}}\left(\begin{array}{cc} +1 & -1\\ +1 & 1 +\end{array}\right) +

Applying it on the previously defined states \uparrow +and \downarrow, we get the superposition state:

+U^=2U^=+2\hat{U}\left|\uparrow\right\rangle = \frac{\left|\uparrow\right\rangle-\left|\downarrow\right\rangle}{\sqrt{2}}\\ +\hat{U}\left|\downarrow\right\rangle = \frac{\left|\uparrow\right\rangle+\left|\downarrow\right\rangle}{\sqrt{2}} +

As we use the unitary matrices we also see why we might +one to use complex numbers. Imagine that we would like to do something +that is roughly the square root of the unitary, which often just means +that the system should evolve for half the time as we will see later. If +we then have negative nummbers, they will immediately become imaginary.

+

Such superposition would not be possible in the classical case, as +non-negative values are forbidden there. Actually, operations on +classical propability distributions are only possible if every entry of +the matrix is non-negative (probabilities are never negative right ?) +and each column adds up to one (we cannot loose something in a +transformation). Such matrices are called .

+

Observables and Measurements

+

As much fun as it might be to manipulate a quantum state, we also have +to measure it and how it connects to the properties of the system at +hand. Any given physical quantity AA is associated with a Hermitian +operator A^=A^\hat{A} = \hat{A}^\dag acting in the Hilbert space of the +system, which we defined previously. Please, be utterly aware that those +Hermitian operators have absolutely no need to be unitary. However, any +unitary operator might be written as U^=eiA^\hat{U}= e^{i\hat{A}}.

+

In a measurement , the possible outcomes are then the eigenvalues +aαa_\alpha of the operator A^\hat{A}:

+A^α=aαα.\hat{A}\left|\alpha\right\rangle=a_{\alpha}\left|\alpha\right\rangle. +

The system will collapse to the corresponding +eigenvector and the probability of finding the system in state +α\left|\alpha\right\rangle is

+P(α)=P^αψ2=ψP^αP^αψ,P(\left|\alpha\right\rangle)=||\hat{P}_{\left|\alpha\right\rangle} \left|\psi\right\rangle||^2 = \left\langle\psi\right| \hat{P}^{\dag}_{\left|\alpha\right\rangle} \hat{P}_{\left|\alpha\right\rangle} \left|\psi\right\rangle, +

where +P^α=αα\hat{P}_{\left|\alpha\right\rangle}= \left|\alpha\right\rangle \left\langle\alpha\right|.

+

As for our previous examples, how would you measure them typically, i.e. +what would be the operator ?

+
    +
  1. +

    In atoms the operators will be angular moment, radius, vibrations +etc.

    +
  2. +
  3. +

    For the occupation number we have nowadays number counting +photodectors.

    +
  4. +
  5. +

    The position of an atom might be detected through high-resolution +CCD cameras.

    +
  6. +
  7. +

    For the measurement of the spin, we typically correlate the +internal degree of freedom to the spatial degree of freedom. This is +done by applying a magnetic field gradient acting on the magnetic +moment μ^\hat{\vec{\mu}} , which in turn is associated with the spin +via μ^=gμBs^/\hat{\vec{\mu}} = g \mu_B \hat{\vec{s}}/\hbar, where gg is +the Landé gg-factor and μB\mu_B is the Bohr magneton . The energy +of the system is H^=μ^B\hat{H} = -\hat{\vec{\mu}} \cdot \vec{B}.

    +
  8. +
+

Time Evolution

+

Being able to access the operator values and intialize the wavefunction +in some way, we also want to have a prediction on its time-evolution. +For most cases of this lecture we can simply describe the system by the +non-relativistic Schrödinger Equation. It reads

+itψ(t)=H^(t)ψ(t).i\hbar\partial_t\left|\psi(t)\right\rangle=\hat{H}(t)\left|\psi(t)\right\rangle. +

In general, the Hamilton operator H^\hat{H} is +time-dependent. For a time-independent Hamilton operator H^\hat{H}, we +can find eigenstates ϕn\left|\phi_n\right\rangle with +corresponding eigenenergies EnE_n :

+H^ϕn=Enϕn.\hat{H}\left|\phi_n\right\rangle=E_n\left|\phi_n\right\rangle. +

The eigenstates ϕn\left|\phi_n\right\rangle +in turn have a simple time evolution:

+ϕn(t)=ϕn(0)expiEnt/. \left|\phi_n(t)\right\rangle=\left|\phi_n(0)\right\rangle\cdot \exp{-i E_nt/\hbar}. +

If we know the initial state of a system

+ψ(0)=nαnϕn,\left|\psi(0)\right\rangle=\sum_n \alpha_n\left|\phi_n\right\rangle, +

where αn=ϕnψ(0)\alpha_n=\langle\phi_n | \psi(0)\rangle, we will +know the full dimension time evolution

+ψ(t)=nαnϕnexpiEnt/.  (Schro¨dinger picture)\left|\psi(t)\right\rangle=\sum_n\alpha_n\left|\phi_n\right\rangle\exp{-i E_n t/\hbar}. \;\, \text{(Schrödinger picture)} +

Note. Sometimes it is beneficial to work in the +Heisenberg picture, which works with static ket vectors +ψ(H)\left|\psi\right\rangle^{(H)} and incorporates the time +evolution in the operators. 5 In certain cases one would have to have +access to relativistic dynamics, which are then described by the Dirac +equation. However, we will only touch on this topic very briefly, as +it directly leads us into the intruiging problems of quantum +electrodynamics.

+

The Heisenberg picture

+

As mentionned in the first lecture it can benefitial to work in the +Heisenberg picture instead of the Schrödinger picture. This approach is +widely used in the field of many-body physics, as it underlies the +formalism of the second quantization. To make the connection with the +Schrödinger picture we should remember that we have the formal solution +of

+ψ(t)=eiH^tψ(0)\left|\psi(t)\right\rangle = \mathrm{e}^{-i\hat{H}t}\left|\psi(0)\right\rangle +

So, if we would like to look into the expectation value +of some operator, we have:

+A^(t)=ψ(0)eiH^tA^SeiH^tψ(0)\langle\hat{A}(t)\rangle = \left\langle\psi(0)\right|\mathrm{e}^{i\hat{H}t}\hat{A}_S\mathrm{e}^{-i\hat{H}t}\left|\psi(0)\right\rangle +

This motivates the following definition of the operator +in the Heisenberg picture:

+A^H=eiH^t/A^SeiH^t/ \hat{A}_H=\mathrm{e}^{i{\hat{H} t}/{\hbar}} \hat{A}_S \mathrm{e}^{-i{\hat{H} t}/{\hbar}} +

where expiH^t/\exp{-i{\hat{H} t}/{\hbar}} is a time evolution +operator (N.B.: H^S=H^H\hat{H}_S = \hat{H}_H). The time evolution of +A^H\hat{A}_H is:

+ddtA^H=iH^eiH^t/A^SeiH^t/ieiH^t/A^SeiH^t/H^+tA^H=i[H^,A^H]+eiH^t/tA^SeiH^t/ \frac{d}{dt} \hat{A}_H = \frac{i}{\hbar}\hat{H}\mathrm{e}^{i{\hat{H}t}/{\hbar}}\hat{A}_S \mathrm{e}^{-i{\hat{H} t}/{\hbar}}\\ + -\frac{i}{\hbar} \mathrm{e}^{i{\hat{H} t}/{\hbar}}\hat{A}_S \mathrm{e}^{-i{\hat{H}t}/{\hbar}}\hat{H}+\partial_t \hat{A}_H\\ + = \frac{i}{\hbar}\left[\hat{H},\hat{A}_H\right] + \mathrm{e}^{i{\hat{H}t}/{\hbar}}\partial_t\hat{A}_S\mathrm{e}^{-i{\hat{H}t}/{\hbar}} +

Note. In the Heisenberg picture the state vectors +are time-independent:

+ψHψ(t=0)=expiH^t/ψ(t). \left|\psi\right\rangle_H \equiv \left|\psi(t=0)\right\rangle=\exp{i{\hat{H}}t/{\hbar}} \left|\psi(t)\right\rangle. +

Therefore, the results of measurements are the same in +both pictures:

+ψ(t)A^ψ(t)=ψHA^HψH. \left\langle\psi(t)\right|\hat{A}\left|\psi(t)\right\rangle = \left\langle\psi\right|_H \hat{A}_H \left|\psi\right\rangle_H. +

Footnotes

+
    +
  1. +

    Dalibard Basdevant. Quantum Mechanics. Springer-Verlag, 2002

    +
  2. +
  3. +

    Jean Dalibard Jean-Louis Basdevant. The Quantum Mechanics Solver. Springer-Verlag, 2006. 2

    +
  4. +
  5. +

    Quantum Mechanics, Volume 1.

    +
  6. +
  7. +

    Quantum Mechanics, Volume 2.

    +
  8. +
  9. +

    We will follow this route in the discussion of the two-level +system and the Bloch sphere.

    +
  10. +
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/amo/0/index.pageContext.json b/amo/0/index.pageContext.json new file mode 100644 index 0000000..3f8a2c0 --- /dev/null +++ b/amo/0/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo/@id","routeParams":{"id":"0"},"data":"!undefined"} \ No newline at end of file diff --git a/amo/1/index.html b/amo/1/index.html new file mode 100644 index 0000000..1f1615c --- /dev/null +++ b/amo/1/index.html @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Lecture 2 - A few more cooking recipes for quantum mechanics

In this second lecture we will finish the discussion of the basic +cooking recipes and discuss a few of the consequences like the +uncertainty relation, the existance of wave packages and the Ehrenfest +theorem.

+

In the first lecture we discussed briefly the basic +principles of quantum mechanics like operators, state vectors and the +Schrödinger equation. We will finish this discussion today and then +introduce the most important consequences. We will continue to closely +follow the discussion of the introductory chapter of Ref. 1

+

Composite systems

+

It is actually quite rare that we can label the system with a single +quantum number. Any atom will involve spin, position, angular momentum. +Other examples might just involve two spin which we observe. So the +question is then on how we label those systems. We then have two +questions to answer:

+
    +
  1. +

    How many labels do we need for a system to fully determine its +quantum state ?

    +
  2. +
  3. +

    Once I know all the labels, how do I construct the full state out of +them ?

    +
  4. +
+

We will actually discuss the second question first as it sets the +notation for the first question.

+

Entangled States

+

In AMO we typically would like to characterize is the state of an +electron in a hydrogen atom. We need to define its angular momentum +label LL, which might be 0, 1, 2 and also its electron spin SS, which +might be {,}\{\uparrow, \downarrow\}. It state is then typically labelled +as something like

+

L=0,S==0,\left|L=0, S=\uparrow\right\rangle = \left|0,\uparrow\right\rangle

+

etc.

+

Another, simple example is that of two spins, each one having two +possible states {,}\{\uparrow, \downarrow\}. This is a standard problem +in optical communication, where you send correlated photons with a +certain polarization to different people. We will typically call them +Alice and Bob 2.

+

We now would like to understand than if we can disentangle the +information about the different labels. Naively, we can now associate +with Alice one set of outcomes and describe it by some state +ψA\left|\psi_{A}\right\rangle and the Bob has another set +ψB\left|\psi_{B}\right\rangle:

+ψA=aA+aAψB=bB+bB\left|\psi_A\right\rangle= a_{\uparrow} \left|\uparrow_A\right\rangle+ a_{\downarrow} \left|\downarrow_A\right\rangle\\ +\left|\psi_B\right\rangle= b_{\uparrow} \left|\uparrow_B\right\rangle+ b_{\downarrow} \left|\downarrow_B\right\rangle +

The full state will then be described by the possible outcomes +{AB,AB,AB,AB}\{\uparrow_A\uparrow_B,\downarrow_A\uparrow_B,\uparrow_A\downarrow_B, \downarrow_A\downarrow_B\}. +We can then write:

+ψ=α(AB)+α(AB)+α(AB)+α(AB)=α+α+α+α\left|\psi\right\rangle = \alpha_{\uparrow\uparrow}(\left|\uparrow_A\right\rangle\otimes\left|\uparrow_B\right\rangle)+\alpha_{\uparrow\downarrow}(\left|\uparrow_A\right\rangle\otimes\left|\downarrow_B\right\rangle)+\alpha_{\downarrow\uparrow}(\left|\downarrow_A\right\rangle\otimes\left|\uparrow_B\right\rangle)+\alpha_{\downarrow\downarrow}(\left|\downarrow_A\right\rangle\otimes\left|\downarrow_B\right\rangle)\\ += \alpha_{\uparrow\uparrow}\left|\uparrow\uparrow\right\rangle+\alpha_{\uparrow\downarrow}\left|\uparrow\downarrow\right\rangle+\alpha_{\downarrow\uparrow}\left|\downarrow \uparrow\right\rangle+\alpha_{\downarrow\downarrow}\left|\downarrow\downarrow\right\rangle +

So we will typically just plug the labels into a single +ket and drop indices, to avoid rewriting the tensor symbol each time. We +say that a state is separable, if we can write it as a product of the +two individual states as above:

+ψ=ψAψB=ab+ab+ab+ab\left|\psi\right\rangle = \left|\psi_A\right\rangle\otimes\left|\psi_B\right\rangle\\ +=a_{\uparrow} b_\uparrow \left|\uparrow\uparrow\right\rangle+a_{\downarrow} b_\uparrow \left|\downarrow\uparrow\right\rangle+a_{\uparrow} b_\downarrow \left|\uparrow\downarrow\right\rangle+a_{\downarrow} b_\downarrow \left|\downarrow\downarrow\right\rangle +

All other states are called entangled. The most famous entangled +states are the Bell states:

+ψBell=+2\left|\psi_\textrm{Bell}\right\rangle=\frac{\left|\uparrow\uparrow\right\rangle+\left|\downarrow\downarrow\right\rangle}{\sqrt{2}} +

In general we will say that the quantum system is formed by two +subsystems S1S_1 and S2S_2. If they are independent we can write each of +them as:

+ψ1=mMamαm,ψ2=nNbnβn.\left|\psi_1\right\rangle=\sum_m^M a_m \left|\alpha_m\right\rangle,\\ +\left|\psi_2\right\rangle=\sum_n^N b_n \left|\beta_n\right\rangle. +

In general we will then write:

+ψ=mMnNcmn(αmβn).\left|\psi\right\rangle=\sum_m^M \sum_n^N c_{mn}(\left|\alpha_m\right\rangle\otimes \left|\beta_n\right\rangle). +

So we can determine such a state by M×NM \times N numbers +cmnc_{mn} here. If the states are separable, we can write +ψ\left|\psi\right\rangle as a product of the individual +states:

+ψ=ψ1ψ2=(mMamαm)(nNbnβn)\left|\psi\right\rangle=\left|\psi_1\right\rangle\otimes\left|\psi_2\right\rangle=\left(\sum_m^M a_m \left|\alpha_m\right\rangle\right) \otimes \left(\sum_n^N b_n \left|\beta_n\right\rangle\right) +ψ=mMnNambnαmβn.\left|\psi\right\rangle=\sum_m^M \sum_n^N a_m b_n \left|\alpha_m\right\rangle \otimes \left|\beta_n\right\rangle. +

Separable states thus only describes a small subset of all possible +states.

+

Statistical Mixtures and Density Operator

+

Having set up the formalism for writing down the full quantum state with +plenty of labels, we have to solve the next problem. As an +experimentalist, you will rarely measure all of them. This means that +you only perform a partial measurement and you have only partial +information of the system. The extreme case is the thermodynamic +ensemble, where we measure only temperature to describe 102310^{23} +particles.

+

A similiar problem arises for Alice and Bob. They typically measure the +state of the qubit in their lab without knowing what the other did. So +they need some way to describe the system locally. This is done through +the density operator approach.

+

In the density operator approach the state of the system is described by +a Hermitian density operator

+ρ^=n=1Npnϕnϕn. \hat{\rho} = \sum_{n=1}^N p_n \left|\phi_n\right\rangle\left\langle\phi_n\right|. +

Here, ϕn\left\langle\phi_n\right| are the +eigenstates of ρ^\hat{\rho}, and pnp_n are the probabilities to find the +system in the respective states +ϕn\left|\phi_n\right\rangle. The trace of the density +operator is the sum of all probabilities pnp_n:

+tr(ρ^)=pn=1. \mathrm{tr}(\hat{\rho}) = \sum p_n = 1. +

For a pure state ψ\left|\psi\right\rangle, we get pn=1p_n=1 +for only one value of nn. For every other nn, the probabilities +vanish. We thus obtain a "pure" density operator +ρ^pure\hat{\rho}_{\text{pure}} which has the properties of a projection +operator:

+ρ^pure=ψψρ^2=ρ^.\hat{\rho}_{\text{pure}} = \left|\psi\right\rangle\left\langle\psi\right| \qquad \Longleftrightarrow \qquad \hat{\rho}^2 = \hat{\rho}. +

For the simple qubit we then have:

+ρ^=(α+α)(α+α)=α2+α2+αα+αα \hat{\rho}= \left(\alpha_\uparrow\left|\uparrow\right\rangle+\alpha_\downarrow\left|\downarrow\right\rangle\right)\left(\alpha_\uparrow^*\left\langle\uparrow\right|+\alpha_\downarrow^*\left\langle\downarrow\right|\right)\\ + = |\alpha_\uparrow|^2\left|\uparrow\right\rangle\left\langle\uparrow\right|+|\alpha_\downarrow|^2\left|\downarrow\right\rangle\left\langle\downarrow\right|+\alpha_\downarrow\alpha_\uparrow^*\left|\downarrow\right\rangle\left\langle\uparrow\right|+\alpha_\uparrow\alpha_\downarrow^*\left|\uparrow\right\rangle\left\langle\downarrow\right| +

Then it is even simpler to write in matrix form:

+ρ^=(α2ααααα2) \hat{\rho}= \left(\begin{array}{cc} + |\alpha_\uparrow|^2&\alpha_\uparrow\alpha_\downarrow^*\\ + \alpha_\downarrow\alpha_\uparrow^*&|\alpha_\downarrow|^2 + \end{array}\right) +

For a thermal state on the other hand we have:

+ρ^thermal=n=1NeEnkBTZϕnϕn with Z=n=1NeEnkBT\hat{\rho}_{\text{thermal}} = \sum_{n=1}^N \frac{e^{-\frac{E_n}{k_BT}}}{Z} \left|\phi_n\right\rangle\left\langle\phi_n\right|\text{ with }Z = \sum_{n=1}^N e^{-\frac{E_n}{k_BT}} +

With this knowledge we can now determine the result of a +measurement of an observable AA belonging to an operator A^\hat{A}. For +the pure state ψ\left|\psi\right\rangle we get:

+A^=ψA^ψ.\langle \hat{A}\rangle = \left\langle\psi\right| \hat{A} \left|\psi\right\rangle. +

For a mixed state we get:

+A^=tr(ρ^A^)=npnϕnA^ϕn.\langle \hat{A}\rangle = \mathrm{tr}(\hat{\rho}\cdot \hat{A}) = \sum_n {p_n} \left\langle\phi_n\right| \hat{A} \left|\phi_n\right\rangle. +

The time evolution of the density operator can be +expressed with the von Neumann equation:

+itρ^(t)=[H^(t),ρ^(t)].i\hbar \partial_{t}\hat{\rho}(t) = [\hat{H}(t),\hat{\rho}(t)]. +

Back to partial measurements

+

We can now come back to the correlated photons sent to Alice and Bob, +sharing a Bell pair. They full density matrix is then especially simple:

+ρ^=(12001200000000120012) \hat{\rho}= \left(\begin{array}{cccc} + \frac{1}{2}& 0& 0 &\frac{1}{2}\\ + 0 & 0 & 0& 0\\ + 0&0&0&0\\ + \frac{1}{2}&0&0&\frac{1}{2} + \end{array}\right) +

Let us write the system as S=SASBS = S_A \otimes S_B. If we are looking for +the density operator ρ^i\hat{\rho}_i of each individual, we can simply +write:

+ρ^A=trB(ρ^),ρ^B=trA(ρ^),\hat{\rho}_A=\mathrm{tr}_{B}(\hat{\rho}),\\ +\hat{\rho}_B=\mathrm{tr}_{A}(\hat{\rho}), +

where +ρ^=ψψ\hat{\rho}=\left|\psi\right\rangle\left\langle\psi\right| +and trj(ρ^)\mathrm{tr}_{j}(\hat{\rho}) is the trace over the Hilbert space of +subsystem jj.

+

To reduce the density matrix of the Bell state it is actually helpful to +write out the definitions:

+trB(ρ^)=Bρ^B+Bρ^B=12(AA+AA)\mathrm{tr}_{B}(\hat{\rho}) = \left\langle\uparrow_B\right|\hat{\rho}\left|\uparrow_B\right\rangle+\left\langle\downarrow_B\right|\hat{\rho}\left|\downarrow_B\right\rangle\\ +=\frac{1}{2}\left(\left|\uparrow_A\right\rangle\left\langle\uparrow_A\right|+\left|\downarrow_A\right\rangle\left\langle\downarrow_A\right|\right) +

So we end up with the fully mixed state:

+ρ^A,B=(120012) \hat{\rho}_{A,B} = \left(\begin{array}{cc} + \frac{1}{2}&0\\ + 0&\frac{1}{2} + \end{array}\right) +

Alice and Bob are simply cossing a coin if they ignore +the outcome of the other member. But once they start comparing results +we will see that the quantum case can dramatically differ from the +classical case. This will be the content of lecture 12 [@entanglement].

+

Important Consequences of the Principles

+

Uncertainty Relation

+

The product of the variances o two noncommuting operators has a lower +limit:

+ΔA^ΔB^12[A,B^^], \Delta \hat{A} \cdot \Delta \hat{B} \geq \frac{1}{2} \left| \left\langle\left[\hat{A,\hat{B}}\right]\right\rangle \right|, +

where the variance is defined as +ΔA^=A2^A^2\Delta \hat{A} = \sqrt{\left\langle\hat{A^2}\right\rangle-\left\langle\hat{A}^2\right\rangle}.

+

Examples.

+[x^,p^]=i[J^i,J^j]=iϵijkJ^k\left[ \hat{x}, \hat{p} \right] = i \hbar \\ +\left[ \hat{J}_i , \hat{J}_j \right] = i \hbar \epsilon_{ijk} \hat{J}_k +

Note. This is a statement about the state itself, and not the +measurement!

+

Ehrenfest Theorem

+

With the Ehrenfest theorem, one can determine the time evolution of the +expectation value of an operator A^\hat{A}:

+ddtA^=1i[A^,H^]+tA^(t). \frac{d}{dt}\left\langle\hat{A}\right\rangle=\frac{1}{i\hbar}\left\langle\left[\hat{A},\hat{H}\right]\right\rangle+\left\langle\partial_t\hat{A}(t)\right\rangle. +

If A^\hat{A} is time-independent and +[A^,H^]=0\left[\hat{A},\hat{H}\right]=0, the expectation value +A^\left\langle\hat{A}\right\rangle is a constant of the +motion.

+

Complete Set of Commuting Observables

+

A set of commuting operators +{A^,B^,C^,,X^}\{\hat{A},\hat{B},\hat{C},\cdots,\hat{X}\} is considered a complete +set if their common eigenbasis is unique. Thus, the measurement of all +quantities {A,B,,X}\{A,B,\cdots,X\} will determine the system uniquely. The +clean identification of such a Hilbert space can be quite challenging +and a nice way of its measurment even more. Coming back to our previous +examples:

+
    +
  1. +

    Performing the full spectroscopy of the atom. Even for the hydrogen +atom we will see that the full answer can be rather involved...

    +
  2. +
  3. +

    The occupation number is rather straight forward. However, we have +to be careful that we really collect a substantial amount of the +photons etc.

    +
  4. +
  5. +

    Are we able to measure the full position information ? What is the +resolution of the detector and the point-spread function ?

    +
  6. +
  7. +

    Here it is again rather clean to put a very efficient detector at +the output of the two arms ...

    +
  8. +
  9. +

    What are the components of the spin that we can access ? The zz +component does not commute with the other components, so what should +we measure ?

    +
  10. +
+

In the third +lecture of this +course will start to apply these discussions to the two-level system, +which is one of the simplest yet most powerful models of quantum +mechanics.

+

Footnotes

+
    +
  1. +

    Jean Dalibard Jean-Louis Basdevant. The Quantum Mechanics Solver. Springer-Verlag, 2006.

    +
  2. +
  3. +

    And if someone wants to listen the person is called Eve

    +
  4. +
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/amo/1/index.pageContext.json b/amo/1/index.pageContext.json new file mode 100644 index 0000000..5fe92b2 --- /dev/null +++ b/amo/1/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo/@id","routeParams":{"id":"1"},"data":"!undefined"} \ No newline at end of file diff --git a/amo/2/index.html b/amo/2/index.html new file mode 100644 index 0000000..c521128 --- /dev/null +++ b/amo/2/index.html @@ -0,0 +1,381 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Lecture 3 - The two-level system

We are going to discuss the two-level system, it's static properties +like level splitting at avoided crossings and dynamical properties like +Rabi oscillations.

+

After the previous discussions of some basic cooking recipes to quantum +mechanics in last weeks lectures, we will use them to understand the two-level system. A very detailled +discussion can be found in chapter 4 of Ref. 1. The importance of the +two-level system is at least three-fold:

+
    +
  1. +

    It is the simplest system of quantum mechanics as it spans a Hilbert +space of only two states.

    +
  2. +
  3. +

    It is quite ubiquitous in nature and very widely used in atomic +physics.

    +
  4. +
  5. +

    The two-level system is another word for the qubit, which is the +fundamental building block of the exploding field of quantum +computing and quantum information science.

    +
  6. +
+ +

Examples for two-state systems. a) Benzene: In the ground state, the +electrons are delocalized. b) Ammonia: The nitrogen atom is either found +above or below the hydrogen triangle. The state changes when the +nitrogen atom tunnels. c) Molecular ion : The electron is either +localized near proton 1 or 2.

+

Some of the many examples for two-level systems that can be found in +nature:

+
    +
  • +

    Spin of the electron: Up vs. down state

    +
  • +
  • +

    Two-level atom with one electron (simplified): Excited vs. ground +state

    +
  • +
  • +

    Structures of molecules, e.g., NH3NH_3

    +
  • +
  • +

    Occupation of mesoscopic capacitors in nanodevices.

    +
  • +
  • +

    Current states in superconducting loops.

    +
  • +
  • +

    Nitrogen-vacancy centers in diamond.

    +
  • +
+

Hamiltonian, Eigenstates and Matrix Notation

+

To start out, we will consider two eigenstates +0\left|0\right\rangle, 1\left|1\right\rangle +of the Hamiltonian H^0\hat{H}_0 with

+H^00=E00,H^01=E11. \hat{H}_0\left|0\right\rangle=E_0\left|0\right\rangle, \qquad \hat{H}_0\left|1\right\rangle=E_1\left|1\right\rangle. +

Quite typically we might think of it as a two-level atom +with states 1 and 2. The eigenstates can be expressed in matrix +notation:

+0=(10),1=(01), \left|0\right\rangle=\left( \begin{array}{c} 1 \\ 0 \end{array} \right), \qquad \left|1\right\rangle=\left( \begin{array}{c} 0 \\ 1 \end{array} \right), +

so that H^0\hat{H}_0 be written as a diagonal matrix

+H^0=(E000E1). \hat{H}_0 = \left(\begin{array}{cc} E_0 & 0 \\ 0 & E_1 \end{array}\right). +

If we would only prepare eigenstates the system would be +rather boring. However, we typically have the ability to change the +Hamiltonian by switching on and off laser or microwave fields 2. We +can then write the Hamiltonian in its most general form as:

+H^=2(ΔΩxiΩyΩx+iΩyΔ) +\hat{H} = \frac{\hbar}{2}\left( \begin{array}{cc} \Delta & \Omega_x - i\Omega_y\\ \Omega_x +i\Omega_y & -\Delta \end{array} \right) +

Sometimes we will also chose the definition:

+Ω=Ωeiφ=Ωx+iΩy\Omega = |\Omega| e^{i\varphi}=\Omega_x + i\Omega_y +

It is particularly useful for the case in which the +coupling is created by a laser. Another useful way of thinking about the +two-level system is as a spin in a magnetic field. Let us remind us of +the definitions of the of the spin-1/2 matrices:

+sx=2(0110) sy=2(0ii0) sz=2(1001)s_x = \frac{\hbar}{2}\left(\begin{array}{cc} +0 & 1\\ +1 & 0 +\end{array} +\right)~ +s_y = \frac{\hbar}{2}\left(\begin{array}{cc} +0 & -i\\ +i & 0 +\end{array} +\right)~s_z =\frac{\hbar}{2} \left(\begin{array}{cc} +1 & 0\\ +0 & -1 +\end{array} +\right) +

We then obtain:

+H^=Bs^ with B=(Ωx,Ωy,Δ) +\hat{H} = \mathbf{B}\cdot\hat{\mathbf{s}}\text{ with }\mathbf{B} = (\Omega_x, \Omega_y, \Delta) +

You will go through this calculation in the excercise of +this week.

+

Case of no perturbation Ω=0\Omega = 0

+

This is exactly the case of no applied laser fields that we discussed +previously. We simply removed the energy offset +Em=E0+E12E_m = \frac{E_0+E_1}{2} and pulled out the factor \hbar, such that +Δ\Delta measures a frequency. So we have:

+E0=Em+2ΔE1=Em2ΔE_0 = E_m+ \frac{\hbar}{2}\Delta\\ +E_1 = E_m- \frac{\hbar}{2}\Delta +

We typically call Δ\Delta the energy difference between +the levels or the detuning.

+

Case of no detuning Δ=0\Delta = 0

+

Let us suppose that the diagonal elements are exactly zero. And for +simplicity we will also keep Ωy=0\Omega_y =0 as it simply complicates the +calculations without adding much to the discussion at this stage. The +Hamiltonian reads then:

+H^=2(0ΩΩ0)\hat{H} = \frac{\hbar}{2}\left( \begin{array}{cc} 0 & \Omega\\ \Omega &0 \end{array} \right) +

Quite clearly the states φ1,2\varphi_{1,2} are not the eigenstates of the +system anymore. How should the system be described now ? We can once +again diagonalize the system and write

+H^φ±=E±φ±E±=±2Ωφ±=0±12\hat{H}\left|\varphi_{\pm}\right\rangle = E_{\pm}\left|\varphi_\pm\right\rangle\\ +E_{\pm} = \pm\frac{\hbar}{2}\Omega\\ +\left|\varphi_\pm\right\rangle = \frac{\left|0\right\rangle\pm\left|1\right\rangle}{\sqrt{2}} +

Two important consequences can be understood from this +result:

+
    +
  1. +

    The coupling of the two states shifts their energy by Ω\Omega. This +is the idea of level repulsion.

    +
  2. +
  3. +

    The coupled states are a superposition of the initial states.

    +
  4. +
+

This is also a motivation the formulation of the 'bare' system for +Ω=0\Omega = 0 and the 'dressed' states for the coupled system.

+

General case

+

Quite importantly we can solve the system completely even in the general +case. By diagonalizing the Hamiltonian we obtain:

+E±=±2Δ2+Ω2 E_\pm = \pm \frac{\hbar}{2} \sqrt{\Delta^2+|\Omega|^2} +

The energies can be nicely summarized as in Fig.

+ +

The Eigenstates then read:

+ψ+=cos(θ2)eiφ/20+sin(θ2)eiφ/21,\left|\psi_+\right\rangle=\cos\left(\frac{\theta}{2}\right) \mathrm{e}^{-i{\varphi}/{2}}\left|0\right\rangle+\sin\left(\frac{\theta}{2}\right) \mathrm{e}^{i{\varphi}/{2}}\left|1\right\rangle, +ψ=sin(θ2)eiφ/20+cos(θ2)eiφ/21,\left|\psi_-\right\rangle=-\sin\left(\frac{\theta}{2}\right) \mathrm{e}^{-i{\varphi}/{2}}\left|0\right\rangle+\cos\left(\frac{\theta}{2}\right) \mathrm{e}^{i{\varphi}/{2}}\left|1\right\rangle, +

where

+tan(θ)=ΩΔ +\tan(\theta) = \frac{|\Omega|}{\Delta} +

The Bloch sphere

+

While we could just discuss the details of the above state in the +abstract, it is extremely helpful to visualize the problem on the Bloch +sphere. The idea of the Bloch sphere is that the we have a complex wave +function of well defined norm and two free parameters. So it seems quite +natural to look for a good representation of it. And this is the Bloch +sphere as drawn below

+ +

We will see especially its usefulness especially as we discuss the +dynamics of the two-state system.

+

Dynamical Aspects

+

Time Evolution of ψ(t)\left|\psi(t)\right\rangle

+

After the static case we now want to investigate the dynamical +properties of the two-state system. We calculate the time evolution of +ψ(t)=c0(t)0+c1(t)1\left|\psi(t)\right\rangle = c_0(t)\left|0\right\rangle + c_1(t)\left|1\right\rangle +with the Schrödinger equation and the perturbed Hamiltonian:

+iddtψ(t)=H^ψ(t),iddt(c0(t)c1(t))=12(ΔΩΩΔ)(c0(t)c1(t)).i\hbar \frac{d}{dt}\left|\psi(t)\right\rangle=\hat{H}\left|\psi(t)\right\rangle,\\ +i \frac{d}{dt}\left(\begin{array}{c} c_0(t) \\ c_1(t) \end{array}\right) = \frac{1}{2}\left( \begin{array}{cc} \Delta & \Omega \\ \Omega^* & -\Delta \end{array} \right) \left(\begin{array}{c} c_0(t) \\ c_1(t) \end{array} \right). +

We have two coupled differential equations and we luckily already know +how to solve them as we have calculated the two eigenenergies in the +previous section. For the state +ψ(t)\left|\psi(t)\right\rangle we get

+ψ(t)=λeiE+t/ψ++μeiEt/ψ \left|\psi(t)\right\rangle=\lambda \mathrm{e}^{-i{E_+}t/{\hbar}} \left|\psi_+\right\rangle + \mu \mathrm{e}^{-i{E_-}t/{\hbar}} \left|\psi_-\right\rangle +

with the factors λ\lambda and μ\mu, which are defined +by the initial state. The most common question is then what happens to +the system if we start out in the bare state +0\left|0\right\rangle and then let it evolve under +coupling with a laser ? So what is the probability to find it in the +other state 1\left|1\right\rangle:

+P1(t)=1ψ(t)2.P_1(t)=\left|\left\langle 1|\psi(t)\right\rangle\right|^2. +

As a first step, we have to apply the initial condition +to and express +φ\left|\varphi\right\rangle in terms of ψ+|\psi_+ and ψ|\psi_-:

+ψ(0)=!0=eiφ/2[cos(θ2)ψ+sin(θ2)ψ]\left|\psi(0)\right\rangle \overset{!}{=} \left|0\right\rangle\\ + = \mathrm{e}^{i{\varphi}/{2}} \left[ \cos\left( \frac{\theta}{2}\right) \left|\psi_+\right\rangle-\sin\left(\frac{\theta}{2}\right)\left|\psi_-\right\rangle\right] +

By equating the coefficients we get for λ\lambda and +μ\mu:

+λ=eiφ/2cos(θ2),μ=eiφ/2sin(θ2).\lambda = \mathrm{e}^{i{\varphi}/{2}}\cos\left(\frac{\theta}{2}\right), \qquad \mu = -\mathrm{e}^{i{\varphi}/{2}}\sin\left(\frac{\theta}{2}\right). +

One thus gets:

+P1(t)=1ψ(t)2=eiφsin(θ2)cos(θ2)[eiE+t/eiEt/]2=sin2(θ)sin2(E+E2t)\hspace{-2mm} P_1(t)=\left|\left\langle 1|\psi(t)\right\rangle\right|^2 \\ += \left|\mathrm{e}^{i\varphi} \sin\left(\frac{\theta}{2}\right)\cos\left(\frac{\theta}{2}\right)\left[\mathrm{e}^{-i{E_+}t/{\hbar}} - \mathrm{e}^{-i{E_-}t/{\hbar}}\right]\right|^2\\ += \sin^2(\theta)\sin^2\left(\frac{E_+-E_-}{2\hbar}t\right) +

P1(t)P_1(t) can be expressed with Δ\Delta and Ω\Omega +alone. The obtained relation is called Rabi's formula:

+P1(t)=11+(ΔΩ)2sin2(Ω2+Δ2t2) P_1(t)=\frac{1}{1+\left(\frac{\Delta}{|\Omega|}\right)^2}\sin^2\left(\sqrt{|\Omega|^2+\Delta^2}\frac{t}{2}\right) + +

Visualization of the dynamics in the spin picture

+

While the previous derivation might be the standard one, which certainly +leads to the right results it might not be the most intuitive way of +thinking about the dynamics. They become actually quite transparent in +the spin language and on the Bloch sphere. So let us go back to the +formulation of the Hamiltonian in terms of spins as at the beginning of the lecture.

+

How would the question of the time evolution from 00 to 11 and back go +now ? Basically, we would assume that the spin has been initialize into +one of the eigenstates of the zz-basis and now starts to rotate in some +magnetic field. How ? This can be nicely studied in the Heisenberg +picture, where operators have a time evolution. In the Heisenberg +picture we have:

+ddts^i=i[H^,s^i]ddts^i=ijBj[s^j,s^i]\frac{d}{dt} \hat{s}_i = \frac{i}{\hbar}\left[\hat{H},\hat{s}_i\right]\\ +\frac{d}{dt} \hat{s}_i = \frac{i}{\hbar}\sum_j B_j \left[\hat{s}_j,\hat{s}_i\right]\\ + + +

So to understand we time evolution, we only need to +employ the commutator relationships between the spins:

+=isz  [sy,sz]=isx  [sz,sx]=isy= \hbar is_z~~[ s_y, s_z] = \hbar is_x~~[ s_z, s_x] = \hbar is_y +

For the specific case of Bx=ΩB_x=\Omega, By=Bz=0B_y = B_z = 0, +we have then:

+ddts^x=0ddts^y=Ωs^zddts^z=Ωs^y\frac{d}{dt} \hat{s}_x = 0\\ +\frac{d}{dt} \hat{s}_y = -\Omega \hat{s}_z\\ +\frac{d}{dt} \hat{s}_z = \Omega \hat{s}_y + + +

So applying a field in x-direction leads to a rotation of the spin +around the xx axis with velocity Ω\Omega. We can now use this general +picture to understand the dynamics as rotations around an axis, which is +defined by the different components of the magnetic field.

+

A few words on the quantum information notation

+

The qubit is THE basic ingredient of quantum computers. A nice way to +play around with them is actually the IBM Quantum +experience. However, you will +typically not find Pauli matrices etc within these systems. The typical +notation there is:

+
    +
  • +

    Rx(ϕ)R_x(\phi) is a rotation around the x-axis for an angle ϕ\phi.

    +
  • +
  • +

    Same holds for RyR_y and RzR_z.

    +
  • +
  • +

    XX denotes the rotation around the x axis for an angle π\pi. So it +transforms 1\left|1\right\rangle into +0\left|0\right\rangle and vise versa.

    +
  • +
  • +

    ZZ denotes the rotation around the x axis for an angle π\pi. So it +transforms +\left|+\right\rangle into +\left|-\right\rangle and vise versa.

    +
  • +
+

The most commonly used gate is actually one that we did not talk about +at all, it is the Hadamard gate, which transforms +1\left|1\right\rangle into +\left|-\right\rangle and +0\left|0\right\rangle into ++\left|+\right\rangle:

+H^1= H^0=+H^=1 H^+=0\hat{H}\left|1\right\rangle = \left|-\right\rangle ~ \hat{H}\left|0\right\rangle = \left|+\right\rangle\\ +\hat{H}\left|-\right\rangle = \left|1\right\rangle ~ \hat{H}\left|+\right\rangle = \left|0\right\rangle +

In the forth lecture we will see how it is that a time-dependent field can actually couple two atomic states, which are normally of very different energies.

+

Footnotes

+
    +
  1. +

    Quantum Mechanics, Volume 1. Cohen-Tannoudji, Diu, Laloe. Wiley-VCH, 2006.

    +
  2. +
  3. +

    See the discussions of the next lecture

    +
  4. +
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/amo/2/index.pageContext.json b/amo/2/index.pageContext.json new file mode 100644 index 0000000..a0d0c33 --- /dev/null +++ b/amo/2/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo/@id","routeParams":{"id":"2"},"data":"!undefined"} \ No newline at end of file diff --git a/amo/3/index.html b/amo/3/index.html new file mode 100644 index 0000000..5a858ca --- /dev/null +++ b/amo/3/index.html @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Lecture 4 - Atoms in oscillating fields

In the lecture, we will see how a time dependent coupling allows us to +engineer a new Hamiltonian. Most importantly, we will discuss the +resonant coupling of two levels and the decay of a single level to a +continuum.

+

In the last lecture, we discussed the properties of two +coupled levels. However, we did not elaborate at any stage how such a +system might emerge in a true atom. Two fundamental questions come to +mind:

+
    +
  1. +

    How is it that a laser allows to treat two atomic levels of very +different energies as if they were degenerate ?

    +
  2. +
  3. +

    An atom has many energy levels EnE_n and most of them are not +degenerate. How can we reduce this complicated structure to a +two-level system?

    +
  4. +
+

The solution is to resonantly couple two of the atom's levels by +applying an external, oscillatory field, which is very nicely discussed +in chapter 12 of Ref. 1 2. We will discuss +important and fundamental properties of systems with a time-dependent +Hamiltonian.

+

We will discuss a simple model for the atom in the oscillatory field. We +can write down the Hamiltonian:

+H^=H^0+V^(t). \hat{H} = \hat{H}_0 + \hat{V}(t). +

Here, H^0\hat{H}_0 belongs to the atom and V(t)V(t) +describes the time-dependent field and its interaction with the atom. We +assume that n\left|n\right\rangle is an eigenstate of +H^0\hat{H}_0 and write:

+H^0n=Enn.\hat{H}_0\left|n\right\rangle = E_n \left|n\right\rangle. +

If the system is initially prepared in the state +i\left|i\right\rangle, so that

+ψ(t=0)=i,\left|\psi(t=0)\right\rangle = \left|i\right\rangle, +

what is the probability

+Pm(t)=mψ(t)2P_m(t) = \left|\left\langle m|\psi(t)\right\rangle\right|^2 +

to find the system in the state +m\left|m\right\rangle at the time tt?

+

Evolution Equation

+

The system ψ(t)\left|\psi(t)\right\rangle can be expressed as +follows:

+ψ(t)=nγn(t)eiEnt/n,\left|\psi(t)\right\rangle = \sum_n \gamma_n(t) \mathrm{e}^{-i{E_n}t/{\hbar}} \left|n\right\rangle, +

where the exponential is the time evolution for +H^1= 0\hat{H}_1 =~0. We plug this equation in the Schrödinger equation and +get:

+in(γ˙n(t)iEnγn(t))eiEnt/n=nγn(t)eiEnt/(H^0+V^)ninγ˙n(t)eiEnt/n=nγn(t)eiEnt/V^ni\hbar \sum_n\left(\dot{\gamma}_n(t)-i\frac{E_n}{\hbar}\gamma_n(t)\right)\mathrm{e}^{-i{E_n}t/{\hbar}}\left|n\right\rangle = \sum_n \gamma_n(t) \mathrm{e}^{-i{E_n}t/{\hbar}}\left(\hat{H}_0 + \hat{V}\right) \left|n\right\rangle\\ +\Longleftrightarrow i\hbar\sum_n \dot{\gamma}_n(t) \mathrm{e}^{-i{E_n}t/{\hbar}} \left|n\right\rangle + = \sum_n \gamma_n(t) \mathrm{e}^{-i{E_n}t/{\hbar}} \hat{V} \left|n\right\rangle +

If we multiply the equation with k\left\langle k\right| we +obtain a set of coupled differential equations

+iγ˙keiEkt/=nγneEnt/kV^n,iγ˙k=nγnei(EnEk)t/kV^ni\hbar \dot{\gamma}_k \mathrm{e}^{-i{E_k}t/{\hbar}} = \sum_n \gamma_n \mathrm{e}^{-{E_n}t/{\hbar}}\left\langle k\right|\hat{V}\left|n\right\rangle,\\ +i\hbar \dot{\gamma}_k = \sum_n \gamma_n \mathrm{e}^{-i {(E_n-E_k)}t/{\hbar}} \left\langle k\right| \hat{V}\left|n\right\rangle +

with initial conditions +ψ(t=0)\left|\psi(t=0)\right\rangle. They determine the full +time evolution.

+

The solution of this set of equations depends on the details of the +system. However, there are a few important points:

+
    +
  • +

    For short enough times, the dynamics are driving by the coupling +strength +kV^n\left\langle k\right|\hat{V} \left|n\right\rangle.

    +
  • +
  • +

    The right-hand sight will oscillate on time scales of EnEkE_n-E_k and +typically average to zero for long times.

    +
  • +
  • +

    If the coupling element is an oscillating field +eiωLt\propto e^{i\omega_L t}, it might put certain times on resonance +and allow us to avoid the averaging effect. It is exactly this +effect, which allows us to isolate specific transitions to a very +high degree 3

    +
  • +
+

We will now see how the two-state system emerges from these +approximations and then set-up the perturbative treatment step-by-step.

+

Rotating wave approximation

+

We will now assume that the coupling term in indeed an oscillating field +with frequency ωL\omega_L, so it reads:

+V^=V^0cos(ωLt)=V^02(eiωlt+eiωlt)\hat{V} = \hat{V}_0 \cos(\omega_Lt) = \frac{\hat{V}_0}{2} \left(e^{i\omega_lt}+e^{-i\omega_lt}\right) +

We will further assume the we would like use it to +isolate the transition ifi\rightarrow f, which is of frequency +ω0=EfEi\hbar \omega_0 = E_f - E_i. The relevant quantity is then the detuning +δ=ω0ωL\delta = \omega_0 - \omega_L. If it is much smaller than any other +energy difference EnEiE_n-E_i, we directly reduce the system to the +following closed system:

+iγ˙i=γfeiδtΩiγ˙f=γieiδtΩi\dot{\gamma}_i = \gamma_f \mathrm{e}^{-i \delta t} \Omega\\ +i\dot{\gamma}_f = \gamma_i \mathrm{e}^{i \delta t}\Omega^* +

Here we defined +Ω=iV0^2f\Omega = \left\langle i\right| \frac{\hat{V_0}}{2\hbar}\left|f\right\rangle. +And to make it really a time-of the same form as the two-level system +from the last lecture, we perform the transformation +γf=γ~feiδt\gamma_f = \tilde{\gamma}_f e^{i\delta t}, which reduces the system +too:

+iγ˙i=Ωγ~fiγ~˙f=δγ~f+Ωγii \dot{\gamma}_i = \Omega \tilde{\gamma}_f \\ +i\dot{\tilde{\gamma}}_f = \delta \tilde{\gamma}_f + \Omega^* \gamma_i +

This has exactly the form of the two-level system that +we studied previously.

+

Adiabatic elimination

+

We can now proceed to the quite important case of far detuning, where +δΩ\delta \gg \Omega. In this case, the final state +f\left|f\right\rangle gets barely populated and the time +evolution can be approximated to to be zero [@lukin].

+γ~˙f=0\dot{\tilde{\gamma}}_f = 0 +

We can use this equation to eliminate γ\gamma from the +time evolution of the ground state. This approximation is known as +adiabatic elimination:

+γ~f=Ωδγiiγ˙i=Ω2δγ~i\tilde{\gamma}_f = \frac{\Omega^*}{\delta}\gamma_i\\ +\Rightarrow i\hbar \dot{\gamma}_i = \frac{|\Omega|^2}{\delta} \tilde{\gamma}_i +

The last equation described the evolution of the initial +state with an energy Ei=Ω2δE_i = \frac{|\Omega|^2}{\delta}. If the Rabi +coupling is created through an oscillating electric field, i.e. a laser, +this is know as the light shift or the optical dipole potential. +It is this concept that underlies the optical tweezer for which Arthur +Ashkin got the nobel prize in the 2018.

+

Example: Atomic clocks in optical tweezers

+

A neat example that ties the previous concepts together is the recent +paper. The experimental setup is visualized in the figure below.

+ +

While nice examples these clocks are still far away from the best clocks +out there, which are based on optical lattice clocks and ions.

+

Perturbative Solution

+

The more formal student might wonder at which points all these rather +hefty approximation are actually valid, which is obviously a very +substantial question. So, we will now try to isolate the most important +contributions to the complicated system through perturbation theory. For +that we will assume that we can write:

+V^(t)=λH^1(t)\hat{V}(t) =\lambda \hat{H}_1(t) +

, where λ\lambda is a small parameter. In other words +we assume that the initial system H^0\hat{H}_0 is only weakly perturbed. +Having identified the small parameter λ\lambda, we make the +perturbative ansatz

+γn(t)=γn(0)+λγn(1)+λ2γn(2)+ \gamma_n(t) = \gamma_n^{(0)} + \lambda \gamma_n^{(1)} + \lambda^2 \gamma_n^{(2)} + \cdots +

and plug this ansatz in the evolution equations and sort +them by terms of equal power in λ\lambda.

+

The 00th order reads

+iγ˙k(0)=0. i\hbar \dot{\gamma}_k^{(0)} = 0. +

The 00th order does not have a time evolution since we +prepared it in an eigenstate of H^0\hat{H}_0. Any evolution arises due +the coupling, which is at least of order λ\lambda.

+

So, for the 11st order we get

+iγ˙k(1)=nγn(0)ei(EnEk)t/kH^1n. +i\hbar \dot{\gamma}_k^{(1)} = \sum_n \gamma_n^{(0)} \mathrm{e}^{-i(E_n-E_k)t/{\hbar}}\left\langle k\right|\hat{H}_1\left|n\right\rangle. +

First Order Solution (Born Approximation)

+

For the initial conditions ψ(t=0)=i\psi(t=0)=\left|i\right\rangle +we get

+γk(0)(t)=δik.\gamma_k^{(0)}(t) = \delta_{ik}. +

We plug this in the 11st order approximation and obtain the rate for the system to go +to the final state f\left|f\right\rangle:

+iγ˙(1)=ei(EfEi)t/fH^1ii \hbar\dot{\gamma}^{(1)} = \mathrm{e}^{i(E_f-E_i)t/{\hbar}} \left\langle f\right|\hat{H}_1 \left|i\right\rangle +

Integration with γf(1)(t=0)=0\gamma_f^{(1)}(t=0) = 0 yields

+γf(1)=1i0tei(EfEi)t/fH^1(t)i ⁣dt, +\gamma_f^{(1)} = \frac{1}{i\hbar}\int\limits_0^t \mathrm{e}^{i(E_f-E_i)t'/{\hbar}} \left\langle f\right| \hat{H}_1(t')\left|i\right\rangle \mathop{}\!\mathrm{d}t', +

so that we obtain the probability for ending up in the +final state:

+Pif(t)=λ2γf(1)(t)2.P_{i\to f}(t) = \lambda^2\left| \gamma_f^{(1)}(t)\right|^2. +

Note that Pif(t)1P_{i\to f}(t) \ll 1 is the condition for +this approximation to be valid!

+

Example 1: Constant Perturbation.

+ +

Sketch of a constant perturbation.

+

We apply a constant perturbation in the time interval +[0,T]\left[0,T\right], as shown in above. If we use the expression for γf(1)\gamma_f^{(1)} and set ω0=EfEi\hbar \omega_0 = E_f-E_i, we get

+γf(1)(tT)=1ifH^1ieiω0T1iω0,\gamma_f^{(1)}(t\geq T) = \frac{1}{i \hbar} \left\langle f\right|\hat{H}_1\left|i\right\rangle \frac{\mathrm{e}^{i\omega_0 T}-1}{i\omega_0}, +

and therefore

+Pif=12fV^i2sin2(ω0T2)(ω02)2y(ω0,T).P_{i\to f} = \frac{1}{\hbar^2}\left|\left\langle f\right|\hat{V}\left|i\right\rangle\right|^2 \underbrace{\frac{\sin^2\left(\omega_0\frac{T}{2}\right)}{\left(\frac{\omega_0}{2}\right)^2}}_{\mathrm{y}(\omega_0,T)}. +

A sketch of y(ω0,T)\mathrm{y}(\omega_0,T) is shown below

+ +

A sketch of y

+

We can push this calculation to the extreme case of +TT\rightarrow \infty. This results in a delta function, which is peaked +round ω0=0\omega_0 = 0 and we can write:

+Pif=T2π2fV^i2δ(ω0)P_{i\to f} = T\frac{2\pi}{\hbar^2}\left|\left\langle f\right|\hat{V}\left|i\right\rangle\right|^2\delta(\omega_0) +

This is the celebrated Fermi's golden rule.

+

Example 2: Sinusoidal Perturbation. For the perturbation

+H^1(t)={H^1eiωtfor  0<t<T0otherwise\hat{H}_1(t) = \left\{ \begin{array}{ccl} \hat{H}_1\mathrm{e}^{-i\omega t} && \text{for}\; 0 < t < T \\ 0 &&\text{otherwise}\end{array} \right. +

we obtain the probability

+Pif(tT)=12fV^i2y(ω0ω,T).P_{i\to f} (t \geq T) = \frac{1}{\hbar^2} \left|\left\langle f\right|\hat{V}\left|i\right\rangle\right|^2 \mathrm{y}(\omega_0 - \omega, T). +

At ω=EfEi/\omega = \left|E_f - E_i\right|/\hbar we are on resonance.

+

In the fifth lecture, we will start to dive into the hydrogen atom.

+

Footnotes

+
    +
  1. +

    Jean Dalibard Jean-Louis Basdevant. Quantum Mechanics. Springer-Verlag, 2002.

    +
  2. +
  3. +

    Claude Cohen-Tannoudji, Jacques Dupont-Roc, Gilbert Grynberg. Atom-Photon Interactions. Wiley-VCH Verlag GmbH, 1998.

    +
  4. +
  5. +

    This is the idea behind atomic and optical clocks, which work +nowadays at 101810^{-18}.

    +
  6. +
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/amo/3/index.pageContext.json b/amo/3/index.pageContext.json new file mode 100644 index 0000000..d84c5b7 --- /dev/null +++ b/amo/3/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo/@id","routeParams":{"id":"3"},"data":"!undefined"} \ No newline at end of file diff --git a/amo/4/index.html b/amo/4/index.html new file mode 100644 index 0000000..18a7aee --- /dev/null +++ b/amo/4/index.html @@ -0,0 +1,622 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Lecture 5 - The Hydrogen Atom

In this lecture we will first discuss the diagonalization of the +harmonic oscillator and then discuss the main properties of the hydrogen +atom.

+

In the previous lectures we have seen how to treat eigenstates of the +two-level system and then how we can derive its effective emergence from +some complex level structure if we apply oscillating +fields.

+

Today, we will increase the complexity towards the harmonic oscillator +and the hydrogen atom.

+

The harmonic oscillator

+

The harmonic oscillator is another great toy model to understand certain +properties of quantum mechanical systems. Most importantly, it is a +great introduction into the properties of bound systems and ladder +operators. The basic Hamiltonian comes along in a rather innocent +fashion, namely:

+H^=p^22m+mω22x^2 +\hat{H} = \frac{\hat{p}^2}{2m}+ \frac{m\omega^2}{2}\hat{x}^2 +

The two variables p^\hat{p} and x^\hat{x} are +non-commuting [x^,p^]=i[\hat{x}, \hat{p}] = i\hbar, so they cannot be measured +at the same time. We would now like to put the operator into a diagonal +form such that it reads something like:

+H^=nϵnnn +\hat{H} = \sum_n \epsilon_n \left|n\right\rangle\left\langle n\right| +

We will follow he quite closely this discussion.

+

The ladder operators

+

We would like to get the spectrum first. So make the equation look a bit +nicer we will define p^=P^mω\hat{p} = \hat{P} \sqrt{m\omega} and +x^=X^mω\hat{x} = \frac{\hat{X}}{\sqrt{m\omega}} such that we have:

+H^=ω2(P^2+X^2) +\hat{H} = \frac{\omega}{2}\left(\hat{P}^2 + \hat{X}^2\right) +

1 The next step is then to define the ladder +operators:

+a^=12(X^+iP^)a^=12(X^iP^)\hat{a} = \frac{1}{\sqrt{2\hbar}}\left(\hat{X}+i\hat{P}\right)\\ +\hat{a}^\dag = \frac{1}{\sqrt{2\hbar}}\left(\hat{X}-i\hat{P}\right)\\ +

At this stage we can just try to rewrite the Hamiltonian +in terms of the operators, such that:

+a^a^=12(X^iP^)(X^+iP^)=12(X^2+P^2)12(X2+P^2)=(a^a^12)\hat{a}^\dag \hat{a} = \frac{1}{2\hbar}(\hat{X}-i\hat{P})(\hat{X}+i\hat{P})\\ += \frac{1}{2\hbar}(\hat{X}^2 +\hat{P}^2 -\hbar)\\ + \frac{1}{2}(X^2 +\hat{P}^2 ) = \hbar \left(\hat{a}^\dag \hat{a}-\frac{1}{2}\right) +

So the Hamiltonian can now be written as:

+H^=ω(N^+12) with N^=aa\hat{H} = \hbar \omega \left(\hat{N} + \frac{1}{2}\right)\text{ with } \hat{N} = a^\dag a +

At this stage we have diagonalized the Hamiltonian, what +remains to be understood is the the values that a^a\hat{a}^\dag a can +take.

+

Action of the ladder operators in the Fock basis

+

We would like to understand the basis, which is defined by:

+N^n=nn\hat{N} \left|n\right\rangle = n \left|n\right\rangle +

The non-commutation between X^\hat{X} and P^\hat{P} is +translated to the ladder operators as:

+=12[X^+iP,X^iP^]=1 [N^,a]=a^ [N^,a]=a= \frac{1}{2\hbar}[\hat{X}+iP,\hat{X}-i\hat{P}] = 1\\ +~[\hat{N}, a] = -\hat{a}\\ +~[\hat{N}, a^\dag] = a^\dag +

From these relationship we can show then that:

+a^n=nn1a^n=n+1n+1\hat{a}\left|n\right\rangle = \sqrt{n}\left|n-1\right\rangle\\ +\hat{a}^\dag \left|n\right\rangle = \sqrt{n+1}\left|n+1\right\rangle\\ +

These relations are the motivation for the name ladder +operators as they connect the different eigenstates. And they are +raising/lowering the quantum number by one. Finally we have to find the +lower limit. And this is quite naturally 0 as +n=nN^n=ψ1ψ10n = \left\langle n\right|\hat{N}\left|n\right\rangle = \left\langle\psi_1\right|\left|\psi_1\right\rangle\geq 0. +So we can construct the full basis by just defining the action of the +lowering operator on the zero element +a0=0a\left|0\right\rangle = 0 and the other operators are +then constructed as:

+n=(a)nn!0\left|n\right\rangle = \frac{(a^\dag)^n}{\sqrt{n!}}\left|0\right\rangle +

Spatial representation of the eigenstates

+

While we now have the spectrum it would be really nice to obtain the +spatial properties of the different states. For that we have to project +them onto the x basis. Let us start out with the ground state for which +we have a^0=0\hat{a}\left|0\right\rangle= 0:

+x12(mωx^+i1mωp^)0=0(mωx+mωx)ψ0(x)=0ψ0(x)ex22aHO2\left\langle x\right|\frac{1}{\sqrt{2\hbar}}\left(\sqrt{m\omega}\hat{x} +i \frac{1}{\sqrt{m\omega}}\hat{p}\right)\left|0\right\rangle= 0\\ +\left(\sqrt{\frac{m\omega}{\hbar}}x + \sqrt{\frac{\hbar}{m\omega}}\partial_x\right)\psi_0(x)= 0\\ +\Rightarrow \psi_0(x) \propto e^{-\frac{x^2}{2a_{HO}^2}} +

This also introduces the typical distance in the quantum +harmonic oscillator which is given by aHO=/mωa_{HO} =\sqrt{\hbar/m\omega}. +The other states are solutions to the defining equations:

+ψn(x)=1n!2n(mωx1mωddx)nψ0(x)ψn(x)=1n!2nHn(x)ψ0(x)\psi_n(x) = \frac{1}{\sqrt{n!}2^n}\left(\sqrt{m\omega}x - \frac{1}{\sqrt{m\omega}}\frac{d}{dx}\right)^n \psi_0(x)\\ +\psi_n(x) = \frac{1}{\sqrt{n!}2^n}H_n(x) \psi_0(x)\\ +

where Hn(x)H_n(x) are the Hermite polynoms.

+

The hamiltonian of the hydrogen atom

+

The hydrogen atom plays at central role in atomic physics as it is the +basic ingredient of atomic structures. It describes a single electron, +which is bound to the nucleus of a single proton. As such it is the +simplest of all atoms and can be described analytically within high +precision. This has motivated an enormous body of literature on the +problem, which derives all imaginable properties in nauseating detail. +Therefore, we will focus here on the main properties and only sketch the +derivations, while we will reference to the more technical details.

+ +

Sketch of the hydrogen atom with the relative coordinate and the +coordinates of the proton and the electron.

+

For the hydrogen atom as shown in above, we can write down the Hamiltonian

+H^=p^p22mp+p^e22meZe24πϵ0r,\hat{H}=\frac{{{\hat{\vec{p}}}^2_\text{p}}}{2m_\text{p}} + \frac{{\hat{\vec{p}}}^2_\text{e}}{2m_\text{e}} - \frac{Ze^2}{4\pi\epsilon_0 r}, +

where ZeZe is the nuclear charge. To solve the problem, +we have to find the right Hilbert space. We can not solve the problem of +the electron alone. If we do a separation of coordinates, i.e., we +separate the Hamiltonian into the the center of mass and the relative +motion, we get

+H^=p^cm22MH^cm+p^r22μZe24πϵ0rH^atom\hat{H} = \underbrace{\frac{{\hat{\vec{p}}}^2_{\textrm{cm}}}{2M}}_{\hat{H}_{\textrm{cm}}} + \underbrace{\frac{{\hat{\vec{p}}}^2_\text{r}}{2\mu}- \frac{Ze^2}{4\pi\epsilon_0r}}_{\hat{H}_{\text{atom}}} +

with the reduced mass 1/μ=1/me+1/mp1/\mu=1/m_\text{e}+1/m_\text{p}. +If the state of the hydrogen atom ψ\left|\psi\right\rangle +is an eigenstate of H^\hat{H}, we can write

+H^ψ=(H^cm+H^atom)ψcmψatom=(Ekin+Eatom)ψ.\hat{H}\left|\psi\right\rangle=\left(\hat{H}_\textrm{cm}+\hat{H}_{\text{atom}} \right)\left|\psi_\textrm{cm}\right\rangle\otimes \left|\psi_\text{atom}\right\rangle \\ += \left( E_{\text{kin}} + E_\text{atom} \right) \left|\psi\right\rangle. +

Both states are eigenstates of the system. The state +ψ\left|\psi\right\rangle can be split up as shown since +the two degrees of freedom are generally not entangled.

+

Sketch of the hydrogen atom with the relative coordinate and the
+coordinates of the proton and the electron.
+{#261310 +width="0.70\columnwidth"}

+

The wave function of the system then reads:

+ψ(R,r)=(Rr)(ψcmψatom)=ψ(R)ψ(r)\psi(\vec{R},\vec{r}) = \left( \left\langle R\right| \otimes \left\langle r\right|\right)\left( \left|\psi_\textrm{cm}\right\rangle \otimes \left|\psi_{\text{atom}}\right\rangle\right)\\ += \psi(\vec{R}) \cdot \psi (\vec{r}) +

Our goal is now to find the eigenfunctions and +eigenenergies of H^atom\hat{H}_\text{atom}. In order to further divide the +Hilbert space, we can use the symmetries.

+

Conservation of orbital angular momentum

+

H^atom\hat{H}_\text{atom} possesses spherical symmetry, which implies that +orbital angular momentum L^\hat{\vec{L}} is conserved. It is defined +as:

+L^=r^×p^\hat{\vec{L}}=\hat{\vec{r}} \times \hat{\vec{p}} +

In other words, we have:

+=0= 0 +

Let us show first that the kinetic term commutes with +the angular momentum operator, We will employ the commutator +relationships for position and momentum [xi,pj]=i[x_i, p_j]=i\hbar and the +relationship [A,BC]=[A,B]C+B[A,C][A,BC] = [A,B]C+B[A,C] and +[f(x),px]=[x,px]f(x)x[f(x), p_x] = [x,p_x]\frac{\partial f(x)}{\partial x}. So we obtain:

+=[px2,xpy][py2,ypx]=[px2,x]py[py2,y]px=i2pxpy2ipypx=0= [p_x^2,xp_y]-[p_y^2,yp_x] \\ + = [p_x^2,x]p_y-[p_y^2,y] p_x\\ + =i\hbar 2 p_xp_y-2i\hbar p_y p_x\\ + = 0 +

Analog calculations show that LyL_y and LzL_z commute. +In a similiar fashion we can verify that the potential term commutes +with the different components of L^\hat{\vec{L}}

+=[1r,xpy][1r,ypx]=x[1r,py]y[1r,px]=xyi2r3/2+yxi2r3/2=0= [\frac{1}{r}, xp_y]-[\frac{1}{r}, yp_x]\\ += x[\frac{1}{r}, p_y]-y[\frac{1}{r}, p_x]\\ += -x \frac{yi\hbar}{2r^{3/2}}+y\frac{xi\hbar}{2r^{3/2}}\\ +=0 +

We can therefore decompose the eigenfunctions of the +hydrogen atom over the eigenbasis of the angular momentum operator. A +detailled discussion of the properties of L\vec{L} can be found in +Appendix B of Hertel. To find the eigenbasis, we first need to +identify the commutation relationships between the components of +L^\hat{\vec{L}}. We can calculate them following commutation +relationships:

+=[ypzzpy,zpxxpz]=[ypz,zpx][ypz,xpz][zpy,zpx]+[zpy,xpz]=[ypz,zpx]+[zpy,xpz]=[ypz,z]px+x[zpy,pz]=iypx+ixpy=iLz= [yp_z - zp_y, zp_x - xp_z]\\ +=[yp_z, zp_x]-[yp_z,xp_z]- [zp_y, zp_x] + [zp_y,xp_z]\\ +=[yp_z, zp_x] + [zp_y,xp_z]\\ +=[yp_z, z]p_x +x[zp_y,p_z]\\ +=-i\hbar yp_x +i\hbar xp_y\\ += i\hbar L_z +

This relationship holds for all the other components too +and we have in general:

+=iϵijkLk= i\hbar \epsilon_{ijk}L_k +

The orbital angular momentum is therefore part of the +large family of angular momentum operators, which also comprises spin +etc. In particular the different components are not independent, and +therefore we cannot form a basis out the three components. A suitable +choice is actually to use the following combinations:

+L^2l,ml=2l(l+1)l,mlL^zl,ml=mll,ml\hat{\vec{L}}^2\left|l,m_l\right\rangle = \hbar^2 l (l+1)\left|l,m_l\right\rangle\\ +\hat{L}_z\left|l,m_l\right\rangle = \hbar m_l \left|l,m_l\right\rangle +
    +
  • +

    ll is a non-negative integer and it is called the orbital angular +momentum quantum number.

    +
  • +
  • +

    mlm_l takes values l,l+1,...,l1,l-l, -l+1, ..., l-1, l and it is sometimes +called the projection of the angular momentum.

    +
  • +
+

Eigenfunction of the angular momentum operators

+

Having identified the relevant operators it would be nice to obtain a +space representation of them. This works especially nicely in spherical +coordinates. There, we get

+L^z=iϕL^2=2[1sin(θ)θ(sin(θ)θ)+1sin2(θ)ϕϕ].\hat{L}_z= - i \hbar \partial_{\phi}\\ +\hat{\vec{L}}^2 = - \hbar^2 \left[\frac{1}{\sin(\theta)}\partial_{\theta} \left( \sin(\theta) \partial_\theta\right) + \frac{1}{\sin^2(\theta)} \partial_{\phi\phi} \right]. +

The corresponding wave functions are

+θ,ϕl,ml=Ylm(θ,ϕ).\left\langle\theta, \phi | l,m_l\right\rangle = Y_{lm}(\theta,\phi). +

Where Ylm(θ,ϕ)Y_{lm}(\theta, \phi) are the spherical harmonics.

+

The radial wave equation

+

Given that we now know that the angular momentum is conserved for the +hydrogen atom, we can actually rewrite the Hamltonian in terms of the angular momentum as +we find:

+H^atom=H^r+L^2μr2+V(r)H^r=22μ1r2r(r2r)\hat{H}_\text{atom} = \hat{H}_r + \frac{\hat{L}}{2\mu r^2}+V(r) \\ +\hat{H}_r = -\frac{\hbar^2}{2\mu}\frac{1}{r^2}\frac{\partial}{\partial r}\left(r^2\frac{\partial}{\partial r}\right) +

We can now separate out the angular part and decompose +it over the eigenfunctions of L^\hat{\vec{L}}, such that we make the +ansatz 2:

+ψ(r,θ,ϕ)=R(r)Ylm(θ,ϕ)\psi (r,\theta,\phi) = R(r) Y_{lm}(\theta,\phi) +

We can plug this separated ansatz in the Schrödinger equation. We +already solved the angular in the discussion of the angular momentum and +for the radial part we obtain:

+22μ1rd2(rR(r))dr2Ze24πϵ0rR(r)+22μl(l+1)r2R(r)=ER(r)-\frac{\hbar^2}{2\mu}\frac{1}{r}\frac{d^2(rR(r))}{dr^2} - \frac{Ze^2}{4\pi\epsilon_0 r} R(r) + \frac{\hbar^2}{2\mu}\frac{l(l+1)}{r^2}R(r) = ER(r) +

Substituting R(r)=u(r)/rR(r)=u(r)/r leads to

+22μd2dr2u(r)+(Ze24πϵ0r+22μl(l+1)r2)Veffu(r)=Eu(r),-\frac{\hbar^2}{2\mu}\frac{d^2}{dr^2}u(r) +\underbrace{ \left( -\frac{Ze^2}{4\pi\epsilon_0 r} + \frac{\hbar^2}{2\mu} \frac{l(l+1)}{r^2} \right)}_{V_{\text{eff}}} u(r) = E \, u(r), +

which is known as the "radial wave equation". It is a +very general result for any central potential. It can also be used to +describe unbound states (E>0E>0) that occur during scattering.

+

In the next lecture we will look into the energy scales of the hydrogen atom and then start +coupling different levels.

+

Footnotes

+
    +
  1. +

    The commutator between X^\hat{X} and P^\hat{P} is still as for xx +and pp.

    +
  2. +
  3. +

    Only if the system is in a well-defined angular momentum state, we +can write it down like this.

    +
  4. +
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/amo/4/index.pageContext.json b/amo/4/index.pageContext.json new file mode 100644 index 0000000..2574d7e --- /dev/null +++ b/amo/4/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo/@id","routeParams":{"id":"4"},"data":"!undefined"} \ No newline at end of file diff --git a/amo/5/index.html b/amo/5/index.html new file mode 100644 index 0000000..1cc4d68 --- /dev/null +++ b/amo/5/index.html @@ -0,0 +1,775 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Lecture 6 - The dipole approximation in the hydrogen atom

We will continue with some properties of the hydrogen atom. First +compare it to the harmonic oscillator, then look into dipole transitions +and end with the coupling to static magnetic fields.

+

In the last lecture, we discussed the basic properties of the +hydrogen atom and found its eigenstates. We will now summarize the most +important properties and look into its orbitals. From that we will +understand the understand the interaction with electromagnetic waves and +introduce the selection rules for dipole transitions.

+

The energies of Hydrogen and its wavefunctions

+

In the last lecture, we looked into hydrogen and saw that we could write +it's Hamiltonian as:

+H^atom=H^r+L^2μr2+V(r)H^r=22μ1r2r(r2r)\hat{H}_\text{atom} = \hat{H}_r + \frac{\hat{L}}{2\mu r^2}+V(r) \\ +\hat{H}_r = -\frac{\hbar^2}{2\mu}\frac{1}{r^2}\frac{\partial}{\partial r}\left(r^2\frac{\partial}{\partial r}\right) +

We could then separate out the angular part and +decompose it as:

+ψ(r,θ,ϕ)=u(r)rYlm(θ,ϕ)\psi (r,\theta,\phi) = \frac{u(r)}{r} Y_{lm}(\theta,\phi) +

The radial wave equation reads then:

+22μd2dr2u(r)+(Ze24πϵ0r+22μl(l+1)r2)Veffu(r)=Eu(r), +-\frac{\hbar^2}{2\mu}\frac{d^2}{dr^2}u(r) +\underbrace{ \left( -\frac{Ze^2}{4\pi\epsilon_0 r} + \frac{\hbar^2}{2\mu} \frac{l(l+1)}{r^2} \right)}_{V_{\text{eff}}} u(r) = E \, u(r), +

Energy scales

+

We can now make the last equation dimensionless, by rewriting:

+r=ρa~0r = \rho \tilde{a}_{0} +

So we rewrite:

+22μa~02d2dρ2u(r)+(Ze24πϵ0a~01ρ+22μa~02l(l+1)ρ2)u(r)=Eu(r),-\frac{\hbar^2}{2\mu \tilde{a}_{0}^2}\frac{d^2}{d\rho^2}u(r) + \left( -\frac{Ze^2}{4\pi\epsilon_0\tilde{a}_{0}}\frac{1}{\rho} + \frac{\hbar^2}{2\mu \tilde{a}_{0}^2} \frac{l(l+1)}{\rho^2} \right) u(r) = E \, u(r), +

This allows us to measure energies in units of:

+E=ϵRy,mRy,m=22μa~02E = \epsilon R_{y,\textrm{m}}\\ +R_{y,\textrm{m}} = -\frac{\hbar^2}{2\mu \tilde{a}_{0}^2} +

The equation reads then:

+d2dρ2u(ρ)+(μZe2a~024πϵ02ρl(l+1)ρ2)u(ρ)=ϵu(ρ),\frac{d^2}{d\rho^2}u(\rho) + \left( \frac{\mu Ze^2 \tilde{a}_{0}}{\hbar^2 4\pi\epsilon_0}\frac{2}{\rho} - \frac{l(l+1)}{\rho^2} \right) u(\rho) = \epsilon u(\rho), +

If we finally set

+a~0=4πϵ02μZe2\tilde{a}_{0}=\frac{4\pi\epsilon_0 \hbar^2}{\mu Z e^2} +

We obtain the especially elegant formulation:

+d2dρ2u(ρ)+(2ρl(l+1)ρ2)u(ρ)=ϵu(ρ),\frac{d^2}{d\rho^2}u(\rho) + \left( \frac{2}{\rho} - \frac{l(l+1)}{\rho^2} \right) u(\rho) = \epsilon u(\rho), +

We typically call a~0\tilde{a}_{0} the Bohr radius +for an atom with reduced mass μ\mu and with a nucleus with charge +number ZZ. Ry,mR_{y,\textrm{m}} is the Rydberg energy of such an +atom.

+

The universal constant is defined for the infinite mass limit +μme\mu \approx m_e and for Z=1Z=1. As a length scale we introduce the Bohr +radius for infinite nuclear mass

+a0=4πϵ02mee2=0.5angstrom=0.05nm.a_0 = \frac{4\pi\epsilon_0\hbar^2}{m_e e^2} = 0.5\text{angstrom} = 0.05 \text{nm}. +

The energy scale reads:

+Ry,=mee432π2ϵ0222.179e18Je×13.6eVh×3289THzR_{y,\infty} = \frac{m_e e^4}{32 \pi^2 \epsilon_0^2 \hbar^2}\\ +\approx 2.179e-18\textrm{J}\\ + \approx e \times 13.6\textrm{eV}\\ +\approx h \times 3289\textrm{THz} +

So if we excite the hydrogen atom for time scales of a +few attoseconds, we will coherently create superposition states of all +existing levels. But which ones ? And at which frequency ?

+

Solution of the radial wave equation

+

At this stage we can have a look into the energy landscape:

+ +

Energy potential of the hydrogen atom

+

The energies read then

+En=Ry,mn2withn=1,2,3,E_n = -\frac{R_{y,\textrm{m}}}{n^2} \qquad \text{with} \qquad n=1,2,3,\cdots +

for l=0l=0 and

+En=Ry,mn2withn=2,3,4,E_n = -\frac{R_{y,\textrm{m}}}{n^2} \qquad \text{with} \qquad n=2,3,4,\cdots +

for l=1l=1. Despite the different effective potentials, we get the +same eigenstates. This looks like an accidental degeneracy. Actually, +there is a hidden symmetry which comes from the so-called "Runge-Lenz" +vector. It only occurs in an attractive 1/r1/r-potential . This +vector reads: A=p×Lr\mathbf{A} =\mathbf{p}\times\mathbf{L}-\mathbf{r}

+

Finally, we can also visualize the radial wavefunctions for the hydrogen +atom as shown below

+ +

Associated with these radial wavefunctions, we also have the angular +profiles. Where Ylm(θ,ϕ)Y_{lm}(\theta, \phi) are the spherical harmonics +as shown below

+ +

Their shape is especially important for understanding the possibility of +coupling different orbits through electromagnetic waves.

+

The electric dipole approximation

+

Below you see the interaction between an atom and an electromagnetic wave E\vec{E} with +wave vector k\vec{k}. The states |g>\text{|g>} and |e>\text{|e>} stand +for the ground and excited state and ω0\hbar\omega_0 is the energy of +the resonant transition between the states.

+ +

We consider an atom which is located in a radiation field. By resonant +coupling with the frequency ω0\omega_0, it can go from the ground state +g\left|g\right\rangle to the excited state +e\left|e\right\rangle.

+

The potential energy of a charge distribution in a homogeneous +electromagnetic field E\vec{E} is:

+Epot=iqiriE.E_\text{pot} = \sum_i q_i \vec{r}_i\cdot \vec{E}. +

If the upper limit of the sum is 2, we obtain the dipole +moment

+D=er.\vec{D} = e \vec{r}. +

For the hydrogen atom, the distance corresponds to the +Bohr radius.

+ +

Note. Apart from the monopole, the dipole potential is the lowest +order term of the multipole expansion of the scalar potential ϕ\phi:

+ϕ(r)=14πϵ0Drr3E(r)=ϕ(r)=3(Dr)r/r2D4πϵ0r3.\phi \left( \vec{r} \right) = \frac{1}{4\pi\epsilon_0}\frac{\vec{D}\cdot\vec{r}}{|\vec{r}|^3}\\ +\vec{E}(\vec{r})= \vec{\nabla}\phi(\vec{r}) = \frac{ 3 \left(\vec{D}\cdot \vec{r}\right) \vec{r}/{|\vec{r}|^2}- \vec{D}}{4\pi\epsilon_0|\vec{r}|^3}. +

For the dipole approximation we consider the size of the atom and +compare it to the wavelength λ\lambda of the electromagnetic field:

+r1angstromλ103angstrom\left\langle|r|\right\rangle \sim 1\text{angstrom}\ll \lambda \sim 10^3\text{angstrom} +
    +
  • Therefore, we assume that the field is homogeneous in space and omit +the spatial dependence:
  • +
+E(r,t)E(t) E(r,t) \approx E(t) + + + + +
    +
  • The correction term resulting from the semi-classical dipole +approximation then is
  • +
+H^1(t)=er^E(t)=D^E(t) \hat{H}_1(t)=-e\hat{\vec{r}} \cdot \vec{E}(t) = -\hat{\vec{D}} \cdot \vec{E}(t) + + + + +
    +
  • Why can the magnetic field be ignored in this approximation? The +velocity of an electron is αc\sim \alpha c. The hydrogen atom only +has small relativistic corrections. If we compare the modulus of the +magnetic and the electric field, we get:
  • +
+B=Ec \left| \vec{B} \right| = \frac{|\vec{E}|}{c} +

The electric field contribution thus dominates. Now we choose

+E=E0ϵcos(ωtkr)\vec{E} = E_0 \vec{\epsilon} \cos \left(\omega t - \vec{k} \cdot \vec{r}\right) +

and do time-dependent perturbation theory:

+ψ(t)=γ1(t)eiE1t/1+γ2(t)eiE2t/2+n=3γneiEnt/n\left|\psi(t)\right\rangle = \gamma_1(t) \mathrm{e}^{-iE_1t/\hbar} \left|1\right\rangle + \gamma_2(t) \mathrm{e}^{-iE_2t/\hbar} \left|2\right\rangle\\ ++\sum_{n=3}^\infty \gamma_n \mathrm{e}^{-iE_nt/\hbar} \left|n\right\rangle +

As initial condition we choose

+γi(0)={1fori=10fori>1 \gamma_i(0) = \left\{ \begin{array}{ccc} 1 &\text{for}& i=1 \\ 0 &\text{for}& i>1 \end{array} \right. +

We write ω0=(E2E1)/\omega_0 = (E_2-E_1)/\hbar and get to first +order D^\hat{\vec{D}}:

+γ2(t)=E022D^ϵ1Rabi frequency Ω(ei(ω0+ω)t1ω0+ω+ei(ω0ω)t1ω0ω)time evolution of the system\gamma_2(t) = \overbrace{\frac{E_0}{2\hbar} \left\langle 2|\hat{\vec{D}}\cdot \vec{\epsilon}|1\right\rangle}^{\text{Rabi frequency }\Omega} \underbrace{\left(\frac{\mathrm{e}^{i(\omega_0 + \omega)t}-1}{\omega_0 + \omega} + \frac{\mathrm{e}^{i(\omega_0 - \omega)t}-1}{\omega_0 - \omega}\right)}_{\text{time evolution of the system}} +

The term before the round brackets is called dipole +matrix element:

+2D^ϵ1=eψ2(r)rϵψ1(r) ⁣dr. +\left\langle 2|\hat{\vec{D}}\cdot \vec{\epsilon}\,|1\right\rangle =e \int \psi_2\left(\vec{r}\right) \cdot \vec{r} \cdot \vec{\epsilon} \cdot \psi_1\left(\vec{r}\right) \mathop{}\!\mathrm{d}\vec{r}. + +

Selection rules

+

We can now look into the allowed transition in the atom as they are what +we will typically observe within experiments.

+

Change of parity

+

The parity operator is defined as:

+P^ψ(r)=ψ(r)\hat{P}\psi(\vec{r}) = \psi(-\vec{r}) +

For the eigenfunction we have:

+P^ψ(r)=λψ(r)λ=±1\hat{P} \psi(\vec{r}) = \lambda \psi(\vec{r})\\ +\lambda = \pm 1 +

The eigenvalues are called odd and even. From the +definition of the dipole operator we can see that it is of odd parity. +What about the parity of the states that it is coupling ? If they have +both the same parity than the whole integral will disappear and no +dipole transition can appear.

+

We can become more concrete for the given eigenfunctions as we have +within spherical coordinates:

+(r,θ,ϕ)(r,πθ,ϕ+π)(r, \theta, \phi) \rightarrow (r, \pi -\theta, \phi+\pi) +

For the orbitals of the hydrogen atom we then have +explicitly:

+P^ψnlm(r,θ,ϕ)=Rnl(r)Ylm(πθ,ϕ+π)=(1)lRnl(r)Ylm(,θ,ϕ)\hat{P}\psi_{nlm}(r, \theta, \phi) = R_{nl}(r)Y_{lm}(\pi -\theta, \phi+\pi)\\ += (-1)^l R_{nl}(r)Y_{lm}(, \theta, \phi) +

This gives us the first selection rule that the +orbital angular momentum has to change for dipole transitions +Δl=±1\Delta l = \pm 1.

+
    +
  • +

    ss orbitals are only coupled to pp orbitals through dipole +transitions.

    +
  • +
  • +

    pp orbitals are only coupled to ss and dd orbitals through dipole +transitions.

    +
  • +
+

Coupling for linearly polarized light

+

Having established the need for parity change, we also need to +investigate the influence of the polarization of the light, which enters +the dipole operator through the vector ϵ\epsilon. In the simplest case +the light has linear polarization (π\pi polarized) and we can write:

+E(t)=ezE0cos(ωt+φ)\vec{E}(t) = \vec{e}_zE_0 \cos(\omega t +\varphi) +

This means that the dipole transition element is now given by:

+2Dez1=eψ2(r)zψ1(r) ⁣dr\left\langle 2\right|\vec{D}\cdot\vec{e}_z\left|1\right\rangle = e \int \psi_2(\vec{r}) z \psi_1\left(\vec{r}\right) \mathop{}\!\mathrm{d}\vec{r} +

We can now transform z into the spherical coordinates +z=rcos(θ)=r4π3Y10(θ,ϕ)z= r \cos(\theta) = r\sqrt{\frac{4\pi}{3}}Y_{10}(\theta, \phi). We can +further separate out the angular part of the integral to obtain:

+2Dez1esin(θ)dθdφYl,m(θ,φ)Y10(θ,ϕ)Yl,m(θ,φ)\left\langle 2\right|\vec{D}\cdot\vec{e}_z\left|1\right\rangle \propto e \int \sin(\theta) d\theta d\varphi Y_{l',m'}(\theta, \varphi) Y_{10}(\theta, \phi) Y_{l,m}(\theta, \varphi) +

This element is only non-zero if m=mm = m' (see appendix +C of Hertel 2015 for all the gorious details).

+ +

Above are the dipole selection rules for different polarizations of light.

+

Circularly polarized light

+

Light has not just linear polarization, but it might also have some +circular polarization. In this case we can write:

+E(t)=E02(cos(ωt+φ)ex+sin(ωt+φ)ey)E(t)=Re(e+E0eiωt+ϕ)e±=ex±iey2\vec{E}(t) = \frac{E_0}{\sqrt{2}} \left(\cos(\omega t +\varphi)\vec{e}_x + \sin(\omega t +\varphi)\vec{e}_y\right)\\ +\vec{E}(t) = \text{Re}\left(\vec{e}_+ E_0 e^{-i\omega t +\phi}\right)\\ +\vec{e}_\pm = \frac{\vec{e}_x\pm i\vec{e}_y}{\sqrt{2}} +

So light with polarization ϵ=e+\vec{\epsilon} = \vec{e}_+ +is called right-hand circular (σ+\sigma^+) and +ϵ=e\vec{\epsilon} = \vec{e}_- is called left-hand circular (σ\sigma^-). +Let us now evaluate the transition elements here. The dipole operator +element boils now down to the evaluation of the integral:

+l,m,nx+iyl,m,n\left\langle l',m',n'\right|x+iy\left|l,m,n\right\rangle +

As previously we can express the coupling term in +spherical coordinates:

+x+iy2=r4π3Y11(θ,φ)\frac{x+iy}{\sqrt{2}} = -r \sqrt{\frac{4\pi}{3}}Y_{11}(\theta, \varphi) +

Evaluation of the integrals lead now to the rule the +projection of the quantum number has to change m=m+1m' = m+1. In a similiar +fashion we find for left-hand circular light the selection rule +m=m1m' = m - 1.

+

In the next lecture, we will investigate the influence of +perturbative effects and see how the fine structure arises.

+ + + + + + + + + + + \ No newline at end of file diff --git a/amo/5/index.pageContext.json b/amo/5/index.pageContext.json new file mode 100644 index 0000000..b12dd8d --- /dev/null +++ b/amo/5/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo/@id","routeParams":{"id":"5"},"data":"!undefined"} \ No newline at end of file diff --git a/amo/6/index.html b/amo/6/index.html new file mode 100644 index 0000000..07b0f95 --- /dev/null +++ b/amo/6/index.html @@ -0,0 +1,453 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Lecture 7 - Beyond the 'boring' hydrogen atom

In this lecture we will use the hydrogen atom to study static +perturbations in form of external magnetic fields and relativistic +effects, leading to the fine structure splitting.

+

We spend quite some time on the properties of the hydrogen atom in the +previous lectures [@Jendrzejewski; @atom]. However, we completely +neglected any effects of quantum-electrodynamics and relativistic +physics. In this lecture we will study, why this is a good approximation +for the hydrogen atom and then investigate in a perturbative fashion the +terms. Most importantly, we will introduce that coupling between the +orbital angular momentum and the spin of the electron, which leads to +the fine splitting.

+

Perturbation theory

+

Up to now have studied the hydrogen atom to find its eigensystem and +then studied how it evolves under the presence of oscillating electric +fields. This allowed us to understand in more detail the idea of +eigenstates and then of time-dependent perturbation theory. However, one +of the most important concepts that can be introduced very nicely on the +hydrogen atom is stationnary perturbation theory in form of external +magnetic fields or relativistic corrections. We will remind you of +perturbation theory here and then apply it to some simple cases.

+

We can now simply write down the problem as:

+(H^0+λW^)ψm=Emψm\left(\hat{H}_0+\lambda \hat{W}\right)\left|\psi_m\right\rangle = E_m\left|\psi_m\right\rangle +

λ\lambda is a very small parameter and H^0\hat{H}_0 is +describing the hydrogen atom system. We will note the eigenvalues and +eigenstates of this system as:

+H^0φn=ϵnφn +\hat{H}_0\left|\varphi_n\right\rangle = \epsilon_n \left|\varphi_n\right\rangle +

While, we do not know the exact solution of +ψm\left|\psi_m\right\rangle and the energy EmE_m, we decide +to decompose them in the following expansion of the small parameter +λ\lambda:

+ψm=ψm(0)+λψm(1)+λ2ψm(2)+O(λ3)Em=Em(0)+λEm(1)+λ2Em(2)+O(λ3)\left|\psi_m\right\rangle = \left|\psi_m^{(0)}\right\rangle + \lambda\left|\psi_m^{(1)}\right\rangle+\lambda^2\left|\psi_m^{(2)}\right\rangle+O(\lambda^3)\\ +E_m = E_m^{(0)} +\lambda E_m^{(1)} + \lambda^2 E_m^{(2)}+O(\lambda^3)\, +

To zeroth order in λ\lambda we obtain:

+H^0ψm(0)=Em(0)ψm(0)\hat{H}_0\left|\psi_m^{(0)}\right\rangle = E_m^{(0)}\left|\psi_m^{(0)}\right\rangle +

So it is just the unperturbed system and we can +identify:

+ψm(0)=φm  Em(0)=ϵm\left|\psi_m^{(0)}\right\rangle = \left|\varphi_m\right\rangle~~E_m^{(0)} = \epsilon_m +

For the first order we have to solve

+(H^0Em(0))ψm(1)+(W^Em(1))ψm(0)=0(H^0ϵm)ψm(1)+(W^Em(1))φm=0 +(\hat{H}_0-E_m^{(0)}) \left|\psi_m^{(1)}\right\rangle + (\hat{W}-E_m^{(1)})\left|\psi_m^{(0)}\right\rangle= 0\\ +(\hat{H}_0-\epsilon_m) \left|\psi_m^{(1)}\right\rangle + (\hat{W}-E_m^{(1)})\left|\varphi_m\right\rangle= 0 +

We can multiply the whole equation by +φm\left\langle\varphi_m\right| from the right. As +φmH^0=ϵmφm\left\langle\varphi_m\right|\hat{H}_0= \epsilon_m\left\langle\varphi_m\right|, +the first term cancels out. Hence, we obtain:

+Em(1)=φmW^φm +\boxed{E_m^{(1)} = \left\langle\varphi_m\right|\hat{W}\left|\varphi_m\right\rangle} +

We now also need to obtain the correction to the +eigenstate. For that, we put the solution for the energy into the Ansatz to obain:

+(H^0ϵm)ψm(1)+(W^φmφmφmW^φm)=0(\hat{H}_0-\epsilon_m) \left|\psi_m^{(1)}\right\rangle + (\hat{W}\left|\varphi_m\right\rangle-\left|\varphi_m\right\rangle\left\langle\varphi_m\right|\hat{W}\left|\varphi_m\right\rangle)= 0 +

We can now multiply the whole equation by +φi\left\langle\varphi_i\right| from the right and obtain:

+(ϵiϵm)φiψm(1)+φiW^φm=0(\epsilon_i-\epsilon_m)\left\langle\varphi_i\right|\left|\psi_m^{(1)}\right\rangle+\left\langle\varphi_i\right|\hat{W}\left|\varphi_m\right\rangle = 0 +

By rewriting the above equation, this directly gives us +the decompositon of the ψm(1)\left|\psi_m^{(1)}\right\rangle +onto the original eigenstates and have:

+ψm(1)=imφiW^φm(ϵmϵi)φi +\boxed{\left|\psi_m^{(1)}\right\rangle = \sum_{i\neq m} \frac{\left\langle\varphi_i\right|\hat{W}\left|\varphi_m\right\rangle}{(\epsilon_m-\epsilon_i)}\left|\varphi_i\right\rangle} +

And we end the calculation with second order pertubation +in λ\lambda

+(H^0Em(0))ψm(2)+(W^Em(1))ψm(1)Em(2)ψm(0)=0(H^0ϵm)ψm(2)+(W^Em(1))ψm(1)Em(2)φm=0(\hat{H}_0-E_m^{(0)}) \left|\psi_m^{(2)}\right\rangle + (\hat{W}-E_m^{(1)})\left|\psi_m^{(1)}\right\rangle-E_m^{(2)} \left|\psi_m^{(0)}\right\rangle= 0\\ +(\hat{H}_0-\epsilon_m) \left|\psi_m^{(2)}\right\rangle + (\hat{W}-E_m^{(1)})\left|\psi_m^{(1)}\right\rangle-E_m^{(2)} \left|\varphi_m\right\rangle= 0\\ +

We can multiply once again whole equation by +φm\left\langle\varphi_m\right| from the right, which +directly drops the first term. The term +Em(1)φmψm(1)E_m^{(1)}\left\langle\varphi_m\right|\left|\psi_m^{(1)}\right\rangle +drops out as the first order perturbation does not contain a projection +onto the initial state. So we can write:

+Em(2)=φmW^ψm(1)E_m^{(2)}= \left\langle\varphi_m\right|\hat{W}\left|\psi_m^{(1)}\right\rangle +

Plugging in our solution, we obtain:

+Em(2)=imφiW^φm2(ϵmϵi)\boxed{E_m^{(2)} = \sum_{i\neq m} \frac{|\left\langle\varphi_i\right|\hat{W}\left|\varphi_m\right\rangle|^2}{(\epsilon_m-\epsilon_i)}} +

Static external magnetic fields

+

A first beautiful application of perturbation theory is the study of +static magnetic fields (see Ch 1.9 and Ch. 2.7.1 of [@Hertel_2015] for +more details). The motion of the electron around the nucleus implies a +magnetic current

+I=et=ev2πrI = \frac{e}{t} = \frac{ev}{2\pi r} +

and this implies a magnetic moment M=IAM = I A, with the +enclosed surface A=πr2A=\pi r^2. It may be rewritten as:

+ML=e2meL=μBLμB=e2me\vec{M}_L = -\frac{e}{2m_e}\vec{L} =-\frac{\mu_B}{\hbar} \vec{L} \\ +\mu_B = \frac{\hbar e}{2m_e} +

where μB\mu_B is the Bohr magneton. Its potential +energy in a magnetic field B=B0ez\vec{B} = B_0 \vec{e}_z is then:

+VB=MLB=μBLzB0V_B = -\vec{M}_L\cdot \vec{B}\\ += \frac{\mu_B}{\hbar} L_z B_0 +

Its contribution is directly evaluated from the expression on first oder pertubation theory to be:

+EZeeman=μBmB0E_{Zeeman} = \mu_B m B_0 +

This is the Zeeman splitting of the different magnetic +substates. It is visualized below

+ +

The Zeeman effect in the hydrogen atom.

+

Trapping with electric or magnetic fields

+

We have now investigated the structure of the hydrogen atom and seen how +its energy gets shifted in external magnetic fields. We can combine this +understanding to study conservative traps for atoms and ions. Neutral +atoms experience the external field:

+Emag(x,y)=μBmB0(x,y)E_{mag}(x,y) = \mu_B m B_0(x,y) +

For ions on the other hand we have fully charged +particles. So they simply experience the external electric field +directly:

+Eel(x,y)=qE(x,y)E_{el}(x,y) = -q E(x,y) +

Trapping atoms and ions has to be done under very good vacuum such that +they are well isolate from the enviromnent and high precision +experiments can be performed.

+

However, the trap construction is not trivial given Maxwells equation +divE=0\text{div} \vec{E} = 0 and divB=0\text{div} \vec{B} = 0. So, the +experimentalists have to play some tricks with oscillating fields. We +will not derive in detail how a resulting Paul trap works, but the +linked video gives a very nice +impression of the idea behind it. A sketch is presented in Fig.

+ +

The upper stage shows the phases of The two phases of the oscillating +electric field of a Paul trap. Taken +from wikipedia. +Below we can see a linear ion (Paul) trap containing six calcium 40 +ions. Taken +from here.

+

This work on trapping ions dates back to the middle of the last century +(!!!) and was recognized by the Nobel prize in +1989 for +Wolfgang Paul andHans Dehmelt. They shared +the prize with Norman Ramsey, who developped extremely precise +spectroscopic methods, now known as Ramsey spectroscopy.

+

For atoms we can play similiar games with magnetic traps. Again we have +to solve the problem of the zero magnetic fields. Widely used +configurations are the Ioffe-Pritchard trap, where quadrupole fields are +superposed with a bias field, or TOP-traps.

+

Ion traps are now the basis of ionic quantum computers and +magnetic traps paved the way for quantum simulators with cold atoms as will see later on.

+

What we missed from the Dirac equation

+

Until now we have completely neglected relativistic effects, i.e. we +should have really solved the Dirac equation instead of the Schrödinger +equation. However, this is is major task, which we will not undertake +here. But what were the main approximations ?

+
    +
  1. +

    We neglected the existance of the electron spin.

    +
  2. +
  3. +

    We did not take into account the relativistic effects.

    +
  4. +
+

So, how does relativity affect the hydrogen spectrum? In a first step, +we should actually introduce the magnetic moment of the spin:

+MS=geμBS\vec{M}_S = -g_e \mu_B \frac{\vec{S}}{\hbar} +

The spin of the electron is 1/21/2, making it a fermion +and the g factor of the electron reads

+ge2.0023g_e \approx 2.0023 +

Further discussions of the g-factor might be found in +Chapter 6.6 of Hertel.

+

Amplitude of the relativistic effects

+

We saw in the previous lectures, that the +energy levels of hydrogenlike atoms are given by:

+En=Z2Ry,n2Ry,=mee432π2ϵ022 +E_n = \frac{Z^2 R_{y,\infty}}{n^2}\\ +R_{y,\infty} = \frac{m_e e^4}{32 \pi^2 \epsilon_0^2 \hbar^2} +

We can now use the fine-structure constant, which +measures the coupling strength of the electric charges to the +electromagnetic field:

+α=e24πϵ0c=1137.035999139(31) +\alpha = \frac{e^2}{4\pi\epsilon_0\hbar c}\\ += \frac{1}{137.035999139(31)} +

We can now rewrite the energies of the hydrogen atom as:

+En=12mec2rest mass energyZ2α21n2E_n = \frac{1}{2} \underbrace{m_e c^2}_{\text{rest mass energy}} Z^2 \alpha^2 \frac{1}{n^2} +

Here, mec2511k eVm_e c^2\approx 511\textrm{k eV} is the rest +mass energy of the electron. En10eVE_n \approx 10\text{eV} on the other hand +is the energy of the bound state and therefore in the order of the +kinetic energy of the electron. As long as it is much smaller than the +rest-mass of the electron, we can neglect the relativistic effects. A +few observations:

+
    +
  • +

    Relativistic effects are most pronounced for deeply bound states of +small quantum number nn.

    +
  • +
  • +

    Relativistic effects effects will become important once +(Zα)1(Z\alpha)\approx 1, so they will play a major role in heavy +nuclei.

    +
  • +
+

For the hydrogen atom we can thus treat the relativistic effects in a +perturbative approach.But the most important consequence of the +relativistic terms is actually the existance of the electron spin.

+

The relativistic mass and Darwin term

+
    +
  1. "Relativistic mass": The relativistic relation between energy and +momentum reads:
  2. +
+Erel=(mc2)2+(pc)2mc2+p22mp48m3c2+ E_\text{rel} = \sqrt{(mc^2)^2+(\vec{p}c)^2}\\ + \approx mc^2 + \frac{p^2}{2m}- \frac{\vec{p}^{\,4}}{8m^3c^2} + \cdots +

The first two terms of the expansion are the +nonrelativistic limit and the third term is the first correction. +Therefore, the corresponding Hamiltonian is:

+H^rm=p^48m3c2. \hat{H}_\text{rm} = - \frac{\hat{\vec{p}}^{\,4}}{8m^3c^2}. +
    +
  1. Darwin term: If r=0r=0, the potential V(r)V(r) diverges to -\infty. +We get:
  2. +
+H^Darwin=π22m2c2(Ze24πϵ0)δ(r^) \hat{H}_\text{Darwin} = \frac{\pi \hbar^2}{2m^2c^2}\left( \frac{Ze^2}{4\pi\epsilon_0}\right) \delta(\hat{\vec{r}}) +

If we perform a first correction to the energy of the eigenstates +n,l,m\left\langle n,l,m\right\rangle by calculating

+n,l,mHn,l,m^,\left\langle n,l,m|\hat{H'|n,l,m}\right\rangle, +

we find that it works perfectly for case (1) and (2) +which is due to degeneracy. H^rm\hat{H}_\text{rm} and +H^Darwin\hat{H}_\text{Darwin} commute with all observables forming the +complete set of commuting observables (CSCO) for H^0\hat{H}_0

+H^0,L^2,L^z,\hat{H}_0,\hat{\vec{L}}^2, \hat{L}_z, +

with states described by n,l,m\left|n,l,m\right\rangle.

+ + + + + + + + + + + \ No newline at end of file diff --git a/amo/6/index.pageContext.json b/amo/6/index.pageContext.json new file mode 100644 index 0000000..5409179 --- /dev/null +++ b/amo/6/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo/@id","routeParams":{"id":"6"},"data":"!undefined"} \ No newline at end of file diff --git a/amo/7/index.html b/amo/7/index.html new file mode 100644 index 0000000..a3c72a1 --- /dev/null +++ b/amo/7/index.html @@ -0,0 +1,621 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Lecture 8 - The Helium atom

In this lecture we will discuss some basic properties of the Helium +atom. We will introduce first some useful notations for the specific +Hamiltonian at hand. Then we will focus on the important consequences +played by the electron-electron interaction on the spin structure and +the level scheme of the system. Finally, we will introduce the +variational method for the estimation of the ground state energy.

+

In todays lecture, we will see how the electron spin couples to the +orbital angular momentum and how this creates spin-orbit coupling. We +will then start out with the discussion of the Helium atom.

+

Spin-orbit coupling

+

The third term, which arises from the Dirac equation is the spin-orbit +coupling. We will give here a common hand-waving explanation in a +similiar spirit to the discussion of the magnetic moment for given +angular momentum. Please, be aware that it misses a +factor of 2. The electron has a spin 1/2 and hence a magnetic moment +MS=geμBS\vec{M}_S = -g_e \mu_B \frac{\vec{S}}{\hbar}. This magnetic moment +experiences a magnetic field, simply due to the motion of the electron +charge itself. Assuming a circular motion of the electron, we obtain the +magnetic field amplitude:

+B=μ0i2rB=μ0ev4πr2B=μ0e4πmer3LB = \frac{\mu_0 i}{2r}\\ +B = \frac{\mu_0 ev}{4\pi r^2}\\ +B = \frac{\mu_0 e}{4\pi m_e r^3}L\\ +

Through the coupling with the spin and introducing a +fudge factor of 2 1, we obtain the Hamiltonian:

+H^LS=ge4πϵ0e22me2c2r3L^S^ +\hat{H}_{LS} = \frac{g_e}{4\pi \epsilon_0}\frac{e^2}{2m_e^2c^2 r^3} \hat{\vec{L}}\cdot \hat{\vec{S}} +

How does it act on a state ψ\left|\psi\right\rangle? For +the example

+ψ=mlms\left|\psi\right\rangle = \left|m_l\right\rangle \otimes \left|m_s\right\rangle +

we get:

+L^zS^z(mlms)=2mlms(mlms)\hat{L}_z \cdot \hat{S}_z \left( \left|m_l\right\rangle \otimes \left|m_s\right\rangle \right) += \hbar^2 m_l \cdot m_s (\left|m_l\right\rangle \otimes \left|m_s\right\rangle) +

The states

+n,l,mls,ms.\left|n,l,m_l\right\rangle \otimes \left|s,m_s\right\rangle. +

span the complete Hilbert space. Any state of the atom can be +represented by:

+ψ={n,l,ml,ms}cn,l,ml,msn,l,ml,ms.\left|\psi\right\rangle = \sum_{\{n,l,m_l,m_s\}} c_{n,l,m_l,m_s} \left|n,l,m_l,m_s\right\rangle. +

As usual we can massively simplify the problem by using +the appropiate conserved quantities.

+

Conservation of total angular momentum

+

We can look into it a bit further into the details and see that the +Hamiltonian H^LS\hat{H}_\textrm{LS} does not commute with L^z\hat{L}_z:

+=[Lz,LxSx+LySy+LzSz][Lz,LS]=[Lz,Lx]Sx+[Lz,Ly]Sy[Lz,LS]=iLySxiLxSy0= [L_z, L_x S_x + L_y S_y + L_z S_z]\\ +[L_z, \vec{L}\cdot \vec{S}] = [L_z, L_x ]S_x + [L_z, L_y ]S_y\\ +[L_z, \vec{L}\cdot \vec{S}] = i\hbar L_y S_x -i\hbar L_x S_y\neq 0 +

This suggests that LzL_z is not a good quantum number +anymore. We have to include the spin degree of freedom into the +description. Let us repeat the same procedure for the spin projection:

+=[Sz,LxSx+LySy+LzSz][Sz,LS]=Lx[Sz,Sx]+Ly[Sz,Sy][Sz,LS]=iLxSyiLySx0= [S_z, L_x S_x + L_y S_y + L_z S_z]\\ +[S_z, \vec{L}\cdot \vec{S}] = L_x [S_z, S_x] + L_y [S_z, S_y]\\ +[S_z, \vec{L}\cdot \vec{S}] = i\hbar L_x S_y -i\hbar L_y S_x\neq 0 +

This implies that the spin projection is not a conserved +quantity either. However, the sum of spin and orbital angular momentum +will commute [Lz+Sz,LS]=0[L_z + S_z, \vec{L}\vec{S}] =0 according to the above +calculations. Similiar calculations hold for the other components, +indicating that the total angular momentum is conserved 2:

+J=L+S\vec{J} = \vec{L} + \vec{S} +

We can now rewrite H^LS\hat{H}_{LS} in terms of the conserved quantities through the following following +little trick:

+J^2=(L^+S^)2=L^2+2L^S^+S^2L^S^=12(J^2L^2S^2)\hat{\vec{J}}^2 = \left( \hat{\vec{L}} + \hat{\vec{S}} \right) ^2 = \hat{\vec{L}}^2 + 2 \hat{\vec{L}} \cdot \hat{\vec{S}} + \hat{\vec{S}}^2\\ +\hat{\vec{L}} \cdot \hat{\vec{S}} = \frac{1}{2} \left( \hat{\vec{J}}^2 - \hat{\vec{L}}^2 - \hat{\vec{S}}^2 \right) +

This directly implies that J^2\hat{J}^2, L^2\hat{L}^2 and S^2\hat{S}^2 are +new conserved quantities of the system. If we call H^0\hat{H}_0 the +Hamiltonian of the hydrogen atom, we previously used the complete set of +commuting observables 3:

+{H^0,L^2,L^z,S^2,S^z}\left\{ \hat{H}_0, \hat{\vec{L}}^2, \hat{L}_z,\hat{\vec{S}}^2, \hat{S}_z \right\} +

We now use the complete set of commuting observables:

+{H^0+H^LS,L^2,S^2,J^2,J^z}.\left\{ \hat{H}_0 + \hat{H}_{LS}, \hat{\vec{L}}^2,\hat{\vec{S}}^2, \hat{\vec{J}}^2, \hat{J}_z \right\}. +

The corresponding basis states +n,l,j,mj\left|n,l,j,m_j\right\rangle are given by:

+n,l,j,mj=ml,msn,l,ml,msn,l,ml,msn,l,j,mjClebsch-Gordan coefficients\left|n,l,j,m_j\right\rangle = \sum_{m_l,m_s} \left|n, l, m_l, m_s\right\rangle \underbrace{\left\langle n, l, m_l, m_s | n, l, j, m_j\right\rangle}_{\text{Clebsch-Gordan coefficients}} +

Here, the Clebsch-Gordan coefficients (cf. Olive 2014 p. 557 or the PDG) +describe the coupling of angular momentum states.

+

Example: l=1l=1 and s=1/2s=1/2.

+

With the Clebsch-Gordan coefficients, the following example +states---given by JjJj and mjm_j---can be expressed by linear +combinations of states defined by mlm_l and msm_s:

+j=32,mj=32=ml=1,ms=+12j=32,mj=12=13ml=1,ms=12+23ml=0,ms=+12\left|j=\frac{3}{2}, m_j = \frac{3}{2}\right\rangle = \left|m_l=1, m_s = +\frac{1}{2}\right\rangle\\ +\left|j=\frac{3}{2}, m_j = \frac{1}{2}\right\rangle = \sqrt{\frac{1}{3}} \left|m_l=1, m_s = -\frac{1}{2}\right\rangle +\sqrt{\frac{2}{3}} \left|m_l = 0, m_s = +\frac{1}{2}\right\rangle +

Summary of the relativistic shifts

+

We can now proceed to a summary of the relativistic effects in the +hydrogen atom as presented in Fig.

+ +

Fine structure of the Hydrogen atom. Adapted from Demtröder 2010 Fig. 5.33

+
    +
  • The states should be characterized by angular momentum anymore, but +by the total angular momentum JJ and the orbital angular momentum. +We introduce the notation:
  • +
+nlj nl_{j} +
    +
  • +

    All shifts are on the order of α2\alpha^2 and hence pertubative.

    +
  • +
  • +

    Some levels remain degenerate in relativistic theory, most +importantly the 2s1/22s_{1/2} and the 2p1/22p_{1/2} state.

    +
  • +
+

The Lamb shift

+

The previous discussions studied the effects of the Dirac equation onto +our understanding of the Hydrogen atom. Most importantly, we saw that we +can test those predictions quite well through the shifts in the level +scheme. It is possible to push this analysis even further. One +particularly important candidate here are the degenerate levels +2s1/22s_{1/2} and 2p1/22p_{1/2}. Being able to see any splitting here, will be +proof physics beyond the Dirac equation. And it is a relative +measurement, for which it therefore not necessary to have insane +absolute precisions. It is exactly this measurement that Lamb and +Retherford undertook in 1947. They observed actually a +splitting of roughly 11GHz, which they drove through direct +rf-transitions. The observed shift was immediately explained by Bethe through the idea of QED a concept that we will come back +to later in this lecture in a much simpler context of cavity QED.

+

We would simply like to add here that the long story of the hydrogen +atom and the Lamb shift is far from over as open questions remained +until September 2019. Basically, a group of people measured the radius +in some 'heavy' muonic hydrogen very precisely in 2010. +They could only explain them by changing the size of the proton radius, +which was previously assumed to be well measured. It was only this year +the another team reperformed a similiar measurement on electronic +hydrogen (the normal one), obtaining consistent results. A nice summary of the "proton radius puzzle" can be +found here.

+

The helium problem

+

In this lecture we will discuss the Helium atom and what makes it so +interesting in the laboratory. We will most importantly see that you +cannot solve the problem exactly. This makes it a great historical +example where a simple system was used to test state-of-the-art +theories. An extensive discussion can be found in Chapter 7 of Bransden 4 or Chapter 6 of Demtröder 20210. Even nowadays, the system continues to be a nice test-bed of many-body theories, see for example the paper by Combescot in 2017 or by Ott in 2019..

+

The Helium atom describes a two electron system as shown in the figure +below.

+ +

The helium atom describes two electrons coupled to the nucleus of +charge Z=2.

+

In the reference frame of center-of-mass we obtain the following +Hamiltonian: +H=22μr1222μr222Mr1r2+e24πϵ0(Zr1Zr2+1r12)H = -\frac{\hbar^2}{2\mu}\nabla_{r_1}^2 -\frac{\hbar^2}{2\mu}\nabla_{r_2}^2-\frac{\hbar^2}{M}\nabla_{r_1}\cdot\nabla_{r_2}+\frac{e^2}{4\pi \epsilon_0}\left(-\frac{Z}{r_1}-\frac{Z}{r_2}+\frac{1}{r_{12}}\right)

+

The term in the middle is the mass polarization term. We further +introduced the reduced mass μ=meMme+M\mu = \frac{m_eM}{m_e + M} For the very +large mass differences M=7300memeM= 7300 m_e \gg m_e, we can do two +simplifications:

+
    +
  • +

    Omit the term on the mass polarization.

    +
  • +
  • +

    Set the reduced mass to the mass of the electron.

    +
  • +
+

So we obtain the simplified Hamiltonian +H=22mer1222mer22+e24πϵ0(Zr1Zr2+1r12)H = -\frac{\hbar^2}{2m_e}\nabla_{r_1}^2 -\frac{\hbar^2}{2m_e}\nabla_{r_2}^2+\frac{e^2}{4\pi \epsilon_0}\left(-\frac{Z}{r_1}-\frac{Z}{r_2}+\frac{1}{r_{12}}\right)

+

Natural units

+

For simplicity it is actually nice to work in the so-called natural +units, where we measure all energies and distance on typical scales. +We will start out by measuring all distances in units of a0a_0, which is +defined as: +a0=4πϵ02me2=0.5angstroma_0 = \frac{4\pi \epsilon_0 \hbar^2}{me^2} = 0.5\text{angstrom} So +we can introduce the replacement: r=r~a0\mathbf{r} = \mathbf{\tilde{r}}a_0 +So the Hamiltonian reads:

+H=22mea02r~1222mea02r~22+e24πϵ0a0(Zr~1Zr~2+1r~12)H=e4m2(4πϵ0)22r~12e4m2(4πϵ0)22r~22+e4m(4πϵ0)22(Zr~1Zr~2+1r~12)H = -\frac{\hbar^2}{2m_ea_0^2}\nabla_{\tilde{r}_1}^2 -\frac{\hbar^2}{2m_ea_0^2}\nabla_{\tilde{r}_2}^2+\frac{e^2}{4\pi \epsilon_0 a_0}\left(-\frac{Z}{\tilde{r}_1}-\frac{Z}{\tilde{r}_2}+\frac{1}{\tilde{r}_{12}}\right)\\ +H = -\frac{e^4 m}{2(4\pi\epsilon_0)^2 \hbar^2}\nabla_{\tilde{r}_1}^2 -\frac{e^4 m}{2(4\pi\epsilon_0)^2 \hbar^2}\nabla_{\tilde{r}_2}^2+\frac{e^4 m}{(4\pi \epsilon_0)^2\hbar^2}\left(-\frac{Z}{\tilde{r}_1}-\frac{Z}{\tilde{r}_2}+\frac{1}{\tilde{r}_{12}}\right) +

And finally we can measure all energies in units of +E0=e4m(4πϵ0)22=1hartree=27.2eVE_0 = \frac{e^4 m}{(4\pi\epsilon_0)^2\hbar^2} = 1\text{hartree} = 27.2\text{eV} +So the Hamiltonian reads in these natural units:

+H~=12r~1212r~22+(Zr~1Zr~2+1r~12)\tilde{H} = -\frac{1}{2}\nabla_{\tilde{r}_1}^2 -\frac{1}{2}\nabla_{\tilde{r}_2}^2+\left(-\frac{Z}{\tilde{r}_1}-\frac{Z}{\tilde{r}_2}+\frac{1}{\tilde{r}_{12}}\right) +

Another, more common, way of introducing this is to define:

+m==e=4πϵ01α=e2(4πϵ0)c=1137c=1αm = \hbar = e = 4\pi \epsilon_0 \equiv 1\\ +\alpha = \frac{e^2}{(4\pi \epsilon_0) \hbar c}= \frac{1}{137}\\ +\Rightarrow c = \frac{1}{\alpha} +

Within these units we have for the hydrogen atom: +En=Z221n2E0E_n = \frac{Z^2}{2}\frac{1}{n^2}E_0

+

For the remainder of this lecture we will assume that we are working +in natural units and just omit the tildas.

+

Electron-electron interaction

+

Now we can decompose the Hamiltonian in the following fashion: +H=H1+H2+H12H = H_1 + H_2 + H_{12} So without the coupling term between the +electrons we would just have once again two hydrogen atoms. The whole +crux is now that the term H12H_{12} is actually coupling or +entangling the two electrons.

+

Symmetries

+

The exchange operator is defined as:

+P12ψ(r1,r2)=ψ(r2,r1)P_{12}\psi(r_1,r_2) = \psi(r_2, r_1) +

We directly see for the Hamiltonian of Helium in the reduced units that the exchange operator commutes with +the Hamiltonian, [H,P12]=0[H,P_{12}] = 0. This implies directly that the parity +is a conserved quantity of the system and that we have a set of +Eigenstates associated with the parity.

+

We can now apply the operator twice:

+P122ψ(r1,r2)=λ2ψ(r1,r2)=ψ(r1,r2)P_{12}^2\psi(r_1,r_2) = \lambda^2 \psi(r_1, r_2) = \psi(r_1, r_2) +

So we can see that there are two sets of eigenvalues with +λ=±1\lambda = \pm 1.

+P12ψ±=±ψ±P_{12}\psi_\pm = \pm \psi_\pm +

We will call:

+
    +
  • +

    ψ+\psi_+ are para-states

    +
  • +
  • +

    ψ\psi_- are ortho-states

    +
  • +
+

This symmetry is a really strong one and it was only recently that +direct transitions between ortho and para-states were observed. Interestingly, we did not need to look into the spin +and the Pauli principle for this discussion at all. This will happen in +the next step.

+

Spin and Pauli principle

+

We have seen that the Hamiltonian does not contain the spin degree of +freedom. So we can decompose the total wave function as:

+ψ=ψ(r1,r2)χ(1,2)\overline{\psi} = \psi(\mathbf{r}_1, \mathbf{r}_2) \cdot \chi(1,2) +

Spin degree of freedom

+

Given that the electron is s=12s=\frac{1}{2}, we can decompose each +wavefunction as: +χ=α+β\chi = \alpha |\uparrow\rangle + \beta |\downarrow\rangle So if the +two spins were not correlated, we could just write the spin +wavefunction as: χ(1,2)=χ1χ2\chi(1,2) = \chi_\mathrm{1}\cdot\chi_\mathrm{2} +However, the electron-electron interaction entangles the atoms. An +example would be the singlet state: +χ(1,2)=12()\chi(1,2) = \frac{1}{\sqrt{2}}\left(|\uparrow \downarrow\rangle - |\downarrow\uparrow \rangle\right)

+

To construct the full wave function we need to take into account the +Pauli principle, which telles us for Fermions that the full +wavefunction should anti-sysmmetrc under exchange of particles:

+ψ(q1,q2,,qi,,qj,)=ψ(q1,q2,,qj,,qi,)\overline{\psi}(q_1, q_2, \cdots, q_i,\cdots, q_j, \cdots) = +-\overline{\psi}(q_1, q_2, \cdots, q_j,\cdots, q_i, \cdots) +

This tells us that each quantum state can be only occupied by a single +electron at maximum.

+

Now we can come back to the full wavefunction using the results of the +previous section. We have:

+ψ(1,2)=ψ±(r1,r2)χ(1,2)\overline{\psi}(1,2) = \psi_{\pm}(r_1,r_2)\chi_\mp(1,2) +

with +P12χ±=±χ±P_{12}\chi_\pm = \pm \chi_\pm. Now can once again look for good +solutions to this problem. It is basically the total spin +S=S1+S2\mathbf{S} = \mathbf{S}_1 + \mathbf{S}_2, or better S2\mathbf{S}^2. +This commutes with both the Hamiltonian and the parity operator, so it +is a conserved quantity. Sorting out the solutions we have

+χ=12()χ+,1=χ+,1=12(+)χ+,1= +\chi*- = \frac{1}{\sqrt{2}}\left(|\uparrow\downarrow\rangle - |\downarrow\uparrow\rangle\right)\\ +\chi*{+,1} = |\uparrow\uparrow\rangle \\ +\chi*{+,1} = \frac{1}{\sqrt{2}}\left(|\uparrow\downarrow\rangle + |\downarrow\uparrow\rangle\right) \\ +\chi*{+,-1} = |\downarrow\downarrow\rangle \\ + + +

So χ+\chi_+ is associated with spin 1 and χ\chi_- is +associated with spin 0.

+

Footnotes

+
    +
  1. +

    It's proper derivation is left to quantum field theory lectures

    +
  2. +
  3. +

    It should be as there is no external torque acting on the atom

    +
  4. +
  5. +

    see lecture 2 for a few words on the definition of such a set

    +
  6. +
  7. +

    Brian Harold Bransden, Charles Jean Joachain. Physics of atoms and molecules. Pearson Education India, 2003.

    +
  8. +
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/amo/7/index.pageContext.json b/amo/7/index.pageContext.json new file mode 100644 index 0000000..4873ce7 --- /dev/null +++ b/amo/7/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo/@id","routeParams":{"id":"7"},"data":"!undefined"} \ No newline at end of file diff --git a/amo/8/index.html b/amo/8/index.html new file mode 100644 index 0000000..8150d07 --- /dev/null +++ b/amo/8/index.html @@ -0,0 +1,626 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Lecture 9 - More on the Helium atom

We will finish our discussion of the Helium atom. Most importantly, we +will dive into the strong separation between singlet and triplet states.

+

In the last lecture, we saw some important properties +of the He atom:

+
    +
  • +

    Total angular momentum, spin and the electronic quantum number are +labelling the states.

    +
  • +
  • +

    The exchange symmetry introduces the important distinction between +ortho and para-states.

    +
  • +
+

Today, we will see how this exchange symmetry enters the level scheme +and how it is linked to the spin.

+

Level scheme

+

We can now continue through the level scheme of Helium and try to +understand our observations. No radiative transitions between S=0S=0 and +S=1S=1, which means that we will basically have two independent schemes. +They are characterized by:

+
    +
  • +

    electronic excitations, which are the main quantum numbers NN.

    +
  • +
  • +

    orbital angular momentum, with quantum number LL.

    +
  • +
  • +

    total spin with quantum number SS

    +
  • +
  • +

    total angular momentum JJ, but the spin-orbit coupling in Helium is +actually extremly small.

    +
  • +
+

We will then use the term notation: N2S+1LJN ^{2S+1}L_J the superscript is +giving the multiplicity or the number of different JJ levels.

+

Having the level structure, we are now able to calculate the energies of +the different states. We will start out with the ground state and then +work our way through the excited states.

+

Independent particle model

+

We will now go back to the influence of the interaction on the +eigenenergies of the system. Going back to the Helium atoms, we will +treat the single particle Hamiltonians as unperturbed system and +H12H_{12} as the perturbation:

+H0=12r12Zr112r22Zr2H1=1r12H_0 = -\frac{1}{2}\nabla_{r_1}^2 -\frac{Z}{r_1} -\frac{1}{2}\nabla_{r_2}^2 -\frac{Z}{r_2}\\ +H_1 =\frac{1}{r_{12}} +

We now know the solutions to H0H_0, because the +factorize:

+(H^1+H^2)ψ1ψ2=(E1+E2)ψ1ψ2\left(\hat{H}_1 + \hat{H}_2\right)|\psi_1\rangle\otimes|\psi_2\rangle = +\left(E_1 + E_2\right)|\psi_1\rangle\otimes|\psi_2\rangle +

Groundstate energy - perturbative approach

+

At this stage we can try to calculate the groundstate energy. We can +derive that the unperturbed energy reads: E0(0)=Z2hartreeE_0^{(0)}= Z^2\text{hartree} +The electron interaction leads within first order perturbation theory to +an energy shift of: +E0(1)=ψ01r12ψ0=58ZE_0^{(1)}= \langle\psi_0|\frac{1}{r_{12}}|\psi_0\rangle = \frac{5}{8}Z +We can see that the first order energy shift is actually not that small, +so we might start to question perturbation theory.

+

Groundstate energy - variational approach

+

In the variational approach, we will try to find the minimal energy of +the ground state. Namely we will minimize: +Evar=ψH^ψψψE_{var} = \frac{\langle\psi|\hat{H}|\psi\rangle}{\langle\psi|\psi\rangle} +We can actually proof that this works nicely within a few lines. For +that we will expand our trial function ψ|\psi\rangle into the (unknown) +eigenstates of H^\hat{H}: ψ=ncnψn|\psi\rangle = \sum_n c_n |\psi_n\rangle +For the energies this implies: +H^ψn=Enψn\hat{H}|\psi_n\rangle = E_n|\psi_n\rangle So we end up with:

+ψHψE0=nEncncnE0ncncn=n(EnE0)cn20\langle \psi|H|\psi\rangle - E_0 = \sum_n E_n c_n^*c_n - E_0 \sum_n c_n^*c_n\\ += \sum_n (E_n-E_0)|c_n|^2 \geq 0 +

So the variational principle always gives an upper bound +on the ground state energy. The question is how good is this bound in +each individual case.

+

To apply the variational approach, we will introduce a variational +parameter. This parameter is typically guessed from physical intuition. +Here it will be the charge, which will be replaced by an screened +charge ZeffZ_{eff}.

+

As variational wavefunction, we will employ the groundstate of the +hydrogen atom, which reads:

+ψvar(r1,r2)=eZeff(r1+r2)\psi_{var}(r_1, r_2) = e^{-Z_{eff}(r_1+r_2)} +

We find then that the total energy is: +Evar0=Zeff22ZZeff+58ZeffE_{var}^0 = Z_{eff}^2 -2ZZ_{eff}+\frac{5}{8}Z_{eff} It becomes +minimal at

+Zeff=Z516Z_{eff} = Z- \frac{5}{16} +

So at this stage, we might compare the different levels +of approximation to the experimental result:

+
    +
  • +

    The experimental observation is Eexp0=2.90372E_{exp}^0=-2.90372 hartree

    +
  • +
  • +

    The independent particle model predicts E0=4E^0 = -4 hartree.

    +
  • +
  • +

    First order pertubation theory predicts E0=2,709E^0 = -2,709 hartree.

    +
  • +
  • +

    The variational principle predicts E0=2.84E^0 = -2.84 hartree.

    +
  • +
+

The best theories achieve an accuracy of 10710^{-7}, see Hertel 2015, +Chapter 7.2.5.

+

Exchange Interaction

+

Up to now we focused on the ground state properties of the 11S1^ +1S state. In the next step we will try to understand the influence of +the interaction term on the excited states (c.f. Hertel 2015, +Chapter 7). To attack this problem we will approach it pertubatively.

+

We saw that we could factorize the full wavefunction into external and +internal degrees of freedom. Further, we have the singlet χS\chi_S +(anti-symmetric) and triplet states χT\chi_T (symmetric) for the spin. +This can now be combined too:

+ψS(1,2)=ψ+(r1,r2)χS(1,2)ψT(1,2)=ψ(r1,r2)χT(1,2)\overline{\psi}_S(1,2) = \psi_{+}(r_1, r_2)\chi_S(1,2)\\ +\overline{\psi}_T(1,2) = \psi_{-}(r_1, r_2)\chi_T(1,2)\\ +

In a next step, we can construct ψ±\psi_{\pm} from the eigenstates of +the unperturbed Hamiltonian. We define the states +q1n1,l1,m1\left|q_1\right\rangle \equiv \left|n_1,l_1,m_1\right\rangle +and +q2n2,l2,m2\left|q_2\right\rangle \equiv \left|n_2,l_2,m_2\right\rangle. +The properly symmetrized states are:

+ψ±=12(q11q22±q21q12)\left|\psi_\pm\right\rangle = \frac{1}{\sqrt{2}}\left( \left|q_1\right\rangle_1 \otimes \left|q_2\right\rangle_2 \pm \left|q_2\right\rangle_1 \otimes \left|q_1\right\rangle_2 \right) +

Now we can perform an estimate of the energy shift on +these states.

+ΔES,T=ψS,T1r^12ψS,T=ψ+,1r^12ψ+,\Delta E_{S,T} = \left\langle\overline{\psi_{S,T} }\right|\frac{1}{\hat{r}_{12}} \left|\overline{\psi_{S,T}}\right\rangle\\ += \left\langle\psi_{+,- }\right|\frac{1}{\hat{r}_{12}} \left|\psi_{+,- }\right\rangle +

We then get

+ΔES,T=12(q1q2±q2q1)1r^12(q1q2±q2q1)=q1q21r^12q1q2±q1q21r^12q2q1\Delta E_{S,T} = \frac{1}{2} \left(\left\langle q_1 q_2 \right| \pm \left\langle q_2 q_1\right|\right) \left| \frac{1}{\hat{r}_{12}} \right| \left( \left|q_1 q_2\right\rangle \pm \left|q_2 q_1\right\rangle \right)\\ += \left\langle q_1 q_2\right| \frac{1}{\hat{r}_{12}}\left|q_1 q_2\right\rangle \pm \left\langle q_1 q_2\right| \frac{1}{\hat{r}_{12}} \left|q_2 q_1\right\rangle +

So we summarize:

+ΔES=Jnl+KnlΔET=JnlKnl\Delta E_S = J_{nl} + K_{nl}\\ +\Delta E_T = J_{nl} - K_{nl} +

The first term is called direct (Coulomb) term and the second term is +known as exchange term. If we integrate the direct term, we get:

+Jnl=ψq1(r1)ψq2(r2)1r12ψq1(r1)ψq2(r2) ⁣dr1 ⁣dr2=ψq1(r1)2ψq2(r2)21r12 ⁣dr1 ⁣dr2.J_{nl} = \int \int \psi_{q_1}^*\left(\vec{r}_1\right) \psi_{q_2}^* \left(\vec{r}_2\right) \frac{1}{r_{12}} \psi_{q_1} \left(\vec{r}_1\right) \psi_{q_2} \left(\vec{r}_2\right) \mathop{}\!\mathrm{d}\vec{r}_1 \mathop{}\!\mathrm{d}\vec{r}_2 \\ += \int \int \left| \psi_{q_1} \left(\vec{r}_1\right) \right|^2 \left| \psi_{q_2}\left(\vec{r}_2\right) \right|^2 \frac{1}{r_{12}} \mathop{}\!\mathrm{d}\vec{r}_1 \mathop{}\!\mathrm{d}\vec{r}_2. +

This is Coulomb repulsion.

+

Exchange term

+

The integration of the exchange term yields:

+K=q1q21r12q2q1=ψq1(r1)ψq2(r2)1r12ψq2(r1)ψq1(r2) ⁣dr1 ⁣dr2K = \left\langle q_1 q_2\right| \frac{1}{r_{12}} \left|q_2 q_1\right\rangle = \int \psi_{q_1}^* \left(\vec{r}_1\right) \psi_{q_2}^* \left( \vec{r}_2 \right) \frac{1}{r_{12}} \psi_{q_2}\left(\vec{r}_1\right) \psi_{q_1} \left( \vec{r}_2 \right) \mathop{}\!\mathrm{d}\vec{r}_1 \mathop{}\!\mathrm{d}\vec{r}_2 +

To understand it a bit better, we can rewrite it in a +more transparent way in terms of the spin operator, which measures the +difference between the singlet and the triplet state. Especially suited +is:

+S^1S^2=12(S^2S^12S^22)S^1S^2χT=14χTS^1S^2χS=34χS\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2 = \frac{1}{2} \left(\hat{\vec{S}}^2 - \hat{\vec{S}}_1^2 - \hat{\vec{S}}_2^2 \right)\\ +\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2 \chi_T = \frac{1}{4} \chi_T\\ +\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2 \chi_S = -\frac{3}{4} \chi_S +

This allows us to rewrite the splitting in terms of an +effective Hamiltonian

+H^eff=Jnl+12(1+4S^1S^2)Knl\hat{H}_\text{eff} = J_{nl} + \frac{1}{2}\left(1+ 4\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2\right) K_{nl} +

Obtained energy shifts.

+

As an example, we have a look at the energy shifts (see figure below) for two electrons in the states defined by:

+q1:n1=1,l1=0q2:2=2,l2=0,1q_1: n_1=1,l_1 = 0\\ +q_2:_2=2,l_2= 0,1 +

The 23S2^3S level for example corresponds to the state

+12(1s2s2s1s)\frac{1}{\sqrt{2}} \left( \left|1s2s\right\rangle - \left|2s1s\right\rangle \right) \otimes \left|\uparrow \uparrow\right\rangle + +

This splitting is in the order of 0.25eV and hence much larger than the +typical spin-orbit coupling. This explains, why the coupling to the +total angular momentum JJ remains largely ignored for helium.

+

Summary: Structure of the He Atom

+
    +
  • In the independent particle model, a state is determined by:
  • +
+n1l1m1n2l2m2 \left|n_1 l_1 m_1\right\rangle \otimes \left|n_2 l_2 m_2 \right\rangle + + +
    +
  • +

    Only one electron can be electronically excited to a stable state. +An excellent discussion of the auto-ionization can be found in Sec. +1.3 of Grynberg 2009. Thus, NN is the quantum number of the electronic excitation.

    +
  • +
  • +

    Ignoring the spin degree of freedom, the eigenstates have a discrete +symmetry with respect to particle exchange. The He\mathrm{He} +eigenstates are therefore either in a triplet or in a singlet +state. Here, we are talking about the symmetry with respect to the +exchange of two particles. No inversion of space is done here! Why +can we not assume a finite mass of the nucleui in order to describe +two electrons by hydrogenic wave functions? The nucleus' motion +would introduce an additional coupling term between the electrons

    +
  • +
  • +

    The quantum number LL stands for the total orbital angular +momentum.

    +
  • +
  • +

    There is another conserved quantity we have not discussed yet: The +total angular momentum

    +
  • +
+J^=L^+S^. \hat{\vec{J}} = \hat{\vec{L}} + \hat{\vec{S}}. +

Note. For 4He\mathrm{^4He}, there is no nuclear spin, meaning that there is no hyperfine structure.

+

Let us now have a look at the level scheme of the helium atom as depicted below.

+

Note. The general notation used in the figure below is

+N2S+1LJ,N^{2S+1}L_J, +

where 2S+12S+1 denotes the multiplicity of the spin.

+ +

Level scheme of singlet and triplet states of the helium atom from L=0 +up to L=3. The ground state 1^1^S0 is chosen to have the energy E=0. +Taken from Demtröder 2010.

+
    +
  • The fact that we can write the state down with a well-defined SS +and LL is called LSLS or Russell-Saunders coupling. All sis_i +couple to S=isiS = \sum_i s_i and all ljl_j couple to L=jljL=\sum_j l_j. +There is no coupling between the spin and the spatial degree of +freedom!
  • +
+ +
    +
  • +

    We have introduced an effective spin interaction, but we have +ignored the "real" interactions between the spins! What does it +mean? How should we introduce it if we wanted to? How can we find +out whether what we did is justifiable?

    +
  • +
  • +

    The dipole interaction between two spins is

    +
  • +
+μ0(gμB/2)24πd3=α24  (a.u.) \sim\frac{\mu_0(g \mu_B/2)^2}{4\pi \hbar d^3} = \frac{\alpha^2}{4} \;(\text{a.u.}) +

where μ0=4πα2\mu_0 = 4\pi \alpha^2, μB=1/2\mu_B=1/2, +=1\hbar=1, and d a0 = 1d\approx~a_0~=~1. Compared to the energy difference +between 21S2^1S and 23S2^3S, which is >α2>\alpha^2 and on the order +of eV, it is a very small effect.

+
    +
  • Also, we have ignored the spin-orbit interaction of each electron +between its own spin and its orbital angular momentum. From the +hydrogen atom we know that the energy for the spin-orbit interaction
  • +
+Els(Zα)2 E_\textrm{ls} \propto (Z\alpha)^2 +

is very strongly suppressed compared to the exchange interaction and the Coulomb repulsion.

+

Note. This will be different for heavy atoms, where ZZ is large.

+

Dipole Selection Rules in Helium

+ +

If helium atoms are excited in a gas discharge, one can see +characteristic emission lines as shown above (taken from Wikipedia).

+ +

Possible transitions within the singlet and triplet system of helium. +Taken from Demtröder 2010. +The singlet and triplet levels are always plotted separately and there is no +transition between a singlet and a triplet state. Because of this +observation, people thought in the beginning that there were two +different types of helium ("para" and "ortho").

+

The rules for transitions to occur are determined by the dipole matrix +element containing the initial state ii and the final state ff:

+irf^.\left\langle i|\hat{\vec{r}|f}\right\rangle. +

Due to the LSLS coupling scheme, we get:

+ψ(r1,r2)χ(1,2).\left|\psi(\vec{r_1, \vec{r}_2)}\right\rangle \otimes \left|\chi (1,2)\right\rangle. +

There is no entanglement between the degrees of freedom +and no mixed symmetry between spin and spatial degree of freedom! If we +plug this into the matrix element and multiply it out, we get, because the +operator r^\hat{\vec{r}} does not act on the spin degree of freedom:

+irf^=χ(1,2)χ(1,2)ψ(r1,r2)r^ψ(r1,r2)\left\langle i|\hat{\vec{r}\,|f}\right\rangle = \left\langle\chi(1,2) | \chi'(1,2)\right\rangle \cdot \left\langle\psi(\vec{r_1, \vec{r}_2)|\hat{\vec{r}} \,| \psi'(\vec{r}_1, \vec{r}_2)}\right\rangle +
    +
  1. +

    The first factor has to be zero if the total spin is not the same. +Then the relative alignment is not the same. Thus, there are no +dipole transitions between singlet and triplet atoms!

    +
  2. +
  3. +

    From the second factor we infer that transitions can only occur +between states of opposite parity, e.g., Δl=±1\Delta l = \pm 1, +together with angular momentum conservation.

    +
  4. +
+ + + + + + + + + + + \ No newline at end of file diff --git a/amo/8/index.pageContext.json b/amo/8/index.pageContext.json new file mode 100644 index 0000000..a2594e7 --- /dev/null +++ b/amo/8/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo/@id","routeParams":{"id":"8"},"data":"!undefined"} \ No newline at end of file diff --git a/amo/9/index.html b/amo/9/index.html new file mode 100644 index 0000000..37b7f0b --- /dev/null +++ b/amo/9/index.html @@ -0,0 +1,366 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Lecture 10 - Propagation of light in dielectric media

In this lecture we will study the propagation of light through a +dielectric medium like atomic gases. We will see that it is +characterized by the susceptibility and discuss the case of two-level +atoms. This sets the stage for the laser.

+

Until now we focused on the properties of atoms and how can control them +through external fields. In this lecture, we will focus much more on the +properties of the light passing through a medium.

+

Introduction

+

We would like to study the propagation of a electric field through an +ensemble of atoms as visualized in Fig. +1. We assume a +mono-chromatic plane wave to come in, such that we can write down the +electric field as:

+Ein=E0ϵeikziωLt\vec{E}_{in}= E_0 \vec{\epsilon}e^{i kz -i\omega_L t} +

This incoming field will polarize the gas of dipoles.

+
+ +
Propagation of a light field through a dielectric medium.
+
+

For the propagation we will do the following assumptions:

+
    +
  • The atoms are independent.
  • +
  • We can describe them as small dipoles.
  • +
  • We can describe the light in the semi-classical approximation.
  • +
+

We have already employed this picture in in the slightly abstract +formulation in Lecture 4, where we studied the evolution of the atoms in +electric fields and in Lecture 6 +concerning the transition rules in hydrogen. This allows us to calculate +the expectation value of the dipole operator through:

+D=ψDψ\langle \vec{D}\rangle = \left\langle\psi\right|\vec{D}\left|\psi\right\rangle +

As already discussed in Lecture 6 we can then write it down as:

+D=E0α\langle \vec{D}\rangle = E_0 \vec{\alpha} +

We call α\alpha the polarizability. For a large gas +with a constant density of dipoles nn, we obtain a macroscopic +polarization of:

+P=nD=nαE0\vec{P} = n \langle \vec{D}\rangle\\ += n \vec{\alpha} E_0 +

This leads us then to identify the susceptibility of the +dielectric medium:

+P=ϵ0χEχ=nαϵ0 +\vec{P} = \epsilon_0 \chi \vec{E}\\ +\chi = \frac{n \alpha}{\epsilon_0} +

To notes to this relation:

+
    +
  1. The linear relationship between polarization and electric field is +only valid for weak electric fields. For stronger fields, higher +order terms become important. They are the fundamental ingredient of +non-linear optics. In general, we can write:
  2. +
+Pi=ϵ0jχij1Ej+ϵ0jkχijk2EjEk+... P_i = \epsilon_0 \sum_{j}\chi_{ij}^{1}E_j+\epsilon_0 \sum_{jk}\chi_{ijk}^{2}E_jE_k + ... + + +
    +
  1. Given that χ\chi and α\alpha are proportional to +D\langle D \rangle, they can be complex. We will see that real and +imaginary part have very different interpretations.
  2. +
+

Propagation of light

+

At this stage we would like to understand the propagation of an electric +field through such a polarized medium. The general Maxwell equation +actually reads:

+2E1c22Et2=1ϵ0c22Pt2 +\nabla^2 \vec{E}-\frac{1}{c^2}\frac{\partial^2 \vec{E}}{\partial t^2}= \frac{1}{\epsilon_0 c^2}\frac{\partial^2 \vec{P}}{\partial t^2} +

This equation can be massively simplified by only +looking at a slowly-evolving envelope E(r,t)\mathcal{E}(r,t) and +P(r,t)\mathcal{P}(r,t), which are defined through:

+E=EeikziωLtP=PeikziωLt\vec{E} = \mathcal{E} e^{ikz-i \omega_L t}\\ +\vec{P} = \mathcal{P} e^{ikz-i \omega_L t}\\ +

As shown in more detail in Chapter 4 of Lukin, the Maxwell equation reduces then to:

+zE+1ctE=ik2ϵ0P\frac{\partial}{\partial z}\mathcal{E}+\frac{1}{c}\frac{\partial}{\partial t}\mathcal{E} = \frac{ik}{2\epsilon_0}\mathcal{P} +

This equation becomes especially transparent, if we investigate it for +very long times, such that we can perform a Fourier transformation and +obtain:

+zE=iωcE+ik2ϵ0P\frac{\partial}{\partial z}\mathcal{E}= i\frac{\omega}{c}\mathcal{E} +\frac{ik}{2\epsilon_0}\mathcal{P} +

Finally, we can use the definition of the susceptibility to write:

+zE=i(ωc+k2χ(ω))EE(ω,z)=E0ei(ωc+k2χ(ω))z\frac{\partial}{\partial z}\mathcal{E}= i\left(\frac{\omega}{c} +\frac{k}{2} \chi(\omega)\right) \mathcal{E}\\ +\mathcal{E}(\omega, z) =E_0 e^{i\left(\frac{\omega}{c} +\frac{k}{2}\chi(\omega)\right)z} +

Absorption and refraction

+

The meaning of the susceptibility becomes especially clear for a +continuous wave, where ω0\omega\rightarrow 0 and we obtain:

+E(ω0,z)=E0eikχ(0)2z\mathcal{E}(\omega\rightarrow 0, z) =E_0 e^{i\frac{k\chi(0)}{2} z} +

We can then see that:

+
    +
  • +

    The imaginary part of the susceptibility leads to absorption on a +scale l1=k2Im(χ(0))l^{-1} = \frac{k}{2}\text{Im}(\chi(0))

    +
  • +
  • +

    The real part describes a phase shift. The evolution of the electric +field can be seen as propagating with a wavevector +kk+k2Re(χ(0))k \rightarrow k +\frac{k}{2}\text{Re}(\chi(0)), so the dielectric +medium has a refractive index n=1+Re(χ(0))2n = 1 + \frac{\text{Re}(\chi(0))}{2}

    +
  • +
+

Dispersion

+

If the electric field has a certain frequency distribution, we might +have to perform the proper integral to obtain the time evolution, i.e.:

+E(t,z)=dωeiωtE(ω,0)ei(ωc+k2χ(ω))z\mathcal{E}(t, z) =\int d\omega e^{-i\omega t}\mathcal{E}(\omega,0) e^{i\left(\frac{\omega}{c} +\frac{k}{2}\chi(\omega)\right)z} +

To solve the problem we can develop the susceptibility:

+χ(ω)=χ(0)+dχdωω\chi(\omega) = \chi(0)+\frac{d\chi}{d\omega}\omega +

And we obtain:

+E(t,z)=eizkχ(0)/2E(tz/vg,0)vg=c1+ωL2dχdω\mathcal{E}(t, z) =e^{izk\chi(0)/2} +\mathcal{E}(t-z/v_g, 0)\\ +v_g = \frac{c}{1+\frac{\omega_L}{2}\frac{d\chi}{d\omega}} +

So the group velocity is controlled by the derivative of the +susceptibility !

+

Two level system

+

After this rather general discussion, we will now employ it to +understand the action of two-level systems on the travelling beam. So we +will now focus on the influence of the atoms on the field in comparision +with the previous discussions. Further, we will have to take into +account the finite lifetime of the excited states in a phenomenological +manner. For a two level system with excited state +e\left|e\right\rangle and groundstate +g\left|g\right\rangle, we can directly write down the +wavefunction as:

+ψ=γgg+γee\left|\psi\right\rangle = \gamma_g\left|g\right\rangle+ \gamma_e\left|e\right\rangle +

In this basis, the dipole element reads:

+D=eDgγeγg=dσeg\langle D\rangle = \left\langle e\right|D\left|g\right\rangle \gamma_e^*\gamma_g\\ += d \sigma_{eg} +

In the second line we introduced the notations:

+
    +
  • +

    d=eDgd = \left\langle e\right|D\left|g\right\rangle

    +
  • +
  • +

    The product γeγg\gamma_e^*\gamma_g can identified with the +off-diagonal component of the density operator +σ=ψψ\sigma=\left|\psi\right\rangle\left\langle\psi\right|. +We will often call it coherence.

    +
  • +
+

The Hamiltonian of this model reads then in the rotating +wave-approximation:

+H^=0gg+δee+Ω[eg+ge]Ω=dE/\hat{H} = 0\left|g\right\rangle\left\langle g\right|+\hbar\delta \left|e\right\rangle\left\langle e\right| + \hbar\Omega\left[\left|e\right\rangle\left\langle g\right|+\left|g\right\rangle\left\langle e\right|\right]\\ +\Omega = d E/\hbar +

This is exactly the model that we discussed in the +lectures 3 and 4 [@Jendrzejewskib; @Jendrzejewskia]. We then found that +the time evolution might be described via:

+iγ˙g(t)=Ωγeiγ˙e(t)=δγe+Ωγgi\dot{\gamma}_g(t) = \Omega \gamma_e\\ +i\dot{\gamma}_e(t) = \delta \gamma_e +\Omega \gamma_g\\ +

We can combine them to the components of the density +operator, which then read:

+σij=cicj\sigma_{ij} = c_{i}^*c_j +

From these coefficients, we can now obtain the evolution +of the populations:

+N˙g=σ˙gg=γ˙gγg+γgγ˙g=iΩ(σegσge)N˙e=N˙g\dot{N}_g = \dot{\sigma}_{gg} = \dot{\gamma}_{g}^*\gamma_g+ \gamma_{g}^*\dot{\gamma}_g\\ += i\Omega(\sigma_{eg}-\sigma_{ge})\\ +\dot{N}_e = -\dot{N}_g +

So the total number of atoms stays automatically +conserved. As for the coherences we obtain:

+σ˙eg=γ˙eγg+γeγ˙g=iδσeg+i(NgNe)Ωσ˙ge=iδσgei(NgNe)Ω\dot{\sigma}_{eg} = \dot{\gamma}_{e}^*\gamma_g+ \gamma_{e}^*\dot{\gamma}_g\\ += i\delta \sigma_{eg}+i (N_g-N_e)\Omega\\ +\dot{\sigma}_{ge}= -i\delta \sigma_{ge}-i (N_g-N_e)\Omega +

This density operator approach allows us to introduce spontaneous decay +in a very straight-forward fashion:

+
    +
  • +

    The time evolution of the excited state gets an additional term +ΓNe-\Gamma N_e.

    +
  • +
  • +

    Atoms coming from the excited state relax to the ground state, so we +add a term ΓNe\Gamma N_e.

    +
  • +
  • +

    The coherence decays also through a term Γ2σge-\Gamma_2 \sigma_{ge}. We +will use here for simplicity the limit of Γ2=Γ/2\Gamma_2 = \Gamma/2

    +
  • +
+

So the full equations read now:

+N˙g=iΩ(σegσge)+ΓNeσ˙ge=iδσgei(NgNe)ΩΓ2σge\dot{N}_g = i\Omega(\sigma_{eg}-\sigma_{ge})+\Gamma N_e\\ +\dot{\sigma}_{ge}= -i\delta \sigma_{ge}-i (N_g-N_e)\Omega-\Gamma_2\sigma_{ge} +

At this stage we can find the steady-state solutions by setting +N˙g=σ˙ge=0\dot{N}_g = \dot{\sigma}_{ge} = 0. This leads too:

+Ne=12Ω2Γ2Γ(ω0ωL)2+Γ22+Ω2Γ2Γ +N_e = \frac{1}{2}\frac{\Omega^2 \frac{\Gamma_2}{\Gamma}}{(\omega_0-\omega_L)^2+\Gamma_2^2+\Omega^2\frac{\Gamma_2}{\Gamma}} +σge=iΩ2Γ2i(ωLω0)Γ22+(ω0ωL)2+Ω2Γ2/Γ +\sigma_{ge} = i\frac{\Omega}{2}\frac{\Gamma_2-i(\omega_L-\omega_0)}{\Gamma_2^2+(\omega_0-\omega_L)^2+\Omega^2\Gamma_2/\Gamma} +

In the next lecture we will employ those results to +study the laser.

+ + + + + + + + + + + \ No newline at end of file diff --git a/amo/9/index.pageContext.json b/amo/9/index.pageContext.json new file mode 100644 index 0000000..ad0d0ad --- /dev/null +++ b/amo/9/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo/@id","routeParams":{"id":"9"},"data":"!undefined"} \ No newline at end of file diff --git a/amo/index.html b/amo/index.html new file mode 100644 index 0000000..58f1614 --- /dev/null +++ b/amo/index.html @@ -0,0 +1,28 @@ + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

+ + + + + + + + + + \ No newline at end of file diff --git a/amo/index.pageContext.json b/amo/index.pageContext.json new file mode 100644 index 0000000..73857e8 --- /dev/null +++ b/amo/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/amo","routeParams":{},"data":"!undefined"} \ No newline at end of file diff --git a/amo/lecture1.md b/amo/lecture1.md deleted file mode 100644 index 1dc4b8a..0000000 --- a/amo/lecture1.md +++ /dev/null @@ -1,356 +0,0 @@ ---- -author: - - Fred Jendrzejewski - - Selim Jochim -order: 1 -title: Lecture 1 - Some cooking recipes for Quantum Mechanics ---- - -In this first lecture we will review the foundations of quantum -mechanics at the level of a cooking recipe. This will enable us to use -them later for the discussion of the atomic structure and interaction -between atoms and light. - -This is the first lecture of the Advanced Atomic Physics course at -Heidelberg University, as tought in the wintersemester 2019/2020. It is -intended for master students, which have a basic understanding of -quantum mechanics and electromagnetism. In total, we will study multiple -topics of modern atomic, molecular and optical physics over a total of -24 lectures, where each lectures is approximately 90 minutes. - -- We will start the series with some basics on quantum mechanics. - -- Then work our way into the harmonic oscillator and the hydrogen - atom. - -- We will then leave the path of increasingly complex atoms for a - moment to have some fun with light-propagation, lasers and - discussion of the Bell inequalities. - -- A discussion of more complex atoms gives us the acutual tools at - hand that are in the lab. - -- This sets up a discussion of di-atomic molecules, which ends the - old-school AMO. - -- We move on to quantized atom-light interaction, the Jaynes Cummings - model and strong-field lasers. - -- We will finally finish with modern ways to implement quantum - simulators and quantum computers. - -The topics of the lectures will be discussed in more details in the -associated tutorials. - -# Introduction - -In AMO physics we will encounter the consequences of quantum mechanics -all the time. So we will start out with a review of the basic -ingredients to facilitate the later discussion of the experiments. - -Some good introductions on the traditional approach can be found in -[^2002], [^2006], [^CT1], [^CT2]. Previously, we mostly followed the discussion -of Ref. [^2006]. Nowadays, I also recommend the works by Scott Aaronson in [this](https://scottaaronson.com/democritus/lec9.html) and [this lecture](https://www.scottaaronson.com/barbados-2016.pdf). There is also a good [article by -Quanta-Magazine](https://www.quantamagazine.org/quantum-theory-rebuilt-from-simple-physical-principles-20170830/#) -on the whole effort to derive quantum mechanics from some simple -principles. This effort started with [this paper](https://arxiv.org/abs/quant-ph/0101012v4), which actually -makes for a nice read. - -Before we start with the detailled cooking recipe let us give you some -examples of quantum systems, which are of major importance throughout -the lecture: - -1. _Orbit in an atom, molecule etc_. Most of you might have studied - this during the introduction into quantum mechanics. - -2. _Occupation number of a photon mode_. Any person working on quantum - optics has to understand the quantum properties of photons. - -3. _Position of an atom_ is of great importance for double slit - experiments, the quantum simulation of condensed matter systems with - atoms, or matterwave experiments. - -4. The _spin degree of freedom_ of an atom like in the historical - Stern-Gerlach experiment. - -5. The classical coin-toss or bit, which connects us nicely to simple - classical probability theory or computing - -# The possible outcomes (the Hilbert Space) for the Problem in Question - -The first step is to identify the right Hilbert space for your problem. -For a classical problem, we would simply list all the different possible -outcomes in a list $$(p_1, \cdots, p_N)$$ of _real_ numbers. As one of the -outcomes has to happen, we obtain the normalization condition: - -```math - \sum_i p_i = 1 -``` - -In quantum mechanics, we follow a similar approach of first identifying -the possible outcomes. But instead of describing the outcomes with real -numbers, we now associate a complex number $$\alpha_i$$ to each outcome -$$(\alpha_1, \cdots, \alpha_N)$$, with $$\alpha_i \in \mathbb{C}$$. Given -that they should also describe some probability they have to be -normalized to one, but now we have the condition: - -$$ -\sum_i |\alpha_i|^2 = 1 -$$ - -Aaronson claims that this is just measuring probabilities in in $L_2$ -norm. I would highly recommend his discussions on his blog for a more -instructive derivation[@quantum]. Next we will not use the traditional -lists, but the bra-ket notation, by writing: - -$$ -\left|\psi\right\rangle = \sum_i \alpha_i \left|i\right\rangle -$$ - -And given that these are complex vectors, we will measure their overlap -through a Hermitian scalar product - -$$ -\langle\psi_1 \psi_2\rangle=(\langle{\psi_2}| \psi_1\rangle)^*. -$$ - -## The coin toss - -The situation becomes particularly nice to follow for the two level -system or the coin toss. In classical systems, we will get heads up -$\uparrow$ with a certain probability p. So the inverse $\downarrow$ -arrives with likelyhood $1-p$. We would then classical list the -probabilities with $(p,1-p)$. In the quantum world we achieve such a -coin for example in spin 1/2 systems or qubits in general. We will then -describe the system through the state: - -$$ -\left|\psi\right\rangle = \alpha_\uparrow \left|\uparrow\right\rangle + \alpha_\downarrow \left|\downarrow\right\rangle \qquad \text{with} \; \langle\psi | \psi\rangle = 1. -$$ - -The next problem is how to act on the system in the classical world or -in the quantum world. - -## Quantum rules - -Having set up the space on which we want to act we have to follow the -rules of quantum mechanics. The informal way of describing is actually -nicely described by Chris Monroe [in this -video](https://youtu.be/CC7nlBM2cSM). We might summarize them as -follows: - -1. Quantum objects can be in several states at the same time. - -2. Rule number one only works when you are not looking. - -The more methematical fashion is two say that there two ways of -manipulating quantum states: - -1. Unitary transformations $\hat{U}$. - -2. Measurements. - -# Unitary transformations - -As states change and evolve, we know that the total probability should -be conserved. So we transform the state by some operator $\hat{U}$, -which just maps the state -$\left|\psi\right\rangle\xrightarrow[]{U}\left|\psi'\right\rangle$. -This should not change the norm, and we obtain the condition: - -$$ -\left\langle\psi\right|\hat{U}^\dag\hat{U} \left|\psi\right\rangle = 1\\ -\hat{U}^\dag\hat{U} = \mathbb{1} -$$ - -That's the very definition of unitary operators and -unitary matrices. Going back to the case of a coin toss, we see that we -can then transform our qubit through the unitary operator: - -$$ -\hat{U}=\frac{1}{\sqrt{2}}\left(\begin{array}{cc} -1 & -1\\ -1 & 1 -\end{array}\right) -$$ - -Applying it on the previously defined states $\uparrow$ -and $\downarrow$, we get the superposition state: - -$$ -\hat{U}\left|\uparrow\right\rangle = \frac{\left|\uparrow\right\rangle-\left|\downarrow\right\rangle}{\sqrt{2}}\\ -\hat{U}\left|\downarrow\right\rangle = \frac{\left|\uparrow\right\rangle+\left|\downarrow\right\rangle}{\sqrt{2}} -$$ - -As we use the unitary matrices we also see why we might -one to use complex numbers. Imagine that we would like to do something -that is roughly the square root of the unitary, which often just means -that the system should evolve for half the time as we will see later. If -we then have negative nummbers, they will immediately become imaginary. - -Such superposition would not be possible in the classical case, as -non-negative values are forbidden there. Actually, operations on -classical propability distributions are only possible if every entry of -the matrix is non-negative (probabilities are never negative right ?) -and each column adds up to one (we cannot loose something in a -transformation). Such matrices are called . - -# Observables and Measurements - -As much fun as it might be to manipulate a quantum state, we also have -to measure it and how it connects to the properties of the system at -hand. Any given physical quantity $A$ is associated with a Hermitian -operator $\hat{A} = \hat{A}^\dag$ acting in the Hilbert space of the -system, which we defined previously. Please, be utterly aware that those -Hermitian operators have absolutely no need to be unitary. However, any -unitary operator might be written as $\hat{U}= e^{i\hat{A}}$. - -In a _measurement_ , the possible outcomes are then the eigenvalues -$a_\alpha$ of the operator $\hat{A}$: - -$$ -\hat{A}\left|\alpha\right\rangle=a_{\alpha}\left|\alpha\right\rangle. -$$ - -The system will collapse to the corresponding -eigenvector and the probability of finding the system in state -$\left|\alpha\right\rangle$ is - -$$ -P(\left|\alpha\right\rangle)=||\hat{P}_{\left|\alpha\right\rangle} \left|\psi\right\rangle||^2 = \left\langle\psi\right| \hat{P}^{\dag}_{\left|\alpha\right\rangle} \hat{P}_{\left|\alpha\right\rangle} \left|\psi\right\rangle, -$$ - -where -$\hat{P}_{\left|\alpha\right\rangle}= \left|\alpha\right\rangle \left\langle\alpha\right|$. - -As for our previous examples, how would you measure them typically, i.e. -what would be the operator ? - -1. In atoms the operators will be angular moment, radius, vibrations - etc. - -2. For the occupation number we have nowadays number counting - photodectors. - -3. The position of an atom might be detected through high-resolution - CCD cameras. - -4. For the _measurement of the spin_, we typically correlate the - internal degree of freedom to the spatial degree of freedom. This is - done by applying a magnetic field gradient acting on the magnetic - moment $\hat{\vec{\mu}}$ , which in turn is associated with the spin - via $\hat{\vec{\mu}} = g \mu_B \hat{\vec{s}}/\hbar$, where $g$ is - the Landé $g$-factor and $\mu_B$ is the Bohr magneton . The energy - of the system is $\hat{H} = -\hat{\vec{\mu}} \cdot \vec{B}$. - -# Time Evolution - -Being able to access the operator values and intialize the wavefunction -in some way, we also want to have a prediction on its time-evolution. -For most cases of this lecture we can simply describe the system by the -non-relativistic **Schrödinger Equation.** It reads - -$$ -i\hbar\partial_t\left|\psi(t)\right\rangle=\hat{H}(t)\left|\psi(t)\right\rangle. -$$ - -In general, the Hamilton operator $\hat{H}$ is -time-dependent. For a time-independent Hamilton operator $\hat{H}$, we -can find eigenstates $\left|\phi_n\right\rangle$ with -corresponding eigenenergies $E_n$ : - -$$ -\hat{H}\left|\phi_n\right\rangle=E_n\left|\phi_n\right\rangle. -$$ - -The eigenstates $\left|\phi_n\right\rangle$ -in turn have a simple time evolution: - -$$ - \left|\phi_n(t)\right\rangle=\left|\phi_n(0)\right\rangle\cdot \exp{-i E_nt/\hbar}. -$$ - -If we know the initial state of a system - -$$ -\left|\psi(0)\right\rangle=\sum_n \alpha_n\left|\phi_n\right\rangle, -$$ - -where $\alpha_n=\langle\phi_n | \psi(0)\rangle$, we will -know the full dimension time evolution - -$$ -\left|\psi(t)\right\rangle=\sum_n\alpha_n\left|\phi_n\right\rangle\exp{-i E_n t/\hbar}. \;\, \text{(Schrödinger picture)} -$$ - -**Note.** Sometimes it is beneficial to work in the -Heisenberg picture, which works with static ket vectors -$\left|\psi\right\rangle^{(H)}$ and incorporates the time -evolution in the operators. [^1] In certain cases one would have to have -access to relativistic dynamics, which are then described by the **Dirac -equation**. However, we will only touch on this topic very briefly, as -it directly leads us into the intruiging problems of **quantum -electrodynamics**. - -## The Heisenberg picture - -As mentionned in the first lecture it can benefitial to work in the -Heisenberg picture instead of the Schrödinger picture. This approach is -widely used in the field of many-body physics, as it underlies the -formalism of the second quantization. To make the connection with the -Schrödinger picture we should remember that we have the formal solution -of - -$$ -\left|\psi(t)\right\rangle = \mathrm{e}^{-i\hat{H}t}\left|\psi(0)\right\rangle -$$ - -So, if we would like to look into the expectation value -of some operator, we have: - -$$ -\langle\hat{A}(t)\rangle = \left\langle\psi(0)\right|\mathrm{e}^{i\hat{H}t}\hat{A}_S\mathrm{e}^{-i\hat{H}t}\left|\psi(0)\right\rangle -$$ - -This motivates the following definition of the operator -in the Heisenberg picture: - -$$ - \hat{A}_H=\mathrm{e}^{i{\hat{H} t}/{\hbar}} \hat{A}_S \mathrm{e}^{-i{\hat{H} t}/{\hbar}} -$$ - -where $\exp{-i{\hat{H} t}/{\hbar}}$ is a time evolution -operator (N.B.: $\hat{H}_S = \hat{H}_H$). The time evolution of -$\hat{A}_H$ is: - -$$ - \frac{d}{dt} \hat{A}_H = \frac{i}{\hbar}\hat{H}\mathrm{e}^{i{\hat{H}t}/{\hbar}}\hat{A}_S \mathrm{e}^{-i{\hat{H} t}/{\hbar}}\\ - -\frac{i}{\hbar} \mathrm{e}^{i{\hat{H} t}/{\hbar}}\hat{A}_S \mathrm{e}^{-i{\hat{H}t}/{\hbar}}\hat{H}+\partial_t \hat{A}_H\\ - = \frac{i}{\hbar}\left[\hat{H},\hat{A}_H\right] + \mathrm{e}^{i{\hat{H}t}/{\hbar}}\partial_t\hat{A}_S\mathrm{e}^{-i{\hat{H}t}/{\hbar}} -$$ - -**Note.** In the Heisenberg picture the state vectors -are time-independent: - -$$ - \left|\psi\right\rangle_H \equiv \left|\psi(t=0)\right\rangle=\exp{i{\hat{H}}t/{\hbar}} \left|\psi(t)\right\rangle. -$$ - -Therefore, the results of measurements are the same in -both pictures: - -$$ - \left\langle\psi(t)\right|\hat{A}\left|\psi(t)\right\rangle = \left\langle\psi\right|_H \hat{A}_H \left|\psi\right\rangle_H. -$$ - -[^1]: - We will follow this route in the discussion of the two-level - system and the Bloch sphere. - -[^2002]: Dalibard Basdevant. Quantum Mechanics. Springer-Verlag, 2002 - -[^2006]: Jean Dalibard Jean-Louis Basdevant. The Quantum Mechanics Solver. Springer-Verlag, 2006. - -[^CT1]: Quantum Mechanics, Volume 1. - -[^CT2]: Quantum Mechanics, Volume 2. diff --git a/amo/lecture10.md b/amo/lecture10.md deleted file mode 100644 index 612b855..0000000 --- a/amo/lecture10.md +++ /dev/null @@ -1,282 +0,0 @@ ---- -author: -- Fred Jendrzejewski -order: 10 -title: Lecture 10 - Propagation of light in dielectric media ---- - -In this lecture we will study the propagation of light through a -dielectric medium like atomic gases. We will see that it is -characterized by the susceptibility and discuss the case of two-level -atoms. This sets the stage for the laser. - -Until now we focused on the properties of atoms and how can control them -through external fields. In this lecture, we will focus much more on the -properties of the light passing through a medium. - -# Introduction - -We would like to study the propagation of a electric field through an -ensemble of atoms as visualized in Fig. -[1](#fig-dielectric). We assume a -mono-chromatic plane wave to come in, such that we can write down the -electric field as: - -$$ -\vec{E}_{in}= E_0 \vec{\epsilon}e^{i kz -i\omega_L t} -$$ - -This incoming field will polarize the gas of dipoles. - -
- -
Propagation of a light field through a dielectric medium.
-
- -For the propagation we will do the following assumptions: - -- The atoms are independent. -- We can describe them as small dipoles. -- We can describe the light in the semi-classical approximation. - -We have already employed this picture in in the slightly abstract -formulation in Lecture 4, where we studied the evolution of the atoms in -electric fields and in Lecture 6 -concerning the transition rules in hydrogen. This allows us to calculate -the expectation value of the dipole operator through: - -$$ -\langle \vec{D}\rangle = \left\langle\psi\right|\vec{D}\left|\psi\right\rangle -$$ - -As already discussed in Lecture 6 we can then write it down as: - -$$ -\langle \vec{D}\rangle = E_0 \vec{\alpha} -$$ - -We call $\alpha$ the **polarizability**. For a large gas -with a constant density of dipoles $n$, we obtain a macroscopic -polarization of: - -$$ -\vec{P} = n \langle \vec{D}\rangle\\ -= n \vec{\alpha} E_0 -$$ - -This leads us then to identify the susceptibility of the -dielectric medium: - -$$ - -\vec{P} = \epsilon_0 \chi \vec{E}\\ -\chi = \frac{n \alpha}{\epsilon_0} -$$ - -To notes to this relation: - -1. The linear relationship between polarization and electric field is - only valid for weak electric fields. For stronger fields, higher - order terms become important. They are the fundamental ingredient of - non-linear optics. In general, we can write: - -$$ - P_i = \epsilon_0 \sum_{j}\chi_{ij}^{1}E_j+\epsilon_0 \sum_{jk}\chi_{ijk}^{2}E_jE_k + ... - - -$$ - -2. Given that $\chi$ and $\alpha$ are proportional to - $\langle D \rangle$, they can be complex. We will see that real and - imaginary part have very different interpretations. - -# Propagation of light - -At this stage we would like to understand the propagation of an electric -field through such a polarized medium. The general Maxwell equation -actually reads: - -$$ - -\nabla^2 \vec{E}-\frac{1}{c^2}\frac{\partial^2 \vec{E}}{\partial t^2}= \frac{1}{\epsilon_0 c^2}\frac{\partial^2 \vec{P}}{\partial t^2} -$$ - -This equation can be massively simplified by only -looking at a slowly-evolving envelope $\mathcal{E}(r,t)$ and -$\mathcal{P}(r,t)$, which are defined through: - -$$ -\vec{E} = \mathcal{E} e^{ikz-i \omega_L t}\\ -\vec{P} = \mathcal{P} e^{ikz-i \omega_L t}\\ -$$ - -As shown in more detail in [Chapter 4 of Lukin](http://lukin.physics.harvard.edu/wp-uploads/Papers/285b_notes_2005-1.Lily.pdf), the Maxwell equation reduces then to: - -$$ -\frac{\partial}{\partial z}\mathcal{E}+\frac{1}{c}\frac{\partial}{\partial t}\mathcal{E} = \frac{ik}{2\epsilon_0}\mathcal{P} -$$ - -This equation becomes especially transparent, if we investigate it for -very long times, such that we can perform a Fourier transformation and -obtain: - -$$ -\frac{\partial}{\partial z}\mathcal{E}= i\frac{\omega}{c}\mathcal{E} +\frac{ik}{2\epsilon_0}\mathcal{P} -$$ - -Finally, we can use the definition of the susceptibility to write: - -$$ -\frac{\partial}{\partial z}\mathcal{E}= i\left(\frac{\omega}{c} +\frac{k}{2} \chi(\omega)\right) \mathcal{E}\\ -\mathcal{E}(\omega, z) =E_0 e^{i\left(\frac{\omega}{c} +\frac{k}{2}\chi(\omega)\right)z} -$$ - -## Absorption and refraction - -The meaning of the susceptibility becomes especially clear for a -continuous wave, where $\omega\rightarrow 0$ and we obtain: -$$ -\mathcal{E}(\omega\rightarrow 0, z) =E_0 e^{i\frac{k\chi(0)}{2} z} -$$ - -We can then see that: - -- The imaginary part of the susceptibility leads to absorption on a - scale $l^{-1} = \frac{k}{2}\text{Im}(\chi(0))$ - -- The real part describes a phase shift. The evolution of the electric - field can be seen as propagating with a wavevector - $k \rightarrow k +\frac{k}{2}\text{Re}(\chi(0))$, so the dielectric - medium has a refractive index $n = 1 + \frac{\text{Re}(\chi(0))}{2}$ - -## Dispersion - -If the electric field has a certain frequency distribution, we might -have to perform the proper integral to obtain the time evolution, i.e.: -$$ -\mathcal{E}(t, z) =\int d\omega e^{-i\omega t}\mathcal{E}(\omega,0) e^{i\left(\frac{\omega}{c} +\frac{k}{2}\chi(\omega)\right)z} -$$ - -To solve the problem we can develop the susceptibility: -$$ -\chi(\omega) = \chi(0)+\frac{d\chi}{d\omega}\omega -$$ - -And we obtain: - -$$ -\mathcal{E}(t, z) =e^{izk\chi(0)/2} -\mathcal{E}(t-z/v_g, 0)\\ -v_g = \frac{c}{1+\frac{\omega_L}{2}\frac{d\chi}{d\omega}} -$$ - -So the group velocity is controlled by the derivative of the -susceptibility ! - -# Two level system - -After this rather general discussion, we will now employ it to -understand the action of two-level systems on the travelling beam. So we -will now focus on the influence of the atoms on the field in comparision -with the previous discussions. Further, we will have to take into -account the finite lifetime of the excited states in a phenomenological -manner. For a two level system with excited state -$\left|e\right\rangle$ and groundstate -$\left|g\right\rangle$, we can directly write down the -wavefunction as: - -$$ -\left|\psi\right\rangle = \gamma_g\left|g\right\rangle+ \gamma_e\left|e\right\rangle -$$ - -In this basis, the dipole element reads: -$$ -\langle D\rangle = \left\langle e\right|D\left|g\right\rangle \gamma_e^*\gamma_g\\ -= d \sigma_{eg} -$$ - -In the second line we introduced the notations: - -- $d = \left\langle e\right|D\left|g\right\rangle$ - -- The product $\gamma_e^*\gamma_g$ can identified with the - off-diagonal component of the density operator - $\sigma=\left|\psi\right\rangle\left\langle\psi\right|$. - We will often call it **coherence**. - -The Hamiltonian of this model reads then in the rotating -wave-approximation: - -$$ -\hat{H} = 0\left|g\right\rangle\left\langle g\right|+\hbar\delta \left|e\right\rangle\left\langle e\right| + \hbar\Omega\left[\left|e\right\rangle\left\langle g\right|+\left|g\right\rangle\left\langle e\right|\right]\\ -\Omega = d E/\hbar -$$ - -This is exactly the model that we discussed in the -lectures 3 and 4 [@Jendrzejewskib; @Jendrzejewskia]. We then found that -the time evolution might be described via: - -$$ -i\dot{\gamma}_g(t) = \Omega \gamma_e\\ -i\dot{\gamma}_e(t) = \delta \gamma_e +\Omega \gamma_g\\ -$$ - -We can combine them to the components of the density -operator, which then read: - -$$ -\sigma_{ij} = c_{i}^*c_j -$$ - -From these coefficients, we can now obtain the evolution -of the populations: - -$$ -\dot{N}_g = \dot{\sigma}_{gg} = \dot{\gamma}_{g}^*\gamma_g+ \gamma_{g}^*\dot{\gamma}_g\\ -= i\Omega(\sigma_{eg}-\sigma_{ge})\\ -\dot{N}_e = -\dot{N}_g -$$ - -So the total number of atoms stays automatically -conserved. As for the coherences we obtain: - -$$ -\dot{\sigma}_{eg} = \dot{\gamma}_{e}^*\gamma_g+ \gamma_{e}^*\dot{\gamma}_g\\ -= i\delta \sigma_{eg}+i (N_g-N_e)\Omega\\ -\dot{\sigma}_{ge}= -i\delta \sigma_{ge}-i (N_g-N_e)\Omega -$$ - -This density operator approach allows us to introduce spontaneous decay -in a very straight-forward fashion: - -- The time evolution of the excited state gets an additional term - $-\Gamma N_e$. - -- Atoms coming from the excited state relax to the ground state, so we - add a term $\Gamma N_e$. - -- The coherence decays also through a term $-\Gamma_2 \sigma_{ge}$. We - will use here for simplicity the limit of $\Gamma_2 = \Gamma/2$ - -So the full equations read now: - -$$ -\dot{N}_g = i\Omega(\sigma_{eg}-\sigma_{ge})+\Gamma N_e\\ -\dot{\sigma}_{ge}= -i\delta \sigma_{ge}-i (N_g-N_e)\Omega-\Gamma_2\sigma_{ge} -$$ - -At this stage we can find the steady-state solutions by setting -$\dot{N}_g = \dot{\sigma}_{ge} = 0$. This leads too: - -$$ - -N_e = \frac{1}{2}\frac{\Omega^2 \frac{\Gamma_2}{\Gamma}}{(\omega_0-\omega_L)^2+\Gamma_2^2+\Omega^2\frac{\Gamma_2}{\Gamma}} -$$ - -$$ - -\sigma_{ge} = i\frac{\Omega}{2}\frac{\Gamma_2-i(\omega_L-\omega_0)}{\Gamma_2^2+(\omega_0-\omega_L)^2+\Omega^2\Gamma_2/\Gamma} -$$ - -In the next lecture we will employ those results to -study the laser. diff --git a/amo/lecture2.md b/amo/lecture2.md deleted file mode 100644 index 3598f80..0000000 --- a/amo/lecture2.md +++ /dev/null @@ -1,331 +0,0 @@ ---- -author: - - Fred Jendrzejewski - - Selim Jochim -order: 2 -title: Lecture 2 - A few more cooking recipes for quantum mechanics ---- - -In this second lecture we will finish the discussion of the basic -cooking recipes and discuss a few of the consequences like the -uncertainty relation, the existance of wave packages and the Ehrenfest -theorem. - -In the first lecture we discussed briefly the basic -principles of quantum mechanics like operators, state vectors and the -Schrödinger equation. We will finish this discussion today and then -introduce the most important consequences. We will continue to closely -follow the discussion of the introductory chapter of Ref. [^2006] - -## Composite systems - -It is actually quite rare that we can label the system with a single -quantum number. Any atom will involve spin, position, angular momentum. -Other examples might just involve two spin which we observe. So the -question is then on how we label those systems. We then have two -questions to answer: - -1. How many labels do we need for a system to fully determine its - quantum state ? - -2. Once I know all the labels, how do I construct the full state out of - them ? - -We will actually discuss the second question first as it sets the -notation for the first question. - -### Entangled States - -In AMO we typically would like to characterize is the state of an -electron in a hydrogen atom. We need to define its angular momentum -label $L$, which might be 0, 1, 2 and also its electron spin $S$, which -might be $\{\uparrow, \downarrow\}$. It state is then typically labelled -as something like - -$$\left|L=0, S=\uparrow\right\rangle = \left|0,\uparrow\right\rangle$$ - -etc. - -Another, simple example is that of two spins, each one having two -possible states $\{\uparrow, \downarrow\}$. This is a standard problem -in optical communication, where you send correlated photons with a -certain polarization to different people. We will typically call them -Alice and Bob [^1]. - -We now would like to understand than if we can disentangle the -information about the different labels. Naively, we can now associate -with Alice one set of outcomes and describe it by some state -$\left|\psi_{A}\right\rangle$ and the Bob has another set -$\left|\psi_{B}\right\rangle$: - -$$ -\left|\psi_A\right\rangle= a_{\uparrow} \left|\uparrow_A\right\rangle+ a_{\downarrow} \left|\downarrow_A\right\rangle\\ -\left|\psi_B\right\rangle= b_{\uparrow} \left|\uparrow_B\right\rangle+ b_{\downarrow} \left|\downarrow_B\right\rangle -$$ - -The full state will then be described by the possible outcomes -$\{\uparrow_A\uparrow_B,\downarrow_A\uparrow_B,\uparrow_A\downarrow_B, \downarrow_A\downarrow_B\}$. -We can then write: - -$$ -\left|\psi\right\rangle = \alpha_{\uparrow\uparrow}(\left|\uparrow_A\right\rangle\otimes\left|\uparrow_B\right\rangle)+\alpha_{\uparrow\downarrow}(\left|\uparrow_A\right\rangle\otimes\left|\downarrow_B\right\rangle)+\alpha_{\downarrow\uparrow}(\left|\downarrow_A\right\rangle\otimes\left|\uparrow_B\right\rangle)+\alpha_{\downarrow\downarrow}(\left|\downarrow_A\right\rangle\otimes\left|\downarrow_B\right\rangle)\\ -= \alpha_{\uparrow\uparrow}\left|\uparrow\uparrow\right\rangle+\alpha_{\uparrow\downarrow}\left|\uparrow\downarrow\right\rangle+\alpha_{\downarrow\uparrow}\left|\downarrow \uparrow\right\rangle+\alpha_{\downarrow\downarrow}\left|\downarrow\downarrow\right\rangle -$$ - -So we will typically just plug the labels into a single -ket and drop indices, to avoid rewriting the tensor symbol each time. We -say that a state is _separable_, if we can write it as a product of the -two individual states as above: - -$$ -\left|\psi\right\rangle = \left|\psi_A\right\rangle\otimes\left|\psi_B\right\rangle\\ -=a_{\uparrow} b_\uparrow \left|\uparrow\uparrow\right\rangle+a_{\downarrow} b_\uparrow \left|\downarrow\uparrow\right\rangle+a_{\uparrow} b_\downarrow \left|\uparrow\downarrow\right\rangle+a_{\downarrow} b_\downarrow \left|\downarrow\downarrow\right\rangle -$$ - -All other states are called _entangled_. The most famous entangled -states are the Bell states: - -$$ -\left|\psi_\textrm{Bell}\right\rangle=\frac{\left|\uparrow\uparrow\right\rangle+\left|\downarrow\downarrow\right\rangle}{\sqrt{2}} -$$ - -In general we will say that the quantum system is formed by two -subsystems $S_1$ and $S_2$. If they are independent we can write each of -them as: - -$$ -\left|\psi_1\right\rangle=\sum_m^M a_m \left|\alpha_m\right\rangle,\\ -\left|\psi_2\right\rangle=\sum_n^N b_n \left|\beta_n\right\rangle. -$$ - -In general we will then write: - -$$ -\left|\psi\right\rangle=\sum_m^M \sum_n^N c_{mn}(\left|\alpha_m\right\rangle\otimes \left|\beta_n\right\rangle). -$$ - -So we can determine such a state by $M \times N$ numbers -$c_{mn}$ here. If the states are _separable_, we can write -$\left|\psi\right\rangle$ as a product of the individual -states: - -$$ -\left|\psi\right\rangle=\left|\psi_1\right\rangle\otimes\left|\psi_2\right\rangle=\left(\sum_m^M a_m \left|\alpha_m\right\rangle\right) \otimes \left(\sum_n^N b_n \left|\beta_n\right\rangle\right) -$$ - -$$ -\left|\psi\right\rangle=\sum_m^M \sum_n^N a_m b_n \left|\alpha_m\right\rangle \otimes \left|\beta_n\right\rangle. -$$ - -Separable states thus only describes a small subset of all possible -states. - -## Statistical Mixtures and Density Operator - -Having set up the formalism for writing down the full quantum state with -plenty of labels, we have to solve the next problem. As an -experimentalist, you will rarely measure all of them. This means that -you only perform a partial measurement and you have only partial -information of the system. The extreme case is the thermodynamic -ensemble, where we measure only temperature to describe $10^{23}$ -particles. - -A similiar problem arises for Alice and Bob. They typically measure the -state of the qubit in their lab without knowing what the other did. So -they need some way to describe the system locally. This is done through -the density operator approach. - -In the density operator approach the state of the system is described by -a Hermitian density operator - -$$ - \hat{\rho} = \sum_{n=1}^N p_n \left|\phi_n\right\rangle\left\langle\phi_n\right|. -$$ - -Here, $\left\langle\phi_n\right|$ are the -eigenstates of $\hat{\rho}$, and $p_n$ are the probabilities to find the -system in the respective states -$\left|\phi_n\right\rangle$. The trace of the density -operator is the sum of all probabilities $p_n$: - -$$ - \mathrm{tr}(\hat{\rho}) = \sum p_n = 1. -$$ - -For a pure state $\left|\psi\right\rangle$, we get $p_n=1$ -for only one value of $n$. For every other $n$, the probabilities -vanish. We thus obtain a "pure" density operator -$\hat{\rho}_{\text{pure}}$ which has the properties of a projection -operator: - -$$ -\hat{\rho}_{\text{pure}} = \left|\psi\right\rangle\left\langle\psi\right| \qquad \Longleftrightarrow \qquad \hat{\rho}^2 = \hat{\rho}. -$$ - -For the simple qubit we then have: - -$$ - \hat{\rho}= \left(\alpha_\uparrow\left|\uparrow\right\rangle+\alpha_\downarrow\left|\downarrow\right\rangle\right)\left(\alpha_\uparrow^*\left\langle\uparrow\right|+\alpha_\downarrow^*\left\langle\downarrow\right|\right)\\ - = |\alpha_\uparrow|^2\left|\uparrow\right\rangle\left\langle\uparrow\right|+|\alpha_\downarrow|^2\left|\downarrow\right\rangle\left\langle\downarrow\right|+\alpha_\downarrow\alpha_\uparrow^*\left|\downarrow\right\rangle\left\langle\uparrow\right|+\alpha_\uparrow\alpha_\downarrow^*\left|\uparrow\right\rangle\left\langle\downarrow\right| -$$ - -Then it is even simpler to write in matrix form: - -$$ - \hat{\rho}= \left(\begin{array}{cc} - |\alpha_\uparrow|^2&\alpha_\uparrow\alpha_\downarrow^*\\ - \alpha_\downarrow\alpha_\uparrow^*&|\alpha_\downarrow|^2 - \end{array}\right) -$$ - -For a thermal state on the other hand we have: - -$$ -\hat{\rho}_{\text{thermal}} = \sum_{n=1}^N \frac{e^{-\frac{E_n}{k_BT}}}{Z} \left|\phi_n\right\rangle\left\langle\phi_n\right|\text{ with }Z = \sum_{n=1}^N e^{-\frac{E_n}{k_BT}} -$$ - -With this knowledge we can now determine the result of a -measurement of an observable $A$ belonging to an operator $\hat{A}$. For -the pure state $\left|\psi\right\rangle$ we get: - -$$ -\langle \hat{A}\rangle = \left\langle\psi\right| \hat{A} \left|\psi\right\rangle. -$$ - -For a mixed state we get: - -$$ -\langle \hat{A}\rangle = \mathrm{tr}(\hat{\rho}\cdot \hat{A}) = \sum_n {p_n} \left\langle\phi_n\right| \hat{A} \left|\phi_n\right\rangle. -$$ - -The time evolution of the density operator can be -expressed with the von Neumann equation: - -$$ -i\hbar \partial_{t}\hat{\rho}(t) = [\hat{H}(t),\hat{\rho}(t)]. -$$ - -### Back to partial measurements - -We can now come back to the correlated photons sent to Alice and Bob, -sharing a Bell pair. They full density matrix is then especially simple: - -$$ - \hat{\rho}= \left(\begin{array}{cccc} - \frac{1}{2}& 0& 0 &\frac{1}{2}\\ - 0 & 0 & 0& 0\\ - 0&0&0&0\\ - \frac{1}{2}&0&0&\frac{1}{2} - \end{array}\right) -$$ - -Let us write the system as $S = S_A \otimes S_B$. If we are looking for -the density operator $\hat{\rho}_i$ of each individual, we can simply -write: - -$$ -\hat{\rho}_A=\mathrm{tr}_{B}(\hat{\rho}),\\ -\hat{\rho}_B=\mathrm{tr}_{A}(\hat{\rho}), -$$ - -where -$\hat{\rho}=\left|\psi\right\rangle\left\langle\psi\right|$ -and $\mathrm{tr}_{j}(\hat{\rho})$ is the trace over the Hilbert space of -subsystem $j$. - -To reduce the density matrix of the Bell state it is actually helpful to -write out the definitions: - -$$ -\mathrm{tr}_{B}(\hat{\rho}) = \left\langle\uparrow_B\right|\hat{\rho}\left|\uparrow_B\right\rangle+\left\langle\downarrow_B\right|\hat{\rho}\left|\downarrow_B\right\rangle\\ -=\frac{1}{2}\left(\left|\uparrow_A\right\rangle\left\langle\uparrow_A\right|+\left|\downarrow_A\right\rangle\left\langle\downarrow_A\right|\right) -$$ - -So we end up with the fully mixed state: - -$$ - \hat{\rho}_{A,B} = \left(\begin{array}{cc} - \frac{1}{2}&0\\ - 0&\frac{1}{2} - \end{array}\right) -$$ - -Alice and Bob are simply cossing a coin if they ignore -the outcome of the other member. But once they start comparing results -we will see that the quantum case can dramatically differ from the -classical case. This will be the content of lecture 12 [@entanglement]. - -## Important Consequences of the Principles - -### Uncertainty Relation - -The product of the variances o two noncommuting operators has a lower -limit: - -$$ - \Delta \hat{A} \cdot \Delta \hat{B} \geq \frac{1}{2} \left| \left\langle\left[\hat{A,\hat{B}}\right]\right\rangle \right|, -$$ - -where the variance is defined as -$\Delta \hat{A} = \sqrt{\left\langle\hat{A^2}\right\rangle-\left\langle\hat{A}^2\right\rangle}$. - -**Examples.** - -$$ -\left[ \hat{x}, \hat{p} \right] = i \hbar \\ -\left[ \hat{J}_i , \hat{J}_j \right] = i \hbar \epsilon_{ijk} \hat{J}_k -$$ - -**Note.** This is a statement about the _state_ itself, and not the -measurement! - -### Ehrenfest Theorem - -With the Ehrenfest theorem, one can determine the time evolution of the -expectation value of an operator $\hat{A}$: - -$$ - \frac{d}{dt}\left\langle\hat{A}\right\rangle=\frac{1}{i\hbar}\left\langle\left[\hat{A},\hat{H}\right]\right\rangle+\left\langle\partial_t\hat{A}(t)\right\rangle. -$$ - -If $\hat{A}$ is time-independent and -$\left[\hat{A},\hat{H}\right]=0$, the expectation value -$\left\langle\hat{A}\right\rangle$ is a constant of the -motion. - -### Complete Set of Commuting Observables - -A set of commuting operators -$\{\hat{A},\hat{B},\hat{C},\cdots,\hat{X}\}$ is considered a complete -set if their common eigenbasis is unique. Thus, the measurement of all -quantities $\{A,B,\cdots,X\}$ will determine the system uniquely. The -clean identification of such a Hilbert space can be quite challenging -and a nice way of its measurment even more. Coming back to our previous -examples: - -1. Performing the full spectroscopy of the atom. Even for the hydrogen - atom we will see that the full answer can be rather involved\... - -2. The occupation number is rather straight forward. However, we have - to be careful that we really collect a substantial amount of the - photons etc. - -3. Are we able to measure the full position information ? What is the - resolution of the detector and the point-spread function ? - -4. Here it is again rather clean to put a very efficient detector at - the output of the two arms \... - -5. What are the components of the spin that we can access ? The $z$ - component does not commute with the other components, so what should - we measure ? - -In the [third -lecture](https://www.authorea.com/326444/GsbfEypTdf4dvncV23L8_Q) of this -course will start to apply these discussions to the two-level system, -which is one of the simplest yet most powerful models of quantum -mechanics. - -[^1]: And if someone wants to listen the person is called Eve - -[^2006]: Jean Dalibard Jean-Louis Basdevant. The Quantum Mechanics Solver. Springer-Verlag, 2006. diff --git a/amo/lecture3.md b/amo/lecture3.md deleted file mode 100644 index c36a2ee..0000000 --- a/amo/lecture3.md +++ /dev/null @@ -1,363 +0,0 @@ ---- -author: - - Fred Jendrzejewski - - Selim Jochim -order: 3 -title: Lecture 3 - The two-level system ---- - -We are going to discuss the two-level system, it's static properties -like level splitting at avoided crossings and dynamical properties like -Rabi oscillations. - -After the previous discussions of some basic cooking recipes to quantum -mechanics in last weeks lectures, we will use them to understand the two-level system. A very detailled -discussion can be found in chapter 4 of Ref. [^CT1]. The importance of the -two-level system is at least three-fold: - -1. It is the simplest system of quantum mechanics as it spans a Hilbert - space of only two states. - -2. It is quite ubiquitous in nature and very widely used in atomic - physics. - -3. The two-level system is another word for the qubit, which is the - fundamental building block of the exploding field of quantum - computing and quantum information science. - - - -Examples for two-state systems. a) Benzene: In the ground state, the -electrons are delocalized. b) Ammonia: The nitrogen atom is either found -above or below the hydrogen triangle. The state changes when the -nitrogen atom tunnels. c) Molecular ion : The electron is either -localized near proton 1 or 2. - -Some of the many examples for two-level systems that can be found in -nature: - -- Spin of the electron: Up vs. down state - -- Two-level atom with one electron (simplified): Excited vs. ground - state - -- Structures of molecules, e.g., $NH_3$ - -- Occupation of mesoscopic capacitors in nanodevices. - -- Current states in superconducting loops. - -- Nitrogen-vacancy centers in diamond. - -## Hamiltonian, Eigenstates and Matrix Notation - -To start out, we will consider two eigenstates -$\left|0\right\rangle$, $\left|1\right\rangle$ -of the Hamiltonian $\hat{H}_0$ with - -$$ - \hat{H}_0\left|0\right\rangle=E_0\left|0\right\rangle, \qquad \hat{H}_0\left|1\right\rangle=E_1\left|1\right\rangle. -$$ - -Quite typically we might think of it as a two-level atom -with states 1 and 2. The eigenstates can be expressed in matrix -notation: - -$$ - \left|0\right\rangle=\left( \begin{array}{c} 1 \\ 0 \end{array} \right), \qquad \left|1\right\rangle=\left( \begin{array}{c} 0 \\ 1 \end{array} \right), -$$ - -so that $\hat{H}_0$ be written as a diagonal matrix - -$$ - \hat{H}_0 = \left(\begin{array}{cc} E_0 & 0 \\ 0 & E_1 \end{array}\right). -$$ - -If we would only prepare eigenstates the system would be -rather boring. However, we typically have the ability to change the -Hamiltonian by switching on and off laser or microwave fields [^1]. We -can then write the Hamiltonian in its most general form as: - -$$ - -\hat{H} = \frac{\hbar}{2}\left( \begin{array}{cc} \Delta & \Omega_x - i\Omega_y\\ \Omega_x +i\Omega_y & -\Delta \end{array} \right) -$$ - -Sometimes we will also chose the definition: - -$$ -\Omega = |\Omega| e^{i\varphi}=\Omega_x + i\Omega_y -$$ - -It is particularly useful for the case in which the -coupling is created by a laser. Another useful way of thinking about the -two-level system is as a spin in a magnetic field. Let us remind us of -the definitions of the of the spin-1/2 matrices: - -$$ -s_x = \frac{\hbar}{2}\left(\begin{array}{cc} -0 & 1\\ -1 & 0 -\end{array} -\right)~ -s_y = \frac{\hbar}{2}\left(\begin{array}{cc} -0 & -i\\ -i & 0 -\end{array} -\right)~s_z =\frac{\hbar}{2} \left(\begin{array}{cc} -1 & 0\\ -0 & -1 -\end{array} -\right) -$$ - -We then obtain: - -$$ - -\hat{H} = \mathbf{B}\cdot\hat{\mathbf{s}}\text{ with }\mathbf{B} = (\Omega_x, \Omega_y, \Delta) -$$ - -You will go through this calculation in the excercise of -this week. - -### Case of no perturbation $\Omega = 0$ - -This is exactly the case of no applied laser fields that we discussed -previously. We simply removed the energy offset -$E_m = \frac{E_0+E_1}{2}$ and pulled out the factor $\hbar$, such that -$\Delta$ measures a frequency. So we have: - -$$ -E_0 = E_m+ \frac{\hbar}{2}\Delta\\ -E_1 = E_m- \frac{\hbar}{2}\Delta -$$ - -We typically call $\Delta$ the energy difference between -the levels or the **detuning**. - -### Case of no detuning $\Delta = 0$ - -Let us suppose that the diagonal elements are exactly zero. And for -simplicity we will also keep $\Omega_y =0$ as it simply complicates the -calculations without adding much to the discussion at this stage. The -Hamiltonian reads then: - -$$ -\hat{H} = \frac{\hbar}{2}\left( \begin{array}{cc} 0 & \Omega\\ \Omega &0 \end{array} \right) -$$ - -Quite clearly the states $\varphi_{1,2}$ are not the eigenstates of the -system anymore. How should the system be described now ? We can once -again diagonalize the system and write - -$$ -\hat{H}\left|\varphi_{\pm}\right\rangle = E_{\pm}\left|\varphi_\pm\right\rangle\\ -E_{\pm} = \pm\frac{\hbar}{2}\Omega\\ -\left|\varphi_\pm\right\rangle = \frac{\left|0\right\rangle\pm\left|1\right\rangle}{\sqrt{2}} -$$ - -Two important consequences can be understood from this -result: - -1. The coupling of the two states shifts their energy by $\Omega$. This - is the idea of level repulsion. - -2. The coupled states are a superposition of the initial states. - -This is also a motivation the formulation of the 'bare' system for -$\Omega = 0$ and the 'dressed' states for the coupled system. - -### General case - -Quite importantly we can solve the system completely even in the general -case. By diagonalizing the Hamiltonian we obtain: - -$$ - E_\pm = \pm \frac{\hbar}{2} \sqrt{\Delta^2+|\Omega|^2} -$$ - -The energies can be nicely summarized as in Fig. - - - -The Eigenstates then read: - -$$ -\left|\psi_+\right\rangle=\cos\left(\frac{\theta}{2}\right) \mathrm{e}^{-i{\varphi}/{2}}\left|0\right\rangle+\sin\left(\frac{\theta}{2}\right) \mathrm{e}^{i{\varphi}/{2}}\left|1\right\rangle, -$$ - -$$ -\left|\psi_-\right\rangle=-\sin\left(\frac{\theta}{2}\right) \mathrm{e}^{-i{\varphi}/{2}}\left|0\right\rangle+\cos\left(\frac{\theta}{2}\right) \mathrm{e}^{i{\varphi}/{2}}\left|1\right\rangle, -$$ - -where - -$$ - -\tan(\theta) = \frac{|\Omega|}{\Delta} -$$ - -## The Bloch sphere - -While we could just discuss the details of the above state in the -abstract, it is extremely helpful to visualize the problem on the Bloch -sphere. The idea of the Bloch sphere is that the we have a complex wave -function of well defined norm and two free parameters. So it seems quite -natural to look for a good representation of it. And this is the Bloch -sphere as drawn below - - - -We will see especially its usefulness especially as we discuss the -dynamics of the two-state system. - -## Dynamical Aspects - -### Time Evolution of $\left|\psi(t)\right\rangle$ - -After the static case we now want to investigate the dynamical -properties of the two-state system. We calculate the time evolution of -$\left|\psi(t)\right\rangle = c_0(t)\left|0\right\rangle + c_1(t)\left|1\right\rangle$ -with the Schrödinger equation and the perturbed Hamiltonian: - -$$ -i\hbar \frac{d}{dt}\left|\psi(t)\right\rangle=\hat{H}\left|\psi(t)\right\rangle,\\ -i \frac{d}{dt}\left(\begin{array}{c} c_0(t) \\ c_1(t) \end{array}\right) = \frac{1}{2}\left( \begin{array}{cc} \Delta & \Omega \\ \Omega^* & -\Delta \end{array} \right) \left(\begin{array}{c} c_0(t) \\ c_1(t) \end{array} \right). -$$ - -We have two coupled differential equations and we luckily already know -how to solve them as we have calculated the two eigenenergies in the -previous section. For the state -$\left|\psi(t)\right\rangle$ we get - -$$ - \left|\psi(t)\right\rangle=\lambda \mathrm{e}^{-i{E_+}t/{\hbar}} \left|\psi_+\right\rangle + \mu \mathrm{e}^{-i{E_-}t/{\hbar}} \left|\psi_-\right\rangle -$$ - -with the factors $\lambda$ and $\mu$, which are defined -by the initial state. The most common question is then what happens to -the system if we start out in the bare state -$\left|0\right\rangle$ and then let it evolve under -coupling with a laser ? So what is the probability to find it in the -other state $\left|1\right\rangle$: - -$$ -P_1(t)=\left|\left\langle 1|\psi(t)\right\rangle\right|^2. -$$ - -As a first step, we have to apply the initial condition -to and express -$\left|\varphi\right\rangle$ in terms of $|\psi_+$ and $|\psi_-$: - -$$ -\left|\psi(0)\right\rangle \overset{!}{=} \left|0\right\rangle\\ - = \mathrm{e}^{i{\varphi}/{2}} \left[ \cos\left( \frac{\theta}{2}\right) \left|\psi_+\right\rangle-\sin\left(\frac{\theta}{2}\right)\left|\psi_-\right\rangle\right] -$$ - -By equating the coefficients we get for $\lambda$ and -$\mu$: - -$$ -\lambda = \mathrm{e}^{i{\varphi}/{2}}\cos\left(\frac{\theta}{2}\right), \qquad \mu = -\mathrm{e}^{i{\varphi}/{2}}\sin\left(\frac{\theta}{2}\right). -$$ - -One thus gets: - -$$ -\hspace{-2mm} P_1(t)=\left|\left\langle 1|\psi(t)\right\rangle\right|^2 \\ -= \left|\mathrm{e}^{i\varphi} \sin\left(\frac{\theta}{2}\right)\cos\left(\frac{\theta}{2}\right)\left[\mathrm{e}^{-i{E_+}t/{\hbar}} - \mathrm{e}^{-i{E_-}t/{\hbar}}\right]\right|^2\\ -= \sin^2(\theta)\sin^2\left(\frac{E_+-E_-}{2\hbar}t\right) -$$ - -$P_1(t)$ can be expressed with $\Delta$ and $\Omega$ -alone. The obtained relation is called Rabi's formula: - -$$ - P_1(t)=\frac{1}{1+\left(\frac{\Delta}{|\Omega|}\right)^2}\sin^2\left(\sqrt{|\Omega|^2+\Delta^2}\frac{t}{2}\right) -$$ - - - -### Visualization of the dynamics in the spin picture - -While the previous derivation might be the standard one, which certainly -leads to the right results it might not be the most intuitive way of -thinking about the dynamics. They become actually quite transparent in -the spin language and on the Bloch sphere. So let us go back to the -formulation of the Hamiltonian in terms of spins as at the beginning of the lecture. - -How would the question of the time evolution from $0$ to $1$ and back go -now ? Basically, we would assume that the spin has been initialize into -one of the eigenstates of the $z$-basis and now starts to rotate in some -magnetic field. How ? This can be nicely studied in the Heisenberg -picture, where operators have a time evolution. In the Heisenberg -picture we have: - -$$ -\frac{d}{dt} \hat{s}_i = \frac{i}{\hbar}\left[\hat{H},\hat{s}_i\right]\\ -\frac{d}{dt} \hat{s}_i = \frac{i}{\hbar}\sum_j B_j \left[\hat{s}_j,\hat{s}_i\right]\\ - - -$$ - -So to understand we time evolution, we only need to -employ the commutator relationships between the spins: - -$$ -= \hbar is_z~~[ s_y, s_z] = \hbar is_x~~[ s_z, s_x] = \hbar is_y -$$ - -For the specific case of $B_x=\Omega$, $B_y = B_z = 0$, -we have then: - -$$ -\frac{d}{dt} \hat{s}_x = 0\\ -\frac{d}{dt} \hat{s}_y = -\Omega \hat{s}_z\\ -\frac{d}{dt} \hat{s}_z = \Omega \hat{s}_y - - -$$ - -So applying a field in x-direction leads to a rotation of the spin -around the $x$ axis with velocity $\Omega$. We can now use this general -picture to understand the dynamics as rotations around an axis, which is -defined by the different components of the magnetic field. - -## A few words on the quantum information notation - -The qubit is THE basic ingredient of quantum computers. A nice way to -play around with them is actually the [IBM Quantum -experience](https://quantum-computing.ibm.com/). However, you will -typically not find Pauli matrices etc within these systems. The typical -notation there is: - -- $R_x(\phi)$ is a rotation around the x-axis for an angle $\phi$. - -- Same holds for $R_y$ and $R_z$. - -- $X$ denotes the rotation around the x axis for an angle $\pi$. So it - transforms $\left|1\right\rangle$ into - $\left|0\right\rangle$ and vise versa. - -- $Z$ denotes the rotation around the x axis for an angle $\pi$. So it - transforms $\left|+\right\rangle$ into - $\left|-\right\rangle$ and vise versa. - -The most commonly used gate is actually one that we did not talk about -at all, it is the _Hadamard_ gate, which transforms -$\left|1\right\rangle$ into -$\left|-\right\rangle$ and -$\left|0\right\rangle$ into -$\left|+\right\rangle$: - -$$ -\hat{H}\left|1\right\rangle = \left|-\right\rangle ~ \hat{H}\left|0\right\rangle = \left|+\right\rangle\\ -\hat{H}\left|-\right\rangle = \left|1\right\rangle ~ \hat{H}\left|+\right\rangle = \left|0\right\rangle -$$ - -In the forth lecture we will see how it is that a time-dependent field can actually couple two atomic states, which are normally of very different energies. - -[^1]: See the discussions of the next lecture - -[^CT1]: Quantum Mechanics, Volume 1. Cohen-Tannoudji, Diu, Laloe. Wiley-VCH, 2006. diff --git a/amo/lecture4.md b/amo/lecture4.md deleted file mode 100644 index a2ac6b5..0000000 --- a/amo/lecture4.md +++ /dev/null @@ -1,318 +0,0 @@ ---- -author: - - Fred Jendrzejewski - - Selim Jochim -order: 4 -title: Lecture 4 - Atoms in oscillating fields ---- - -In the lecture, we will see how a time dependent coupling allows us to -engineer a new Hamiltonian. Most importantly, we will discuss the -resonant coupling of two levels and the decay of a single level to a -continuum. - -In the last lecture, we discussed the properties of two -coupled levels. However, we did not elaborate at any stage how such a -system might emerge in a true atom. Two fundamental questions come to -mind: - -1. How is it that a laser allows to treat two atomic levels of very - different energies as if they were degenerate ? - -2. An atom has many energy levels $E_n$ and most of them are not - degenerate. How can we reduce this complicated structure to a - two-level system? - -The solution is to resonantly couple two of the atom's levels by -applying an external, oscillatory field, which is very nicely discussed -in chapter 12 of Ref. [^2002] [^Cohen_Tannoudji_1998]. We will discuss -important and fundamental properties of systems with a time-dependent -Hamiltonian. - -We will discuss a simple model for the atom in the oscillatory field. We -can write down the Hamiltonian: - -$$ - \hat{H} = \hat{H}_0 + \hat{V}(t). -$$ - -Here, $\hat{H}_0$ belongs to the atom and $V(t)$ -describes the time-dependent field and its interaction with the atom. We -assume that $\left|n\right\rangle$ is an eigenstate of -$\hat{H}_0$ and write: - -$$ -\hat{H}_0\left|n\right\rangle = E_n \left|n\right\rangle. -$$ - -If the system is initially prepared in the state -$\left|i\right\rangle$, so that - -$$ -\left|\psi(t=0)\right\rangle = \left|i\right\rangle, -$$ - -what is the probability - -$$ -P_m(t) = \left|\left\langle m|\psi(t)\right\rangle\right|^2 -$$ - -to find the system in the state -$\left|m\right\rangle$ at the time $t$? - -## Evolution Equation - -The system $\left|\psi(t)\right\rangle$ can be expressed as -follows: - -$$ -\left|\psi(t)\right\rangle = \sum_n \gamma_n(t) \mathrm{e}^{-i{E_n}t/{\hbar}} \left|n\right\rangle, -$$ - -where the exponential is the time evolution for -$\hat{H}_1 =~0$. We plug this equation in the Schrödinger equation and -get: - -$$ -i\hbar \sum_n\left(\dot{\gamma}_n(t)-i\frac{E_n}{\hbar}\gamma_n(t)\right)\mathrm{e}^{-i{E_n}t/{\hbar}}\left|n\right\rangle = \sum_n \gamma_n(t) \mathrm{e}^{-i{E_n}t/{\hbar}}\left(\hat{H}_0 + \hat{V}\right) \left|n\right\rangle\\ -\Longleftrightarrow i\hbar\sum_n \dot{\gamma}_n(t) \mathrm{e}^{-i{E_n}t/{\hbar}} \left|n\right\rangle - = \sum_n \gamma_n(t) \mathrm{e}^{-i{E_n}t/{\hbar}} \hat{V} \left|n\right\rangle -$$ - -If we multiply the equation with $\left\langle k\right|$ we -obtain a set of coupled differential equations - -$$ -i\hbar \dot{\gamma}_k \mathrm{e}^{-i{E_k}t/{\hbar}} = \sum_n \gamma_n \mathrm{e}^{-{E_n}t/{\hbar}}\left\langle k\right|\hat{V}\left|n\right\rangle,\\ -i\hbar \dot{\gamma}_k = \sum_n \gamma_n \mathrm{e}^{-i {(E_n-E_k)}t/{\hbar}} \left\langle k\right| \hat{V}\left|n\right\rangle -$$ - -with initial conditions -$\left|\psi(t=0)\right\rangle$. They determine the full -time evolution. - -The solution of this set of equations depends on the details of the -system. However, there are a few important points: - -- For short enough times, the dynamics are driving by the coupling - strength - $\left\langle k\right|\hat{V} \left|n\right\rangle$. - -- The right-hand sight will oscillate on time scales of $E_n-E_k$ and - typically average to zero for long times. - -- If the coupling element is an oscillating field - $\propto e^{i\omega_L t}$, it might put certain times on resonance - and allow us to avoid the averaging effect. It is exactly this - effect, which allows us to isolate specific transitions to a very - high degree [^1] - -We will now see how the two-state system emerges from these -approximations and then set-up the perturbative treatment step-by-step. - -## Rotating wave approximation - -We will now assume that the coupling term in indeed an oscillating field -with frequency $\omega_L$, so it reads: - -$$ -\hat{V} = \hat{V}_0 \cos(\omega_Lt) = \frac{\hat{V}_0}{2} \left(e^{i\omega_lt}+e^{-i\omega_lt}\right) -$$ - -We will further assume the we would like use it to -isolate the transition $i\rightarrow f$, which is of frequency -$\hbar \omega_0 = E_f - E_i$. The relevant quantity is then the detuning -$\delta = \omega_0 - \omega_L$. If it is much smaller than any other -energy difference $E_n-E_i$, we directly reduce the system to the -following closed system: - -$$ -i\dot{\gamma}_i = \gamma_f \mathrm{e}^{-i \delta t} \Omega\\ -i\dot{\gamma}_f = \gamma_i \mathrm{e}^{i \delta t}\Omega^* -$$ - -Here we defined -$\Omega = \left\langle i\right| \frac{\hat{V_0}}{2\hbar}\left|f\right\rangle$. -And to make it really a time-of the same form as the two-level system -from the last lecture, we perform the transformation -$\gamma_f = \tilde{\gamma}_f e^{i\delta t}$, which reduces the system -too: - -$$ -i \dot{\gamma}_i = \Omega \tilde{\gamma}_f \\ -i\dot{\tilde{\gamma}}_f = \delta \tilde{\gamma}_f + \Omega^* \gamma_i -$$ - -This has exactly the form of the two-level system that -we studied previously. - -### Adiabatic elimination - -We can now proceed to the quite important case of far detuning, where -$\delta \gg \Omega$. In this case, the final state -$\left|f\right\rangle$ gets barely populated and the time -evolution can be approximated to to be zero [@lukin]. - -$$ -\dot{\tilde{\gamma}}_f = 0 -$$ - -We can use this equation to eliminate $\gamma$ from the -time evolution of the ground state. This approximation is known as -_adiabatic elimination_: - -$$ -\tilde{\gamma}_f = \frac{\Omega^*}{\delta}\gamma_i\\ -\Rightarrow i\hbar \dot{\gamma}_i = \frac{|\Omega|^2}{\delta} \tilde{\gamma}_i -$$ - -The last equation described the evolution of the initial -state with an energy $E_i = \frac{|\Omega|^2}{\delta}$. If the Rabi -coupling is created through an oscillating electric field, i.e. a laser, -this is know as the **light shift** or the **optical dipole potential**. -It is this concept that underlies the optical tweezer for which Arthur -Ashkin got the [nobel prize in the 2018](https://www.nobelprize.org/uploads/2018/10/advanced-physicsprize2018.pdf). - -### Example: Atomic clocks in optical tweezers - -A neat example that ties the previous concepts together is [the recent -paper](https://arxiv.org/abs/1908.05619v2). The experimental setup is visualized in the figure below. - - - -While nice examples these clocks are still far away from the best clocks -out there, which are based on [optical lattice clocks and ions](http://dx.doi.org/10.1103/revmodphys.87.637). - -## Perturbative Solution - -The more formal student might wonder at which points all these rather -hefty approximation are actually valid, which is obviously a very -substantial question. So, we will now try to isolate the most important -contributions to the complicated system through perturbation theory. For -that we will assume that we can write: - -$$ -\hat{V}(t) =\lambda \hat{H}_1(t) -$$ - -, where $\lambda$ is a small parameter. In other words -we assume that the initial system $\hat{H}_0$ is only weakly perturbed. -Having identified the small parameter $\lambda$, we make the -_perturbative ansatz_ - -$$ - \gamma_n(t) = \gamma_n^{(0)} + \lambda \gamma_n^{(1)} + \lambda^2 \gamma_n^{(2)} + \cdots -$$ - -and plug this ansatz in the evolution equations and sort -them by terms of equal power in $\lambda$. - -The $0$th order reads - -$$ - i\hbar \dot{\gamma}_k^{(0)} = 0. -$$ - -The $0$th order does not have a time evolution since we -prepared it in an eigenstate of $\hat{H}_0$. Any evolution arises due -the coupling, which is at least of order $\lambda$. - -So, for the $1$st order we get - -$$ - -i\hbar \dot{\gamma}_k^{(1)} = \sum_n \gamma_n^{(0)} \mathrm{e}^{-i(E_n-E_k)t/{\hbar}}\left\langle k\right|\hat{H}_1\left|n\right\rangle. -$$ - -### First Order Solution (Born Approximation) - -For the initial conditions $\psi(t=0)=\left|i\right\rangle$ -we get - -$$ -\gamma_k^{(0)}(t) = \delta_{ik}. -$$ - -We plug this in the $1$st order approximation and obtain the rate for the system to go -to the final state $\left|f\right\rangle$: - -$$ -i \hbar\dot{\gamma}^{(1)} = \mathrm{e}^{i(E_f-E_i)t/{\hbar}} \left\langle f\right|\hat{H}_1 \left|i\right\rangle -$$ - -Integration with $\gamma_f^{(1)}(t=0) = 0$ yields - -$$ - -\gamma_f^{(1)} = \frac{1}{i\hbar}\int\limits_0^t \mathrm{e}^{i(E_f-E_i)t'/{\hbar}} \left\langle f\right| \hat{H}_1(t')\left|i\right\rangle \mathop{}\!\mathrm{d}t', -$$ - -so that we obtain the probability for ending up in the -final state: - -$$ -P_{i\to f}(t) = \lambda^2\left| \gamma_f^{(1)}(t)\right|^2. -$$ - -Note that $P_{i\to f}(t) \ll 1$ is the condition for -this approximation to be valid! - -**Example 1: Constant Perturbation.** - - - -Sketch of a constant perturbation. - -We apply a constant perturbation in the time interval -$\left[0,T\right]$, as shown in above. If we use the expression for $\gamma_f^{(1)}$ and set $\hbar \omega_0 = E_f-E_i$, we get - -$$ -\gamma_f^{(1)}(t\geq T) = \frac{1}{i \hbar} \left\langle f\right|\hat{H}_1\left|i\right\rangle \frac{\mathrm{e}^{i\omega_0 T}-1}{i\omega_0}, -$$ - -and therefore - -$$ -P_{i\to f} = \frac{1}{\hbar^2}\left|\left\langle f\right|\hat{V}\left|i\right\rangle\right|^2 \underbrace{\frac{\sin^2\left(\omega_0\frac{T}{2}\right)}{\left(\frac{\omega_0}{2}\right)^2}}_{\mathrm{y}(\omega_0,T)}. -$$ - -A sketch of $\mathrm{y}(\omega_0,T)$ is shown below - - - -A sketch of y - -We can push this calculation to the extreme case of -$T\rightarrow \infty$. This results in a delta function, which is peaked -round $\omega_0 = 0$ and we can write: - -$$ -P_{i\to f} = T\frac{2\pi}{\hbar^2}\left|\left\langle f\right|\hat{V}\left|i\right\rangle\right|^2\delta(\omega_0) -$$ - -This is the celebrated **Fermi's golden rule**. - -**Example 2: Sinusoidal Perturbation.** For the perturbation - -$$ -\hat{H}_1(t) = \left\{ \begin{array}{ccl} \hat{H}_1\mathrm{e}^{-i\omega t} && \text{for}\; 0 < t < T \\ 0 &&\text{otherwise}\end{array} \right. -$$ - -we obtain the probability - -$$ -P_{i\to f} (t \geq T) = \frac{1}{\hbar^2} \left|\left\langle f\right|\hat{V}\left|i\right\rangle\right|^2 \mathrm{y}(\omega_0 - \omega, T). -$$ - -At $\omega = \left|E_f - E_i\right|/\hbar$ we are on resonance. - -In the fifth lecture, we will start to dive into the hydrogen atom. - -[^1]: - This is the idea behind atomic and optical clocks, which work - nowadays at $10^{-18}$. - -[^2002]: Jean Dalibard Jean-Louis Basdevant. Quantum Mechanics. Springer-Verlag, 2002. - -[^Cohen_Tannoudji_1998]: Claude Cohen-Tannoudji, Jacques Dupont-Roc, Gilbert Grynberg. Atom-Photon Interactions. Wiley-VCH Verlag GmbH, 1998. diff --git a/amo/lecture5.md b/amo/lecture5.md deleted file mode 100644 index f10b173..0000000 --- a/amo/lecture5.md +++ /dev/null @@ -1,353 +0,0 @@ ---- -author: - - Fred Jendrzejewski - - Selim Jochim -order: 5 -title: Lecture 5 - The Hydrogen Atom ---- - -In this lecture we will first discuss the diagonalization of the -harmonic oscillator and then discuss the main properties of the hydrogen -atom. - -In the previous lectures we have seen how to treat eigenstates of the -two-level system and then how we can derive its effective emergence from -some complex level structure if we apply oscillating -fields. - -Today, we will increase the complexity towards the harmonic oscillator -and the hydrogen atom. - -# The harmonic oscillator - -The harmonic oscillator is another great toy model to understand certain -properties of quantum mechanical systems. Most importantly, it is a -great introduction into the properties of bound systems and ladder -operators. The basic Hamiltonian comes along in a rather innocent -fashion, namely: - -$$ - -\hat{H} = \frac{\hat{p}^2}{2m}+ \frac{m\omega^2}{2}\hat{x}^2 -$$ - -The two variables $\hat{p}$ and $\hat{x}$ are -non-commuting $[\hat{x}, \hat{p}] = i\hbar$, so they cannot be measured -at the same time. We would now like to put the operator into a diagonal -form such that it reads something like: - -$$ - -\hat{H} = \sum_n \epsilon_n \left|n\right\rangle\left\langle n\right| -$$ - -We will follow he quite closely [this discussion](https://ocw.mit.edu/courses/nuclear-engineering/22-51-quantum-theory-of-radiation-interactions-fall-2012/lecture-notes/MIT22_51F12_Ch9.pdf). - -## The ladder operators - -We would like to get the spectrum first. So make the equation look a bit -nicer we will define $\hat{p} = \hat{P} \sqrt{m\omega}$ and -$\hat{x} = \frac{\hat{X}}{\sqrt{m\omega}}$ such that we have: - -$$ - -\hat{H} = \frac{\omega}{2}\left(\hat{P}^2 + \hat{X}^2\right) -$$ - -[^1] The next step is then to define the ladder -operators: - -$$ -\hat{a} = \frac{1}{\sqrt{2\hbar}}\left(\hat{X}+i\hat{P}\right)\\ -\hat{a}^\dag = \frac{1}{\sqrt{2\hbar}}\left(\hat{X}-i\hat{P}\right)\\ -$$ - -At this stage we can just try to rewrite the Hamiltonian -in terms of the operators, such that: - -$$ -\hat{a}^\dag \hat{a} = \frac{1}{2\hbar}(\hat{X}-i\hat{P})(\hat{X}+i\hat{P})\\ -= \frac{1}{2\hbar}(\hat{X}^2 +\hat{P}^2 -\hbar)\\ - \frac{1}{2}(X^2 +\hat{P}^2 ) = \hbar \left(\hat{a}^\dag \hat{a}-\frac{1}{2}\right) -$$ - -So the Hamiltonian can now be written as: - -$$ -\hat{H} = \hbar \omega \left(\hat{N} + \frac{1}{2}\right)\text{ with } \hat{N} = a^\dag a -$$ - -At this stage we have diagonalized the Hamiltonian, what -remains to be understood is the the values that $\hat{a}^\dag a$ can -take. - -## Action of the ladder operators in the Fock basis - -We would like to understand the basis, which is defined by: - -$$ -\hat{N} \left|n\right\rangle = n \left|n\right\rangle -$$ - -The non-commutation between $\hat{X}$ and $\hat{P}$ is -translated to the ladder operators as: - -$$ -= \frac{1}{2\hbar}[\hat{X}+iP,\hat{X}-i\hat{P}] = 1\\ -~[\hat{N}, a] = -\hat{a}\\ -~[\hat{N}, a^\dag] = a^\dag -$$ - -From these relationship we can show then that: - -$$ -\hat{a}\left|n\right\rangle = \sqrt{n}\left|n-1\right\rangle\\ -\hat{a}^\dag \left|n\right\rangle = \sqrt{n+1}\left|n+1\right\rangle\\ -$$ - -These relations are the motivation for the name ladder -operators as they connect the different eigenstates. And they are -raising/lowering the quantum number by one. Finally we have to find the -lower limit. And this is quite naturally 0 as -$n = \left\langle n\right|\hat{N}\left|n\right\rangle = \left\langle\psi_1\right|\left|\psi_1\right\rangle\geq 0$. -So we can construct the full basis by just defining the action of the -lowering operator on the zero element -$a\left|0\right\rangle = 0$ and the other operators are -then constructed as: - -$$ -\left|n\right\rangle = \frac{(a^\dag)^n}{\sqrt{n!}}\left|0\right\rangle -$$ - -## Spatial representation of the eigenstates - -While we now have the spectrum it would be really nice to obtain the -spatial properties of the different states. For that we have to project -them onto the x basis. Let us start out with the ground state for which -we have $\hat{a}\left|0\right\rangle= 0$: - -$$ -\left\langle x\right|\frac{1}{\sqrt{2\hbar}}\left(\sqrt{m\omega}\hat{x} +i \frac{1}{\sqrt{m\omega}}\hat{p}\right)\left|0\right\rangle= 0\\ -\left(\sqrt{\frac{m\omega}{\hbar}}x + \sqrt{\frac{\hbar}{m\omega}}\partial_x\right)\psi_0(x)= 0\\ -\Rightarrow \psi_0(x) \propto e^{-\frac{x^2}{2a_{HO}^2}} -$$ - -This also introduces the typical distance in the quantum -harmonic oscillator which is given by $a_{HO} =\sqrt{\hbar/m\omega}$. -The other states are solutions to the defining equations: - -$$ -\psi_n(x) = \frac{1}{\sqrt{n!}2^n}\left(\sqrt{m\omega}x - \frac{1}{\sqrt{m\omega}}\frac{d}{dx}\right)^n \psi_0(x)\\ -\psi_n(x) = \frac{1}{\sqrt{n!}2^n}H_n(x) \psi_0(x)\\ -$$ - -where $H_n(x)$ are the Hermite polynoms. - -# The hamiltonian of the hydrogen atom - -The hydrogen atom plays at central role in atomic physics as it is _the_ -basic ingredient of atomic structures. It describes a single _electron_, -which is bound to the nucleus of a single _proton_. As such it is the -simplest of all atoms and can be described analytically within high -precision. This has motivated an enormous body of literature on the -problem, which derives all imaginable properties in nauseating detail. -Therefore, we will focus here on the main properties and only sketch the -derivations, while we will reference to the more technical details. - - - -Sketch of the hydrogen atom with the relative coordinate and the -coordinates of the proton and the electron. - -For the hydrogen atom as shown in above, we can write down the Hamiltonian - -$$ -\hat{H}=\frac{{{\hat{\vec{p}}}^2_\text{p}}}{2m_\text{p}} + \frac{{\hat{\vec{p}}}^2_\text{e}}{2m_\text{e}} - \frac{Ze^2}{4\pi\epsilon_0 r}, -$$ - -where $Ze$ is the nuclear charge. To solve the problem, -we have to find the right Hilbert space. We can not solve the problem of -the electron alone. If we do a separation of coordinates, i.e., we -separate the Hamiltonian into the the center of mass and the relative -motion, we get - -$$ -\hat{H} = \underbrace{\frac{{\hat{\vec{p}}}^2_{\textrm{cm}}}{2M}}_{\hat{H}_{\textrm{cm}}} + \underbrace{\frac{{\hat{\vec{p}}}^2_\text{r}}{2\mu}- \frac{Ze^2}{4\pi\epsilon_0r}}_{\hat{H}_{\text{atom}}} -$$ - -with the reduced mass $1/\mu=1/m_\text{e}+1/m_\text{p}$. -If the state of the hydrogen atom $\left|\psi\right\rangle$ -is an eigenstate of $\hat{H}$, we can write - -$$ -\hat{H}\left|\psi\right\rangle=\left(\hat{H}_\textrm{cm}+\hat{H}_{\text{atom}} \right)\left|\psi_\textrm{cm}\right\rangle\otimes \left|\psi_\text{atom}\right\rangle \\ -= \left( E_{\text{kin}} + E_\text{atom} \right) \left|\psi\right\rangle. -$$ - -Both states are eigenstates of the system. The state -$\left|\psi\right\rangle$ can be split up as shown since -the two degrees of freedom are generally not entangled. - -![Sketch of the hydrogen atom with the relative coordinate and the -coordinates of the proton and the electron. -](figures/Bildschirmfoto-2018-09-28-um-16-07-07/Bildschirmfoto-2018-09-28-um-16-07-07){#261310 -width="0.70\\columnwidth"} - -The wave function of the system then reads: - -$$ -\psi(\vec{R},\vec{r}) = \left( \left\langle R\right| \otimes \left\langle r\right|\right)\left( \left|\psi_\textrm{cm}\right\rangle \otimes \left|\psi_{\text{atom}}\right\rangle\right)\\ -= \psi(\vec{R}) \cdot \psi (\vec{r}) -$$ - -Our goal is now to find the eigenfunctions and -eigenenergies of $\hat{H}_\text{atom}$. In order to further divide the -Hilbert space, we can use the symmetries. - -# Conservation of orbital angular momentum - -$\hat{H}_\text{atom}$ possesses spherical symmetry, which implies that -**orbital angular momentum** $\hat{\vec{L}}$ is conserved. It is defined -as: - -$$ -\hat{\vec{L}}=\hat{\vec{r}} \times \hat{\vec{p}} -$$ - -In other words, we have: - -$$ -= 0 -$$ - -Let us show first that the kinetic term commutes with -the angular momentum operator, We will employ the commutator -relationships for position and momentum $[x_i, p_j]=i\hbar$ and the -relationship $[A,BC] = [A,B]C+B[A,C]$ and -$[f(x), p_x] = [x,p_x]\frac{\partial f(x)}{\partial x}$. So we obtain: - -$$ -= [p_x^2,xp_y]-[p_y^2,yp_x] \\ - = [p_x^2,x]p_y-[p_y^2,y] p_x\\ - =i\hbar 2 p_xp_y-2i\hbar p_y p_x\\ - = 0 -$$ - -Analog calculations show that $L_y$ and $L_z$ commute. -In a similiar fashion we can verify that the potential term commutes -with the different components of $\hat{\vec{L}}$ - -$$ -= [\frac{1}{r}, xp_y]-[\frac{1}{r}, yp_x]\\ -= x[\frac{1}{r}, p_y]-y[\frac{1}{r}, p_x]\\ -= -x \frac{yi\hbar}{2r^{3/2}}+y\frac{xi\hbar}{2r^{3/2}}\\ -=0 -$$ - -We can therefore decompose the eigenfunctions of the -hydrogen atom over the eigenbasis of the angular momentum operator. A -detailled discussion of the properties of $\vec{L}$ can be found in -[Appendix B of Hertel](http://dx.doi.org/10.1007/978-3-642-54322-7). To find the eigenbasis, we first need to -identify the commutation relationships between the components of -$\hat{\vec{L}}$. We can calculate them following commutation -relationships: - -$$ -= [yp_z - zp_y, zp_x - xp_z]\\ -=[yp_z, zp_x]-[yp_z,xp_z]- [zp_y, zp_x] + [zp_y,xp_z]\\ -=[yp_z, zp_x] + [zp_y,xp_z]\\ -=[yp_z, z]p_x +x[zp_y,p_z]\\ -=-i\hbar yp_x +i\hbar xp_y\\ -= i\hbar L_z -$$ - -This relationship holds for all the other components too -and we have in general: - -$$ -= i\hbar \epsilon_{ijk}L_k -$$ - -The orbital angular momentum is therefore part of the -large family of angular momentum operators, which also comprises spin -etc. In particular the different components are not independent, and -therefore we cannot form a basis out the three components. A suitable -choice is actually to use the following combinations: - -$$ -\hat{\vec{L}}^2\left|l,m_l\right\rangle = \hbar^2 l (l+1)\left|l,m_l\right\rangle\\ -\hat{L}_z\left|l,m_l\right\rangle = \hbar m_l \left|l,m_l\right\rangle -$$ - -- $l$ is a non-negative integer and it is called the **orbital angular - momentum quantum number**. - -- $m_l$ takes values $-l, -l+1, ..., l-1, l$ and it is sometimes - called the **projection of the angular momentum**. - -## Eigenfunction of the angular momentum operators - -Having identified the relevant operators it would be nice to obtain a -space representation of them. This works especially nicely in spherical -coordinates. There, we get - -$$ -\hat{L}_z= - i \hbar \partial_{\phi}\\ -\hat{\vec{L}}^2 = - \hbar^2 \left[\frac{1}{\sin(\theta)}\partial_{\theta} \left( \sin(\theta) \partial_\theta\right) + \frac{1}{\sin^2(\theta)} \partial_{\phi\phi} \right]. -$$ - -The corresponding wave functions are - -$$ -\left\langle\theta, \phi | l,m_l\right\rangle = Y_{lm}(\theta,\phi). -$$ - -Where $Y_{lm}(\theta, \phi)$ are the **spherical harmonics**. - -# The radial wave equation - -Given that we now know that the angular momentum is conserved for the -hydrogen atom, we can actually rewrite the Hamltonian in terms of the angular momentum as -we find: - -$$ -\hat{H}_\text{atom} = \hat{H}_r + \frac{\hat{L}}{2\mu r^2}+V(r) \\ -\hat{H}_r = -\frac{\hbar^2}{2\mu}\frac{1}{r^2}\frac{\partial}{\partial r}\left(r^2\frac{\partial}{\partial r}\right) -$$ - -We can now separate out the angular part and decompose -it over the eigenfunctions of $\hat{\vec{L}}$, such that we make the -ansatz [^2]: - -$$ -\psi (r,\theta,\phi) = R(r) Y_{lm}(\theta,\phi) -$$ - -We can plug this separated ansatz in the Schrödinger equation. We -already solved the angular in the discussion of the angular momentum and -for the radial part we obtain: - -$$ --\frac{\hbar^2}{2\mu}\frac{1}{r}\frac{d^2(rR(r))}{dr^2} - \frac{Ze^2}{4\pi\epsilon_0 r} R(r) + \frac{\hbar^2}{2\mu}\frac{l(l+1)}{r^2}R(r) = ER(r) -$$ - -Substituting $R(r)=u(r)/r$ leads to - -$$ --\frac{\hbar^2}{2\mu}\frac{d^2}{dr^2}u(r) +\underbrace{ \left( -\frac{Ze^2}{4\pi\epsilon_0 r} + \frac{\hbar^2}{2\mu} \frac{l(l+1)}{r^2} \right)}_{V_{\text{eff}}} u(r) = E \, u(r), -$$ - -which is known as the "radial wave equation". It is a -very general result for _any_ central potential. It can also be used to -describe unbound states ($E>0$) that occur during scattering. - -In the next lecture we will look into the energy scales of the hydrogen atom and then start -coupling different levels. - -[^1]: - The commutator between $\hat{X}$ and $\hat{P}$ is still as for $x$ - and $p$. - -[^2]: - Only if the system is in a well-defined angular momentum state, we - can write it down like this. diff --git a/amo/lecture6.md b/amo/lecture6.md deleted file mode 100644 index c32c5e2..0000000 --- a/amo/lecture6.md +++ /dev/null @@ -1,380 +0,0 @@ ---- -author: - - Fred Jendrzejewski - - Selim Jochim -order: 6 -title: Lecture 6 - The dipole approximation in the hydrogen atom ---- - -We will continue with some properties of the hydrogen atom. First -compare it to the harmonic oscillator, then look into dipole transitions -and end with the coupling to static magnetic fields. - -In the last lecture, we discussed the basic properties of the -hydrogen atom and found its eigenstates. We will now summarize the most -important properties and look into its orbitals. From that we will -understand the understand the interaction with electromagnetic waves and -introduce the selection rules for dipole transitions. - -# The energies of Hydrogen and its wavefunctions - -In the last lecture, we looked into hydrogen and saw that we could write -it's Hamiltonian as: - -$$ -\hat{H}_\text{atom} = \hat{H}_r + \frac{\hat{L}}{2\mu r^2}+V(r) \\ -\hat{H}_r = -\frac{\hbar^2}{2\mu}\frac{1}{r^2}\frac{\partial}{\partial r}\left(r^2\frac{\partial}{\partial r}\right) -$$ - -We could then separate out the angular part and -decompose it as: - -$$ -\psi (r,\theta,\phi) = \frac{u(r)}{r} Y_{lm}(\theta,\phi) -$$ - -The radial wave equation reads then: - -$$ - --\frac{\hbar^2}{2\mu}\frac{d^2}{dr^2}u(r) +\underbrace{ \left( -\frac{Ze^2}{4\pi\epsilon_0 r} + \frac{\hbar^2}{2\mu} \frac{l(l+1)}{r^2} \right)}_{V_{\text{eff}}} u(r) = E \, u(r), -$$ - -## Energy scales - -We can now make the last equation dimensionless, by rewriting: - -$$ -r = \rho \tilde{a}_{0} -$$ - -So we rewrite: - -$$ --\frac{\hbar^2}{2\mu \tilde{a}_{0}^2}\frac{d^2}{d\rho^2}u(r) + \left( -\frac{Ze^2}{4\pi\epsilon_0\tilde{a}_{0}}\frac{1}{\rho} + \frac{\hbar^2}{2\mu \tilde{a}_{0}^2} \frac{l(l+1)}{\rho^2} \right) u(r) = E \, u(r), -$$ - -This allows us to measure energies in units of: - -$$ -E = \epsilon R_{y,\textrm{m}}\\ -R_{y,\textrm{m}} = -\frac{\hbar^2}{2\mu \tilde{a}_{0}^2} -$$ - -The equation reads then: - -$$ -\frac{d^2}{d\rho^2}u(\rho) + \left( \frac{\mu Ze^2 \tilde{a}_{0}}{\hbar^2 4\pi\epsilon_0}\frac{2}{\rho} - \frac{l(l+1)}{\rho^2} \right) u(\rho) = \epsilon u(\rho), -$$ - -If we finally set - -$$ -\tilde{a}_{0}=\frac{4\pi\epsilon_0 \hbar^2}{\mu Z e^2} -$$ - -We obtain the especially elegant formulation: - -$$ -\frac{d^2}{d\rho^2}u(\rho) + \left( \frac{2}{\rho} - \frac{l(l+1)}{\rho^2} \right) u(\rho) = \epsilon u(\rho), -$$ - -We typically call $\tilde{a}_{0}$ the **Bohr radius** -for an atom with reduced mass $\mu$ and with a nucleus with charge -number $Z$. $R_{y,\textrm{m}}$ is the **Rydberg energy** of such an -atom. - -The universal constant is defined for the infinite mass limit -$\mu \approx m_e$ and for $Z=1$. As a length scale we introduce the Bohr -radius for infinite nuclear mass - -$$ -a_0 = \frac{4\pi\epsilon_0\hbar^2}{m_e e^2} = 0.5\text{angstrom} = 0.05 \text{nm}. -$$ - -The energy scale reads: - -$$ -R_{y,\infty} = \frac{m_e e^4}{32 \pi^2 \epsilon_0^2 \hbar^2}\\ -\approx 2.179e-18\textrm{J}\\ - \approx e \times 13.6\textrm{eV}\\ -\approx h \times 3289\textrm{THz} -$$ - -So if we excite the hydrogen atom for time scales of a -few attoseconds, we will coherently create superposition states of all -existing levels. But which ones ? And at which frequency ? - -## Solution of the radial wave equation - -At this stage we can have a look into the energy landscape: - - - -Energy potential of the hydrogen atom - -The energies read then - -$$ -E_n = -\frac{R_{y,\textrm{m}}}{n^2} \qquad \text{with} \qquad n=1,2,3,\cdots -$$ - -for $l=0$ and - -$$ -E_n = -\frac{R_{y,\textrm{m}}}{n^2} \qquad \text{with} \qquad n=2,3,4,\cdots -$$ - -for $l=1$. Despite the different effective potentials, we get the -same eigenstates. This looks like an accidental degeneracy. Actually, -there is a hidden symmetry which comes from the so-called "Runge-Lenz" -vector. It only occurs in an attractive $1/r$-potential . This -vector reads: $$\mathbf{A} =\mathbf{p}\times\mathbf{L}-\mathbf{r}$$ - -Finally, we can also visualize the radial wavefunctions for the hydrogen -atom as shown below - - - -Associated with these radial wavefunctions, we also have the angular -profiles. Where $Y_{lm}(\theta, \phi)$ are the **spherical harmonics** -as shown below - - - -Their shape is especially important for understanding the possibility of -coupling different orbits through electromagnetic waves. - -# The electric dipole approximation - -Below you see the interaction between an atom and an electromagnetic wave $\vec{E}$ with -wave vector $\vec{k}$. The states $\text{|g>}$ and $\text{|e>}$ stand -for the ground and excited state and $\hbar\omega_0$ is the energy of -the resonant transition between the states. - - - -We consider an atom which is located in a radiation field. By resonant -coupling with the frequency $\omega_0$, it can go from the ground state -$\left|g\right\rangle$ to the excited state -$\left|e\right\rangle$. - -The potential energy of a charge distribution in a homogeneous -electromagnetic field $\vec{E}$ is: - -$$ -E_\text{pot} = \sum_i q_i \vec{r}_i\cdot \vec{E}. -$$ - -If the upper limit of the sum is 2, we obtain the dipole -moment - -$$ -\vec{D} = e \vec{r}. -$$ - -For the hydrogen atom, the distance corresponds to the -Bohr radius. - - - -**Note.** Apart from the monopole, the dipole potential is the lowest -order term of the multipole expansion of the scalar potential $\phi$: - -$$ -\phi \left( \vec{r} \right) = \frac{1}{4\pi\epsilon_0}\frac{\vec{D}\cdot\vec{r}}{|\vec{r}|^3}\\ -\vec{E}(\vec{r})= \vec{\nabla}\phi(\vec{r}) = \frac{ 3 \left(\vec{D}\cdot \vec{r}\right) \vec{r}/{|\vec{r}|^2}- \vec{D}}{4\pi\epsilon_0|\vec{r}|^3}. -$$ - -For the dipole approximation we consider the size of the atom and -compare it to the wavelength $\lambda$ of the electromagnetic field: - -$$ -\left\langle|r|\right\rangle \sim 1\text{angstrom}\ll \lambda \sim 10^3\text{angstrom} -$$ - -- Therefore, we assume that the field is homogeneous in space and omit - the spatial dependence: - -$$ - E(r,t) \approx E(t) - - - - -$$ - -- The correction term resulting from the semi-classical dipole - approximation then is - -$$ - \hat{H}_1(t)=-e\hat{\vec{r}} \cdot \vec{E}(t) = -\hat{\vec{D}} \cdot \vec{E}(t) - - - - -$$ - -- Why can the magnetic field be ignored in this approximation? The - velocity of an electron is $\sim \alpha c$. The hydrogen atom only - has small relativistic corrections. If we compare the modulus of the - magnetic and the electric field, we get: - -$$ - \left| \vec{B} \right| = \frac{|\vec{E}|}{c} -$$ - -The electric field contribution thus dominates. Now we choose - -$$ -\vec{E} = E_0 \vec{\epsilon} \cos \left(\omega t - \vec{k} \cdot \vec{r}\right) -$$ - -and do time-dependent perturbation theory: - -$$ -\left|\psi(t)\right\rangle = \gamma_1(t) \mathrm{e}^{-iE_1t/\hbar} \left|1\right\rangle + \gamma_2(t) \mathrm{e}^{-iE_2t/\hbar} \left|2\right\rangle\\ -+\sum_{n=3}^\infty \gamma_n \mathrm{e}^{-iE_nt/\hbar} \left|n\right\rangle -$$ - -As initial condition we choose - -$$ - \gamma_i(0) = \left\{ \begin{array}{ccc} 1 &\text{for}& i=1 \\ 0 &\text{for}& i>1 \end{array} \right. -$$ - -We write $\omega_0 = (E_2-E_1)/\hbar$ and get to first -order $\hat{\vec{D}}$: - -$$ -\gamma_2(t) = \overbrace{\frac{E_0}{2\hbar} \left\langle 2|\hat{\vec{D}}\cdot \vec{\epsilon}|1\right\rangle}^{\text{Rabi frequency }\Omega} \underbrace{\left(\frac{\mathrm{e}^{i(\omega_0 + \omega)t}-1}{\omega_0 + \omega} + \frac{\mathrm{e}^{i(\omega_0 - \omega)t}-1}{\omega_0 - \omega}\right)}_{\text{time evolution of the system}} -$$ - -The term before the round brackets is called dipole -matrix element: - -$$ - -\left\langle 2|\hat{\vec{D}}\cdot \vec{\epsilon}\,|1\right\rangle =e \int \psi_2\left(\vec{r}\right) \cdot \vec{r} \cdot \vec{\epsilon} \cdot \psi_1\left(\vec{r}\right) \mathop{}\!\mathrm{d}\vec{r}. -$$ - - - -# Selection rules - -We can now look into the allowed transition in the atom as they are what -we will typically observe within experiments. - -## Change of parity - -The parity operator is defined as: - -$$ -\hat{P}\psi(\vec{r}) = \psi(-\vec{r}) -$$ - -For the eigenfunction we have: - -$$ -\hat{P} \psi(\vec{r}) = \lambda \psi(\vec{r})\\ -\lambda = \pm 1 -$$ - -The eigenvalues are called _odd_ and _even_. From the -definition of the dipole operator we can see that it is of odd parity. -What about the parity of the states that it is coupling ? If they have -both the same parity than the whole integral will disappear and no -dipole transition can appear. - -We can become more concrete for the given eigenfunctions as we have -within spherical coordinates: - -$$ -(r, \theta, \phi) \rightarrow (r, \pi -\theta, \phi+\pi) -$$ - -For the orbitals of the hydrogen atom we then have -explicitly: - -$$ -\hat{P}\psi_{nlm}(r, \theta, \phi) = R_{nl}(r)Y_{lm}(\pi -\theta, \phi+\pi)\\ -= (-1)^l R_{nl}(r)Y_{lm}(, \theta, \phi) -$$ - -This gives us the first selection rule that the -**orbital angular momentum has to change for dipole transitions** -$\Delta l = \pm 1$. - -- $s$ orbitals are only coupled to $p$ orbitals through dipole - transitions. - -- $p$ orbitals are only coupled to $s$ and $d$ orbitals through dipole - transitions. - -## Coupling for linearly polarized light - -Having established the need for parity change, we also need to -investigate the influence of the polarization of the light, which enters -the dipole operator through the vector $\epsilon$. In the simplest case -the light has linear polarization ($\pi$ polarized) and we can write: - -$$ -\vec{E}(t) = \vec{e}_zE_0 \cos(\omega t +\varphi) -$$ - -This means that the dipole transition element is now given by: - -$$ -\left\langle 2\right|\vec{D}\cdot\vec{e}_z\left|1\right\rangle = e \int \psi_2(\vec{r}) z \psi_1\left(\vec{r}\right) \mathop{}\!\mathrm{d}\vec{r} -$$ - -We can now transform z into the spherical coordinates -$z= r \cos(\theta) = r\sqrt{\frac{4\pi}{3}}Y_{10}(\theta, \phi)$. We can -further separate out the angular part of the integral to obtain: - -$$ -\left\langle 2\right|\vec{D}\cdot\vec{e}_z\left|1\right\rangle \propto e \int \sin(\theta) d\theta d\varphi Y_{l',m'}(\theta, \varphi) Y_{10}(\theta, \phi) Y_{l,m}(\theta, \varphi) -$$ - -This element is only non-zero if $m = m'$ (see [appendix -C of Hertel 2015](http://dx.doi.org/10.1007/978-3-642-54322-7) for all the gorious details). - - - -Above are the dipole selection rules for different polarizations of light. - -## Circularly polarized light - -Light has not just linear polarization, but it might also have some -circular polarization. In this case we can write: - -$$ -\vec{E}(t) = \frac{E_0}{\sqrt{2}} \left(\cos(\omega t +\varphi)\vec{e}_x + \sin(\omega t +\varphi)\vec{e}_y\right)\\ -\vec{E}(t) = \text{Re}\left(\vec{e}_+ E_0 e^{-i\omega t +\phi}\right)\\ -\vec{e}_\pm = \frac{\vec{e}_x\pm i\vec{e}_y}{\sqrt{2}} -$$ - -So light with polarization $\vec{\epsilon} = \vec{e}_+$ -is called right-hand circular ($\sigma^+$) and -$\vec{\epsilon} = \vec{e}_-$ is called left-hand circular ($\sigma^-$). -Let us now evaluate the transition elements here. The dipole operator -element boils now down to the evaluation of the integral: - -$$ -\left\langle l',m',n'\right|x+iy\left|l,m,n\right\rangle -$$ - -As previously we can express the coupling term in -spherical coordinates: - -$$ -\frac{x+iy}{\sqrt{2}} = -r \sqrt{\frac{4\pi}{3}}Y_{11}(\theta, \varphi) -$$ - -Evaluation of the integrals lead now to the rule the -projection of the quantum number has to change $m' = m+1$. In a similiar -fashion we find for left-hand circular light the selection rule -$m' = m - 1$. - -In the next lecture, we will investigate the influence of -perturbative effects and see how the fine structure arises. diff --git a/amo/lecture7.md b/amo/lecture7.md deleted file mode 100644 index 1f16b5c..0000000 --- a/amo/lecture7.md +++ /dev/null @@ -1,345 +0,0 @@ ---- -author: - - Fred Jendrzejewski - - Selim Jochim -order: 7 -title: Lecture 7 - Beyond the 'boring' hydrogen atom ---- - -In this lecture we will use the hydrogen atom to study static -perturbations in form of external magnetic fields and relativistic -effects, leading to the fine structure splitting. - -We spend quite some time on the properties of the hydrogen atom in the -previous lectures [@Jendrzejewski; @atom]. However, we completely -neglected any effects of quantum-electrodynamics and relativistic -physics. In this lecture we will study, why this is a good approximation -for the hydrogen atom and then investigate in a perturbative fashion the -terms. Most importantly, we will introduce that coupling between the -orbital angular momentum and the spin of the electron, which leads to -the fine splitting. - -## Perturbation theory - -Up to now have studied the hydrogen atom to find its eigensystem and -then studied how it evolves under the presence of oscillating electric -fields. This allowed us to understand in more detail the idea of -eigenstates and then of time-dependent perturbation theory. However, one -of the most important concepts that can be introduced very nicely on the -hydrogen atom is stationnary perturbation theory in form of external -magnetic fields or relativistic corrections. We will remind you of -perturbation theory here and then apply it to some simple cases. - -We can now simply write down the problem as: - -$$ -\left(\hat{H}_0+\lambda \hat{W}\right)\left|\psi_m\right\rangle = E_m\left|\psi_m\right\rangle -$$ - -$\lambda$ is a very small parameter and $\hat{H}_0$ is -describing the hydrogen atom system. We will note the eigenvalues and -eigenstates of this system as: - -$$ - -\hat{H}_0\left|\varphi_n\right\rangle = \epsilon_n \left|\varphi_n\right\rangle -$$ - -While, we do not know the exact solution of -$\left|\psi_m\right\rangle$ and the energy $E_m$, we decide -to decompose them in the following expansion of the small parameter -$\lambda$: - -$$ -\left|\psi_m\right\rangle = \left|\psi_m^{(0)}\right\rangle + \lambda\left|\psi_m^{(1)}\right\rangle+\lambda^2\left|\psi_m^{(2)}\right\rangle+O(\lambda^3)\\ -E_m = E_m^{(0)} +\lambda E_m^{(1)} + \lambda^2 E_m^{(2)}+O(\lambda^3)\, -$$ - -To zeroth order in $\lambda$ we obtain: - -$$ -\hat{H}_0\left|\psi_m^{(0)}\right\rangle = E_m^{(0)}\left|\psi_m^{(0)}\right\rangle -$$ - -So it is just the unperturbed system and we can -identify: - -$$ -\left|\psi_m^{(0)}\right\rangle = \left|\varphi_m\right\rangle~~E_m^{(0)} = \epsilon_m -$$ - -For the first order we have to solve - -$$ - -(\hat{H}_0-E_m^{(0)}) \left|\psi_m^{(1)}\right\rangle + (\hat{W}-E_m^{(1)})\left|\psi_m^{(0)}\right\rangle= 0\\ -(\hat{H}_0-\epsilon_m) \left|\psi_m^{(1)}\right\rangle + (\hat{W}-E_m^{(1)})\left|\varphi_m\right\rangle= 0 -$$ - -We can multiply the whole equation by -$\left\langle\varphi_m\right|$ from the right. As -$\left\langle\varphi_m\right|\hat{H}_0= \epsilon_m\left\langle\varphi_m\right|$, -the first term cancels out. Hence, we obtain: - -$$ - -\boxed{E_m^{(1)} = \left\langle\varphi_m\right|\hat{W}\left|\varphi_m\right\rangle} -$$ - -We now also need to obtain the correction to the -eigenstate. For that, we put the solution for the energy into the Ansatz to obain: - -$$ -(\hat{H}_0-\epsilon_m) \left|\psi_m^{(1)}\right\rangle + (\hat{W}\left|\varphi_m\right\rangle-\left|\varphi_m\right\rangle\left\langle\varphi_m\right|\hat{W}\left|\varphi_m\right\rangle)= 0 -$$ - -We can now multiply the whole equation by -$\left\langle\varphi_i\right|$ from the right and obtain: - -$$ -(\epsilon_i-\epsilon_m)\left\langle\varphi_i\right|\left|\psi_m^{(1)}\right\rangle+\left\langle\varphi_i\right|\hat{W}\left|\varphi_m\right\rangle = 0 -$$ - -By rewriting the above equation, this directly gives us -the decompositon of the $\left|\psi_m^{(1)}\right\rangle$ -onto the original eigenstates and have: - -$$ - -\boxed{\left|\psi_m^{(1)}\right\rangle = \sum_{i\neq m} \frac{\left\langle\varphi_i\right|\hat{W}\left|\varphi_m\right\rangle}{(\epsilon_m-\epsilon_i)}\left|\varphi_i\right\rangle} -$$ - -And we end the calculation with second order pertubation -in $\lambda$ - -$$ -(\hat{H}_0-E_m^{(0)}) \left|\psi_m^{(2)}\right\rangle + (\hat{W}-E_m^{(1)})\left|\psi_m^{(1)}\right\rangle-E_m^{(2)} \left|\psi_m^{(0)}\right\rangle= 0\\ -(\hat{H}_0-\epsilon_m) \left|\psi_m^{(2)}\right\rangle + (\hat{W}-E_m^{(1)})\left|\psi_m^{(1)}\right\rangle-E_m^{(2)} \left|\varphi_m\right\rangle= 0\\ -$$ - -We can multiply once again whole equation by -$\left\langle\varphi_m\right|$ from the right, which -directly drops the first term. The term -$E_m^{(1)}\left\langle\varphi_m\right|\left|\psi_m^{(1)}\right\rangle$ -drops out as the first order perturbation does not contain a projection -onto the initial state. So we can write: - -$$ -E_m^{(2)}= \left\langle\varphi_m\right|\hat{W}\left|\psi_m^{(1)}\right\rangle -$$ - -Plugging in our solution, we obtain: - -$$ -\boxed{E_m^{(2)} = \sum_{i\neq m} \frac{|\left\langle\varphi_i\right|\hat{W}\left|\varphi_m\right\rangle|^2}{(\epsilon_m-\epsilon_i)}} -$$ - -## Static external magnetic fields - -A first beautiful application of perturbation theory is the study of -static magnetic fields (see Ch 1.9 and Ch. 2.7.1 of [@Hertel_2015] for -more details). The motion of the electron around the nucleus implies a -magnetic current - -$$ -I = \frac{e}{t} = \frac{ev}{2\pi r} -$$ - -and this implies a magnetic moment $M = I A$, with the -enclosed surface $A=\pi r^2$. It may be rewritten as: - -$$ -\vec{M}_L = -\frac{e}{2m_e}\vec{L} =-\frac{\mu_B}{\hbar} \vec{L} \\ -\mu_B = \frac{\hbar e}{2m_e} -$$ - -where $\mu_B$ is the **Bohr magneton**. Its potential -energy in a magnetic field $\vec{B} = B_0 \vec{e}_z$ is then: - -$$ -V_B = -\vec{M}_L\cdot \vec{B}\\ -= \frac{\mu_B}{\hbar} L_z B_0 -$$ - -Its contribution is directly evaluated from the expression on first oder pertubation theory to be: - -$$ -E_{Zeeman} = \mu_B m B_0 -$$ - -This is the Zeeman splitting of the different magnetic -substates. It is visualized below - - - -The Zeeman effect in the hydrogen atom. - -## Trapping with electric or magnetic fields - -We have now investigated the structure of the hydrogen atom and seen how -its energy gets shifted in external magnetic fields. We can combine this -understanding to study conservative traps for atoms and ions. Neutral -atoms experience the external field: - -$$ -E_{mag}(x,y) = \mu_B m B_0(x,y) -$$ - -For ions on the other hand we have fully charged -particles. So they simply experience the external electric field -directly: - -$$ -E_{el}(x,y) = -q E(x,y) -$$ - -Trapping atoms and ions has to be done under very good vacuum such that -they are well isolate from the enviromnent and high precision -experiments can be performed. - -However, the trap construction is not trivial given Maxwells equation -$\text{div} \vec{E} = 0$ and $\text{div} \vec{B} = 0$. So, the -experimentalists have to play some tricks with oscillating fields. We -will not derive in detail how a resulting **Paul trap** works, but the -[linked video](https://youtu.be/Xb-zpM0UOzk) gives a very nice -impression of the idea behind it. A sketch is presented in Fig. - - - -The upper stage shows the phases of The two phases of the oscillating -electric field of a Paul trap. Taken -from [wikipedia](https://en.wikipedia.org/wiki/Quadrupole_ion_trap). -Below we can see a linear ion (Paul) trap containing six calcium 40 -ions. Taken -from [here](https://quantumoptics.at/en/research/lintrap.html). - -This work on trapping ions dates back to the middle of the last century -(!!!) and was recognized by the[ Nobel prize in -1989](https://www.nobelprize.org/prizes/physics/1989/summary/) for -[Wolfgang Paul](http://dx.doi.org/10.1103/revmodphys.62.531) and[Hans Dehmelt](http://dx.doi.org/10.1103/revmodphys.62.525). They shared -the prize with Norman Ramsey, who developped extremely precise -spectroscopic methods, now known [as Ramsey spectroscopy](http://dx.doi.org/10.1103/revmodphys.62.541). - -For atoms we can play similiar games with magnetic traps. Again we have -to solve the problem of the zero magnetic fields. Widely used -configurations are the Ioffe-Pritchard trap, where quadrupole fields are -superposed [with a bias field](http://dx.doi.org/10.1103/physrevlett.51.1336), or [TOP-traps](http://dx.doi.org/10.1103/physrevlett.74.3352). - -Ion traps are now the basis of ionic quantum computers and -magnetic traps paved the way for quantum simulators with cold atoms as will see later on. - -### What we missed from the Dirac equation - -Until now we have completely neglected relativistic effects, i.e. we -should have really solved the Dirac equation instead of the Schrödinger -equation. However, this is is major task, which we will not undertake -here. But what were the main approximations ? - -1. We neglected the existance of the electron spin. - -2. We did not take into account the relativistic effects. - -So, how does relativity affect the hydrogen spectrum? In a first step, -we should actually introduce the magnetic moment of the spin: - -$$ -\vec{M}_S = -g_e \mu_B \frac{\vec{S}}{\hbar} -$$ - -The spin of the electron is $1/2$, making it a fermion -and the _g factor of the electron_ reads - -$$ -g_e \approx 2.0023 -$$ - -Further discussions of the g-factor might be found in -[Chapter 6.6 of Hertel](http://dx.doi.org/10.1007/978-3-642-54322-7). - -#### Amplitude of the relativistic effects - -We saw in the previous lectures, that the -energy levels of hydrogenlike atoms are given by: - -$$ - -E_n = \frac{Z^2 R_{y,\infty}}{n^2}\\ -R_{y,\infty} = \frac{m_e e^4}{32 \pi^2 \epsilon_0^2 \hbar^2} -$$ - -We can now use the fine-structure constant, which -measures the coupling strength of the electric charges to the -electromagnetic field: - -$$ - -\alpha = \frac{e^2}{4\pi\epsilon_0\hbar c}\\ -= \frac{1}{137.035999139(31)} -$$ - -We can now rewrite the energies of the hydrogen atom as: - -$$ -E_n = \frac{1}{2} \underbrace{m_e c^2}_{\text{rest mass energy}} Z^2 \alpha^2 \frac{1}{n^2} -$$ - -Here, $m_e c^2\approx 511\textrm{k eV}$ is the rest -mass energy of the electron. $E_n \approx 10\text{eV}$ on the other hand -is the energy of the bound state and therefore in the order of the -kinetic energy of the electron. As long as it is much smaller than the -rest-mass of the electron, we can neglect the relativistic effects. A -few observations: - -- Relativistic effects are most pronounced for deeply bound states of - small quantum number $n$. - -- Relativistic effects effects will become important once - $(Z\alpha)\approx 1$, so they will play a major role in heavy - nuclei. - -For the hydrogen atom we can thus treat the relativistic effects in a -perturbative approach.But the most important consequence of the -relativistic terms is actually the existance of the electron spin. - -### The relativistic mass and Darwin term - -1. "Relativistic mass": The relativistic relation between energy and - momentum reads: - -$$ - E_\text{rel} = \sqrt{(mc^2)^2+(\vec{p}c)^2}\\ - \approx mc^2 + \frac{p^2}{2m}- \frac{\vec{p}^{\,4}}{8m^3c^2} + \cdots -$$ - -The first two terms of the expansion are the -nonrelativistic limit and the third term is the first correction. -Therefore, the corresponding Hamiltonian is: - -$$ - \hat{H}_\text{rm} = - \frac{\hat{\vec{p}}^{\,4}}{8m^3c^2}. -$$ - -2. Darwin term: If $r=0$, the potential $V(r)$ diverges to $-\infty$. - We get: - -$$ - \hat{H}_\text{Darwin} = \frac{\pi \hbar^2}{2m^2c^2}\left( \frac{Ze^2}{4\pi\epsilon_0}\right) \delta(\hat{\vec{r}}) -$$ - -If we perform a first correction to the energy of the eigenstates -$\left\langle n,l,m\right\rangle$ by calculating - -$$ -\left\langle n,l,m|\hat{H'|n,l,m}\right\rangle, -$$ - -we find that it works perfectly for case (1) and (2) -which is due to degeneracy. $\hat{H}_\text{rm}$ and -$\hat{H}_\text{Darwin}$ commute with all observables forming the -complete set of commuting observables (CSCO) for $\hat{H}_0$ - -$$ -\hat{H}_0,\hat{\vec{L}}^2, \hat{L}_z, -$$ - -with states described by $\left|n,l,m\right\rangle$. diff --git a/amo/lecture8.md b/amo/lecture8.md deleted file mode 100644 index 017ca11..0000000 --- a/amo/lecture8.md +++ /dev/null @@ -1,378 +0,0 @@ ---- -author: - - Fred Jendrzejewski - - Selim Jochim -order: 8 -title: Lecture 8 - The Helium atom ---- - -In this lecture we will discuss some basic properties of the Helium -atom. We will introduce first some useful notations for the specific -Hamiltonian at hand. Then we will focus on the important consequences -played by the electron-electron interaction on the spin structure and -the level scheme of the system. Finally, we will introduce the -variational method for the estimation of the ground state energy. - -In todays lecture, we will see how the electron spin couples to the -orbital angular momentum and how this creates spin-orbit coupling. We -will then start out with the discussion of the Helium atom. - -## Spin-orbit coupling - -The third term, which arises from the Dirac equation is the spin-orbit -coupling. We will give here a common hand-waving explanation in a -similiar spirit to the discussion of the magnetic moment [for given -angular momentum](http://dx.doi.org/10.1007/978-3-642-10298-1). Please, be aware that it misses a -factor of 2. The electron has a spin 1/2 and hence a magnetic moment -$\vec{M}_S = -g_e \mu_B \frac{\vec{S}}{\hbar}$. This magnetic moment -experiences a magnetic field, simply due to the motion of the electron -charge itself. Assuming a circular motion of the electron, we obtain the -magnetic field amplitude: - -$$ -B = \frac{\mu_0 i}{2r}\\ -B = \frac{\mu_0 ev}{4\pi r^2}\\ -B = \frac{\mu_0 e}{4\pi m_e r^3}L\\ -$$ - -Through the coupling with the spin and introducing a -fudge factor of 2 [^1], we obtain the Hamiltonian: - -$$ - -\hat{H}_{LS} = \frac{g_e}{4\pi \epsilon_0}\frac{e^2}{2m_e^2c^2 r^3} \hat{\vec{L}}\cdot \hat{\vec{S}} -$$ - -How does it act on a state $\left|\psi\right\rangle$? For -the example - -$$ -\left|\psi\right\rangle = \left|m_l\right\rangle \otimes \left|m_s\right\rangle -$$ - -we get: - -$$ -\hat{L}_z \cdot \hat{S}_z \left( \left|m_l\right\rangle \otimes \left|m_s\right\rangle \right) -= \hbar^2 m_l \cdot m_s (\left|m_l\right\rangle \otimes \left|m_s\right\rangle) -$$ - -The states - -$$ -\left|n,l,m_l\right\rangle \otimes \left|s,m_s\right\rangle. -$$ - -span the complete Hilbert space. Any state of the atom can be -represented by: - -$$ -\left|\psi\right\rangle = \sum_{\{n,l,m_l,m_s\}} c_{n,l,m_l,m_s} \left|n,l,m_l,m_s\right\rangle. -$$ - -As usual we can massively simplify the problem by using -the appropiate conserved quantities. - -### Conservation of total angular momentum - -We can look into it a bit further into the details and see that the -Hamiltonian $\hat{H}_\textrm{LS}$ does not commute with $\hat{L}_z$: - -$$ -= [L_z, L_x S_x + L_y S_y + L_z S_z]\\ -[L_z, \vec{L}\cdot \vec{S}] = [L_z, L_x ]S_x + [L_z, L_y ]S_y\\ -[L_z, \vec{L}\cdot \vec{S}] = i\hbar L_y S_x -i\hbar L_x S_y\neq 0 -$$ - -This suggests that $L_z$ is not a good quantum number -anymore. We have to include the spin degree of freedom into the -description. Let us repeat the same procedure for the spin projection: - -$$ -= [S_z, L_x S_x + L_y S_y + L_z S_z]\\ -[S_z, \vec{L}\cdot \vec{S}] = L_x [S_z, S_x] + L_y [S_z, S_y]\\ -[S_z, \vec{L}\cdot \vec{S}] = i\hbar L_x S_y -i\hbar L_y S_x\neq 0 -$$ - -This implies that the spin projection is not a conserved -quantity either. However, the sum of spin and orbital angular momentum -will commute $[L_z + S_z, \vec{L}\vec{S}] =0$ according to the above -calculations. Similiar calculations hold for the other components, -indicating that the _total angular momentum_ is conserved [^2]: - -$$ -\vec{J} = \vec{L} + \vec{S} -$$ - -We can now rewrite $\hat{H}_{LS}$ in terms of the conserved quantities through the following following -little trick: - -$$ -\hat{\vec{J}}^2 = \left( \hat{\vec{L}} + \hat{\vec{S}} \right) ^2 = \hat{\vec{L}}^2 + 2 \hat{\vec{L}} \cdot \hat{\vec{S}} + \hat{\vec{S}}^2\\ -\hat{\vec{L}} \cdot \hat{\vec{S}} = \frac{1}{2} \left( \hat{\vec{J}}^2 - \hat{\vec{L}}^2 - \hat{\vec{S}}^2 \right) -$$ - -This directly implies that $\hat{J}^2$, $\hat{L}^2$ and $\hat{S}^2$ are -new conserved quantities of the system. If we call $\hat{H}_0$ the -Hamiltonian of the hydrogen atom, we previously used the complete set of -commuting observables [^3]: - -$$ -\left\{ \hat{H}_0, \hat{\vec{L}}^2, \hat{L}_z,\hat{\vec{S}}^2, \hat{S}_z \right\} -$$ - -We now use the complete set of commuting observables: - -$$ -\left\{ \hat{H}_0 + \hat{H}_{LS}, \hat{\vec{L}}^2,\hat{\vec{S}}^2, \hat{\vec{J}}^2, \hat{J}_z \right\}. -$$ - -The corresponding basis states -$\left|n,l,j,m_j\right\rangle$ are given by: - -$$ -\left|n,l,j,m_j\right\rangle = \sum_{m_l,m_s} \left|n, l, m_l, m_s\right\rangle \underbrace{\left\langle n, l, m_l, m_s | n, l, j, m_j\right\rangle}_{\text{Clebsch-Gordan coefficients}} -$$ - -Here, the Clebsch-Gordan coefficients (cf. [Olive 2014 p. 557](http://dx.doi.org/10.1088/1674-1137/38/9/090001) or the [PDG](http://pdg.lbl.gov/2002/clebrpp.pdf)) -describe the coupling of angular momentum states. - -**Example: $l=1$ and $s=1/2$.** - -With the Clebsch-Gordan coefficients, the following example -states---given by $Jj$ and $m_j$---can be expressed by linear -combinations of states defined by $m_l$ and $m_s$: - -$$ -\left|j=\frac{3}{2}, m_j = \frac{3}{2}\right\rangle = \left|m_l=1, m_s = +\frac{1}{2}\right\rangle\\ -\left|j=\frac{3}{2}, m_j = \frac{1}{2}\right\rangle = \sqrt{\frac{1}{3}} \left|m_l=1, m_s = -\frac{1}{2}\right\rangle +\sqrt{\frac{2}{3}} \left|m_l = 0, m_s = +\frac{1}{2}\right\rangle -$$ - -### Summary of the relativistic shifts - -We can now proceed to a summary of the relativistic effects in the -hydrogen atom as presented in Fig. - - - -Fine structure of the Hydrogen atom. Adapted from [Demtröder 2010 Fig. 5.33](http://dx.doi.org/10.1007/978-3-642-10298-1) - -- The states should be characterized by angular momentum anymore, but - by the total angular momentum $J$ and the orbital angular momentum. - We introduce the notation: - -$$ - nl_{j} -$$ - -- All shifts are on the order of $\alpha^2$ and hence pertubative. - -- Some levels remain degenerate in relativistic theory, most - importantly the $2s_{1/2}$ and the $2p_{1/2}$ state. - -## The Lamb shift - -The previous discussions studied the effects of the Dirac equation onto -our understanding of the Hydrogen atom. Most importantly, we saw that we -can test those predictions quite well through the shifts in the level -scheme. It is possible to push this analysis even further. One -particularly important candidate here are the degenerate levels -$2s_{1/2}$ and $2p_{1/2}$. Being able to see any splitting here, will be -proof physics beyond the Dirac equation. And it is a relative -measurement, for which it therefore not necessary to have insane -absolute precisions. It is exactly this measurement that [Lamb and -Retherford undertook in 1947](http://dx.doi.org/10.1103/physrev.72.241). They observed actually a -splitting of roughly $1$GHz, which they drove through direct -rf-transitions. The observed shift was immediately [explained by Bethe](http://dx.doi.org/10.1103/physrev.72.339) through the idea of QED a concept that we will come back -to later in this lecture in a much simpler context of cavity QED. - -We would simply like to add here that the long story of the hydrogen -atom and the Lamb shift is far from over as open questions remained -until September 2019. Basically, a group of people measured the radius -in some 'heavy' muonic hydrogen very [precisely in 2010](http://dx.doi.org/10.1038/nature09250). -They could only explain them by changing the size of the proton radius, -which was previously assumed to be well measured. It was only this year -the another team reperformed a similiar measurement on electronic -hydrogen (the normal one), [obtaining consistent results](http://dx.doi.org/10.1126/science.aau7807). A nice summary of the \"proton radius puzzle\" can be -found [here](https://www.quantamagazine.org/physicists-finally-nail-the-protons-size-and-hope-dies-20190911/). - -## The helium problem - -In this lecture we will discuss the Helium atom and what makes it so -interesting in the laboratory. We will most importantly see that you -cannot solve the problem exactly. This makes it a great historical -example where a simple system was used to test state-of-the-art -theories. An extensive discussion can be found in Chapter 7 of Bransden [^Bransden] or [Chapter 6 of Demtröder 20210](http://dx.doi.org/10.1007/978-3-642-10298-1). Even nowadays, the system continues to be a nice test-bed of many-body theories, see for example the paper by [Combescot in 2017](http://dx.doi.org/10.1103/physrevx.7.041035) or by [Ott in 2019](http://dx.doi.org/10.1103/physrevlett.123.203401).. - -The Helium atom describes a two electron system as shown in the figure -below. - - - -The helium atom describes two electrons coupled to the nucleus of -charge Z=2. - -In the reference frame of center-of-mass we obtain the following -Hamiltonian: -$$H = -\frac{\hbar^2}{2\mu}\nabla_{r_1}^2 -\frac{\hbar^2}{2\mu}\nabla_{r_2}^2-\frac{\hbar^2}{M}\nabla_{r_1}\cdot\nabla_{r_2}+\frac{e^2}{4\pi \epsilon_0}\left(-\frac{Z}{r_1}-\frac{Z}{r_2}+\frac{1}{r_{12}}\right)$$ - -The term in the middle is the mass polarization term. We further -introduced the reduced mass $$\mu = \frac{m_eM}{m_e + M}$$ For the very -large mass differences $M= 7300 m_e \gg m_e$, we can do two -simplifications: - -- Omit the term on the mass polarization. - -- Set the reduced mass to the mass of the electron. - -So we obtain the simplified Hamiltonian -$$H = -\frac{\hbar^2}{2m_e}\nabla_{r_1}^2 -\frac{\hbar^2}{2m_e}\nabla_{r_2}^2+\frac{e^2}{4\pi \epsilon_0}\left(-\frac{Z}{r_1}-\frac{Z}{r_2}+\frac{1}{r_{12}}\right)$$ - -## Natural units - -For simplicity it is actually nice to work in the so-called **natural -units**, where we measure all energies and distance on typical scales. -We will start out by measuring all distances in units of $a_0$, which is -defined as: -$$a_0 = \frac{4\pi \epsilon_0 \hbar^2}{me^2} = 0.5\text{angstrom}$$ So -we can introduce the replacement: $$\mathbf{r} = \mathbf{\tilde{r}}a_0$$ -So the Hamiltonian reads: - -$$ -H = -\frac{\hbar^2}{2m_ea_0^2}\nabla_{\tilde{r}_1}^2 -\frac{\hbar^2}{2m_ea_0^2}\nabla_{\tilde{r}_2}^2+\frac{e^2}{4\pi \epsilon_0 a_0}\left(-\frac{Z}{\tilde{r}_1}-\frac{Z}{\tilde{r}_2}+\frac{1}{\tilde{r}_{12}}\right)\\ -H = -\frac{e^4 m}{2(4\pi\epsilon_0)^2 \hbar^2}\nabla_{\tilde{r}_1}^2 -\frac{e^4 m}{2(4\pi\epsilon_0)^2 \hbar^2}\nabla_{\tilde{r}_2}^2+\frac{e^4 m}{(4\pi \epsilon_0)^2\hbar^2}\left(-\frac{Z}{\tilde{r}_1}-\frac{Z}{\tilde{r}_2}+\frac{1}{\tilde{r}_{12}}\right) -$$ - -And finally we can measure all energies in units of -$$E_0 = \frac{e^4 m}{(4\pi\epsilon_0)^2\hbar^2} = 1\text{hartree} = 27.2\text{eV}$$ -So the Hamiltonian reads in these natural units: - -$$ -\tilde{H} = -\frac{1}{2}\nabla_{\tilde{r}_1}^2 -\frac{1}{2}\nabla_{\tilde{r}_2}^2+\left(-\frac{Z}{\tilde{r}_1}-\frac{Z}{\tilde{r}_2}+\frac{1}{\tilde{r}_{12}}\right) -$$ - -Another, more common, way of introducing this is to define: - -$$ -m = \hbar = e = 4\pi \epsilon_0 \equiv 1\\ -\alpha = \frac{e^2}{(4\pi \epsilon_0) \hbar c}= \frac{1}{137}\\ -\Rightarrow c = \frac{1}{\alpha} -$$ - -Within these units we have for the hydrogen atom: -$$E_n = \frac{Z^2}{2}\frac{1}{n^2}E_0$$ - -**For the remainder of this lecture we will assume that we are working -in natural units and just omit the tildas.** - -## Electron-electron interaction - -Now we can decompose the Hamiltonian in the following fashion: -$$H = H_1 + H_2 + H_{12}$$ So without the coupling term between the -electrons we would just have once again two hydrogen atoms. The whole -crux is now that the term $H_{12}$ is actually coupling or -**entangling** the two electrons. - -## Symmetries - -The **exchange** operator is defined as: - -$$ -P_{12}\psi(r_1,r_2) = \psi(r_2, r_1) -$$ - -We directly see for the Hamiltonian of Helium in the reduced units that the exchange operator commutes with -the Hamiltonian, $[H,P_{12}] = 0$. This implies directly that the parity -is a conserved quantity of the system and that we have a set of -Eigenstates associated with the parity. - -We can now apply the operator twice: - -$$ -P_{12}^2\psi(r_1,r_2) = \lambda^2 \psi(r_1, r_2) = \psi(r_1, r_2) -$$ - -So we can see that there are two sets of eigenvalues with -$\lambda = \pm 1$. - -$$ -P_{12}\psi_\pm = \pm \psi_\pm -$$ - -We will call: - -- $\psi_+$ are para-states - -- $\psi_-$ are ortho-states - -This symmetry is a really strong one and it was only recently that -direct transitions between [ortho and para-states were observed](http://dx.doi.org/10.1103/physrevlett.119.173401). Interestingly, we did not need to look into the spin -and the Pauli principle for this discussion at all. This will happen in -the next step. - -## Spin and Pauli principle - -We have seen that the Hamiltonian does not contain the spin degree of -freedom. So we can decompose the total wave function as: - -$$ -\overline{\psi} = \psi(\mathbf{r}_1, \mathbf{r}_2) \cdot \chi(1,2) -$$ - -### Spin degree of freedom - -Given that the electron is $s=\frac{1}{2}$, we can decompose each -wavefunction as: -$$\chi = \alpha |\uparrow\rangle + \beta |\downarrow\rangle$$ So if the -two spins were _not_ correlated, we could just write the spin -wavefunction as: $$\chi(1,2) = \chi_\mathrm{1}\cdot\chi_\mathrm{2}$$ -However, the electron-electron interaction entangles the atoms. An -example would be the singlet state: -$$\chi(1,2) = \frac{1}{\sqrt{2}}\left(|\uparrow \downarrow\rangle - |\downarrow\uparrow \rangle\right)$$ - -To construct the full wave function we need to take into account the -_Pauli_ principle, which telles us for Fermions that the _full_ -wavefunction should anti-sysmmetrc under exchange of particles: - -$$ -\overline{\psi}(q_1, q_2, \cdots, q_i,\cdots, q_j, \cdots) = --\overline{\psi}(q_1, q_2, \cdots, q_j,\cdots, q_i, \cdots) -$$ - -This tells us that each quantum state can be only occupied by a single -electron at maximum. - -Now we can come back to the full wavefunction using the results of the -previous section. We have: - -$$ -\overline{\psi}(1,2) = \psi_{\pm}(r_1,r_2)\chi_\mp(1,2) -$$ - -with -$P_{12}\chi_\pm = \pm \chi_\pm$. Now can once again look for good -solutions to this problem. It is basically the total spin -$\mathbf{S} = \mathbf{S}_1 + \mathbf{S}_2$, or better $\mathbf{S}^2$. -This commutes with both the Hamiltonian and the parity operator, so it -is a conserved quantity. Sorting out the solutions we have - -$$ - -\chi*- = \frac{1}{\sqrt{2}}\left(|\uparrow\downarrow\rangle - |\downarrow\uparrow\rangle\right)\\ -\chi*{+,1} = |\uparrow\uparrow\rangle \\ -\chi*{+,1} = \frac{1}{\sqrt{2}}\left(|\uparrow\downarrow\rangle + |\downarrow\uparrow\rangle\right) \\ -\chi*{+,-1} = |\downarrow\downarrow\rangle \\ - - -$$ - -So $\chi_+$ is associated with spin 1 and $\chi_-$ is -associated with spin 0. - -[^1]: It's proper derivation is left to quantum field theory lectures - -[^2]: It should be as there is no external torque acting on the atom - -[^3]: see lecture 2 for a few words on the definition of such a set - -[^Bransden]: Brian Harold Bransden, Charles Jean Joachain. Physics of atoms and molecules. Pearson Education India, 2003. diff --git a/amo/lecture9.md b/amo/lecture9.md deleted file mode 100644 index 6651b8a..0000000 --- a/amo/lecture9.md +++ /dev/null @@ -1,373 +0,0 @@ ---- -author: -- Fred Jendrzejewski -- Selim Jochim -order: 9 -title: Lecture 9 - More on the Helium atom ---- - -We will finish our discussion of the Helium atom. Most importantly, we -will dive into the strong separation between singlet and triplet states. - -In the last lecture, we saw some important properties -of the He atom: - -- Total angular momentum, spin and the electronic quantum number are - labelling the states. - -- The exchange symmetry introduces the important distinction between - ortho and para-states. - -Today, we will see how this exchange symmetry enters the level scheme -and how it is linked to the spin. - -# Level scheme - -We can now continue through the level scheme of Helium and try to -understand our observations. No radiative transitions between $S=0$ and -$S=1$, which means that we will basically have two independent schemes. -They are characterized by: - -- electronic excitations, which are the main quantum numbers $N$. - -- orbital angular momentum, with quantum number $L$. - -- total spin with quantum number $S$ - -- total angular momentum $J$, but the spin-orbit coupling in Helium is - actually extremly small. - -We will then use the term notation: $$N ^{2S+1}L_J$$ the superscript is -giving the multiplicity or the number of different $J$ levels. - -Having the level structure, we are now able to calculate the energies of -the different states. We will start out with the ground state and then -work our way through the excited states. - -# Independent particle model - -We will now go back to the influence of the interaction on the -eigenenergies of the system. Going back to the Helium atoms, we will -treat the single particle Hamiltonians as unperturbed system and -$H_{12}$ as the perturbation: - -$$ -H_0 = -\frac{1}{2}\nabla_{r_1}^2 -\frac{Z}{r_1} -\frac{1}{2}\nabla_{r_2}^2 -\frac{Z}{r_2}\\ -H_1 =\frac{1}{r_{12}} -$$ - -We now know the solutions to $H_0$, because the -factorize: - -$$ -\left(\hat{H}_1 + \hat{H}_2\right)|\psi_1\rangle\otimes|\psi_2\rangle = -\left(E_1 + E_2\right)|\psi_1\rangle\otimes|\psi_2\rangle -$$ - -## Groundstate energy - perturbative approach - -At this stage we can try to calculate the groundstate energy. We can -derive that the unperturbed energy reads: $$E_0^{(0)}= Z^2\text{hartree}$$ -The electron interaction leads within first order perturbation theory to -an energy shift of: -$$E_0^{(1)}= \langle\psi_0|\frac{1}{r_{12}}|\psi_0\rangle = \frac{5}{8}Z$$ -We can see that the first order energy shift is actually not that small, -so we might start to question perturbation theory. - -## Groundstate energy - variational approach - -In the variational approach, we will try to find the minimal energy of -the ground state. Namely we will minimize: -$$E_{var} = \frac{\langle\psi|\hat{H}|\psi\rangle}{\langle\psi|\psi\rangle}$$ -We can actually proof that this works nicely within a few lines. For -that we will expand our trial function $|\psi\rangle$ into the (unknown) -eigenstates of $\hat{H}$: $$|\psi\rangle = \sum_n c_n |\psi_n\rangle$$ -For the energies this implies: -$$\hat{H}|\psi_n\rangle = E_n|\psi_n\rangle$$ So we end up with: -$$ -\langle \psi|H|\psi\rangle - E_0 = \sum_n E_n c_n^*c_n - E_0 \sum_n c_n^*c_n\\ -= \sum_n (E_n-E_0)|c_n|^2 \geq 0 -$$ - -So the variational principle always gives an upper bound -on the ground state energy. The question is how good is this bound in -each individual case. - -To apply the variational approach, we will introduce a variational -parameter. This parameter is typically guessed from physical intuition. -Here it will be the charge, which will be replaced by an *screened -charge* $Z_{eff}$. - -As variational wavefunction, we will employ the groundstate of the -hydrogen atom, which reads: - -$$ -\psi_{var}(r_1, r_2) = e^{-Z_{eff}(r_1+r_2)} -$$ - -We find then that the total energy is: -$$E_{var}^0 = Z_{eff}^2 -2ZZ_{eff}+\frac{5}{8}Z_{eff}$$ It becomes -minimal at - -$$ -Z_{eff} = Z- \frac{5}{16} -$$ - -So at this stage, we might compare the different levels -of approximation to the experimental result: - -- The experimental observation is $E_{exp}^0=-2.90372$ hartree - -- The independent particle model predicts $E^0 = -4$ hartree. - -- First order pertubation theory predicts $E^0 = -2,709$ hartree. - -- The variational principle predicts $E^0 = -2.84$ hartree. - -The best theories achieve an accuracy of $10^{-7}$, see [Hertel 2015, -Chapter 7.2.5](http://dx.doi.org/10.1007/978-3-642-54322-7_7). - -# Exchange Interaction - -Up to now we focused on the ground state properties of the $1^ -1S$ state. In the next step we will try to understand the influence of -the interaction term on the excited states (c.f. [Hertel 2015, -Chapter 7](http://dx.doi.org/10.1007/978-3-642-54322-7_7)). To attack this problem we will approach it pertubatively. - -We saw that we could factorize the full wavefunction into external and -internal degrees of freedom. Further, we have the singlet $\chi_S$ -(anti-symmetric) and triplet states $\chi_T$ (symmetric) for the spin. -This can now be combined too: - -$$ -\overline{\psi}_S(1,2) = \psi_{+}(r_1, r_2)\chi_S(1,2)\\ -\overline{\psi}_T(1,2) = \psi_{-}(r_1, r_2)\chi_T(1,2)\\ -$$ - -In a next step, we can construct $\psi_{\pm}$ from the eigenstates of -the unperturbed Hamiltonian. We define the states -$\left|q_1\right\rangle \equiv \left|n_1,l_1,m_1\right\rangle$ -and -$\left|q_2\right\rangle \equiv \left|n_2,l_2,m_2\right\rangle$. -The properly symmetrized states are: - -$$ -\left|\psi_\pm\right\rangle = \frac{1}{\sqrt{2}}\left( \left|q_1\right\rangle_1 \otimes \left|q_2\right\rangle_2 \pm \left|q_2\right\rangle_1 \otimes \left|q_1\right\rangle_2 \right) -$$ - -Now we can perform an estimate of the energy shift on -these states. - -$$ -\Delta E_{S,T} = \left\langle\overline{\psi_{S,T} }\right|\frac{1}{\hat{r}_{12}} \left|\overline{\psi_{S,T}}\right\rangle\\ -= \left\langle\psi_{+,- }\right|\frac{1}{\hat{r}_{12}} \left|\psi_{+,- }\right\rangle -$$ - -We then get - -$$ -\Delta E_{S,T} = \frac{1}{2} \left(\left\langle q_1 q_2 \right| \pm \left\langle q_2 q_1\right|\right) \left| \frac{1}{\hat{r}_{12}} \right| \left( \left|q_1 q_2\right\rangle \pm \left|q_2 q_1\right\rangle \right)\\ -= \left\langle q_1 q_2\right| \frac{1}{\hat{r}_{12}}\left|q_1 q_2\right\rangle \pm \left\langle q_1 q_2\right| \frac{1}{\hat{r}_{12}} \left|q_2 q_1\right\rangle -$$ - -So we summarize: - -$$ -\Delta E_S = J_{nl} + K_{nl}\\ -\Delta E_T = J_{nl} - K_{nl} -$$ - -The first term is called *direct* (Coulomb) term and the second term is -known as *exchange* term. If we integrate the direct term, we get: - -$$ -J_{nl} = \int \int \psi_{q_1}^*\left(\vec{r}_1\right) \psi_{q_2}^* \left(\vec{r}_2\right) \frac{1}{r_{12}} \psi_{q_1} \left(\vec{r}_1\right) \psi_{q_2} \left(\vec{r}_2\right) \mathop{}\!\mathrm{d}\vec{r}_1 \mathop{}\!\mathrm{d}\vec{r}_2 \\ -= \int \int \left| \psi_{q_1} \left(\vec{r}_1\right) \right|^2 \left| \psi_{q_2}\left(\vec{r}_2\right) \right|^2 \frac{1}{r_{12}} \mathop{}\!\mathrm{d}\vec{r}_1 \mathop{}\!\mathrm{d}\vec{r}_2. -$$ - -This is Coulomb repulsion. - -## Exchange term - -The integration of the exchange term yields: - -$$ -K = \left\langle q_1 q_2\right| \frac{1}{r_{12}} \left|q_2 q_1\right\rangle = \int \psi_{q_1}^* \left(\vec{r}_1\right) \psi_{q_2}^* \left( \vec{r}_2 \right) \frac{1}{r_{12}} \psi_{q_2}\left(\vec{r}_1\right) \psi_{q_1} \left( \vec{r}_2 \right) \mathop{}\!\mathrm{d}\vec{r}_1 \mathop{}\!\mathrm{d}\vec{r}_2 -$$ - -To understand it a bit better, we can rewrite it in a -more transparent way in terms of the spin operator, which measures the -difference between the singlet and the triplet state. Especially suited -is: - -$$ -\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2 = \frac{1}{2} \left(\hat{\vec{S}}^2 - \hat{\vec{S}}_1^2 - \hat{\vec{S}}_2^2 \right)\\ -\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2 \chi_T = \frac{1}{4} \chi_T\\ -\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2 \chi_S = -\frac{3}{4} \chi_S -$$ - -This allows us to rewrite the splitting in terms of an -effective Hamiltonian - -$$ -\hat{H}_\text{eff} = J_{nl} + \frac{1}{2}\left(1+ 4\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2\right) K_{nl} -$$ - -# Obtained energy shifts. - -As an example, we have a look at the energy shifts (see figure below) for two electrons in the states defined by: - -$$ -q_1: n_1=1,l_1 = 0\\ -q_2:_2=2,l_2= 0,1 -$$ - -The $2^3S$ level for example corresponds to the state -$$ -\frac{1}{\sqrt{2}} \left( \left|1s2s\right\rangle - \left|2s1s\right\rangle \right) \otimes \left|\uparrow \uparrow\right\rangle -$$ - - - -This splitting is in the order of 0.25eV and hence much larger than the -typical spin-orbit coupling. This explains, why the coupling to the -total angular momentum $J$ remains largely ignored for helium. - -# Summary: Structure of the He Atom - -- In the independent particle model, a state is determined by: - - -$$ - \left|n_1 l_1 m_1\right\rangle \otimes \left|n_2 l_2 m_2 \right\rangle - - -$$ - -- Only one electron can be electronically excited to a stable state. - An excellent discussion of the auto-ionization can be found in [Sec. - 1.3 of Grynberg 2009](http://dx.doi.org/10.1017/cbo9780511778261). Thus, $N$ is the quantum number of the electronic excitation. - -- Ignoring the spin degree of freedom, the eigenstates have a discrete - symmetry with respect to particle exchange. The $\mathrm{He}$ - eigenstates are therefore either in a *triplet* or in a *singlet* - state. Here, we are talking about the symmetry with respect to the - exchange of two particles. No inversion of space is done here! Why - can we not assume a finite mass of the nucleui in order to describe - two electrons by hydrogenic wave functions? The nucleus' motion - would introduce an additional coupling term between the electrons - -- The quantum number $L$ stands for the total orbital angular - momentum. - -- There is another conserved quantity we have not discussed yet: The - total angular momentum - -$$ - \hat{\vec{J}} = \hat{\vec{L}} + \hat{\vec{S}}. -$$ - - - -**Note.** For $\mathrm{^4He}$, there is no nuclear spin, meaning that there is no hyperfine structure. - -Let us now have a look at the level scheme of the helium atom as depicted below. - -**Note.** The general notation used in the figure below is - -$$ -N^{2S+1}L_J, -$$ - -where $2S+1$ denotes the multiplicity of the spin. - - - - -Level scheme of singlet and triplet states of the helium atom from L=0 -up to L=3. The ground state 1^1^S~0~ is chosen to have the energy E=0. -Taken from [Demtröder 2010](http://dx.doi.org/10.1007/978-3-642-10298-1). - -- The fact that we can write the state down with a well-defined $S$ - and $L$ is called $LS$ or Russell-Saunders coupling. All $s_i$ - couple to $S = \sum_i s_i$ and all $l_j$ couple to $L=\sum_j l_j$. - There is no coupling between the spin and the spatial degree of - freedom! - - - -- We have introduced an effective spin interaction, but we have - ignored the "real" interactions between the spins! What does it - mean? How should we introduce it if we wanted to? How can we find - out whether what we did is justifiable? - -- The dipole interaction between two spins is - -$$ - \sim\frac{\mu_0(g \mu_B/2)^2}{4\pi \hbar d^3} = \frac{\alpha^2}{4} \;(\text{a.u.}) -$$ - -where $\mu_0 = 4\pi \alpha^2$, $\mu_B=1/2$, - $\hbar=1$, and $d\approx~a_0~=~1$. Compared to the energy difference - between $2^1S$ and $2^3S$, which is $>\alpha^2$ and on the order - of eV, it is a very small effect. - -- Also, we have ignored the spin-orbit interaction of each electron - between its own spin and its orbital angular momentum. From the - hydrogen atom we know that the energy for the spin-orbit interaction - - -$$ - E_\textrm{ls} \propto (Z\alpha)^2 -$$ - -is very strongly suppressed compared to the exchange interaction and the Coulomb repulsion. - -**Note.** This will be different for heavy atoms, where $Z$ is large. - -# Dipole Selection Rules in Helium - - - - -If helium atoms are excited in a gas discharge, one can see -characteristic emission lines as shown above (taken from [Wikipedia](https://en.wikipedia.org/wiki/Helium)). - - - - -Possible transitions within the singlet and triplet system of helium. -Taken from [Demtröder 2010](http://dx.doi.org/10.1007/978-3-642-10298-1). -The singlet and triplet levels are always plotted separately and there is no -transition between a singlet and a triplet state. Because of this -observation, people thought in the beginning that there were two -different types of helium ("para" and "ortho"). - -The rules for transitions to occur are determined by the dipole matrix -element containing the initial state $i$ and the final state $f$: - -$$ -\left\langle i|\hat{\vec{r}|f}\right\rangle. -$$ - -Due to the $LS$ coupling scheme, we get: - -$$ -\left|\psi(\vec{r_1, \vec{r}_2)}\right\rangle \otimes \left|\chi (1,2)\right\rangle. -$$ - -There is no entanglement between the degrees of freedom -and no mixed symmetry between spin and spatial degree of freedom! If we -plug this into the matrix element and multiply it out, we get, because the -operator $\hat{\vec{r}}$ does not act on the spin degree of freedom: -$$ -\left\langle i|\hat{\vec{r}\,|f}\right\rangle = \left\langle\chi(1,2) | \chi'(1,2)\right\rangle \cdot \left\langle\psi(\vec{r_1, \vec{r}_2)|\hat{\vec{r}} \,| \psi'(\vec{r}_1, \vec{r}_2)}\right\rangle -$$ - -1. The first factor has to be zero if the total spin is not the same. - Then the relative alignment is not the same. Thus, there are no - dipole transitions between singlet and triplet atoms! - -2. From the second factor we infer that transitions can only occur - between states of opposite parity, e.g., $\Delta l = \pm 1$, - together with angular momentum conservation. diff --git a/amo/tex_files/Lecture 1 - Some cooking recipes for Quantum Mechanics.tex b/amo/tex_files/Lecture 1 - Some cooking recipes for Quantum Mechanics.tex deleted file mode 100644 index 1d29a6a..0000000 --- a/amo/tex_files/Lecture 1 - Some cooking recipes for Quantum Mechanics.tex +++ /dev/null @@ -1,300 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} - -\begin{document} - -\title{Lecture 1 - Some cooking recipes for Quantum Mechanics} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 03, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In this first lecture we will review the foundations of quantum mechanics at the level of a cooking recipe. This will enable us to use them later for the discussion of the atomic structure and interaction between atoms and light.% -\end{abstract}% - - - -\sloppy - - -This is the first lecture of the Advanced Atomic Physics course at Heidelberg University, as tought in the wintersemester 2019/2020. -It is intended for master students, which have a basic understanding of quantum mechanics and electromagnetism. In total, we will study multiple topics of modern atomic, molecular and optical physics over a total of 24 lectures, where each lectures is approximately 90 minutes. -\begin{itemize} -\item We will start the series with some basics on quantum mechanics. -\item Then work our way into the harmonic oscillator and the hydrogen atom. -\item We will then leave the path of increasingly complex atoms for a moment to have some fun with light-propagation, lasers and discussion of the Bell inequalities. -\item A discussion of more complex atoms gives us the acutual tools at hand that are in the lab. -\item This sets up a discussion of di-atomic molecules, which ends the old-school AMO. -\item We move on to quantized atom-light interaction, the Jaynes Cummings model and strong-field lasers. -\item We will finally finish with modern ways to implement quantum simulators and quantum computers. -\end{itemize} - -The topics of the lectures will be discussed in more details in the associated tutorials. - -\section{Introduction} -In AMO physics we will encounter the consequences of quantum mechanics all the time. So we will start out with a review of the basic ingredients to facilitate the later discussion of the experiments. - -Some good introductions on the traditional approach can be found in \cite{2002, 2006} \cite{1}\cite{2}. Previously, we mostly followed the discussion of Ref. \cite{2006}. Nowadays, I also recommend the works by Scott Aaronson \cite{quantum,holes}. There is also a good \href{https://www.quantamagazine.org/quantum-theory-rebuilt-from-simple-physical-principles-20170830/#}{article by Quanta-Magazine} on the whole effort to derive quantum mechanics from some simple principles. This effort started with Ref. \cite{axioms}, which actually makes for a nice read. - -Before we start with the detailled cooking recipe let us give you some examples of quantum systems, which are of major importance throughout the lecture: -\begin{enumerate} -\item \textit{Orbit in an atom, molecule etc}. Most of you might have studied this during the introduction into quantum mechanics. -\item \textit{Occupation number of a photon mode}. Any person working on quantum optics has to understand the quantum properties of photons. -\item \textit{Position of an atom} is of great importance for double slit experiments, the quantum simulation of condensed matter systems with atoms, or matterwave experiments. -\item The \textit{spin degree of freedom} of an atom like in the historical Stern-Gerlach experiment. -\item The classical coin-toss or bit, which connects us nicely to simple classical probability theory or computing -\end{enumerate} - -\section{The possible outcomes (the Hilbert Space) for the Problem in Question} - -The first step is to identify the right Hilbert space for your problem. For a classical problem, we would simply list all the different possible outcomes in a list $(p_1, \cdots, p_N)$ of \textit{real} numbers. As one of the outcomes has to happen, we obtain the normalization condition: -\begin{align} -\sum_i p_i = 1 -\end{align} - -In quantum mechanics, we follow a similar approach of first identifying the possible outcomes. But instead of describing the outcomes with real numbers, we now associate a complex number $\alpha_i$ to each outcome $(\alpha_1, \cdots, \alpha_N)$, with $\alpha_i \in \mathbb{C}$. Given that they should also describe some probability they have to be normalized to one, but now we have the condition: -\begin{align} -\sum_i |\alpha_i|^2 = 1 -\end{align} - -Aaronson claims that this is just measuring probabilities in in $L_2$ norm. I would highly recommend his discussions on his blog for a more instructive derivation\cite{quantum}. Next we will not use the traditional lists, but the bra-ket notation, by writing: -\begin{align} -\ket{\psi}&= \sum_i \alpha_i \ket{i} -\end{align} - -And given that these are complex vectors, we will measure their overlap through a Hermitian scalar product -\begin{align} -\langle\psi_1 \psi_2\rangle=(\langle{\psi_2}| \psi_1\rangle)^*. -\end{align} -\subsection{The coin toss} -The situation becomes particularly nice to follow for the two level system or the coin toss. In classical systems, we will get heads up $\uparrow$ with a certain probability p. So the inverse $\downarrow$ arrives with likelyhood $1-p$. We would then classical list the probabilities with $(p,1-p)$. In the quantum world we achieve such a coin for example in spin 1/2 systems or qubits in general. We will then describe the system through the state: -\begin{align} -\ket{\psi} = \alpha_\uparrow \ket{\uparrow} + \alpha_\downarrow \ket{\downarrow} \qquad \text{with} \; \langle\psi | \psi\rangle = 1. -\end{align} - -The next problem is how to act on the system in the classical world or in the quantum world. - - -\subsection{Quantum rules} -Having set up the space on which we want to act we have to follow the rules of quantum mechanics. The informal way of describing is actually nicely described by Chris Monroe \href{https://youtu.be/CC7nlBM2cSM}{in this video}. We might summarize them as follows: -\begin{enumerate} -\item Quantum objects can be in several states at the same time. -\item Rule number one only works when you are not looking. -\end{enumerate} - -The more methematical fashion is two say that there two ways of manipulating quantum states: -\begin{enumerate} -\item Unitary transformations $\hat{U}$. -\item Measurements. -\end{enumerate} - -\section{Unitary transformations} -As states change and evolve, we know that the total probability should be conserved. So we transform the state by some operator $\hat{U}$, which just maps the state $\ket{\psi}\xrightarrow[]{U}\ket{\psi'}$. This should not change the norm, and we obtain the condition: -\begin{align} -\bra{\psi}\hat{U}^\dag\hat{U} \ket{\psi} = 1\\ -\hat{U}^\dag\hat{U} = \mathbb{1} -\end{align} -That's the very definition of unitary operators and unitary matrices. -Going back to the case of a coin toss, we see that we can then transform our qubit through the unitary operator: -\begin{align} -\hat{U}=\frac{1}{\sqrt{2}}\left(\begin{array}{cc} -1 & -1\\ -1 & 1 -\end{array}\right) -\end{align} -Applying it on the previously defined states $\uparrow$ and $\downarrow$, we get the superposition state: -\begin{align} -\hat{U}\ket{\uparrow} &= \frac{\ket{\uparrow}-\ket{\downarrow}}{\sqrt{2}}\\ -\hat{U}\ket{\downarrow} &= \frac{\ket{\uparrow}+\ket{\downarrow}}{\sqrt{2}} -\end{align} -As we use the unitary matrices we also see why we might one to use complex numbers. Imagine that we would like to do something that is roughly the square root of the unitary, which often just means that the system should evolve for half the time as we will see later. If we then have negative nummbers, they will immediately become imaginary. - -Such superposition would not be possible in the classical case, as non-negative values are forbidden there. Actually, operations on classical propability distributions are only possible if every entry of the matrix is non-negative (probabilities are never negative right ?) and each column adds up to one (we cannot loose something in a transformation). Such matrices are called \mathit{stochastic matrices}. - -\section{Observables and Measurements} -As much fun as it might be to manipulate a quantum state, we also have to measure it and how it connects to the properties of the system at hand. Any given physical quantity $A$ is associated with a Hermitian operator $\hat{A} = \hat{A}^\dag$ acting in the Hilbert space of the system, which we defined previously. Please, be utterly aware that those Hermitian operators have absolutely no need to be unitary. However, any unitary operator might be written as $\hat{U}= e^{i\hat{A}}$. - -In a \emph{measurement} , the possible outcomes are then the eigenvalues $a_\alpha$ \index{eigenvalue} of the operator $\hat{A}$: - -\begin{align} -\hat{A}\ket{\alpha}=a_{\alpha}\ket{\alpha}. -\end{align} -The system will collapse to the corresponding eigenvector and the probability of finding the system in state $\ket{\alpha}$ is -\begin{align} -P(\ket{\alpha})=||\hat{P}_{\ket{\alpha}} \ket{\psi}||^2 = \bra{\psi} \hat{P}^{\dag}_{\ket{\alpha}} \hat{P}_{\ket{\alpha}} \ket{\psi}, -\end{align} -where $\hat{P}_{\ket{\alpha}}= \ket{\alpha} \bra{\alpha}$. - -As for our previous examples, how would you measure them typically, i.e. what would be the operator ? -\begin{enumerate} -\item In atoms the operators will be angular moment, radius, vibrations etc. -\item For the occupation number we have nowadays number counting photodectors. -\item The position of an atom might be detected through high-resolution CCD cameras. -\item For the \textit{measurement of the spin}, we typically correlate the internal degree of freedom to the spatial degree of freedom. This is done by applying a magnetic field gradient acting on the magnetic moment $\hat{\vec{\mu}}$ \index{magnetic moment}, which in turn is associated with the spin via $\hat{\vec{\mu}} = g \mu_B \hat{\vec{s}}/\hbar$, where $g$ is the Land\selectlanguage{ngerman}é $g$-factor \index{Land\'e $g$-factor} and $\mu_B$ is the Bohr magneton \index{Bohr magneton}. The energy of the system is $\hat{H} = -\hat{\vec{\mu}} \cdot \vec{B}$. -\end{enumerate} - -\section{Time Evolution} -Being able to access the operator values and intialize the wavefunction in some way, we also want to have a prediction on its time-evolution. For most cases of this lecture we can simply describe the system by the non-relativistic \textbf{Schrödinger Equation.} It reads -\begin{align} -i\hbar\partial_t\ket{\psi(t)}=\hat{H}(t)\ket{\psi(t)}. -\end{align} -In general, the Hamilton operator $\hat{H}$ is time-dependent. For a time-independent Hamilton operator $\hat{H}$, we can find eigenstates $\ket{\phi_n}$ with corresponding eigenenergies $E_n$ \index{eigenenergy}: - -\begin{align} -\hat{H}\ket{\phi_n}=E_n\ket{\phi_n}. -\end{align} -The eigenstates $\ket{\phi_n}$ in turn have a simple time evolution: - -\begin{align} - \ket{\phi_n(t)}=\ket{\phi_n(0)}\cdot \exp{-i E_nt/\hbar}. -\end{align} -If we know the initial state of a system -\begin{align} -\ket{\psi(0)}=\sum_n \alpha_n\ket{\phi_n}, -\end{align} -where $\alpha_n=\langle\phi_n | \psi(0)\rangle$, we will know the full dimension time evolution -\begin{align} -\ket{\psi(t)}=\sum_n\alpha_n\ket{\phi_n}\exp{-i E_n t/\hbar}. \;\, \text{(Schrödinger picture)} -\end{align} -\textbf{Note.} Sometimes it is beneficial to work in the Heisenberg picture, which works with static ket vectors $\ket{\psi}^{(H)}$ and incorporates the time evolution in the operators. \footnote{We will follow this route in the discussion of the two-level system and the Bloch sphere.} -In certain cases one would have to have access to relativistic dynamics, which are then described by the \textbf{Dirac equation}. However, we will only touch on this topic very briefly, as it directly leads us into the intruiging problems of \textbf{quantum electrodynamics}. - -\subsection{The Heisenberg picture} -As mentionned in the first lecture it can benefitial to work in the Heisenberg picture instead of the Schrödinger picture. This approach is widely used in the field of many-body physics, as it underlies the formalism of the second quantization. To make the connection with the Schrödinger picture we should remember that we have the formal solution of -\begin{align} -\ket{\psi(t)} = \eexp{-i\hat{H}t}\ket{\psi(0)} -\end{align} -So, if we would like to look into the expectation value of some operator, we have: -\begin{align} -\langle\hat{A}(t)\rangle = \bra{\psi(0)}\eexp{i\hat{H}t}\hat{A}_S\eexp{-i\hat{H}t}\ket{\psi(0)} -\end{align} -This motivates the following definition of the operator in the Heisenberg picture: -\begin{align} - \hat{A}_H=\eexp{i{\hat{H} t}/{\hbar}} \hat{A}_S \eexp{-i{\hat{H} t}/{\hbar}} -\end{align} -where $\exp{-i{\hat{H} t}/{\hbar}}$ is a time evolution operator (N.B.: $\hat{H}_S = \hat{H}_H$). The time evolution of $\hat{A}_H$ is: -\begin{align} - \notag \frac{d}{dt} \hat{A}_H &=&& \frac{i}{\hbar}\hat{H}\eexp{i{\hat{H}t}/{\hbar}}\hat{A}_S \eexp{-i{\hat{H} t}/{\hbar}}\\ - &&-&\frac{i}{\hbar} \eexp{i{\hat{H} t}/{\hbar}}\hat{A}_S \eexp{-i{\hat{H}t}/{\hbar}}\hat{H}+\partial_t \hat{A}_H\\ - &=&& \frac{i}{\hbar}\left[\hat{H},\hat{A}_H\right] + \eexp{i{\hat{H}t}/{\hbar}}\partial_t\hat{A}_S\eexp{-i{\hat{H}t}/{\hbar}} -\end{align} -\textbf{Note.} In the Heisenberg picture the state vectors are time-independent: -\begin{align} - \ket{\psi}_H \equiv \ket{\psi(t=0)}=\exp{i{\hat{H}}t/{\hbar}} \ket{\psi(t)}. -\end{align} -Therefore, the results of measurements are the same in both pictures: -\begin{align} - \bra{\psi(t)}\hat{A}\ket{\psi(t)} = \bra{\psi}_H \hat{A}_H \ket{\psi}_H. - \end{align} - -The next lecture of this series can be found here: \cite{Jendrzejewski}. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 10 - Propagation of light in dielectric media.tex b/amo/tex_files/Lecture 10 - Propagation of light in dielectric media.tex deleted file mode 100644 index b34420a..0000000 --- a/amo/tex_files/Lecture 10 - Propagation of light in dielectric media.tex +++ /dev/null @@ -1,303 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} - -\begin{document} - -\title{Lecture 5 - Propagation of light in dielectric media} - - - -\author[1]{Fred Jendrzejewski}% -\affil[1]{Kirchhoff-Institut für Physik}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In this lecture we will study the propagation of light through a dielectric medium like atomic gases. We will see that it is characterized by the susceptibility and discuss the case of two-level atoms. This sets the stage for the laser.% -\end{abstract}% - - - -\sloppy - - -Until now we focused on the properties of atoms and how can control them through external fields. In this lecture, we will focus much more on the properties of the light passing through a medium. - -\section{Introduction} -We would like to study the propagation of a electric field through an ensemble of atoms as visualized in Fig. \ref{881526}. We assume a mono-chromatic plane wave to come in, such that we can write down the electric field as: -\begin{align} -\vec{E}_{in}&= E_0 \vec{\epsilon}e^{i kz -i\omega_L t} -\end{align} -This incoming field will polarize the gas of dipoles.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Absorption-01/Absorption-01} -\caption{{Propagation of a light field through a dielectric medium. -{\label{881526}}% -}} -\end{center} -\end{figure} - - - -For the propagation we will do the following assumptions: -\begin{itemize} -\item The atoms are independent. -\item We can describe them as small dipoles. -\item We can describe the light in the semi-classical approximation. -\end{itemize} -We have already employed this picture in in the slightly abstract formulation in Lecture 4, where we studied the evolution of the atoms in electric fields \cite{Jendrzejewskia} and in Lecture 6 \cite{Jendrzejewski} concerning the transition rules in hydrogen. This allows us to calculate the expectation value of the dipole operator through: -\begin{align} -\langle \vec{D}\rangle = \bra{\psi}\vec{D}\ket{\psi} -\end{align} -As already discussed in Lecture 6 \cite{Jendrzejewski} we can then write it down as: -\begin{align} -\langle \vec{D}\rangle = E_0 \vec{\alpha} -\end{align} -We call $\alpha$ the \textbf{polarizability}. For a large gas with a constant density of dipoles $n$, we obtain a macroscopic polarization of: -\begin{align} -\vec{P} &= n \langle \vec{D}\rangle\\ -&= n \vec{\alpha} E_0 -\end{align} -This leads us then to identify the susceptibility of the dielectric medium: -\begin{align}\label{Eq:Chi} -\vec{P} &= \epsilon_0 \chi \vec{E}\\ -\chi &= \frac{n \alpha}{\epsilon_0} -\end{align} -To notes to this relation: -\begin{enumerate} -\item The linear relationship between polarization and electric field is only valid for weak electric fields. For stronger fields, higher order terms become important. They are the fundamental ingredient of non-linear optics. In general, we can write: -\begin{align} -P_i = \epsilon_0 \sum_{j}\chi_{ij}^{1}E_j+\epsilon_0 \sum_{jk}\chi_{ijk}^{2}E_jE_k + ... -\end{align} -\item Given that $\chi$ and $\alpha$ are proportional to $\langle D \rangle$, they can be complex. We will see that real and imaginary part have very different interpretations. -\end{enumerate} -\section{Propagation of light} -At this stage we would like to understand the propagation of an electric field through such a polarized medium. The general Maxwell equation actually reads: -\begin{align}\label{Eq:Maxwell} -\nabla^2 \vec{E}-\frac{1}{c^2}\frac{\partial^2 \vec{E}}{\partial t^2}= \frac{1}{\epsilon_0 c^2}\frac{\partial^2 \vec{P}}{\partial t^2} -\end{align} -This equation can be massively simplified by only looking at a slowly-evolving envelope $\mathcal{E}(r,t)$ and $\mathcal{P}(r,t)$, which are defined through: -\begin{align} -\vec{E} &= \mathcal{E} e^{ikz-i \omega_L t}\\ -\vec{P} &= \mathcal{P} e^{ikz-i \omega_L t}\\ -\end{align} -As shown in more detail in Chapter 4 of \cite{lukin}, Eq. \eqref{Eq:Maxwell} reduces then to: -\begin{align} -\frac{\partial}{\partial z}\mathcal{E}+\frac{1}{c}\frac{\partial}{\partial t}\mathcal{E} = \frac{ik}{2\epsilon_0}\mathcal{P} -\end{align} - -This equation becomes especially transparent, if we investigate it for very long times, such that we can perform a Fourier transformation and obtain: -\begin{align} -\frac{\partial}{\partial z}\mathcal{E}= i\frac{\omega}{c}\mathcal{E} +\frac{ik}{2\epsilon_0}\mathcal{P} -\end{align} -Finally, we can use \eqref{Eq:Chi} to write: -\begin{align} -\frac{\partial}{\partial z}\mathcal{E}&= i\left(\frac{\omega}{c} +\frac{k}{2} \chi(\omega)\right) \mathcal{E}\\ -\mathcal{E}(\omega, z) &=E_0 e^{i\left(\frac{\omega}{c} +\frac{k}{2}\chi(\omega)\right)z} -\end{align} - -\subsection{Absorption and refraction} - -The meaning of the susceptibility becomes especially clear for a continuous wave, where $\omega\rightarrow 0$ and we obtain: -\begin{align} -\mathcal{E}(\omega\rightarrow 0, z) &=E_0 e^{i\frac{k\chi(0)}{2} z} -\end{align} -We can then see that: -\begin{itemize} -\item The imaginary part of the susceptibility leads to absorption on a scale $l^{-1} = \frac{k}{2}\text{Im}(\chi(0))$ -\item The real part describes a phase shift. The evolution of the electric field can be seen as propagating with a wavevector $k \rightarrow k +\frac{k}{2}\text{Re}(\chi(0))$, so the dielectric medium has a refractive index $n = 1 + \frac{\text{Re}(\chi(0))}{2}$ -\end{itemize} - -\subsection{Dispersion} -If the electric field has a certain frequency distribution, we might have to perform the proper integral to obtain the time evolution, i.e.: -\begin{align} -\mathcal{E}(t, z) &=\int d\omega e^{-i\omega t}\mathcal{E}(\omega,0) e^{i\left(\frac{\omega}{c} +\frac{k}{2}\chi(\omega)\right)z} -\end{align} - -To solve the problem we can develop the susceptibility: -\begin{align} -\chi(\omega) = \chi(0)+\frac{d\chi}{d\omega}\omega -\end{align} -And we obtain: -\begin{align} -\mathcal{E}(t, z) &=e^{izk\chi(0)/2} -\mathcal{E}(t-z/v_g, 0)\\ -v_g &= \frac{c}{1+\frac{\omega_L}{2}\frac{d\chi}{d\omega}} -\end{align} - -So the group velocity is controlled by the derivative of the susceptibility ! - - - -\section{Two level system} -After this rather general discussion, we will now employ it to understand the action of two-level systems on the travelling beam. So we will now focus on the influence of the atoms on the field in comparision with the previous discussions. Further, we will have to take into account the finite lifetime of the excited states in a phenomenological manner. For a two level system with excited state $\ket{e}$ and groundstate $\ket{g}$, we can directly write down the wavefunction as: -\begin{align} -\ket{\psi} = \gamma_g\ket{g}+ \gamma_e\ket{e} -\end{align} -In this basis, the dipole element reads: -\begin{align} -\langle D\rangle &= \bra{e}D\ket{g} \gamma_e^*\gamma_g\\ -&= d \sigma_{eg} -\end{align} -In the second line we introduced the notations: -\begin{itemize} -\item $d = \bra{e}D\ket{g}$ -\item The product $\gamma_e^*\gamma_g$ can identified with the off-diagonal component of the density operator $\sigma=\ket{\psi}\bra{\psi}$. We will often call it \textbf{coherence}. -\end{itemize} -The Hamiltonian of this model reads then in the rotating wave-approximation: -\begin{align} -\hat{H} &= 0\ket{g}\bra{g}+\hbar\delta \ket{e}\bra{e} + \hbar\Omega\left[\ket{e}\bra{g}+\ket{g}\bra{e}\right]\\ -\Omega &= d E/\hbar -\end{align} -This is exactly the model that we discussed in the lectures 3 and 4 \cite{Jendrzejewskib,Jendrzejewskia}. We then found that the time evolution might be described via: -\begin{align} -i\dot{\gamma}_g(t) &= \Omega \gamma_e\\ -i\dot{\gamma}_e(t) &= \delta \gamma_e +\Omega \gamma_g\\ -\end{align} -We can combine them to the components of the density operator, which then read: -\begin{align} -\sigma_{ij} = c_{i}^*c_j -\end{align} -From these coefficients, we can now obtain the evolution of the populations: -\begin{align} -\dot{N}_g &= \dot{\sigma}_{gg} = \dot{\gamma}_{g}^*\gamma_g+ \gamma_{g}^*\dot{\gamma}_g\\ -&= i\Omega(\sigma_{eg}-\sigma_{ge})\\ -\dot{N}_e &= -\dot{N}_g -\end{align} -So the total number of atoms stays automatically conserved. As for the coherences we obtain: -\begin{align} -\dot{\sigma}_{eg} &= \dot{\gamma}_{e}^*\gamma_g+ \gamma_{e}^*\dot{\gamma}_g\\ -&= i\delta \sigma_{eg}+i (N_g-N_e)\Omega\\ -\dot{\sigma}_{ge}&= -i\delta \sigma_{ge}-i (N_g-N_e)\Omega -\end{align} - -This density operator approach allows us to introduce spontaneous decay in a very straight-forward fashion: -\begin{itemize} -\item The time evolution of the excited state gets an additional term $-\Gamma N_e$. -\item Atoms coming from the excited state relax to the ground state, so we add a term $\Gamma N_e$. -\item The coherence decays also through a term $-\Gamma_2 \sigma_{ge}$. We will use here for simplicity the limit of $\Gamma_2 = \Gamma/2$ -\end{itemize} -So the full equations read now: -\begin{align} -\dot{N}_g &= i\Omega(\sigma_{eg}-\sigma_{ge})+\Gamma N_e\\ -\dot{\sigma}_{ge}&= -i\delta \sigma_{ge}-i (N_g-N_e)\Omega-\Gamma_2\sigma_{ge} -\end{align} - -At this stage we can find the steady-state solutions by setting $\dot{N}_g = \dot{\sigma}_{ge} = 0$. This leads too: -\begin{align}\label{Eq:PopTwoLevel} -N_e &= \frac{1}{2}\frac{\Omega^2 \frac{\Gamma_2}{\Gamma}}{(\omega_0-\omega_L)^2+\Gamma_2^2+\Omega^2\frac{\Gamma_2}{\Gamma}}\end{align} -\begin{align}\label{Eq:CohTwoLevel} -\sigma_{ge} &= i\frac{\Omega}{2}\frac{\Gamma_2-i(\omega_L-\omega_0)}{\Gamma_2^2+(\omega_0-\omega_L)^2+\Omega^2\Gamma_2/\Gamma} -\end{align} - -In the next lecture \cite{down-conversion} we will employ those results to study the laser. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 11 - Laser fundamentals.tex b/amo/tex_files/Lecture 11 - Laser fundamentals.tex deleted file mode 100644 index 6dd5de6..0000000 --- a/amo/tex_files/Lecture 11 - Laser fundamentals.tex +++ /dev/null @@ -1,374 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - - - -\begin{document} - -\title{Lecture 11 - Laser fundamentals} - - - -\author[1]{Fred Jendrzejewski}% -\affil[1]{Kirchhoff-Institut für Physik}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -We will study some basic properties of the laser.% -\end{abstract}% - - - -\sloppy - - -In the last lecture \cite{Jendrzejewski} we studied the interaction of atoms and light. Most importantly, we saw that electric field can be dephased and absorped through the interaction with atomic gases. In this lecture, we will see how this interaction can be employed to induce lasing and then study some basic properties of the laser. In the laser would most importantly find a situation in which the light coming out of the dielectric medium is amplified as shown in Fig. \ref{370550}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-11-13-um-15-43-50/Bildschirmfoto-2018-11-19-um-07.48.06} -\caption{{The Laser set-up. -{\label{370550}}% -}} -\end{center} -\end{figure} - -The crucial idea of the system is that it is possible to find a configuration for the medium in which it has a certain gain for the propagation of the electric field. So if the light comes into the gain medium with amplitude $I_A$ it exits with amplitude $G^{(0)}I_A$. The output mirror and losses lower the intensity such that the intensity. We can describe losses by the aborption rate $A$. The transmission of the semi-transparent mirror is quantified by the transmission coefficient $T$. Putting it all together, the intensity just before reentering the medium reads then $G^{(0)}I_A(1-T)(1-A)$. Amplification will happen if this intensity is higher than the initial one: -\begin{align} -G^{(0)}>\frac{1}{(1-T)(1-A)} -\end{align} - - -We will see that such a configuration is not trivial at all on the two-level system. Then we will discuss the appropiate configuration for lasing and a few properties of the laser. - -\section{The two level system} -In the last lecture, we saw that the two-level system might be described by the following rate equations: -\begin{align} -\dot{N}_g &= i\Omega(\sigma_{eg}-\sigma_{ge})+\Gamma N_e\\ -\dot{\sigma}_{ge}&= -i\delta \sigma_{ge}-i (N_g-N_e)\Omega-\frac{\Gamma}{2}\sigma_{ge} -\end{align} -The definitions were: -\begin{itemize} -\item $\Omega$ is the strength of the Rabi coupling. -\item $\delta$ the detuning. -\item $\Gamma$ is the lifetime of the excited state. -\item $N_g$ the groundstate population. -\item And $\sigma_{g,e}$ is the coherence $\sigma_{g,e} = \gamma_g^* \gamma_e$. -\item $\Gamma_2$ is the lifetime of the coherence. For the moment we will work in the limit $\Gamma_2 = \frac{\Gamma}{2}$. Let we will relax this point a bit. -\end{itemize} -At this stage we can find the steady-state solutions by setting $\dot{N}_g = \dot{\sigma}_{ge} = 0$. This leads too: -\begin{align}\label{Eq:PopTwoLevel} -N_e &= \frac{1}{2}\frac{\Omega^2}{2\delta^2+\Gamma^2/2+\Omega^2}\end{align} -\begin{align}\label{Eq:CohTwoLevel} -\sigma_{ge} &= i\frac{\Omega}{2}\frac{\Gamma-i2\delta}{2\delta^2+\Gamma^2/2+\Omega^2} -\end{align} - -We will now discuss these results in the two important regimes of very weak and very strong coupling. The first one is important for probe experiments, while the second one is typically the one, where we would like to operate a laser. - -\subsection{Linear response} -For very small coupling strength we can neglect the $\Omega$ dependence in the coherence and we obtain: -\begin{align} -\sigma_{ge} &= \frac{\Omega}{2}\frac{\delta+i\Gamma/2}{\Gamma^2/4+\delta^2} -\end{align} - -We can now plug this into the dipole element \footnote{The sign change appears as we are now working with $\sigma_{eg}$ instead of $\sigma_{ge}$ }: -\begin{align} -D &= d \sigma_{eg}\\ -D &= \frac{d^2}{2}\frac{\delta-i\Gamma/2}{\Gamma^2/4+\delta^2}E -\end{align} -In the second line, we used the relationship $\Omega = dE$ from lecture 4 \cite{Jendrzejewskia}. We can then directly read of the polarizability and hence the susceptibility, which was defined through $D = \alpha E$: -\begin{align} -\alpha =\frac{d^2}{2}\frac{\delta-i\Gamma/2}{\Gamma^2/4+\delta^2} -\end{align} -On resonance $\delta=0$ we have: -\begin{align} -\alpha(0) =-i\frac{d^2}{\Gamma}\\ -\chi(0) = -i\frac{n}{\epsilon_0}\frac{d^2}{\Gamma} -\end{align} -We obtain now rather directly that: -\begin{itemize} -\item Absorption is maximal on resonance. -\item There is no dephasing on resonance. -\item For large detunings the absorption can be increasingly neglected and the media becomes refractive as it only keeps an optical index. -\end{itemize} -We can then also look for maximum dephasing and find the it happens close to the resonance. A summary can be found in Fig. \ref{715970}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-11-13-um-14-12-29/Bildschirmfoto-2018-11-13-um-14-12-29} -\caption{{Susceptibility of the two level system. Figure taken from -\protect\cite{grynberg} -{\label{715970}}% -}} -\end{center} -\end{figure} - -\subsection{Saturation} -The population and coherence in the two-level system will saturate as a substantial amount of atoms is excited. To simplify the discussion let us rewrite the eq. \eqref{Eq:PopTwoLevel} and \eqref{Eq:CohTwoLevel} on resonance: -\begin{align} -N_e &= \frac{1}{2}\frac{\Omega^2}{\Gamma^2/2+\Omega^2}\\ -\sigma_{ge} &= i\frac{\Omega}{2}\frac{\Gamma}{\Gamma^2/2+\Omega^2} -\end{align} -We can see that the excited fraction is limited to $1/2$ of the atoms. So at some point the system cannot react anymore to the additional coupling strength. This is also the reason for the decay of the coherence at very large $\Omega$, which is basically telling us that the medium becomes transparent. This kind of observations motivates for practical purposes to introduce the saturation intensity $I_{sat} \propto \frac{\Gamma^2}{2}$, which allows us to rewrite the previous to equations as: -\begin{align} -N_e &= \frac{1}{2}\frac{I/I_{sat}}{1+I/I_{sat}} -\end{align} - -Finally, this kind of expressions allows us also nicely to see the direct connection between the dipole element and the number of excited atoms: -\begin{align} -\sigma_{ge} = i\frac{N_e}{\Omega} -\end{align} -So we never obtain a situation, where the two-level system amplifies light. Let us look into this situation once again from a technical point of view to see if we can obtain situations of amplificiation. - -\section{Rate equations} -To understand laser it is best to formulate the interaction of atoms and light in terms of rate equations for the populations, assuming that the coherences follow adiabatically. While strict derivations can become very tedious, they can be written down in a phenomenological way rather easily. So we will convince us here in some limiting cases of the usefulness. - -We now would like to use the previous discussions to set up the necessary formalism for laser amplification, which is based on the idea of rate equations. While these equations are of phenomenological nature, we can convince ourselves of their soundness in a first step. - -\subsection{The two-level system} - -In the last lecture we saw that we can write down the following Bloch equations for the two-level system on resonance: -\begin{align} -\dot{N}_g &= -i\Omega(\sigma_{eg}-\sigma_{ge})+\Gamma N_e\\ -\dot{\sigma}_{ge}&= i (N_g-N_e)\Omega-\Gamma_2\sigma_{ge} -\end{align} -In a substantial amount of situations the coherences reach the steady state much faster than the population. This can be due to technical noise, collisions or other effects. In this case we can assume $\dot{\sigma}_{ge}=0$ and the solve for the populations: -\begin{align} -\sigma_{ge}&= i \frac{\Omega}{\Gamma_2} (N_g-N_e)\\ -\sigma_{eg}-\sigma_{ge} &= -2i \frac{\Omega}{\Gamma_2} (N_g-N_e) -\end{align} -We can see in this limit that the inversion of the sign of the dipole element would come with $N_g < N_e$ \textbf{in the steady-state}. We saw previously that we cannot achieve this limit in the two-level system. - - -Having eliminated adiabatically the coherences, we end up with the following time evolution of the population: -\begin{align} -\dot{N}_g &= 2\frac{\Omega^2}{\Gamma_2}(N_e-N_g)+\Gamma N_e\\ -\end{align} -We can now identify the three terms as: -\begin{itemize} -\item Stimulated emission. -\item Stimulated absorption. -\item Spontaneous emission. -\end{itemize} -We will then focus on the rate equation for the populations and attempt to find situations, where $N_g < N_e$. - -\subsection{Optional: Rate equations for light} -To see, when light amplification will happen, we now need to connect the rate equations to evolution of light within the medium. One heuristic approach is guided by the Beer-Lambert law (Ch. 4.2.3 of \cite{Hertel_2015}). -\begin{align} -\frac{dI}{dz}&=- N_g\sigma I -\end{align} -We would like to translate this now more precisely into a change of photon numbers through the relation: -\begin{align} -I = c \hbar\omega N_{ph} -\end{align} -This allows us to rewrite for a propagation wave with $z = ct $: -\begin{align} -- \frac{N_g\sigma I}{\hbar \omega} = \frac{d}{dt}N_{ph} = \frac{dN_g}{dt} = -\frac{dN_e}{dt} -\end{align} -This allows us to define an absorption rate: -\begin{align} -R_{ab} &= \frac{\sigma I}{\hbar \omega}\\ -&= \frac{1}{N_g}\frac{dN_g}{dt} -\end{align} -This process is just the description of \textbf{stimulated absorption}. Nothing was special about the discussion of the absorption and we can actually also have exactly the inverse situation, where we assume that all the atoms start out in the excited state and then lead to an increased intensity: -\begin{align} -\frac{dI}{dz}&= N_e\sigma I -\end{align} -Both processes are now computing and we obtain in general: -\begin{align} -\frac{dI}{dz}&= (N_e-N_g)\sigma I -\end{align} - -So if we have most atoms in the excited state and neglect the atoms in the ground state we can actually have light amplification. This is idea is underlying the laser. However, we have already seen for the two-level system that this situation is not easily achieved and we will now discuss it a bit further. - - - - -\section{Lasing condition in a four-level system} -To obtain in the medium, it is necessary to have an excited state population which is higher than the population of the ground state. This is not possible in the two-level system and in practice realized mostly in four-level systems.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-11-14-um-08-43-49/Bildschirmfoto-2018-11-19-um-07.55.23} -\caption{{The 4 level system. -{\label{804096}}% -}} -\end{center} -\end{figure} - - -The idea of such a system is the following: -\begin{itemize} -\item A strong pumping beam excites atoms into the state $e$. -\item From $e$ they decay rapidely into the state b. This is the upper state for the lasing transition $b\rightarrow a$. -\item We obtain lasing on the transition $b\rightarrow a$, which has a decay rate of $\tau_B$ -\item The lower state $a$ is easily depopulated through the fast relaxation $a\rightarrow g$. -\end{itemize} -We can now write down the rate equations for a weak laser, such that we can only keep terms in first order: -\begin{align} -\dot{N}_e &= w(N_g-N_e)-N_e/\tau_e\\ -\dot{N}_b &= \frac{N_e}{\tau_e}-N_b/\tau_b\\ -\dot{N}_a &= \frac{N_b}{\tau_b}-N_a/\tau_a\\ -\dot{N}_g &= \frac{N_a}{\tau_a}-w(N_g-N_e) -\end{align} -We can now find steady state solutions assuming that $\tau_e, \tau_a \ll \tau_b$. Further we assume that the pumping to $e$ is not too strong, i.e. $w \tau_e\ll1$. We then obtain: -\begin{align} -N_e \simeq w\tau_e N_g\\ -N_b \simeq w\tau_b N_g\\ -N_a \simeq w\tau_a N_g -\end{align} -We then obtain the state populations: -\begin{align} -\frac{N_b-N_a}{N_g + N_e + N_a + N_b}\simeq \frac{w\tau_b}{1+w\tau_b} -\end{align} - -Lasing is then obtained above the pumping threshold at which the gain overcomes the losses. - -\section{Steady-state operation of the laser} -Assuming that the lasing condition is fullfilled, we can now investigate its steady-state behavior. Quite importantly, we have to have an electric field, which remains exactly constant after each round trip.This implies to conditions: -\begin{itemize} -\item The gain has to cancel the losses: -\begin{align} -G = \frac{1}{(1-T)(1-A)} -\end{align} -\item The phase after the round trip has to be a multiple of $2\pi$ -\end{itemize} -For a cavity of length $L$, the wavelength $\lambda_p$ has to be an integer fraction: -\begin{align} -L_{cav} &= p\lambda_p\text{ with }p \in \mathbb{N}\\ -\omega_p/2\pi &=p \frac{c}{L} -\end{align} -So the lasing will not happen at one single frequency, but actually for any wavelength fulfilling this condition. The laser has multiple \textbf{longitudinal modes}. Some tricks allow to suppress this multi-mode behavior, such that we obtain a very pure light source.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-11-19-um-08-08-56/Bildschirmfoto-2019-01-29-um-12.59.41} -\caption{{Frequency distribution of the steady-state laser. -{\label{659829}}% -}} -\end{center} -\end{figure} - -\section{Mode-locked operation} - -We have seen in the last section that a laser might act in the multimode regime. So let us write down for simplicity the total field, where we assume that the relative phase between modes in uncorrelated and that the amplitude is the same for all of them. We then have: -\begin{align} -E(t) = \sum_{k=0}^{N-1}E_0 \cos(\omega_k t +\phi_k) -\end{align} -The frequency of each mode: -\begin{align} -\omega_k = \omega_0 + k \Delta\text{ with }\Delta/2\pi = \frac{c}{L_{cav}} -\end{align} -Summing the electric fields leads to an intensity: -\begin{align} -I(t)= \frac{NE_0^2}{2}+E_0^2\sum_{j_k}\cos\left[(\omega_j-\omega_k)t+\phi_j-\phi_k\right] -\end{align} - -For uncorrelated fields this intensity is on average $\overline{I} = \frac{NE_0^2}{2}$ with temporal fluctuations in the order of the amplitude itself \footnote{We obtain actually a speckle pattern in time here.} -For correlated fields the equations simplify a lot and we obtain: -\begin{align} -I &= \frac{1}{2}\left|\sum_{k=0}^{N-1}E_0e^{-i\omega_k t}\right|^2\\ - &= \frac{E_0^2}{2}\left|\sum_{k=0}^{N-1}e^{i k\Delta t}\right|^2\\ - &= \frac{E_0^2}{2}\left|\frac{\sin(\frac{N\Delta t}{2})}{\sin(\frac{\Delta t}{2})}\right|^2 -\end{align} -The maximum intensity in this coherent sum is now -\begin{align} -I_{max} = N\overline{I} -\end{align} -We can then reach petawatt (!!) peak powers. - -In the next lecture \cite{entanglement}, we will study how the laser is actually used for the study of entanglement - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 12- Entanglement.tex b/amo/tex_files/Lecture 12- Entanglement.tex deleted file mode 100644 index 2cac0c0..0000000 --- a/amo/tex_files/Lecture 12- Entanglement.tex +++ /dev/null @@ -1,427 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} - -\begin{document} - -\title{Lecture 12- Entanglement} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\author[2]{Matthias Weidemüller}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -We will discuss the creation of entangled photons and how they can be used for the test of Bell's inequalities.% -\end{abstract}% - - - -\sloppy - - -We have previously discussed how complicated gain media allow for the amplification light \cite{Jendrzejewski}. Here we will discuss how it is used to create entangled photons and then dive into the fundamental test of the Bell inequalities. - -\section{Parametric down-conversion} - -Fig. \ref{888919} shows the schematic setup of an experiment where pairs of entangled photons are created by a two-photon source. Two polarizers can be used to probe the polarization of the photons. - -\subsection{Three-wave mixing} -The crystal in the medium is a non-linear crystal, which means that we can write the polarization is not just linear, but higher order terms will play a role. We will consider for starters that there are actually two pump waves in the same direction, which allows us to write: -\begin{align} -P_{NL}(z) = 2\epsilon_0 \chi^{(2)}\mathcal{E}_1(z)\mathcal{E}_2(z)e^{i(k_1+k_2)z} -\end{align} -This non-linear polarizability leads to the following equations of motion \cite{grynberg}: -\begin{align} -\frac{d\mathcal{E}_3}{dz}e^{ik_3 z} &= \frac{i\omega_3}{2\epsilon_0n_3c}P_{NL}(z) \\ - \frac{d\mathcal{E}_3}{dz}&= \frac{i\omega_3}{n_3c}\chi^{(2)}\mathcal{E}_1(z)\mathcal{E}_2(z)e^{i(k_1+k_2-k_3)z} \\, -\end{align} -where $\omega_3 = \omega_1 + \omega_2$. We can now additionally assume that: -\begin{itemize} -\item The effect of the medium does not change the strong pump to much. -\item The amplified field is zero initially. -\item The oscillating phase factor $(k_1+k_2-k_3)z$ can be ignored, i.e. where we have: -\begin{align} -\vec{k}_3 = \vec{k}_1 + \vec{k}_2 -\end{align} -\end{itemize} -We can then simplify to: -\begin{align} - \frac{d\mathcal{E}_3}{dz}&=\frac{i\omega_3 \chi^{(2)}}{n_3c}\mathcal{E}_1\mathcal{E}_2 -\end{align} -So the amplitude of the mixed field increases in a linear fashion in the non-linear medium. However, the typical amplitude for production is below 1\% for commonly used crystals. - -\section{Polarization entangled photons} - -We will try to observe correlations between the photons. Two optical fibers are collecting the pairs of photons and transmit them to the single photon detectors. Finite collection and detection efficiency causes only one of the two photons to be detected in most cases. Therefore, a coincidence circuit registers events in which two photons arrive within \num{30} \si{\nano \second}. As the rate of detected individual photons is about \num{50} \si{\kilo \hertz}, we assume that photons arriving during such a small time window were created in the same event.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-01-um-07-20-45/Bildschirmfoto-2018-10-01-um-07-20-45} -\caption{{a) The process of spontaneous parametric down-conversion (SPDC). Inside -a nonlinear crystal, two outgoing photons are created from an incoming -photon. Momentum and energy conservation apply, resulting in a -characteristic emission cone. b) Two photons created by SPDC encounter -polarizers. Depending on the polarization, the photons are either -absorbed or transmitted. After passing the polarizers, the photons are -collected with two optical fibers and detected with single photon -counters. The detector indicates a coincidence when both photons arrive -within roughly 30 ns. -{\label{888919}}% -}} -\end{center} -\end{figure} - - - - - - - -\subsection{Polarization analysis} - -To study the quantum nature of the correlations, we will employ polarizers and later dive into Bell's inequalities as well as entanglement in general. The interested reader will have a great time reading through the complement 5.C of \cite{grynberg}. - -The first emitted photon is analyzed by a rotatable polarizers $\hat{A}(\theta)$, which has two detection paths $\pm1$. The other polarizer will be called $\hat{B}(\theta)$ the only difference is that he only acts on photon 2. Basically, we are following the \textit{Alice} and \textit{Bob} notation here. - -We can express it then in our basis states of vertical polarization $\ket{V}$ and horizontal polarization $\ket{H}$. The polarizer aligned with $H$ has eigenvalues: -\begin{align} -\hat{A} \ket{H}= +\ket{H}\\ -\hat{A} \ket{V}= -\ket{V} -\end{align} - -To analyse the polarization of each photon in detail we can also rotate the polarizer by an angle of $\theta$. In this case the transmitted eigenstates are: -\begin{align} -\ket{\theta}_{+} &= \cos(\theta)\ket{H} +\sin(\theta)\ket{V}\\ -\ket{\theta}_{-} &= -\sin(\theta)\ket{H} +\cos(\theta)\ket{V} -\end{align} -Taking as input states $\ket{H}$, we simply find Malus law: -\begin{align} -P_+(\theta) = \cos(\theta)^2\\ -P_-(\theta) = \sin(\theta)^2\\ -\end{align} -In the rotated basis we can express the polarization operator as: -\begin{align} -\hat{A}(\theta) = \left(\begin{array}{cc} -\cos(2\theta)& \sin(2\theta)\\ -\sin(2\theta)& -\cos(2\theta) -\end{array}\right) -\end{align} -We can now employ the two polarizers to investigate the two emitted photons as shown in Fig. \ref{762069}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.98\columnwidth]{figures/Bildschirmfoto-2018-11-22-um-10-53-25/Bildschirmfoto-2018-11-22-um-10-53-25} -\caption{{Polarization analysis of correlated photons -{\label{762069}}% -}} -\end{center} -\end{figure} - -The possible outcome of our experiments are the four states $\{HH, HV, VH, VV\}$ and hence we could decompose our full wavefunction as: -\begin{align} -\ket{\psi} &= c_0 \ket{HH}+ c_1 \ket{HV} + c_2 \ket{VH} + c_3\ket{VV} -\end{align} -Using the two polarizers we can now start to investigate the prefactors of the full wavefunction. Let us first look into the results of a polarizer that is not rotated. We find: -\begin{align} -\bra{\psi}\hat{A}\ket{\psi}&=|c_0|^2 + |c_1|^2 - |c_2|^2-|c_3|^2 -\end{align} -For Bobs polarizer in the same position we would find: -\begin{align} -\bra{\psi}\hat{B}\ket{\psi}&=|c_0|^2+ |c_2|^2 - |c_1|^2 -|c_3|^2 -\end{align} -\subsection{An equivalent 2 qubit circuit} - -The optics setup handles two independent photons, with two outcomes each. So we can also see the presented setup as a two qubit system. A circuit diagram would mostly look the following way.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/TwoQubitsCircuit-01/TwoQubitsCircuit-01} -\caption{{Realizing the two-photon experiment within a quantum circuit. What are -the correlations the two photons have ? -{\label{840060}}% -}} -\end{center} -\end{figure} - -The two photons originate from an unknown source, which is here modelled by photons propagating through some unitary matrix $\hat{U}$. The measurement is performed in the last step, projecting the qubit on its up or down state. The rotation around the x axis $\hat{R}_x$ transforms a qubit state into a superposition. In strong analogy to the polarization - - -\subsection{A naive guess} -We know that we have two photons in the system. Both can have some polarization and clearly they are propagation in different directions. So it does not seems to much of a stretch to guess that the total wavefunction is the product of two superposition states: -\begin{align}\label{Eq:Separable} -\ket{\psi}_{p} &= (c_{H,1}\ket{H} +c_{V,1} \ket{V})\otimes(c_{H,2}\ket{H}+c_{V,2}\ket{V}) \\ -&= (c_{H,1}c_{H,2}\ket{HH} + c_{V,1}c_{V,2}\ket{VV} + c_{V,1}c_{H,2}\ket{VH} + c_{H,1}c_{V,2}\ket{HV}) -\end{align} - - - - - -\subsection{The experimental observation of entanglement} -\begin{itemize} -\item We find a lot of counts if both polarizers are set vertical or horizontal. So the state has a $VV$ and a $HH$ component, which tells us that $c_0$ and $c_{3}$ are non-zero. The equal rate of measuring further tells us that they are roughly similiar in amplitude, so we can write for simplicity $|c_0| = |c_3|$ -\item We find zero correlation if the polarizers are opposite. So the mixed terms are zero $c_1 = c_2 = 0$ -\end{itemize} -In summary we can expect the state to be written as: -\begin{align}\label{Eq:BellState} -\ket{\psi_B} &= \frac{\ket{HH} +\ket{VV}}{\sqrt{2}} -\end{align} -This is quite clearly incompatible with our naive guess \eqref{Eq:Separable}, which means that we have an entangled state. - -\section{Optional: Quantifying entanglement} -We will study the properties of the entangled states later in more detail. However, we will take a short moment to cite two ways of quanitfying the entanglement through the density operator: -\begin{align} -\hat{\rho} = \sum_i \eta_i \ket{i} \bra{i} -\end{align} -\begin{itemize} -\item The reduced density operator, which shows mixed states if there is entanglement: -\begin{align} -\hat{\rho}_1 = \trarb{2}{\hat{\rho}} -\end{align} -In this case, $\hat{\rho}$ is the density operator of a pure state and $\textrm{tr}_2$ is the trace over the Hilbert space of particle \num{2}. -\item The von Neumann entropy, which measures the remaining uncertainty within a quantum state: -\begin{align} -S&=-\tr{\hat{\rho}\ln\hat{\rho}}\\ - &= - \sum_i \eta_i \ln \eta_i = \sum_i \eta_i \ln \frac{1}{\eta_i} -\end{align} -\end{itemize} - - - -For the Bell states of \eqref{Eq:BellState} we find then: -\begin{align} -\hat{\rho_B}_1 = \frac{1}{2} \left( \ket{H}\bra{H} + \ket{V}\bra{V} \right) -\end{align} -Its corresponding entropy is $S=\ln 2$, the entropy of a pure state is $S=0$. - -\section{Back to the correlation between distant photons} -In the last sections we performed measurements on joined detection probabilities between two independent polarizers. Quite importantly we saw that: -\begin{itemize} -\item Each photon is in a superposition of $\ket{H}$ and $\ket{V}$. -\item Both photons are always detected in the same polarization state. -\item From Fig. \ref{762069} it seems as if 1 was a bit closer to the source than 2 \footnote{The exact order does not matter, but they are most certainly not at exactly the same distance from the source}. So 1 is detected a bit earlier and projected onto one of the two states. -\item Yet, 2 seems to instantaneously on which polarization 1 was projected and choses the same one. -\end{itemize} - -For our set-up the distances are small, but the same observations and arguments hold also for very large distances between the detectors. Einstein, Podolski and Rosen understood this long distance correlation and decided that something was funky about quantum mechanics \cite{Einstein_1935}. - -Therefore, the idea of an additional hidden shared parameter can be introduced to explain the correlations between distant objects. We will simply assume that the two photons have well-defined polarization with angle $\lambda$ from the starting point, yet this polarization varies randomly from pair to pair between 0 and $2\pi$. Hence we have uniform probability distribution $\rho(\lambda) = \frac{1}{2\pi}$. The measurement of the polarizers can then simply be modelled through -\begin{align} -A_{hv}(\lambda, \theta) =\text{sign}\left(\cos2 (\theta-\lambda)\right) -\end{align} -This model reproduces nicely all the tests that we ran previously. Namely, maximum detection for HH and VV as well as zero correlation for $HV$. They can be nicely compared through the correlation coefficient $E(\theta_1,\theta_2)$. The particularly perturbing case is that this simple model for hidden parameters works even perfectly well in the case of $45^\circ$ angles. So is there any measurable difference between our observations and the hidden variable models ?\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-11-23-um-13-49-41/Bildschirmfoto-2018-11-23-um-13-49-41} -\caption{{Correlation coefficient as taken from~~\protect\cite{grynberg} -{\label{649269}}% -}} -\end{center} -\end{figure} - -\section{Bell's theorem} - -Bell posed the previous discussion on a more general and quite simple footing \cite{Bell_1964} and later extended by Clauser, Horner, Shimony, Holt \cite{Clauser_1969}. For the hidden parameter we need just a standard density distribution with: -\begin{align} -\rho(\lambda)\geq 0\\ -\int d\lambda \rho(\lambda) = 1 -\end{align} - -We additionally should describe the polarizer by some function that takes the value $\pm 1$ depending on the angle of the polarizer and the hidden variable: -\begin{align} -|A(\lambda, \theta_1) |= |A(\lambda, \theta_2) | =1 -\end{align} -In the experiment we now have two polarizers $A$ for Alice and $B$ for Bob, which we will allow to be in some position $\theta$ as visualized in Fig. \ref{617669}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/BellConfig-01/BellConfig-01} -\caption{{A Bell experiment -{\label{617669}}% -}} -\end{center} -\end{figure} - - -We will now calculate the the expectation value for joint detection: -\begin{align} -E(\theta_1, \theta_2)&=\overline{A(\theta_1)B(\theta_2)}-\overline{A(\theta_1)}~\overline{B(\theta_2)} -\end{align} -We can simplify further for equal probability of having H or V polarization, which leads too: -\begin{align} -E(\theta_1, \theta_2)&=\overline{A(\theta_1)B(\theta_2)}\\ - &=\int d\lambda A(\lambda, \theta_1)B(\lambda, \theta_2) -\end{align} -Bells inequalities are then studying the correlations between photons in four different configuations: -\begin{align} -s(\lambda, \theta_1, \theta_1', \theta_2, \theta_2')&= A(\lambda, \theta_1)B(\lambda, \theta_2)-A(\lambda, \theta_1)B(\lambda, \theta_2') +A(\lambda, \theta_1')B(\lambda, \theta_2)+A(\lambda, \theta_1')B(\lambda, \theta_2')\\ -&= A(\lambda, \theta_1)(B(\lambda, \theta_2)-B(\lambda, \theta_2'))+A(\lambda, \theta_1')(B(\lambda, \theta_2)+B(\lambda, \theta_2'))\\ -&= \pm 2 -\end{align} -We actually have no access to the hidden parameter, so we are looking for its average value: -\begin{align} -S &= \int d\lambda \rho(\lambda) s(\lambda, \theta_1, \theta_1', \theta_2, \theta_2')\\ --2\leq S\leq 2 -\end{align} -And this value can now be measured experimentally as we can identify: -\begin{align} -S &= E(\theta_1, \theta_2)-E(\theta_1, \theta_2')+E(\theta_1', \theta_2)+E(\theta_1', \theta_2') -\end{align} -This is known as the Bell--Clauser--Horn--Shimony--Holt (CHSH) inequalities. - -\subsection{The inconsistency between hidden parameters and quantum mechanics} - -We can now go again through the predictions of quantum mechanics and test if there is a region of interest in which we should observe a violation of the CHSH inequalities. Actually there is an important configuration at which we should break them rather violantly namely for: -\begin{align} -|\theta_1-\theta_2| =\frac{\pi}{8}(22.5^\circ)\\ -|\theta_1'-\theta_2| =\frac{\pi}{8}(22.5^\circ)\\ -|\theta_1'-\theta_2'| =\frac{\pi}{8}(22.5^\circ)\\ -|\theta_1-\theta_2'| =\frac{3\pi}{8}(67.5^\circ)\\ -\end{align} -Here, we expect to have $S= 2\sqrt{2}$. So to test Bells inequalities we have to measure the joint probabilities in rather unusual angles. This also explains why quantum mechanics and local hidden variables seem so similiar in this kind of experiments, the biggest differences are hard to see accidentally. - -\subsection{The experimental test} - -We can now study the correlations for the following configuration. -\begin{align} -\theta_1 = 0 \text{ and }\theta_1' = \frac{\pi}{4}\\ -\theta_2 = \frac{\pi}{8} \text{ and }\theta_2' = \frac{3\pi}{8}\\ -\end{align}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/displaydata2/displaydata2} -\caption{{Correlation measurement between the two photons measured with the setup -shown in {\ref{888919}} b) -and~{\ref{762069}}. One of the rotatable polarizers -stays at an angle \(\gamma \in \{ 0^\circ, 45^\circ, 90^\circ, 135^\circ \}\) while the other polarizer is -rotated counter-clockwise in small steps between \(0^{\circ}\) and -\(360^{\circ}\). -{\label{358356}}% -}} -\end{center} -\end{figure} - -Experimentally we observe quite frequently value above 2. However, -please be aware that there are a lot of loopholes in our test. The most -obvious ones are: - -\begin{enumerate} -\tightlist -\item - Position of the polarizers is not random. -\item - The detectors are not well separated. -\end{enumerate} - -Other loopholes exist, but all realistically known loopholes have been -closed over the course of the last three decades. \cite{Giustina_2015,Shalm_2015,Hensen_2015}. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 13 - Atoms with many electrons.tex b/amo/tex_files/Lecture 13 - Atoms with many electrons.tex deleted file mode 100644 index 97decd8..0000000 --- a/amo/tex_files/Lecture 13 - Atoms with many electrons.tex +++ /dev/null @@ -1,334 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand*\ch[1]{\ensuremath{\mathrm{#1}}} - -\begin{document} - -\title{Lecture 13 - Atoms with many electrons} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\author[2]{Matthias Weidemüller}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -After our discussion of extremely simple atoms like hydrogen and helium, we will now discuss the most important properties of more complex atoms. We will see, how we can categorize them and discuss some of the general properties% -\end{abstract}% - - - -\sloppy - - -We started the discussion of atoms in lecture 3 by an extremely simple and powerful model, the two-level system \cite{Jendrzejewski}. We then moved on to discuss how it can emerge within the hydrogen atom and the Helium atom. For both of these we dived again into simplified schemes. Especially for Hydrogen, we saw in lecture 7 the exploding complexity of the models as we tried to describe it \cite{Jendrzejewskia}. If we now want to leave these rather academic problems and turn to the other widely used atoms, molecules etc, we have towards effective models for two reasons: -\begin{itemize} -\item Analytical solutions do not exist. -\item Full numerical solutions become extremely and expansive. -\end{itemize} - -A particularly instructive discussion of the ineffeciency of brute force numerical methods was given by Kenneth Wilson, the father of the renormalization group, in Sec 3 of \cite{Wilson_1975}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-11-27-um-10-08-12/Bildschirmfoto-2018-11-27-um-10-08-12} -\caption{{A toy model, exemplifying the problem of direct numerical analysis -{\label{475459}}% -}} -\end{center} -\end{figure} - -The main idea is plotted in Fig. \ref{475459} and its description in the words of Kenny Wilson can be found in Fig. \ref{139900}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-11-27-um-10-12-00/Bildschirmfoto-2018-11-27-um-10-12-00} -\caption{{On the inefficiency of brute force numerics as described in Sec 3 of -\protect\cite{Wilson_1975} -{\label{139900}}% -}} -\end{center} -\end{figure} - -We will come back to different experimental approaches to solve problems for which we cannot devise effective theories at a later stage, when we discuss quantum simulation and quantum computation with atomic systems. But first we will try to gain a good understanding of atoms with many electrons. - -\section{Atoms with Many Electrons } -As already discussed before, the N electron system cannot be solved in its full complexity, so we have to walk through the different levels of physical effects to understand what is going on. We will start out with the simplest model, which consists of \begin{itemize} -\item N electrons without spin -\item Bound to the point-like nucleus of charge $Z$, which is supposed to be not moving. -\end{itemize} - -In natural units, the Hamiltonian can be written as: -\begin{align} -\hat{H} = \sum_i^N \left(-\frac{1}{2} \vec{\nabla}^2_{r_i} - \frac{Z}{r_i} \right) + \sum_{ii} \left( \frac{1}{r_{ij}} - S(r_i) \right)}_{\hat{H}_1} -\end{align} - -So we we can can treat atoms through the shell structure known from the \ch{H} atom, but the screening lifts the $l$ degeneracy. For a single outer electron, we have even seen how this screening can be described by the quantum defect. - -We would now like to go beyond this simple picture and discuss the following questions: -\begin{itemize} -\item How should the residual term $\hat{H}_1$ be taken into account? -\item How do we properly take into account the Pauli principle ? -\item How can we treat the fine-splitting ? -\end{itemize} - -\section{On the residual coupling} -If we ignore the residual coupling, we obtain a spherically symmetric problem, which implies that the angular momentum $\vec{l}_i$ of each electron is conserved. This conservation will be broken by $\hat{H}_{1}$. However, these forces are internal, which implies that the total angular momentum $\vec{L} = \sum_i \vec{l}_i$ is conserved. So we should label the states in the complex Hamiltonian by $\vec{L}$. - -The total angular momentum will then set the symmetry of the spatial wavefunction. As already discussed in some detail for the He atom, this has wide-reaching consquence on the spin degree of freedom through exchange interaction. - -\section{The Pauli principle and spin} -\begin{itemize} -\item According to the Pauli principle, each single-particle state can be occupied only by one electron. After distributing all electrons over different single-particle eigenstates (``orbitals''), the resulting state needs to be fully antisymmetrized (Slater determinant). -\item There is a simplification for atoms with many electrons: The angular momenta and spins of a complete subshell with $n,\,l,\,\{m_{-l},\cdots,m_l\}$ add to zero and can be ignored in the further considerations (``shell structure''). Note that this is often broken in molecular binding! -\item Alkali atoms are the simplest atoms with shell structure: All but one \emph{valence} electron add to $L=0,S=0$. The ground state thus has $L=0,S=1/2$. -\item For more complex atoms, the valence electrons couple to a total orbital angular momentum $L$ with a given symmetry according to particle exchange. -\end{itemize} - -Let us have a look at two examples for light atoms, starting with \ch{He}: -\begin{itemize} -\item $1s^2 \rightarrow L=0,S=0$. The corresponding term is $^1S$ -\item $1s2s \rightarrow L=0, \{S=0,S=1\}$. The corresponding terms are $^1S$ and $^3S$. . -\end{itemize} - -The electronic configuration of \ch{Si} is: -\begin{align} -\underbrace{1s^2 2s^2 2p^6 3s^2}_{L=0,\,S=0} 3p^2 -\end{align} - Per valence electron we have $l=1$ and $s=1/2$. So we get $L=0,1,2$ and $S=0,1$. Here $S=1$ means symmetry and $S=0$ antisymmetry with respect to particle exchange. - In principle we can form the following terms: -\begin{align} -^1S,\,^3S,\,^1P,\,^3P,\,^1D,\,^3D -\end{align} -Which of these terms can be fully antisymmetrized? Here, only the terms $^1S$, $^3P$ and $^1D$ fulfill Pauli's principle. In general the exchange interaction (seen in the discussion of He), will then lower the energy of the states with high spins. - -\subsection{Optional: Symmetry of the $L$ states} -We can construct the following $L$-states for them: -\begin{align} -\ket{L=2,M_L=2} &= \ket{\overbrace{1}^{l_1},\overbrace{1}^{m_{l_1}};\overbrace{1}^{l_2},\overbrace{1}^{m_{l_2}}} \label{eq:lstate1} -\end{align} -\begin{align} -\ket{L=1,M_L=0} &= \frac{1}{\sqrt{2}} ( \ket{\overbrace{1}^{m_{l_1}},\overbrace{-1}^{m_{l_2}}} - \ket{-1,1} ) \label{eq:lstate2} -\end{align} -\begin{align} -\ket{L=0,M_L=0} &= \frac{1}{\sqrt{3}}(\ket{\overbrace{1}^{m_{l_1}},\overbrace{-1}^{m_{l_2}}} - \ket{0,0} + \ket{-1,1} ) \label{eq:lstate3} -\end{align} - -The states \eqref{eq:lstate1} and \eqref{eq:lstate3} are symmetric and the state \eqref{eq:lstate2} is antisymmetric with respect to particle exchange. - - -\section{Fine splitting} - -We have already seen in the discussion of the hydrogen atom that relativistic effects should be taken into account to fully understand the level spectrum of different atoms. -To take into account the spin, we can decompose the Hamiltonian as follows: -% -\begin{align} \label{eq:lsvsjjhamiltonian} -\hat{H} &&=& \underbrace{\sum_i^N \left( \frac{1}{2} \vec{\nabla}^2_{\vec{r}_i} + V_\textrm{cf} (r_i) \right)}_{\hat{H}_0} + \underbrace{\sum^N_{j>i} \left( \frac{1}{r_{ij}} - S(r_i) \right)}_{\hat{H}_1} + \underbrace{\sum_i^N c_i(\vec{r}_i) \hat{\vec{L}}_i \cdot \hat{\vec{S}}_i}_{\hat{H}_2} -\end{align} -The term $\hat{H}_0$ is from the central field and the independent particle model. The Hamiltonian $\hat{H}_1$ results from the residual electrostatic interaction and the Hamiltonian $\hat{H}_2$ comes from the spin-orbit coupling of individual electrons. - -The question is now which term dominates. Since $\hat{H}_2 \propto (Z\alpha)^2$, we can ignore it if $Z$ is small. This is the case for light atoms. - -For our example this means that $^3P$ is the lowest energy state. However, the triplet state has a multiplicity. Which are these states? There has to be an additional degree of freedom. The total electronic angular momentum $\hat{\vec{J}} = \hat{\vec{L}} + \hat{\vec{S}}$ of the atom is a conserved quantity. The basis -\begin{align} -\ket{L,M_\textrm{l},S,M_\textrm{s}} -\end{align} -is therefore not the right basis, since $M_\textrm{l}$ and $M_\textrm{s}$ are not conserved because of $LS$ coupling. The correct basis is -\begin{align} -\ket{L,S,J,M_\textrm{j}}. -\end{align} -Which $J$ corresponds to the ground state? - If the outermost shell is more than half filled, the maximum $J$ value is the ground state, otherwise, the ground state has the minimum $J$ value. In our example, \ch{Si}: $^3P_0$ is the ground state! - - -So far, we have been concerned with the ``Russell-Saunders'' coupling, also known as $LS$ coupling. However, for atoms with large $Z$, the term $\hat{H}_2$ in the Hamiltonian \eqref{eq:lsvsjjhamiltonian} -%and therefore the $jj$ coupling -might become large, since it is proportional to $(Z \alpha)^2$. We can ignore $\hat{H}_1$ instead. - -According to $\hat{H}_2$ the individual electron orbital angular momentum $l$ pairs with the spin $s$ of the same electron to form the total electron angular momentum $j$. This will lead us to the concept of $jj$ coupling. Let us consider carbon first (see \ref{693186}). The ground state reads: -\begin{align} -\ch{C}: 1s^22s^22p^2. -\end{align} -Let us consider one excited state: -\begin{align} -1s^22s^22p3s. -\end{align}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/lsvsjj/lsvsjj} -\caption{{``The splitting of levels in the first excited~\textsuperscript{1}P -and~\textsuperscript{3}P terms of the carbon sequence. -As~\(Z\) increases, the two electrons change their -character from being in an~\(LS\) coupled state to a -\(jj\) coupled state.'' Taken from \protect\cite{pearson}. -{\label{693186}}% -}} -\end{center} -\end{figure} - -According to $LS$ coupling the total angular momentum of the two valence electrons is $L=1$ and the total spin can be $S=0,1$. Thus, we should expect a singlet and a triplet. For heavy atoms we can observe two doublets instead of a singlet and a triplet. Because of the very strong $\hat{\vec{L}}_i \cdot \hat{\vec{S}}_i$ coupling, $\hat{\vec{L}}$ and $\hat{\vec{S}}$ are no longer conserved quantities. On the contrary, $\hat{\vec{J}}$ still is a conserved quantity. In very heavy atoms, $l_i$ and $s_i$ couple to $j_i$ for each electron $i$. -% -In our example we get -\begin{align*} -l_1=0, s_1=\frac{1}{2} \qquad \text{and} \qquad l_2=1, s_2=\frac{1}{2} -\end{align*} -for electron $1$ and $2$ and thus -\begin{align*} -j_1=\frac{1}{2} \qquad \text{and}\qquad j_2=\frac{1}{2},\frac{3}{2}. -\end{align*} -The individual $j_i$ couple to a total orbital angular momentum $J$ in the following manner: -\begin{align*} -J= \left\{ \begin{array}{ccc}0,1 & \text{for} & (j_1,j_2)=\left(\frac{1}{2},\frac{1}{2}\right)\\ && \\ 1,2 & \text{for} &(j_1,j_2) = \left(\frac{1}{2}, \frac{3}{2}\right) \end{array} \right. -\end{align*} - -\section{Hyperfine splitting} - -Until now we have investigated the structure of the atom depending on: -\begin{itemize} -\item The orbital angular momentum $\vec{L}$, which defines the shells. -\item The total electronic angular momentum $\vec{J} = \vec{L} + \vec{S}$, which defines the fine structure because of the spin-orbit coupling. -\end{itemize} - -Further the nucleus has a spin angular momentum $\vec{I}$, which leads to a magnetic moment: -\begin{align} -\vec{\mu}_I&= g_I \mu_N \vec{I} -\end{align} -We have introduced the new constants: -\begin{itemize} -\item $g_I$, which is always in the order of one, but it changes due to the changing structure of the different nuclei. -\item The \textit{nuclear magneton} $\mu_N = \frac{e\hbar}{2m_p}= \frac{m_e}{m_p}\mu_B$. -\end{itemize} -From the values of the prefactors, we can immediatly deduce that the hyperfine structure will be roughly three orders of magnitude smaller than the fine structure. As with the spin-orbit coupling this nuclear spin will experience the magnetic field produced by the motion of the electrons $\vec{B}_{el}$ and we have: -\begin{align} -H_{hfs} &= -\vec{\mu}_I \cdot \vec{B}_{el}\\ -&= A_{hfs}\vec{I}\vec{J} -\end{align} -This couples $\vec{I}$ and $\vec{J}$ and the full structure is given by total angular momentum: -\begin{align} -\vec{F} &= \vec{J} + \vec{I} -\end{align} - -\subsection{Hydrogen} -In hydrogen the ground state has no angular momentum and the spin is simply $S=1/2$. The nucleus has the same, such that we have $I=1/2$ and the groundstate splits into the $F=0$ and the $F=1$ doublet. They are separated by an energy difference of $1.42$GHz. This corresponds to a transition wavelength of 21 cm, which is widely used in astronomy. -\subsection{Cesium clocks} -The definition of time is based the hyperfine levels of Cs. Cs has just one stable isotope Cs-133 with nuclear spin $I=7/2$. The ground state electron is in the the 6s state in the \textsuperscript{2}S\textsubscript{1/2} state. So the groundstate splits into the $F=3$ and $F=4$ manifold. They are separated by 9.4GHz and the clicking between these transitions is our definition of time. The second is actually defined as \cite{units}: -\begin{quote} -The second is the duration of 9 192 631 770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the cesium 133 atom. -\end{quote} - -All the other units have similiar definitions, except the embarrising kilogram. It is defined as: -\begin{quote} -The kilogram is the unit of mass; it is equal to the mass of the international prototype of the kilogram. -\end{quote} -This will change soon as the member states of \textit{Bureau International des Poids et des Mesures} decided to base the SI system on the measurement of fundamental constants instead of some prototypes. So, now the fundamental constants will have no errorbars left, as shown in Fig. \ref{134930}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/17pml015-si-constants-card/17pml015-si-constants-card} -\caption{{This wallet card displays the fundamental constants and other physical -values that will define a revised international system of units. Taken -from -\href{http://https://www.nist.gov/si-redefinition/turning-point-humanity-redefining-worlds-measurement-system}{the -Blog of NIST.} -{\label{134930}}% -}} -\end{center} -\end{figure} - -\subsection{Bosonic and fermionic isotopes} -A particularly interesting problem is the influence of the nuclear spin on how the atoms talk to each other. For example we have two different stable isotope of Li, namely Li\textsuperscript{6} and Li\textsuperscript{7}, which only differ by one neutron in the nucleus. All the wavelengths for controlling the atoms are extremely similiar, however the hyperfine structure is different. For Li\textsuperscript{6} we have a nuclear spin of $I=1$ and for Li\textsuperscript{7} $I=3/2$. The resulting total angular momentum -\begin{itemize} -\item $F=1/2$ in the ground state of Li\textsuperscript{6} -\item $F=1$ in the ground state of Li\textsuperscript{7} -\end{itemize} -So one is of them is an integer spin boson and the other one is a spin half fermion. One can nicely see these differences as one tries to put them onto each other for cold temperatures and tight traps as visualized in Fig.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-11-28-um-11-32-40/Bildschirmfoto-2018-11-28-um-11-32-40} -\caption{{Observation of Fermi pressure for Li\textsuperscript{6} as it getting -cooled down. Figure taken from \protect\cite{Truscott_2001} -{\label{280523}}% -}} -\end{center} -\end{figure} - -\selectlanguage{english} -\FloatBarrier -\nocite{*} - -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 15 - Diatomic molecules.tex b/amo/tex_files/Lecture 15 - Diatomic molecules.tex deleted file mode 100644 index 6d1fb48..0000000 --- a/amo/tex_files/Lecture 15 - Diatomic molecules.tex +++ /dev/null @@ -1,341 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\newcommand{\vecRA}{\mathbf{R}_\mathrm{A}} -\newcommand{\vecRB}{\mathbf{R}_\mathrm{B}} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} - -\newcommand{\vecra}{\mathbf{r}_\mathrm{A}} -\newcommand{\vecrb}{\mathbf{r}_\mathrm{B}} - -\begin{document} - -\title{Lecture 15 - Diatomic molecules} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\author[2]{Matthias Weidemüller}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In this lecture we will start to put atoms together to build simple molecules. We will first use the Born-Oppenheimer approximation, to eliminate slow processes from the study of the fast electron dynamics. Then, we will study simple mechanisms of binding atoms.% -\end{abstract}% - - - -\sloppy - - -\section{Introduction} - -Molecules add a new layer of complexity to the system. In atoms, we had different combinations of nuclei and electrons, leading to different kinds of atoms. In this lecture, we will use atoms as basic building block of more complex structures, the molecules. While this complexity makes it necessary to introduce new approximations, it also allows us to study new processes in nature. - -So we will start out with the simplest of all molecules, barely a molecule, the $H_2^+$ ion. We start out with a discussion of the Born-Oppenheimer approximation. Detailled discussions can be found in Chapter 8 of \cite{atkins1997molecular}, Chapter 9 of \cite{Demtr_der_2010} and Chapter 10 of \cite{bransden2003physics}. - -\section{Molecular hydrogen ion} -In molecular hydrogen we have only three ingredients. A single electron, which is bound to two nuclei as shown in Fig. \ref{547852}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/bov2/Bildschirmfoto-2017-12-06-um-11.39.14} -\caption{{The H\textsubscript{2}\textsuperscript{+} ion as discussed in the main -text. -{\label{547852}}% -}} -\end{center} -\end{figure} - -The full Hamiltonian of the system at study would read: - -\begin{equation} -\hat{H} = - \frac{1}{2}\nabla_\mathbf{r}^2 - \frac{1}{2M}\left(\nabla_{\vecRA}^2 +\nabla_{\vecRB}^2\right) + V(\mathbf{r}, \vecRA, \vecRB ) -\end{equation} -We will further introduce the short-hand notations: -\begin{eqnarray} -\hat{T}_e &= - \frac{1}{2}\nabla_\mathbf{r}^2 \\ -\hat{T}_n &= - \frac{1}{2M}\left(\nabla_{\vecRA}^2 +\nabla_{\vecRB}^2\right) -\end{eqnarray} - -In a stark difference to atoms, we now have two charged nuclei. The relative distance between them and between the electron will be of major importance. Most importantly, we should answer the question, why this configuration should be stable at all given that the two protons repel each other. To handle the problem, we will once again separate out energy scales. - -\subsection{The Born-Oppenheimer approximation} - -The idea of the \textbf{Born-Oppenheimer approximation} is to separate the fast electronic motion from the slow motion of the heavy nuclueus ($M=1836$). So we will -\begin{enumerate} -\item Solve the electronic motion with the nuclear coordinates fixed. -\item Solve the nuclear motion, assuming that the electron wavefunction adapts instantaneously. -\end{enumerate} - -So the ansatz is: -\begin{equation} -\Psi(\vecRA, \vecRB, \mathbf{r}) = \psi_e(\vecRA, \vecRB, \mathbf{r})\cdot \psi_n(\vecRA, \vecRB) -\end{equation} - -We will plug this into the Schr\selectlanguage{ngerman}ödinger equation to obtain: -\begin{equation} -\psi_n\hat{T}_e\psi_e +\psi_e\hat{T}_n\psi_n + V(\mathbf{r}, \vecRA, \vecRB)\psi_e \psi_n + W = E \psi_e\psi_n -\end{equation} - -This transformation introduced the \textit{non-adiabatic} effects: -\begin{equation} -W = -\frac{1}{2M}\sum_{i=A,B} \left[(\nabla_{\mathbf{R}_i}\psi_e)\cdot(\nabla_{\mathbf{R}_i}\psi_n)+\psi_n \nabla_{\mathbf{R}_i}^2 \psi_e\right] -\end{equation} - -In the following we will neglect these effects. And obtain: -\begin{equation} -\psi_e \hat{T}_n\psi_n + \left(\hat{T}_e\psi_e+V\psi_e\right)\psi_n = E \psi_e\psi_n -\end{equation} -So we will first solve the \textit{electronic motion}: -\begin{equation} -\left(\hat{T}_e+\hat{V}\right)\psi_e = E_e(\vecRA, \vecRB) \psi_e -\end{equation} -To be explicit we obtain for the ionic hydrogen: -\begin{equation}\label{Eq:Hamiltonian} -H_e = -\frac{1}{2} \nabla_\mathbf{r}^2-\frac{1}{r_A}-\frac{1}{r_B}+\frac{1}{R} -\end{equation} -At this stage we can just focus on the electronic part to understand the structure of simple diatomic molecules, while assuming that $R$ is an independent parameter. Most importantly, we will focus at usual on symmetries, which will tell us more about the allowed states in the system. - -In the second step we will solve the nuclear motion: -\begin{equation} -\hat{T}_n\psi_n + E_e \psi_n = E \psi_n -\end{equation} - -This nuclear motion will be at the origin of rotational and vibrational levels, which will be discussed in Lecture \cite{molecules}. - - - - -\section{Symmetries of the electronic wavefunction} -This discussion follows along similiar lines as for the hydrogen atom and the helium atom. We basically can categorize the different states by their properties. This will help us later enormously to understand allowed transition etc. - -\subsection{Angular momentum} -For any (diatomic) molecule we break the spherical symmetry that we relied on for the atomic systems. This means that angular momentum is not a conserved quantity anymore. - -However, the Hamiltonian \eqref{Eq:Hamiltonian} is invariant under the rotation around the axis of the diatomic molecule. One can verify that this implies that: -\begin{eqnarray} -[H_e, L_z] = 0\\ -\Rightarrow L_z \psi_e = \pm \Lambda \psi_e (a.u.) -\end{eqnarray} -The reason is that $\hat{L}_z =\frac{1}{i}\partial_\varphi$ depends solely on the angle $\varphi$ and not on $R$. Here the quantum number can have the integer values $\Lambda= 0, 1, 2 , \cdots$. We also note them $\Sigma, \Pi, \Delta, \Phi$ or $\sigma, \pi, \delta, \phi$ for single electrons. - -\subsection{Parity} -We further have symmetry under parity operation for \textit{homo-nuclear, diatomic} molecules $A_2$, see \eqref{Eq:Hamiltonian}. This means that we have once more: -\begin{equation} -\hat{P}\psi_e(\mathbf{r}) = \pm\psi_e(\mathbf{r}) -\end{equation} -In the same way as in the lecture on the Helium atom we distinguish the states by \textit{gerade} and \textit{ungerade}. So we then end up with something like $\Lambda_{u,g}^\pm$. - -\subsection{Spin} - -If the system does not have explicit spin-orbit coupling, the total spin $S$ of the system will be conserved. So the full notation for electronic states is typically: -\begin{equation} - ^{2S+1}\Lambda^{\pm}_{g,u} -\end{equation} -Most of the time the ground state of the system is $^{1}\Sigma^{+}_{g}$. - - - -\section{Stability of the ground state molecule} - -We have now studied the symmetries that the system should have, but until now we did not discuss the most important question: Is this molecule stable ? Within the Born-Oppenheimer approximation, we can actually solve the ionic hydrogen molecule analytically (Chapter 9 of \cite{Demtr_der_2010}). The resulting \textbf{molecular potential curves} are shown in Fig. \ref{632456}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-05-um-10-17-32/Bildschirmfoto-2018-12-05-um-10-17-32} -\caption{{Molecular potential curves for the molecular hydrogen ion. Figure is -taken from \protect\cite{mechanics} -{\label{632456}}% -}} -\end{center} -\end{figure} - -\subsection{Linear combination of atomic orbitals} - -The analytical solutions are rather bulky and not particularly instructive. One powerful idea, and very good approximation, is to decompose the molecule wavefunction over the atomic orbitals of its components. Going back to Fig. \ref{547852} we could make the simple Ansatz: -\begin{equation} -\psi_e(\mathbf{r})= c_1 \psi_{1s}(\vecra)+c_2 \psi_{1s}(\vecrb) -\end{equation} - -Note, that we made a very simple Ansatz at this stage and we could decompose the system over a much larger set of excited states. But for pedagogical reason we will stick to the simple model at this stage. Going through the symmetry requirements, we find that we can write the full wavefunction as: -\begin{equation}\label{Eq:LCAO_WF} -\psi_{g,u}(\mathbf{r})= \frac{1}{\sqrt{2\pm2S}}\left(\psi_{1s}(\vecra)\pm \psi_{1s}(\vecrb)\right) -\end{equation} -The contribution $S$ describes the overlap of the two atomic orbitals -\begin{equation} -S = \int d\mathbf{r}\psi_{1s}^*(\vecra)\psi_{1s}(\vecrb) -\end{equation} -We can then evaluate the energy of the two states through the variational principle: -\begin{align} -E_{g,u} &= \bra{\psi_{g,u}}\hat{H}_e\ket{\psi_{g,u}}\\ - &= \frac{1}{2\pm2S}\left(\bra{\psi_A}\pm \bra{\psi_B}\right)\hat{H}_e\left(\ket{\psi_A}\pm \ket{\psi_B}\right)\\ - &= \frac{E_{AA}\pm E_{AB}}{1\pm S}\\ -\end{align} -The resulting energy surfaces are shown in Fig. \ref{779212}. In the most simplistic interpretation the gerade state does not have a node in the middle and it is therefore of smaller kinetic energy.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/H2plus-bosurface/H2plus-bosurface} -\caption{{The energy surface of the LCAO for the -H\textsubscript{2}\textsuperscript{+~} molecule. -{\label{779212}}% -}} -\end{center} -\end{figure} - -\section{ The neutral hydrogen molecule} - -In the previous section we have seen how we can treat the coupling of the nuclei through the exchange of a single shared electron. However, we should now move on to the case of two neutral particles binding together. What is here the relevant mechanism ?\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2017-12-06-um-08-39-21/HydrogenMolecule} -\caption{{The H\textsubscript{2} molecule. -{\label{546428}}% -}} -\end{center} -\end{figure} - - - -In the following we will only consider the electronic part, which adds up too: - -\begin{equation} -\hat{H} = -\frac{1}{2}\left(\nabla_{\mathbf{r}_1}^2+\nabla_{\mathbf{r}_2}^2\right)-\frac{1}{r_{A1}}-\frac{1}{r_{A2}}-\frac{1}{r_{B1}}-\frac{1}{r_{B2}}+\frac{1}{r_{12}}+\frac{1}{R} -\end{equation} - -We can now rewrite this Hamiltonian in the more instructive form -\begin{eqnarray} -\hat{H} &= H_{0,1}+H_{0,2}+\frac{1}{r_{12}}+\frac{1}{R}\\ -H_{0,i} &= -\frac{1}{2}\nabla_{\mathbf{r}_i}^2-\frac{1}{r_{A,i}}-\frac{1}{r_{B,i}} -\end{eqnarray} - -We have can now use the results of the hydrogen ion to understand this system. - -\begin{itemize} -\item We have for each electron the solution \eqref{Eq:LCAO_WF}. -\item In the next step, we have to put the two electrons properly within this orbit with $S=0$ and \textit{ignoring} the $e^-$ - $e^-$ interaction. -\end{itemize} -So we can make the Ansatz: -\begin{eqnarray} -\psi(\mathbf{r}_1, \mathbf{r}_2) &= \psi_{g}(\mathbf{r}_1)\cdot\psi_{g}(\mathbf{r}_2)\\ -&= \frac{1}{2 + 2S}\left(\psi_{1s}(\mathbf{r}_{A1})+\psi_{1s}(\mathbf{r}_{B1})\right)\left(\psi_{1s}(\mathbf{r}_{A2})+\psi_{1s}(\mathbf{r}_{B2})\right)\\ -&= \frac{1}{2 + 2S}\left(\psi_{1s}(\mathbf{r}_{A1})\psi_{1s}(\mathbf{r}_{B2})+\psi_{1s}(\mathbf{r}_{B1})\psi_{1s}(\mathbf{r}_{A2}) +\psi_{1s}(\mathbf{r}_{A1})\psi_{1s}(\mathbf{r}_{A2})+\psi_{1s}(\mathbf{r}_{B1})\psi_{1s}(\mathbf{r}_{B2}) \right) -\end{eqnarray} -The first two terms describe \textbf{kovalent binding}. They describe situations where each electron is associated with one core. The last two terms describe \textbf{ionic binding} as one associated both electrons with a single atom and then looks one the attraction of another ionic core. This is quite similiar to the interaction in the $H_2^+$ molecule. - -Within this approach, one actually finds a binding energy of $E_b = \SI{-2.64}{eV}$ at an equilibrium distance of $R_e = 1.4 a_0$. The experimentally measured values differs quite substantially as we have $E_b = \SI{-4.7}{eV}$. A substantial approximation was here that we neglected the interaction between the electrons, which should repel. - - - -\subsection{The Heitler-London method} - -As the two electrons should repel each other, we can assume that the ionic binding is strongly suppressed. So the wavefunction is now assumed to be: - -\begin{eqnarray} -\psi_{HL} &= \frac{1}{\sqrt{2 + 2S^2}}\left(\psi_{1s}(\mathbf{r}_{A1})\psi_{1s}(\mathbf{r}_{B2})+\psi_{1s}(\mathbf{r}_{B1})\psi_{1s}(\mathbf{r}_{A2})\right) -\end{eqnarray} -Again, the wavefunction cannot be factorized and the two electrons are entangled because of the interactions. Recognize the common theme with the Helium atom. Calculation of the binding energy within this approximation leads to $E_b = \SI{-3.14}{eV}$ and $R_e=1.6a_0$. - -In the next lecture \cite{moleculesa} we will discuss how we can move on from these extremely simple diatomic molecules to the assembly of richer systems. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 16 - Molecular Orbitals of Diatomic Molecules.tex b/amo/tex_files/Lecture 16 - Molecular Orbitals of Diatomic Molecules.tex deleted file mode 100644 index 1aa731e..0000000 --- a/amo/tex_files/Lecture 16 - Molecular Orbitals of Diatomic Molecules.tex +++ /dev/null @@ -1,316 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand*\ch[1]{\ensuremath{\mathrm{#1}}} - -\begin{document} - -\title{Lecture 16 - Molecular Orbitals of Diatomic Mole\-cules} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\author[2]{Matthias Weidemüller}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In this lecture we will discuss a systematic approach to build up molecules from more complex atoms.% -\end{abstract}% - - - -\sloppy - - -In the last lecture \cite{molecules} we discussed the existing orbits within the linear combination of orbitals. We will now try to systematically fill up the orbitals with electrons in order of their energy. - - -\section{Molecular bindings} -A good overview over the different mechanism for molecular binding is given in Fig. \ref{305992} -In the last lecture we have seen two different binding processes of molecular bonding: -\begin{enumerate} -\item Ionic binding, which was important in the $H_2^+$ molecule. -\item Kovalent binding, which dominated the $H_2$ molecule. -\end{enumerate} -Both are important for small distances. For large distance the van der Waals interaction can create weakly bound molecules.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-07-um-08-07-05/Bildschirmfoto-2018-12-07-um-08-07-05} -\caption{{Different binding mechanisms in diatomic molecules. Figure taken from -\protect\cite{Hertel_2015} -{\label{305992}}% -}} -\end{center} -\end{figure} - -\section{Van-der Vaals interaction} -The question is then how can these systems interact ? They do not share electrons and they are neutral, so they do not have a permanent electric dipole moment. The magnetic dipole interaction is extremely weak anyway. - -The key is induced dipole moment of the atom in in an electric field, seen in lecture 6 \cite{Jendrzejewski}. Each of the atoms can have a dipole moment $\mathbf{D}_i = q \mathbf{r}_i$. As each atom is neutral, they interact through their dipole-dipole interaction: -\begin{align}\label{Eq:DipoleDipoleInteraction} -\hat{W}_{dd} =\frac{1}{4\pi \epsilon_0}\frac{e^2}{R^3}\left(\mathbf{r}_A\cdot \mathbf{r}_B-3(\mathbf{r}_A\cdot \mathbf{n})(\mathbf{r}_B\cdot \mathbf{n})\right) -\end{align} -We now have to perform the amplitude of this energy quantum mechanically. In a first step, we express $\hat{W}_{dd}$ in terms of the operators $\hat{X}_{A,B}, \hat{Y}_{A,B}, \hat{Z}_{A,B}$. The orientation of the atom is sketched in the inset in Fig. \ref{710038}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/DipoleAxes/DipoleAxes} -\caption{{Configuration of two dipoles. -{\label{710038}}% -}} -\end{center} -\end{figure} - -We can write then: -\begin{align} -\hat{W}_{dd} &=\frac{1}{4\pi \epsilon_0}\frac{e^2}{R^3}\left(\hat{X}_A \hat{X}_B + \hat{Y}_A\hat{Y}_B - 2 \hat{Z}_A \hat{Z}_B\right) -\end{align} - -We are only interested in their interaction at very large distances, such that we can treat the interaction perturbatively (see lecture 7 \cite{Jendrzejewskia}). To first order, we have to evaluate: -\begin{align} -E_1 = \bra{\phi_{n,0,0}^A, \phi_{n,0,0}^B} \hat{W}_{dd} -\ket{\phi_{n,0,0}^A, \phi_{n,0,0}^B} -\end{align} -It only contains terms of the kind $\bra{\phi_{n,0,0}^i} \hat{X}_i \ket{\phi_{n,0,0}^i} $. As the dipole moment is zero, the first order correction in the energy is zero too. The idea is then that the mean electric field created by the atom might be zero. However, quantum mechanics allows for fluctuations of the type $\langle |e\mathbf{r}|^2\rangle$. They are taken into account through second order perturbation theory. We obtain directly: -\begin{align} -E_2 &= \sum_{\phi,\phi'} \frac{|\bra{\psi_{\phi}^A,\psi_{\phi'}^B}\hat{W}_{dd}\ket{\psi_{0}^A,\psi_{0}^B}|^2}{(E_{0}^A+E_0^B -E_\phi^A -E_{\phi'}^B)} -\end{align} -And we can also pull out the $R^3$ dependence of each $W$, to obtain a general expression for the \textbf{van-der-Waals interaction}: -\begin{align} -E_2 &= - \frac{C_6}{R^6} -\end{align} - -To get an estimate for the typical scale of the binding we can have a look into the prefactor $C_6$. We will do this here for highly excited states of hydrogen as it is relevant to the other alkalis too: -\begin{itemize} -\item Each $\hat{X}$ will be be proportional to the typical extension of its orbit, such that we have $\hat{X} \sim n^2 a_0 $ within the electronic shells. -\item As for the energy difference, we know that the energy of high $n$ $E_n \approx \frac{ R_{y,\infty}}{n^2}$ (the screening makes all alkalis look very similiar for high energies). The energy difference is therefore in the order of $\delta E_n \approx \frac{ R_{y,\infty}}{n^3}$. -\end{itemize} - Putting it all together, we obtain -\begin{align} -C_6 \approx \frac{e^4 a_0^4 n^8}{R_{y,\infty}/n^3} \approx \frac{e^4 a_0^4}{R_{y,\infty} (4\pi\epsilon_0)^2} n^{11} -\end{align} -This prediction has been directly tested as shown in Fig. \ref{681790}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/DipoleConfigv2/DipoleConfigv2} -\caption{{Direct measurement of the van-der-Waals force in \protect\cite{B_guin_2013} -{\label{681790}}% -}} -\end{center} -\end{figure} - -\section{Molecular orbit theory} -We would like to put together more complex molecules step-by-step. Let's take a step back to the hydrogen molecule to formulate the problem. - -\subsection{The hydrogen molecule} - - Let us have a brief look at H\textsubscript{2} again and consider only contributions from $1s$ atomic orbitals. We saw that we can distribute the two electrons within the gerade and ungerade orbital of the hydrogen ion. So our basic orbitals will be: -\begin{align} -\sigma_g \propto \left( \psi_{1s} (\vec{r}_\textrm{a}) + \psi_{1s} (\vec{r}_\textrm{b}) \right) \label{eq:psiplus} -\end{align} -\begin{align} -\sigma_u \propto \left( \psi_{1s} (\vec{r}_\textrm{a}) - \psi_{1s} (\vec{r}_\textrm{b}) \right). \label{eq:psiminus} -\end{align} - Lower case letters stand for the individual electrons while upper case letters characterize the whole system. We will now attempt to fill up the two orbitals \eqref{eq:psiplus} and \eqref{eq:psiminus} with the two electrons. - -We can now distribute the two electrons in different ways onto the orbitals \eqref{eq:psiplus} and \eqref{eq:psiminus}: -\begin{itemize} -\item Both electrons in a gerade orbital $1\sigma_g^{2}$. -\item Both electrons in an ungerade orbital $1\sigma_u^{2}$. -\item One electron in a gerade orbtial and one electron in an ungerade orbital: $\sigma_g^{1}1\sigma_u^{1}$. -\end{itemize} - -In a second step, we need to respect the Pauli principle for the two electrons, which states that the full wavefunction should be anti-symmetric under exchange of particles. We had a detailled discussion of the topic on helium \cite{Jendrzejewskib}. -So for the first configuration $1\sigma_g^{2}$ we have: -\begin{align} -\psi_1 \propto \sigma_g(1) \cdot \sigma_g(2) \qquad (S=0, ^1\Sigma_g) -\end{align} -The spin has to be in a singlet here as the wavefunction itself is symmetric. Further, the parity of the full wavefunction is gerade as $g \times g = g$. So $\psi_1$ is in a $^1\Sigma_g$ configuration. - -As one atom is in $1\sigma_g^{1}$ and the other one is in $1\sigma_u^{1}$, the parity of the full wavefunction is $g\times u = u$. Additionally, we can choose which atom to position in which orbital and then also the symmetry of the superposition. The symmetric superposition is: -\begin{align} -\psi_{2} &\propto \left (\sigma_g(1) \cdot \sigma_u(2) + \sigma_u(1) \cdot \sigma_u(2)\right) \quad \qquad (S=0, ^1\Sigma_u) -\end{align} -As the orbital superposition is symmetric, we once again have work in a spin singlet to achieve the overall anti-symmetry of the two-electron wavefunction. So $\psi_2$ is in a $^1\Sigma_u$ configuration. - -We can also choose anti-symmetric superposition of the two distinguishable orbitals: -\begin{align} -\psi_3 \propto \left( \sigma_g(1)\cdot \sigma_u(2)-\sigma_u(1) \cdot \sigma_g(2) \right) \qquad (S=1, ^3\Sigma_u) -\end{align} -As the orbital superposition is anti-symmetric, we have work in a spin triplet to achieve the overall anti-symmetry of the two-electron wavefunction. So $\psi_3$ is in a $^3\Sigma_u$ configuration. - -And finally we have for $1\sigma_u^{2}$: -\begin{align} -\psi_4 \propto \sigma_u(1)\cdot \sigma_u(2) \qquad (S=0, ^1\Sigma_g) -\end{align} -The spin has to be in a singlet here as the wavefunction itself is symmetric. Further, the parity of the full wavefunction is gerade as $u \times u = g$. So $\psi_4$ is in a $^1\Sigma_g$ configuration. - - -At short distance the energy ordering is $E(\psi_1) < E(\psi_2) \sim E(\psi_3) < E(\psi_4)$.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=200]{figures/configuration/configuration} -\caption{{Configuration interaction. The faded lines indicate how the energy -of~\(\psi_1\) and~\(\psi_4\) would naively. If the -system is diagonalized in a more flexible basis, that allows for -superpositions, the orbits repel. Taken from~\protect\cite{mechanics}. -{\label{953307}}% -}} -\end{center} -\end{figure} - -However for larger distances the gerade or ungerade character of each wave function becomes of less importance and the two configurations $\psi_1$ and $\psi_4$ become of similiar energy. They are further both $^1\Sigma_g$ states. Therefore also all linear combinations of the two states have the valid symmetries and and more flexibel trial solution would be of the form: -\begin{align} -c_1 \psi_1 + c_4 \psi_4 -\end{align} -The full solution then shows clear level repulsion between the two uncoupled channels. This concept is called ``configuration interaction''. - - -\subsection{Conditions for (anti-)binding of particular orbitals.} -The conditions for the creating of (anti-)binding orbitals is viusalized in Fig \ref{915399}. - -In a first step, there has to be sufficient wave function overlap, such that there can be constructive and destructive interference. This implies that the orbit has to be large enough to 'see' the other atom, but not to diffuse. This typically implies that only the valence shell has to be considered. - -Only orbits of the same symmetry group can form a bond. The main symmetry property here is the total $L_z$ with respect to the axis of the molecule. We have (table 4.5 of \cite{Demtr_der_2010}): -\begin{itemize} -\item $s$, $p_z$ and $d_{z^2}$ have $L_z = 0$ ($\Sigma$). -\item $p_x$, $p_y$ as well as $d_{yz}$, $d_{zx}$ have $|L_z| = 1$($\Pi$) -\end{itemize} -Having a sufficient overlap is obviously not enough, the two orbits also have to have the same a similiar energy, which is easily fulfilled in a homonuclear molecule. But if we now have two different molecules the orbital energy of (A) might be different from the orbital energy of (B). The larger the difference, the smaller is the shift.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.84\columnwidth]{figures/Bildschirmfoto-2018-12-07-um-08-41-42/Bildschirmfoto-2018-12-07-um-08-41-42} -\caption{{a) Two atomic orbitals with resonant energy form a binding and -anti-binding orbital. b) Molecular orbitals of heteronuclear molecules. -{\label{915399}}% -}} -\end{center} -\end{figure} - -\section{Homo-nuclear shell structure} - -We can finally put all this together to build up the shell structure of homo-cuclear diatomic molecules as shown in Fig. \ref{128321}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-07-um-12-44-04/Bildschirmfoto-2018-12-07-um-12-44-04} -\caption{{The shell structure of some homonuclear diatomic molecules. Taken -from~\protect\cite{mechanics}. -{\label{128321}}% -}} -\end{center} -\end{figure} - - - -The name of the molecule indicates the highest occupied molecular orbit (\textit{HOMO}). The next empty shell is then called the lowest occupied molecular orbit (\textit{LUMO}). - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 17 - Rotation and Vibration of Molecules.tex b/amo/tex_files/Lecture 17 - Rotation and Vibration of Molecules.tex deleted file mode 100644 index 40e69ac..0000000 --- a/amo/tex_files/Lecture 17 - Rotation and Vibration of Molecules.tex +++ /dev/null @@ -1,357 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand*\ch[1]{\ensuremath{\mathrm{#1}}} -\newcommand{\vecRA}{\mathbf{R}_\mathrm{A}} -\newcommand{\vecRB}{\mathbf{R}_\mathrm{B}} - - -\begin{document} - -\title{Lecture 17 - Rotation and Vibration of Molecules} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\author[2]{Matthias Weidemüller}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -We will study the existance of vibrational and rotational levels in molecules. It allows us investigate the transitions of molecules and introduce the Franck-Condon principle. Finally, we will study how such intruiging molecules are used for the study of the permanent electric dipole moment of the electron.% -\end{abstract}% - - - -\sloppy - - -We studied during the last two lectures the properties the electronic structure. For atoms the next step was the analysis of the transition rules to understand the spectrum. However, for molecules the electronic transition directly couple to the vibrational and rotational motion of the nuclei, which will have to study first. - -\section{A short reminder on nuclear motion} -We discussed diatomic molecules, with $N$ electrons bound to the nuclei \cite{molecules}. The full Hamiltonian of the molecule could be written in the following fashion: -\begin{equation} -\hat{H} = \hat{T}_e + \hat{T}_N + V(\hat{\vecRA}, \hat{\vecRB},\hat{\mathbf{r}}_1,\cdots, \hat{\mathbf{r}}_N) -\end{equation} -$\hat{T}_e$ describes the kinetic energy of the electrons, $\hat{T}_N$ the kinetic energy of the nuclei and $V$ the coupling between them. The we decomposed the full wavefunction over a nuclear part and an electronic part: -\begin{equation} -\Psi(\vecRA, \vecRB, \mathbf{r}_1,\cdots, \mathbf{r}_N) = \psi_e(\vecRA, \vecRB, \mathbf{r}_1,\cdots, \mathbf{r}_N)\cdot \psi_n(\vecRA, \vecRB) -\end{equation} -This allowed us to decouple nicely the two motions and study the properties of the electronic potentials first. In the Born-Oppenheimer approximation we obtained: -\begin{align}\label{Eq:NuclearMotion} -\hat{T}_N \psi_N + E_e (\vec{R}_\textrm{a}, \vec{R}_\textrm{b}) \psi_N = E \psi_N -\end{align} -% -with -\begin{align} -\hat{T}_N = - \frac{1}{2 M_\textrm{a}} \Delta_{\vec{R}_\textrm{a}} - \frac{1}{2 M_\textrm{b}} \Delta_{\vec{R}_\textrm{b}}, -\end{align} -the total energy $E$ and the masses of the individual atoms $M_\textrm{a}$ and $M_\textrm{b}$. -For the electronic energy $E_e$, only $\vec{R} = \vec{R}_\textrm{a} - \vec{R}_\textrm{b}$ matters. We then calculated the molecular potential curves $E_e(R)$, which differ for each electronic configuration, discussed in the last lecture \cite{moleculesa} and sketched once more in Fig. \ref{907917}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-07-um-14-27-34/Bildschirmfoto-2018-12-07-um-14-27-34} -\caption{{The molecular potential curves obtained from the Born-Oppenheimer -Approximation. -{\label{907917}}% -}} -\end{center} -\end{figure} - - -In the center of mass frame we can tranform \eqref{Eq:NuclearMotion} and get: -\begin{align} -\left( - \frac{1}{2M} \Delta_{\vec{R}} + E_e (\vec{R}) \right) \psi_\textrm{n} (\vec{R}) = E \psi_\textrm{n} (\vec{R}), -\end{align} -$\vec{R}$ is spherically symmetric, and -\begin{align} -M = \frac{M_\textrm{a} \cdot M_\textrm{b}}{M_\textrm{a} + M_\textrm{b}} -\end{align} -is the reduced mass. This means that we can separate the angular and radial motion to obtain: -\begin{align} -\psi_\textrm{n} (R,\theta,\varphi) = \frac{1}{R} S(R) \cdot Y_l^m (\theta,\varphi) -\end{align} -They describe the rotational and vibrational levels of the nucleus. - - -\section{Rotations} -If we assume a ``rigid'' molecule where the distance between the atoms is fixed, the rotational energy is simply given by: -\begin{align} -E_\text{rot} (R) = \frac{J\cdot (J+1)}{2M R^2}\, (\text{a.u.}) -\end{align} -where $M$ is the reduced mass of the nuclei in atomic units and $J$ is the angular momentum quantum number. The factor $MR^2$ represents the moment of inertia. For more complex atoms the relationship is not quite as simple and the rotational energy is typically described by the moment of interia $I_{ij}$. The Hamiltonian for this rotation reads then: -\begin{align} -\hat{H}_{rot} =\frac{J_x^2}{2I_{xx}}+\frac{J_y^2}{2I_{yy}}+\frac{J_z^2}{2I_{zz}} -\end{align} -The molecule H\textsubscript{2} has then a rotational frequency $\omega/2\pi =3\cdot 10^{12}\cdot J(J+1) \si{Hz}$. - -\section{Vibrations} -As already known from the hydrogen atom we can use the angular solutions to discuss the radial solutions. We have to solve now: -\begin{align} -\left( \frac{1}{2M} \frac{d^2}{dR^2} + E_e (R) + \frac{1}{2M} \frac{J(J+1)}{R^2} \right) S(r) = E_\text{vib} S(R) -\end{align} - -If the extension from the minimum (see \ref{584527}) is small, we can approximate it by a harmonic potential. -% -We can then find a vibrational energy $E_\text{vib} = \omega_0 (\nu+\frac{1}{2})\, \nu=0,1,\cdots$ -% -The harmonic expansion around the minimum reads: -\begin{align} -E_e \approx E_0 + \frac{1}{2} M \omega_0^2 (R-R_0 )^2 -\end{align} - -For the example of H\textsubscript{2}, we get $\omega/2\pi \sim 10^{14}$ Hz.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-01-um-14-46-36/Bildschirmfoto-2018-10-01-um-14-46-36} -\caption{{Internuclear potential. In the limit of a harmonic expansion around the -minimum, the vibrationally excited states are equidistant. -{\label{584527}}% -}} -\end{center} -\end{figure} - -A better approximation of the vibrational level structure than the simple harmonic oscillator is the \textbf{Morse potential}. -\subsection{The Morse potential} - -In this case we approximate the molecular potential curves by: -\begin{align} -E_e(R) &\approx V_\text{morse}(R)\\ -V_\text{morse}(R) &=hcD_e(1-e^{-ax})^2\text{ with }a =\sqrt{\frac{k}{2hcD_e}}\\ -x &= R-R_0 -\end{align} -Its particular usefulness stems from the fact that it is still analyitically solvable and we obtain: -\begin{align} -E_{vib}=(\nu+\frac{1}{2})\hbar \omega-(\nu+\frac{1}{2})^2 \hbar \omega x_e\\ -\omega x_e = \frac{a^2\hbar}{2M} -\end{align} - -$x_e$ is then called the anharmonicity parameter. - -\section{Molecular transitions} -We are now ready to discuss the different transitions that might appear in the spectrum. And we will work our way through the different levels of energy as we will see that they are all coupled. - -\subsection{Rotational transitions} -We will start out with the transitions of the lowest frequency, the rotational transitions. So, we would like to know if it is possible to transition from a state $\ket{\epsilon, J, M_J}$ to another state $\ket{\epsilon, J', M_J'}$, where $\epsilon$ describes the electronic and vibrational degree of freedom. This means that we have to calculate as usual the the electric dipole moment: -\begin{align} -\bra{\epsilon, J', M_J'} \vec{D}\ket{\epsilon, J, M_J} -\end{align} -Within the Born-Oppenheimer approximation electronic and rotational degree of freedom decouple and we can write: -\begin{align} -\bra{\epsilon, J', M_J'} \vec{D}\ket{\epsilon, J, M_J} = \bra{J', M_J'} \bra{\epsilon}\vec{D}\ket{\epsilon}\ket{ J, M_J} -\end{align} -This electric dipole transitions were forbidden in atoms as they do not have a permanent electric dipole moment. However, hetero-nuclear atoms can have such a permanent electric dipole moment, they are called polar molecules. Examples are alkali-alkali molecules like NaK, NaCs, KRb whose permenanent electric dipole moment can be up $3 ea_0$ \cite{Qu_m_ner_2012}. It follows that: -\begin{itemize} -\item \textbf{Pure rotational transitions exist in polar molecules.} -\end{itemize} -The transition rules are di-atomic molecules: $\Delta J = \pm 1$ and $\Delta M_J= 0, \pm1$. For more complex molecules these transition rules can vary quite substantially as the rotational degree of freedom might have to be described by an additional quantum number. - -\subsection{Vibrational transitions} -In the next step, we would like to understand the transitions between different vibrational levels. Hence, we are investigating the electric dipole moment -\begin{align} -\bra{\epsilon, \nu'} \vec{D}\ket{\epsilon, \nu}= \bra{\nu'} \vec{D}_\epsilon\ket{\nu} -\end{align} -The evaluation is now not quite as simple as for the rotational degree of freedom as both $\nu$ and $\epsilon$ will influence the length of the molecule, they both directly depend on $R$. We can develop the electric dipole moment as a function of distance from the equilibrium and write then: -\begin{align} -\bra{\nu'} \vec{D}_\epsilon\ket{\nu}&= \bra{\nu'} \left(\vec{D}_\epsilon(0)+ \frac{d\vec{D}_\epsilon}{dx}x+\cdots\right)\ket{\nu}\\ -&= \frac{d\vec{D}_\epsilon}{dx}\bra{\nu'}x\ket{\nu}+\cdots -\end{align} -So vibrational transistions will only happen in molecules for which the permanent electric dipole changes as a function of distance. Once again they are non-existant in homo-nuclear molecules. - -\section{Vibronic transitions} - -At this stage, we are ready to discuss electronic transitions. If we are performing an electronic transition this also implies a change on the molecular potential curve as indicated in Fig. \ref{121419}. Imagine now the transition of the ground state molecular branch (called the X branch) to a higher electronic shell (called A, B, C, ...). Such a transition will happen at constant internuclear radius as they are much faster than the nuclei motion. This implies that an electronic transition will typically excite the molecule into a high vibrational branch. The dipole moment is then proportional too: -\begin{align} -\bra{\epsilon', \nu'} \vec{D}\ket{\epsilon, \nu}\approx \vec{D}_{\epsilon, \epsilon'} \bra{\nu'} \ket{\nu} -\end{align}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-11-um-12-47-56/Bildschirmfoto-2018-12-11-um-12.58.06} -\caption{{The Franck-Condon principle for a simple toy model. -{\label{121419}}% -}} -\end{center} -\end{figure} - -The factor $S(\nu, \nu')=|\bra{\nu}\ket{\nu'}|^2$ is then called the Franck-Condon factor -and it describes the strength of the transitions. - -It is exactly this coupling of different hierarchies that makes the molecular spectra so rich and also extremely tough to control. - - -\section{Can we get into the groundstate ?} - -Given all the complexities of molecules it seems non-trivial to find a scheme that gets them into the ground state. For atoms laser cooling has proven very efficient as we will discuss later. However, it mainly adresses the cooling of external degrees of freedom. In molecules a significant amount of energy its in the rotational and vibrational levels. In this connection, a beautiful solution has been demonstrated in \cite{Ni_2008}. - -The scheme is visualized in Fig. \ref{898773}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-12-um-10-32-59/Bildschirmfoto-2018-12-12-um-10-32-59} -\caption{{Production of groundstate molecules of K + Rb. Figure is taken from -\protect\cite{Ni_2008} -{\label{898773}}% -}} -\end{center} -\end{figure} - -In a first step the atoms are cooled and then associated to a highly excited molecule in the a\textsuperscript{3}$\Sigma$ state. From there the atom has to be transferred down in to the ground state $\ket{g}$. A direct thransfer is not possible as the Franck-Condon factors do not allow for it. Another path is to go through an intermediate level (here the 2$^3 \Sigma$ level), which has overlap with both of them. However, this level has typically overlap with plenty of other levels and a finite lifetime. How can we then optimize the transfer ? The idea is to use the concept of dark states in the triplet of $\{i, e, g\}$. - -\subsection{The dark states in three level systems} -We can visualize the idea of the dark state transfer through the following Hamiltonian: -\begin{align} -\hat{H}&= \Omega_1\left(\ket{i}\bra{e}+\ket{e}\bra{i}\right)+\Omega_2\left(\ket{g}\bra{e}+\ket{e}\bra{g}\right) -\end{align} -We can rewrite it as: -\begin{align} -\hat{H}&= (\Omega_1\ket{i}+\Omega_2\ket{g})\bra{e}+\ket{e}(\Omega_1\bra{i}+\Omega_2\bra{g})\\ -&\propto\ket{B}\bra{e}+\ket{e}\bra{B}\\ -\ket{B}&= \frac{\Omega_1\ket{i}+\Omega_2\ket{g}}{\sqrt{\Omega_1^2+\Omega_2^2}} -\end{align} -So in the three level scheme the excited state is always could to the so-called bright state, which is a coherent superposition of $\ket{g}$ and $\ket{i}$. The orthogonal state is the dark state: -\begin{align} -\ket{D}&= \frac{\Omega_1\ket{g}-\Omega_2\ket{i}}{\sqrt{\Omega_1^2+\Omega_2^2}}\\ -\langle B| D\rangle &= 0 -\end{align} -Now we can also discuss the transfer sequence non as STIRAP (stimulated Raman adiabatic passage). - -\subsection{STIRAP} - -STIRAP transfers the loosely bound molecules coherently into the groundstate without ever passing through the lossy excited level. It has the following steps: -\begin{enumerate} -\item The dressing laser $\Omega_2$ is ramped on. The initial $\ket{i}$ is now the dark state. -\item The coupling laser $\Omega_1$ is ramped on, while the laser $\Omega_2$ is ramped down. This transfers the $\ket{i}$ adiabatically into the state $\ket{g}$, which is the dark state for fully switched of $\Omega_2$. -\end{enumerate} -The molecules are now in the groundstate with a transfer efficiency of roughly $50\%$. - -\section{Measurement of the electron electric dipole moment} -Despite their complexity, molecules can be an enormously powerful tool for precision measurements \cite{Safronova_2018,particles}. The test of the existance of a permanent electric dipole moment (electron edm) of the electron is one of these tests. - -What does does the existance of electron edm actually mean ? We have already discussed quite heavily the existance of a permanent edm for polar molecules. The amplitude of their dipole moment is in the order of a few $ea_0$, which is also the natural unit for the induced edm of atoms. One could now also imagine that the electron itself has an edm, which is aligned with its spin $\vec{D}_e = d_e \vec{s}_e$. The standard model actually predicts such a permanent electron edm, but only of the amplitude $d_e \approx 10^{-30}ea_0$, which is fantastically small . However, the search continues as most extensions of the standard model actually predict substantially higher values as summarized in Fig. \ref{421559}. As we can see the most precise measurments are actually performed in very heavy di-atomic molecules. - -In these molecules the electron 'feels' enormous effective electric fields, which can reach the several GV/cm regime \cite{Cairncross_2017}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-11-um-14-16-30/Bildschirmfoto-2018-12-11-um-14-16-30} -\caption{{Search for the permanent electric dipole moment. Figure is taken from -\protect\cite{experiment} -{\label{421559}}% -}} -\end{center} -\end{figure} - -The search for the dipole moment is then testing the dependence of the electron energy: -\begin{align} -E_\pm = \pm(\mu B_0 + d_e E) -\end{align} -This energy difference can be read out through Ramsey spectroscopy. Switching the electric field allows then to switch the frequency difference by $\hbar \delta \omega = 4d_e E$. Only an upper limit is known up to now $|d_e|< 8.7 e cm$\cite{2013}. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 18 - Quantization of the Electromagnetic field.tex b/amo/tex_files/Lecture 18 - Quantization of the Electromagnetic field.tex deleted file mode 100644 index 61ff270..0000000 --- a/amo/tex_files/Lecture 18 - Quantization of the Electromagnetic field.tex +++ /dev/null @@ -1,370 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand{\Hzero}{\hat{H}_0} -\newcommand{\Wop}{\hat{W}} - -\begin{document} - -\title{Lecture 18 - Quantization of the Electromagnetic field} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\author[2]{Matthias Weidemüller}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Univiersität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -We are looking into the quantization of the electromagnetic field. How to find the conjugate momenta and how we can identify the photon as a quantized particle.% -\end{abstract}% - - - -\sloppy - - -Until now we exclusively treated the atom, molecule etc in a quantum-mechanical way. The electromagnetic field was always treated classically. We will attempt to change that for various reasons: -\begin{itemize} -\item Spontaneous emission and the Lamb shift can only be understood within quantum electrodynamics. -\item Several experiments control the electromagnetic field at the single photon level, so we have to understand how this works. -\item It frankly very unsatifying to only quantize half the problem. -\end{itemize} - -So before we start the endevour let us start out with the some reminders on the properties of radiation in classical electromagnetism. - -\section{Maxwell's Equations and Vector Potential} - -Electrodynamics is described by Maxwell's equations: -\begin{align} -\vec{\nabla} \cdot \vec{B} &= 0\\ -\vec{\nabla} \times \vec{E} + \frac{\partial \vec{B}}{\partial t}&=0\\ -\vec{\nabla} \cdot \vec{E} &= \frac{1}{\epsilon_0}\rho(\vec{r},t) \\ -\vec{\nabla} \times \vec{B} &= \frac{1}{c^2} \frac{\partial \vec{E}}{\partial t}+\frac{1}{\epsilon_0 c^2}\vec{j} -\end{align} -These equations are the equations of motion for the electromagnetic field. The first two are the homogeneous Maxwell equations and we can directly solve them by setting: -\begin{align} -\vec{B} &= \vec{\nabla}\times\vec{A}\\ -\vec{E}&= -\frac{\partial}{\partial t}A-\nabla \phi -\end{align} -Quite importantly, the choice of the potential $\vec{A}$ has an inherent gauge freedom as we can basically perform the \textit{local gauge transformation}: -\begin{align}\label{Eq:PotPolar} -\vec{A} &\rightarrow \vec{A} + \vec{\nabla} f (\vec{r},t)\\ -\phi &\rightarrow \phi - \frac{\partial f}{\partial t} -\end{align} -So we can transform the electromagnetic field and the magnetic field, but the equations of motion remain the same. It is this local gauge freedom, which also allows us to have charge conservation. But it is also this gauge freedom, which will make the quantization rather technically involved. - -\subsection{Free radiation} -To simplify the problem, we will actually, only work on free electromagnetic radiation, which simplifies the remaining Maxwell equations too: -\begin{align} -\vec{\nabla} \cdot \vec{E} &= 0 \\ -\vec{\nabla} \times \vec{B} &= \frac{1}{c^2} \frac{\partial\vec{E}}{\partial t} -\end{align} -They become very simple to within the \textbf{Coulomb gauge}, were we fix: -\begin{align}\label{Eq:CouGauge} -\nabla \cdot \vec{A} = 0 -\end{align} -For the electric field we have: -\begin{align} -\vec{\nabla} \cdot \left(-\frac{\partial}{\partial t}A-\nabla \phi\right) &= 0 \\ --\Delta \phi &= 0 -\end{align} -This is solved through the boring solution $\phi = 0$. For the magnetic field we obtain\footnote{Remember $\vec{\nabla} \times (\nabla \times \vec{A}) =\nabla(\nabla \vec{A})-\nabla^2 \vec{A}$}: -\begin{align} -\vec{\nabla} \times (\nabla \times \vec{A}) &= -\frac{1}{c^2} \frac{\partial^2\vec{A}}{\partial t^2}\\ -\nabla^2 \vec{A} -\frac{1}{c^2} \frac{\partial^2\vec{A}}{\partial t^2}&=0 -\end{align} - -\subsection{Solution in terms of plane waves} - -We can directly solve the problem, by using the Fourier representation: -\begin{align} -\vec{A}(\vec{r}, t)&= \frac{1}{(2\pi)^{3/2}}\int d^3\vec{k}\vec{A}(\vec{k},t)e^{i\vec{k}\vec{r}} -\end{align} -We then find that the solutions fulfill the requirement: -\begin{align} -\left(\vec{k}^2 +\frac{1}{c^2} \frac{\partial^2}{\partial t^2}\right)\vec{A}(\vec{k},t)&=0 -\end{align} - -So the free radiation describes a travelling wave in the direction $\vec{k}$. The coulomb gauge \eqref{Eq:CouGauge} further tells us that the vector potential only has components, which are orthogonal to $\vec{k}$ as: -\begin{align} -\vec{k}\cdot\vec{A} = 0\\ -\vec{A}(\vec{k}) = \vec{e}_1 A_1(\vec{k}) + \vec{e}_2 A_2(\vec{k}) -\end{align} - -Given that these equations of motion for the vector potential look a lot like the ones of a harmonic oscillator, let us go through the quantization of the harmonic oscillator first. - -\section{Quantization procedure for the harmonic oscillator}\label{Eq:QuantHO} -To the the problem, we first have to go back the cooking recipe for the quantization of a classical problem. In a first step, we have to obtain the relevant Lagrangian. Knowing what is it, is a rather interesting artform of theoretical physics, but for most cases you might just take it as a given thing. We have: -\begin{align} -L_{HO} = \frac{1}{2}m\dot{x}^2-\frac{m\omega^2}{2}x^2 -\end{align} -We can now identify the conjugate momentum as: -\begin{align} -p &= \frac{\partial L}{\partial \dot{x}}\\ - &= m\dot{x} -\end{align} -At this stage we can calculate the Hamiltonian: -\begin{align} -H &= \dot{x}p - L\\ -H_{HO} &= \frac{p^2}{2m}+\frac{m\omega^2}{2}x^2 -\end{align} -At this stage we can identify the classical equations of motion through: -\begin{align} -\frac{dx}{dt}&= \frac{\partial H}{\partial p}\\ -\frac{dp}{dt}&= -\frac{\partial H}{\partial x} -\end{align} -It results just in the usual Newtons law. To get now the quantum formulation, we can quantize the system by imposing the commutation relationship on position and its conjugate momentum: -\begin{align} -~[\hat{x}, \hat{p}] = i\hbar -\end{align} -We then had the final Hamiltonian: -\begin{align} -\hat{H} &= \frac{\hat{p}^2}{2m}+\frac{m\omega^2}{2}\hat{x}^2 -\end{align} -However, we know from the previous lecture that it is much nicer to work in the basis of raising and lowering operators: -\begin{align} -\hat{a} &= \frac{1}{\sqrt{2\hbar}}\left(\sqrt{m\omega}x+i\frac{p}{\sqrt{m\omega}}\right)\\ -\hat{a}^\dag &= \frac{1}{\sqrt{2\hbar}}\left(\sqrt{m\omega}x-i\frac{p}{\sqrt{m\omega}}\right)\\ -~[\hat{a}, \hat{a}^\dag] &=1 -\end{align} -for which we obtain: -\begin{align} -\hat{H} &=\hbar\omega\left(\hat{a}^\dag \hat{a}+\frac{1}{2}\right) -\end{align} - -\section{The lagrangien for the electromagnetism} - -At this stage we would like to roll out the formalism for electromagnetism, following the discussion of Cohen-Tannoudji Vol 3 (appendix of 18) \cite{laloe2017}. It adds sequentially the following new problems, which we will tackle as we get to them: -\begin{itemize} -\item The Lagrangien has plenty degrees of freedom. -\item The dynamical variables are complex. -\end{itemize} -We start out with the Lagrangien: -\begin{align} -L &= \int d^3r \mathcal{L}(\vec{r},t)\\ -\mathcal{L}(\vec{r},t)&= \frac{\epsilon_0}{2}\left(\vec{E}^2-c^2\vec{B}^2\right) -\end{align} -As it depends explicitly on the electric and magnetic field it is manifestly gauge invariant. However, the current version does not allow us to to identify the conjugate variables. We will use the vector potential to introduce them: -\begin{align} -\mathcal{L}(\vec{r},t)&= \frac{\epsilon_0}{2}\left(\dot{\vec{A}}^2(\vec{r},t)-c^2\left(\nabla \times \vec{A}\right)^2\right) -\end{align} -Now we obtained the time derivative, which we can employ to identify the conjugate momentum, but it also gave us the unwanted rot term. We get rid of them transforming into Fourier space: -We can then write: -\begin{align} -\int d\vec{r} \vec{E}(\vec{r},t)\vec{E}(\vec{r},t)&= \int d\vec{k} \dot{\vec{A}}(\vec{k},t)\dot{\vec{A}}^*(\vec{k},t)\\ -\int d\vec{r} \vec{B}(\vec{r},t)\vec{B}(\vec{r},t)&= \int d\vec{k}k^2 \vec{A}(\vec{k},t)\vec{A}^*(\vec{k},t)\\ -\end{align} -We can then write the Lagrangien as: -\begin{align} -L &= \int d^3k \mathcal{L}(\vec{k},t)\\ -\mathcal{L}(\vec{k},t) &= \epsilon_0\left( \dot{\vec{A}}(\vec{k},t)\dot{\vec{A}}^*(\vec{k},t)-c^2k^2 \vec{A}(\vec{k},t)\vec{A}^*(\vec{k},t)\right) -\end{align} -As for the integral over $\vec{k}$, we will only integrate over the positive contributions. This avoids summing over identical terms at $\vec{k}$ and $-\vec{k}$. Finally, we can also use the polarization \eqref{Eq:PotPolar} to obtain: -\begin{align} -\mathcal{L}(\vec{k},t)&= \epsilon_0\sum_i \left( \dot{A}_i(\vec{k},t)\dot{A}_i^*(\vec{k},t)-c^2k^2 A_i(\vec{k},t)A_i^*(\vec{k},t)\right) -\end{align} - - -\subsection{The conjugate moment and hamiltonian} -We have discussed in Sec. \ref{Eq:QuantHO} how to find the conjugate momentum for classical variables. Here, we have complex variables. But, we can deduce the conjugate momentum through as decomposition $X = x_1 + i x_2$. We actually obtain: -\begin{align} -P &= \frac{\partial L}{\partial \dot{X}^*} -\end{align} - -Here, it implies that the conjugate momentum $\Pi_i(\vec{k})$ is -\begin{align} -\Pi_i(\vec{k}) &= \frac{\partial\mathcal{L}(\vec{k},t)}{\partial \dot{A}^*_i(\vec{k},t)}\\ -&= \epsilon_0 \dot{A}_i(\vec{k},t)\\ -&= -\epsilon_0 E_i(\vec{k},t) -\end{align} -\textbf{So the conjugate momentum to the vector potential is the electric field.} - -We can now calculate the Hamiltonian before we quantize the system. We obtain: -\begin{align} -H &= \sum_i \int d\vec{k}\left(\dot{A}_i(\vec{k},t)\Pi_i(\vec{k},t)+\dot{A}^*_i(\vec{k},t)\Pi^*_i(\vec{k},t)\right)-L -\end{align} -We finally obtain the Hamiltonian of free radiation: -\begin{align} -H &= \int d\vec{k} \mathcal{H}(\vec{k})\\ -\mathcal{H}(\vec{k}) &= \sum_i \left(\frac{1}{\epsilon_0}\Pi_i^*(\vec{k},t)\Pi_i(\vec{k},t)+\epsilon_0c^2k^2 A^*_i(\vec{k},t)A_i(\vec{k},t)\right) -\end{align} - -\subsection{The quantized Hamiltonian} -We are now ready to quantize the system, we simply have to be careful about the quantization of the complex operators. Going through the components, we obtain: -\begin{itemize} -\item $A_i^*\rightarrow \hat{A}_i^\dag$ -\item $A_i\rightarrow \hat{A}_i$ -\item $[\hat{A}_i(\vec{k}),\hat{\Pi}^\dag_j(\vec{k}')]= i\hbar \delta_{ij}\delta(\vec{k}-\vec{k}')$ -\end{itemize} -Hence, the fully quantized Hamiltonian is: -\begin{align} -H &= \int d\vec{k} \mathcal{H}(\vec{k})\\ -\hat{\mathcal{H}}(\vec{k}) &= \sum_i \left(\frac{1}{\epsilon_0}\hat{\Pi}_i^\dag(\vec{k})\hat{\Pi}_i(\vec{k})+\epsilon_0c^2k^2 \hat{A}^\dag_i(\vec{k})\hat{A}_i(\vec{k})\right)\\ - &= \epsilon_0 \sum_i \left(\hat{E}_i^\dag(\vec{k})\hat{E}_i(\vec{k})+c^2k^2 \hat{A}^\dag_i(\vec{k})\hat{A}_i(\vec{k})\right) -\end{align} - - - -\section{The normal modes} -The hamiltonian above looks roughly like a harmonic oscillator, but not really yet as there are some funny conjugates trailing. This can get solved through the definition of the appropiate raising and lowering operators, named \textbf{normal modes}. They are defined through: -\begin{align} -\hat{a}_i(\vec{k}) = \sqrt{\frac{\epsilon_0 \omega}{2\hbar }}\left(\hat{A}_i(\vec{k})+\frac{i}{\epsilon_0\omega}\hat{\Pi}_i\right)\\ -\hat{a}^\dag_i(\vec{k}) = \sqrt{\frac{\epsilon_0 \omega}{2\hbar }}\left(\hat{A}^\dag_i(\vec{k})-\frac{i}{\epsilon_0\omega}\hat{\Pi}_i^\dag \right) -\end{align} -With the underlying commutation relationships of the conjugate operators we obtain the usual raising and lowering operators: -\begin{align} -~[\hat{a}_i(\vec{k}), \hat{a}^\dag_j(\vec{k}')] &=\delta_{ij}\delta(\vec{k}-\vec{k}') -\end{align} -Multiplying it out brings the Hamiltonian in normal form: -\begin{align} -H &= \int d\vec{k} \mathcal{H}(\vec{k})\\ -\hat{\mathcal{H}}(\vec{k}) &= \sum_i \frac{\hbar\omega_k}{2}\left(\hat{a}_i(\vec{k})\hat{a}_i^\dag(\vec{k})+\hat{a}_i^\dag(\vec{k})\hat{a}_i(\vec{k})\right)\\ -&= \sum_i \hbar\omega_k\left(\hat{a}^\dag_i(\vec{k})\hat{a}_i(\vec{k})+\frac{1}{2}\right) -\end{align} - -\subsection{Quadratures} -It is common to push the terminology of the harmonic oscillator even further, by the definition of the quadratures: -\begin{align} -\hat{a}_i(\vec{k}) &= \frac{1}{\sqrt{\hbar2}}\left(\hat{Q}_i(\vec{k})+\hat{P}_i(\vec{k})\right)\\ -\hat{a}^\dag_i(\vec{k}) &=\frac{1}{\sqrt{\hbar2}}\left(\hat{Q}_i(\vec{k})-\hat{P}_i(\vec{k})\right) -\end{align} - -\subsection{The field operators} -We can also express the actual field operators in terms of the normal modes: -\begin{align} -\hat{E}(\vec{r})&= i \int \frac{d\vec{k}}{(2\pi)^{3/2}}\sum_i \left(\frac{\hbar\omega}{2\epsilon_0}\right)\vec{e}_i\left(\hat{a}_i(\vec{k})e^{i\vec{k}\vec{r}}-\hat{a}^\dag_i(\vec{k})e^{-i\vec{k}\vec{r}}\right)\\ -\hat{B}(\vec{r})&= \frac{i}{c} \int \frac{d\vec{k}}{(2\pi)^{3/2}}\sum_i \left(\frac{\hbar\omega}{2\epsilon_0}\right)(\vec{k}\times\vec{e}_i)\left(\hat{a}_i(\vec{k})e^{i\vec{k}\vec{r}}-\hat{a}^\dag_i(\vec{k})e^{-i\vec{k}\vec{r}}\right)\\ -\hat{A}(\vec{r})&= \int \frac{d\vec{k}}{(2\pi)^{3/2}}\sum_i \left(\frac{\hbar}{2\epsilon_0\omega}\right)\vec{e}_i\left(\hat{a}_i(\vec{k})e^{i\vec{k}\vec{r}}+\hat{a}^\dag_i(\vec{k})e^{-i\vec{k}\vec{r}}\right) -\end{align} - -In the following lectures we will typically focus on the electric field as it couples to the electron charge through the electric dipole moment: -\begin{align} -H_I = \vec{D}\cdot\vec{E} -\end{align} -This will be the content of the next lecture \cite{states}. - -\section{The notion of the photon} -We can now get back to the interpretation of the eigenstates of the raising and lowering operators as a photon. We have seen previously in lecture 6\cite{Jendrzejewski} that the operator $\hat{n}_i(\vec{k}) = \hat{a}_i^\dag (\vec{k}) \hat{a}_i(\vec{k}) $ is counting the occupation number in the Fock basis: -\begin{align} -\hat{n}_i(\vec{k}) \ket{n_i}&= n_i\ket{n_i} -\end{align} - -The $n_i$ are then non-negative integers. We can further create a well-defined photon number state through the raising operators from the vacuum: -\begin{align} -\ket{n} = \frac{(a^\dag)^n}{\sqrt{n!}}\ket{0} -\end{align} -Given all the numbers the single photon energy is corresponding to intensities in the order pico to femto Watts($\sim 10^{-12}$ -- $10^{-15}$W). - -A rather nice discussion concerning the details of a proper quantization of the interacting field theory of quantum electromagnetism is given in the book by Kleinert \cite{electrodynamics} - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 19 - Atom-Light Interactions and Dressed States.tex b/amo/tex_files/Lecture 19 - Atom-Light Interactions and Dressed States.tex deleted file mode 100644 index 453529f..0000000 --- a/amo/tex_files/Lecture 19 - Atom-Light Interactions and Dressed States.tex +++ /dev/null @@ -1,481 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand*\ch[1]{\ensuremath{\mathrm{#1}}} - -\begin{document} - -\title{Lecture 19 - Atom-Light Interactions and Dressed States} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\author[2]{Matthias Weidemüller}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - - - - -\sloppy - - -We have seen that we can understand matter with increasing complexity from the simple two-level system up to molecules. We further studied, how they can be control by classical electromagnetic fields to a very high accuracy. - -In the last lecture \cite{field} we also studied how we can understand the electromagnetic field as an ensemble of quantum mechanical photon modes. So in today's lecture we will focus on the interaction between atoms and light, which is in a particularly clean set-up, namely cavity quantum electrodynamics. The fundamental ingredients are sketched in Fig. \ref{305911}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-18-um-09-15-55/Bildschirmfoto-2018-12-18-um-09-15-55} -\caption{{Rydberg atoms interacting with the photons confined in a high quality -cavity. Picture taken from the Nobel prize announcement for Serge -Haroche \protect\cite{2012a} -{\label{305911}}% -}} -\end{center} -\end{figure} - -They are: -\begin{itemize} -\item The electric field confined in a high finesse cavity. It will bescribed by $\hat{H}_\textrm{f}$. -\item An atom transversing the cavity, described by $\hat{H}_\textrm{a}$. -\item The interaction between the atomic charge and the electric field of the cavity described by $\hat{H}_\textrm{af}$. -\end{itemize} - -The Hamiltonian reads: - -\begin{align} \label{eq:totham} -\hat{H}_0 = \hat{H}_\textrm{a} + \hat{H}_\textrm{f} + \hat{H}_\textrm{af} -\end{align} - -\section{The qubit system} - -The first ingredient of the Hamiltonian is the qubit system. Several widely studied system that we will come back to exist. The most widely studied are: -\begin{enumerate} -\item The internal qubit states of ions. -\item The transmon qubit in superconducting systems. -\end{enumerate} - -Another approach are well isolated states in atoms, namely \textbf{Rydberg} states. - -\subsection{Rydberg atoms} -The Rydberg states are highly excited states of Alkali atoms, which have only one electron on the outer shell. As such they are similiar to the hydrogen atom and hence they can be well described within atomic physics. In the hydrogen atom the energy states are described by the principle quantum number $n$ \cite{Jendrzejewski, Jendrzejewskib}: -\begin{align} -E_n = -E_I \frac{1}{n^2} \text{ with }E_I = 13.6 eV -\end{align} -The typically employed Rydberg states are then in the order of $n\approx 50$, such that the energy difference between two neighboring states is in the order of a few 50 GHz. Focusing only on two of those states we can write the Hamiltonian as: -\begin{align} -\hat{H}_\textrm{a} &= \frac{\hbar\omega_0}{2} \left(\ket{e}\bra{e}-\ket{g}\bra{g} \right) -\end{align} -Through the remainder of the lecture we will frequently switch notations between the spin language and the two-level system: -\begin{align} -\hat{\sigma}_z &= \ket{e}\bra{e}-\ket{g}\bra{g}\\ -\hat{\sigma}_+ &= \ket{e}\bra{g}\\ -\hat{\sigma}_- &= \ket{g}\bra{e} -\end{align} - -Using these highly excited states has several advantages: -\begin{itemize} -\item The energy spacing of a few GHz falls into the regime of microwaves, which are extremely precisely controlled. -\item Given the high quantum number, the electron is typically far away from the nucleus and the induced dipole moments can be rather large.As a such a strong coupling between light-field and qubit seems achievable. -\item The lifetime of the Rydberg states is in the order of a few microseconds, which can be long compared to most other time scales within the experiments. -\end{itemize} - -The next step is to couple qubit to a suitable cavity. - - - -\section{The cavity field} -The atom has be coupled to a suitable electric field. The electric field reads in general \cite{field}: -\begin{align} -\hat{E}(\vec{r})&= i \int \frac{d\vec{k}}{(2\pi)^{3/2}}\sum_i \left(\frac{\hbar\omega}{2\epsilon_0}\right)\vec{e}_i\left(\hat{a}_i(\vec{k})e^{i\vec{k}\vec{r}}-\hat{a}^\dag_i(\vec{k})e^{-i\vec{k}\vec{r}}\right) -\end{align} -We can simplify it a lot by working in a suitable cavity. The most important properties of the cavity are the: -\begin{itemize} -\item The resonant frequency $\omega_L$ of the light trapped in the cavity. -\item The quality factor $Q$, which describes the number of round trips the photon makes within the cavity. -\end{itemize} - -The cavities employed for cavity electrodynamics in Paris are made of superconducting material and feature quality factors of up to $10^{10}$. For such high quality factors the electric field can be well reduced to a single relevant mode \footnote{We chose the phase of the electric field such that we can eliminate the minus sign in the Hamiltonian}: -\begin{align} -\hat{E} &\sim (\hat{a} + \hat{a}^\dag) -\end{align} -The full Hamiltonian of the electromagnetic field reads then -\footnote{We ignore the energy of the quantum vacuum as it is not relevant for the following discussions}: -\begin{align} -\hat{H}_\textrm{f} &= \hbar\omega_L \hat{a}^\dag \hat{a} -\end{align} -The $\hat{a}$ is the raising operator for the electro-magnetic field. We typcially describe the electric field in the Fock basis of $\ket{n}$. -\begin{align} -\hat{n} \ket{n} &= n \ket{n} -\end{align} -While is the natural choice for the given Hamiltonian, this is obviously not the natural basis of the raising and lowering operators: -\begin{align} -\hat{a} \ket{n} &= \sqrt{n} \ket{n-1}\\ -\hat{a}^\dag \ket{n} &= \sqrt{n+1} \ket{n+1} -\end{align} -From those we can construct any Fock state as: -\begin{align} -\ket{n} &= \frac{\left(\hat{a}^\dag\right)^n}{n!}\ket{0} -\end{align} -But experimentally we rarely manipulate the Hamiltonian directly, we much rather control the electric field, which is proportional to the raising and lowering operators. As such, photon states are widely described in the basis of \textbf{coherent} states: -\begin{align} -\hat{a}\ket{\alpha}&= \alpha\ket{\alpha} -\end{align} -So the eigenvalues are complex numbers corresponding to the complex electric field amplitudes we know from classical optics. To make a connection to the Fock space we can then use the above definitions to write: -\begin{align} -\ket{\alpha} &=e^{-|\alpha|^2/2}\sum_n \frac{\alpha^n}{\sqrt{n!}}\ket{n} -\end{align} -A very useful visualization of the coherent states happens in phase space $X = \frac{a+a^\dag}{2}$ and $P = i\frac{a-a^\dag}{2}$. They are Gaussian wave packages displaced by an amplitude $|\alpha|$ and rotating at speed $\omega_L$. - -\section{The atom-field interaction} -Finally, we have to describe interaction between the atoms and the field. -% -Interactions between the atoms and the light field are governed by the electric dipole interaction between the atom and the light -\begin{align} -\hat{H}_\textrm{af}&= -\hat{\vec{D}} \cdot \hat{\vec{E}} -\end{align} -We can expand the dipole operator over the two levels of the atom: -\begin{align} -\hat{\vec{D}} = \vec{d}\left(\ket{g}\bra{e}+\ket{e}\bra{g}\right)\\ -\hat{\vec{D}} = \vec{d}\left(\hat{\sigma}_- + \hat{\sigma}_+\right) -\end{align} -We can now write: -\begin{align} -\hat{H}_\textrm{af}&= \frac{\hbar \Omega_0}{2} \left(\ket{g}\bra{e}+\ket{e}\bra{g}\right)\left(\hat{a}+\hat{a}^\dag\right) -\end{align} - -Multiplying out the different the two brackets leads to two processes of the type: -\begin{itemize} -\item $\hat{\sigma}_- \hat{a}^\dag$, which describes the emission of a photon by deexcitation of the atom. -\item $\hat{\sigma}_+ \hat{a}$, which describes the absorption of a photon by excitation of the atom. -\end{itemize} -The other two processes are strongly off-resonant and we can typically ignore them. This approximation consists in the rotating wave approximation, discussed in lecture 4 \cite{Jendrzejewski}. The coupling hamiltonian reads then: - -\begin{align} -\hat{H}_\textrm{af}&= \frac{\hbar \Omega_0}{2} \left(\hat{\sigma}_- a^\dag +\hat{\sigma}_+ a\right) -\end{align} - -We can put the full Hamiltonian together to obtain the Jaynes-Cummings model: -\begin{align} -H_{JC}&=\hbar\omega_0 \ket{e}\bra{e} +\hbar\omega_L \hat{a}^\dag \hat{a} +\frac{\hbar \Omega_0}{2} \left(\hat{\sigma}_- a^\dag +\hat{\sigma}_+ a\right) -\end{align} - - -\section{Dressed Atom Picture} -We can now analyze the Hamiltonian step-by-step in the dressed atom picture. - -\subsection{Optional: Bare States} -Let us first look at the unperturbed ("bare") states, ignoring $H_\textrm{af}$ and depict the ground and excited state $\ket{g}$ and $\ket{e}$ of the atom on an energy scale, as shown in \ref{231072}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-01-um-15-24-39/Bildschirmfoto-2018-10-01-um-15-24-39} -\caption{{The ground and excited state~\(\left|g\right\rangle\) and~\(\left|e\right\rangle\) -of the atom on an energy scale. Here, the energy of the ground state -is~\(E_g\ =\ 0\). The energy difference between the two states is -\(\hbar\omega_0\). A photon of the surrounding light field has an -energy \(\hbar\omega_L\). -{\label{231072}}% -}} -\end{center} -\end{figure} - -The Hamiltonian of the system then reads -\begin{align} -\hat{H} = \hat{H}_\textrm{a} + \hat{H}_\textrm{f} = \hbar \omega_0 \ket{e} \bra{e} + \hbar \omega_\textrm{L} \hat{a}^\dag \hat{a} -\end{align} - -The Hilbert space of this Hamiltonian contains both the state of the atom and the state of the field. We can write them as product states of the form -\begin{align} -\ket{g/e, n} = \ket{g/e} \otimes \ket{n} -\end{align} -The left substate of the tensor product denotes the state of the atom and the right substate is defined by the number of photons in the external field. We then have: -\begin{align} -\hat{H}\ket{g/e, n} = \left(\hbar\omega_0 \delta_{g/e,e}+\hbar\omega_L n\right)\ket{g/e, n} -\end{align} - -We will assume that there is a very small detuning $\delta_\textrm{l}$ between the atom and the light field: -\begin{align} -|\delta_\textrm{l}| = |\omega_\textrm{L}- \omega_0 | \ll \omega_0 -\end{align}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-01-um-15-24-47/Bildschirmfoto-2018-10-01-um-15-24-47} -\caption{{An energy diagram of the bare states. Note that the interaction between -atom and light field has not yet been introduced! -{\label{871990}}% -}} -\end{center} -\end{figure} - -We can draw another energy diagram (see \ref{871990}), where the state of the atom and the state of the light field are contained in one ``bare'' state. It does \emph{not} yet include the interaction between the atom and the light field. From the diagram one can see that the states forming the manifold -\begin{align} -\Sigma (n) = \left\{ \ket{g,n+1}, \ket{e,n} \right\} -\end{align} -are almost degenerate. - -\subsection{Dressed States} - -$\hat{H}_\textrm{af}$ couples now only the two states within each manifold $\Sigma(n)= \left\{ \ket{g,n+1}, \ket{e,n} \right\}$. We thus obtain a two-state system (see lecture 3 \cite{Jendrzejewskia}) for which we can write: - -\begin{align} -\left( \begin{array}{c} c_1 \\ c_2 \end{array} \right) \equiv c_1 \ket{g,n+1} + c_2 \ket{e,n} -\end{align} -The off-diagonal matric element reads: -\begin{align} -h_n = \braket{e,n|\hat{H}_\textrm{af}|g,n+1} = \frac{\hbar \Omega_0}{2} \sqrt{n+1}. -\end{align} -Note that the square of the matrix element is proportional to $I \propto (n+1) \approx n$ for large $n$. -The three Hamiltonians in \eqref{eq:totham} can then be written in matrix notation and the total Hamiltonian can be constructed: - -\begin{align} -H_\textrm{a} &= \left( \begin{array}{cc} 0 & 0 \\ 0 & \hbar \omega_0 \end{array} \right),\\ -H_\textrm{f} &= \left( \begin{array}{cc} (n+1)\hbar \omega_\textrm{l} & 0 \\ 0 & n \hbar \omega_\textrm{l} \end{array} \right) = \left( \begin{array}{cc} \hbar \omega_\textrm{l} & 0 \\ 0 & 0 \end{array} \right) + n \hbar \omega_\textrm{l} \cdot \mathbb{1},\\ -H_\textrm{af} &= \left( \begin{array}{cc} 0 & h_n \\ h_n & 0 \end{array} \right), \qquad \text{where} \qquad h_n = \hbar \frac{\Omega_0}{2}\sqrt{n+1},\\ -\hat{H} &= \left( \begin{array}{cc} \hbar \omega_\textrm{l} & h_n \\ h_n & \hbar \omega_0 \end{array} \right) + n \hbar \omega_\textrm{l} \cdot \mathbb{1}, -\end{align} -The ``dressed states'' are obtained by diagonalizing $\hat{H}$ within $\Sigma(n)$, which es effectively once again a two level system \ref{180224} shows an energy diagram including the bare and the dressed states. The energy difference between the states $\ket{1(n)}$ and $\ket{2(n)}$ is -\begin{align} -\hbar \Omega = \hbar \sqrt{\delta_\textrm{l}^2 + \Omega_0^2} -\end{align} -with the effective Rabi frequency $\Omega$.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-01-um-15-24-57/Bildschirmfoto-2018-10-01-um-15-24-57} -\caption{{An energy diagram showing the bare and the dressed states. -{\label{180224}}% -}} -\end{center} -\end{figure} - -The corresponding eigenvectors are then a mixture of atom and light as visualized in Fig \ref{633447}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-01-um-15-25-06/Bildschirmfoto-2018-10-01-um-15-25-06} -\caption{{Energies of the bare and dressed states as a function of -the~\(\delta_L\). -{\label{633447}}% -}} -\end{center} -\end{figure} - -\section{Quantum Rabi oscillations} - -In the resonant case, the Jaynes-Cummings model simply describes a two-level system that is coupled by a quantized Rabi coupling strength -\begin{align} -\Omega_n = \Omega_0 \sqrt{n+1} -\end{align} -So even for an empty cavity the vacuum is predicted to induce Rabi coupling, if it is switched on and off. If more than one photon is in the cavity the oscillation is simply a superposition of several coupling strength: -\begin{align} -P_e(t)=\sum_n p_n\frac{1+\cos\left[\Omega_n t\right]}{2} -\end{align} -This effect has been observed in Ref. \cite{Brune_1996} as summarized in Fig. \ref{910858}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-18-um-14-07-52/Bildschirmfoto-2018-12-18-um-14-07-52} -\caption{{Observation of quantum Rabi oscillations in \protect\cite{Brune_1996} -{\label{910858}}% -}} -\end{center} -\end{figure} - - - -\selectlanguage{ngerman}\section{Making Schrödingers kitten} - -In the previous section the cavity was tuned exactly on resonance with the incoming Rydberg atoms, such that coherent oscillations where possible. On the other hand it is possible to work in the regime, where $\delta_L$ is much larger than the Rabi coupling. In this 'dispersive' regime the atom does not change its internal state, but it only picks up a phase $\Phi_0 = \frac{\delta_L^2}{4\Omega} T_R$. The inverse of the phase is then imprinted onto the electric field in the cavity. To create a kitten state the experiment goes as follows: -\begin{enumerate} -\item The cavity is filled by a coherent state $\alpha$. -\item The Rydberg atom is prepare in a superposition state $\frac{\ket{e}+\ket{g}}{\sqrt{2}}$ -\item The atom now interacts with the cavity for the time $T_R$. At the end, the entangled state is created: -\end{enumerate} -\begin{align} -\ket{\Psi}_1= \frac{e^{-i\Phi_0}\ket{e, \alpha e^{-i\Phi_0}}+\ket{g,\alpha e^{i\Phi_0}}}{\sqrt{2}} -\end{align} -This is the typical situation of Scrödingers cat. Pushing to the extreme case $\Phi_0 = \frac{\pi}{2}$ we entangled the atom with the state $\ket{\pm i\alpha}$. As $\alpha$ is a complex number we entangled a single atom with a large 'cat' state. As the atom is detected it projects the full Schrödinger cat onto the dead or alive state. This projection can be avoided by adding a second Ramsey pulse, which mixes once again the states $\ket{e}$ and $\ket{g}$: -\begin{align} -\ket{e}\rightarrow\frac{\ket{e}+e^{i\varphi}\ket{g}}{\sqrt{2}}\\ -\ket{g}\rightarrow\frac{\ket{g}-e^{-i\varphi}\ket{e}}{\sqrt{2}} -\end{align} -The field now becomes: -\begin{align} -\ket{\Psi_2} &= \frac{1}{2}\ket{e}\otimes\left[e^{-i\Phi_0}\ket{\alpha e^{-i\Phi_0}}-e^{-i\varphi}\ket{\alpha e^{i\Phi_0}}\right]+\frac{1}{2}\ket{g}\otimes\left[e^{i(\varphi-\Phi_0)}\ket{\alpha e^{-i\Phi_0}}+\ket{\alpha e^{i\Phi_0}}\right] -\end{align} -The final read-out is then given by: -\begin{align} -P_e &= \frac{1}{2}\left(1- e^{-n(1-\cos(2\Phi_0))}\cos(\varphi-\Phi_0-n\sin(2\Phi_0))\right) -\end{align} -So the presence of the cat leads to a phase shift and a decrease in fringe contrast. This was observed in the experiments \selectlanguage{ngerman}\section{Making Schrödingers kitten} - -In the previous section the cavity was tuned exactly on resonance with the incoming Rydberg atoms, such that coherent oscillations where possible. On the other hand it is possible to work in the regime, where $\delta_L$ is much larger than the Rabi coupling. In this 'dispersive' regime the atom does not change its internal state, but it only picks up a phase $\Phi_0 = \frac{\delta_L^2}{4\Omega} T_R$. The inverse of the phase is then imprinted onto the electric field in the cavity. To create a kitten state the experiment goes as follows: -\begin{enumerate} -\item The cavity is filled by a coherent state $\alpha$. -\item The Rydberg atom is prepare in a superposition state $\frac{\ket{e}+\ket{g}}{\sqrt{2}}$ -\item The atom now interacts with the cavity for the time $T_R$. At the end, the entangled state is created: -\end{enumerate} -\begin{align} -\ket{\Psi}_1= \frac{e^{-i\Phi_0}\ket{e, \alpha e^{-i\Phi_0}}+\ket{g,\alpha e^{i\Phi_0}}}{\sqrt{2}} -\end{align} -This is the typical situation of Scrödingers cat. Pushing to the extreme case $\Phi_0 = \frac{\pi}{2}$ we entangled the atom with the state $\ket{\pm i\alpha}$. As $\alpha$ is a complex number we entangled a single atom with a large 'cat' state. As the atom is detected it projects the full Schrödinger cat onto the dead or alive state. This projection can be avoided by adding a second Ramsey pulse, which mixes once again the states $\ket{e}$ and $\ket{g}$: -\begin{align} -\ket{e}\rightarrow\frac{\ket{e}+e^{i\varphi}\ket{g}}{\sqrt{2}}\\ -\ket{g}\rightarrow\frac{\ket{g}-e^{-i\varphi}\ket{e}}{\sqrt{2}} -\end{align} -The field now becomes: -\begin{align} -\ket{\Psi_2} &= \frac{1}{2}\ket{e}\otimes\left[e^{-i\Phi_0}\ket{\alpha e^{-i\Phi_0}}-e^{-i\varphi}\ket{\alpha e^{i\Phi_0}}\right]+\frac{1}{2}\ket{g}\otimes\left[e^{i(\varphi-\Phi_0)}\ket{\alpha e^{-i\Phi_0}}+\ket{\alpha e^{i\Phi_0}}\right] -\end{align} -The final read-out is then given by: -\begin{align} -P_e &= \frac{1}{2}\left(1- e^{-n(1-\cos(2\Phi_0))}\cos(\varphi-\Phi_0-n\sin(2\Phi_0))\right) -\end{align} -So the presence of the cat leads to a phase shift and a decrease in fringe contrast. This was observed in the experiments \cite{Brune_1996a}, which are partially visualized in Fig. \ref{384136}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/CavityCat/CavityCat} -\caption{\selectlanguage{ngerman}{Observation of a Schrödinger cat state in cavity electrodynamics. -{\label{384136}}% -}} -\end{center} -\end{figure}\selectlanguage{ngerman} - -Nowadays the entangled states have become an interesting platform to create increasingly large Schrödinger cats. A common example is here the creation of a GHZ state: -\begin{align} -\ket{\psi} = \frac{\ket{0 \cdots 0}+ \ket{1\cdots 1}}{\sqrt{2}} -\end{align} - -A interesting demonstration for up to 14 ions was performed in \cite{Monz_2011}. Importantly it also highlights the extremely fast decoherence of larger cat states. We will go into more detail on how to create increasingly larger cats in the next lecture. However, I would like to finish the lecture with the discussion of quantum non-demolition measurements. - -As of the time of writing cold atom systems systems -\cite{Omran_2019} cold the record of the largest cat with 20 atoms. - -\section{Seeing a photon without destroying it} - -The tool of the Rabi oscillations has been extend to observe photons without destroying them as detailed in great detail in the book by Raymond and Haroche \cite{quantum}. The underlying principle is the following: -\begin{itemize} -\item The atom is supposed to be in the ground state and the cavity is filled with one photon. -\item The interaction time is tuned such that the atom undergoes exactly one Rabi oscillation. -\item The initial and final state are therefore exactly the same, but the atom has picked up a phase $\pi$. -\end{itemize} -If the cavity was empty at the atom does not acquire a phase shift. - -Finally, the phase is read out through a Ramsey sequence between the state $g$ and some unaffected independent state $i$ as visualized in Fig.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-18-um-15-19-24/Bildschirmfoto-2018-12-18-um-15-19-24} -\caption{{Projective measurment of a photon through with an atom. -{\label{338314}}% -}} -\end{center} -\end{figure} - -This was implemented in Ref. \cite{Nogues_1999}. Based on this technique, the team later observed quantum jumps \cite{Gleyzes_2007} and even the stabilization of a Fock state through quantum feedback \cite{Sayrin_2011}. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 2 - A few more cooking recipes for quantum mechanics.tex b/amo/tex_files/Lecture 2 - A few more cooking recipes for quantum mechanics.tex deleted file mode 100644 index 2cc208b..0000000 --- a/amo/tex_files/Lecture 2 - A few more cooking recipes for quantum mechanics.tex +++ /dev/null @@ -1,319 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} - -\begin{document} - -\title{Lecture 2 - A few more cooking recipes for quantum mechanics} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 03, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In this second lecture we will finish the discussion of the basic cooking recipes and discuss a few of the consequences like the uncertainty relation, the existance of wave packages and the Ehrenfest theorem.% -\end{abstract}% - - - -\sloppy - - -In the first lecture \cite{Jendrzejewski} we discussed briefly the basic principles of quantum mechanics like operators, state vectors and the Schr\selectlanguage{ngerman}ödinger equation. We will finish this discussion today and then introduce the most important consequences. We will continue to closely follow the discussion of the introductory chapter of Ref. \cite{2006} - -\section{Composite systems} -It is actually quite rare that we can label the system with a single quantum number. Any atom will involve spin, position, angular momentum. Other examples might just involve two spin which we observe. So the question is then on how we label those systems. We then have two questions to answer: -\begin{enumerate} -\item How many labels do we need for a system to fully determine its quantum state ? -\item Once I know all the labels, how do I construct the full state out of them ? -\end{enumerate} -We will actually discuss the second question first as it sets the notation for the first question. - - - -\subsection{Entangled States} - -In AMO we typically would like to characterize is the state of an electron in a hydrogen atom. We need to define its angular momentum label $L$, which might be 0, 1, 2 and also its electron spin $S$, which might be $\{\uparrow, \downarrow\}$. It state is then typically labelled as something like $\ket{L=0, S=\uparrow} = \ket{0,\uparrow}$ etc. - -Another, simple example is that of two spins, each one having two possible states $\{\uparrow, \downarrow\}$. This is a standard problem in optical communication, where you send correlated photons with a certain polarization to different people. We will typically call them Alice and Bob \footnote{And if someone wants to listen the person is called Eve}. - -We now would like to understand than if we can disentangle the information about the different labels. Naively, we can now associate with Alice one set of outcomes and describe it by some state $\ket{\psi_{A}}$ and the Bob has another set $\ket{\psi_{B}}$: -\begin{align}\label{Eq:Local} -\ket{\psi_A}&= a_{\uparrow} \ket{\uparrow_A}+ a_{\downarrow} \ket{\downarrow_A}\\ -\ket{\psi_B}&= b_{\uparrow} \ket{\uparrow_B}+ b_{\downarrow} \ket{\downarrow_B} -\end{align} - -The full state will then be described by the possible outcomes $\{\uparrow_A\uparrow_B,\downarrow_A\uparrow_B,\uparrow_A\downarrow_B, \downarrow_A\downarrow_B\}$. We can then write: -\begin{align} -\ket{\psi} &= \alpha_{\uparrow\uparrow}(\ket{\uparrow_A}\otimes\ket{\uparrow_B})+\alpha_{\uparrow\downarrow}(\ket{\uparrow_A}\otimes\ket{\downarrow_B})+\alpha_{\downarrow\uparrow}(\ket{\downarrow_A}\otimes\ket{\uparrow_B})+\alpha_{\downarrow\downarrow}(\ket{\downarrow_A}\otimes\ket{\downarrow_B})\\ -&= \alpha_{\uparrow\uparrow}\ket{\uparrow\uparrow}+\alpha_{\uparrow\downarrow}\ket{\uparrow\downarrow}+\alpha_{\downarrow\uparrow}\ket{\downarrow \uparrow}+\alpha_{\downarrow\downarrow}\ket{\downarrow\downarrow} -\end{align} -So we will typically just plug the labels into a single ket and drop indices, to avoid rewriting the tensor symbol each time. We say that a state is \textit{separable}, if we can write it as a product of the two individual states \eqref{Eq:Local}: -\begin{align} -\ket{\psi} &= \ket{\psi_A}\otimes\ket{\psi_B}\\ -&=a_{\uparrow} b_\uparrow \ket{\uparrow\uparrow}+a_{\downarrow} b_\uparrow \ket{\downarrow\uparrow}+a_{\uparrow} b_\downarrow \ket{\uparrow\downarrow}+a_{\downarrow} b_\downarrow \ket{\downarrow\downarrow} -\end{align} - -All other states are called \textit{entangled}. The most famous entangled states are the Bell states: -\begin{align} -\ket{\psi_\textrm{Bell}}=\frac{\ket{\uparrow\uparrow}+\ket{\downarrow\downarrow}}{\sqrt{2}} -\end{align} - -In general we will say that the quantum system is formed by two subsystems $S_1$ and $S_2$. If they are independent we can write each of them as: - -\begin{align} -\ket{\psi_1}&=\sum_m^M a_m \ket{\alpha_m},\\ -\ket{\psi_2}&=\sum_n^N b_n \ket{\beta_n}. - -\end{align} -In general we will then write: -\begin{align} -\ket{\psi}=\sum_m^M \sum_n^N c_{mn}(\ket{\alpha_m}\otimes \ket{\beta_n}). -\end{align} -So we can determine such a state by $M \times N$ numbers $c_{mn}$ here. If the states are \textit{separable}, we can write $\ket{\psi}$ as a product of the individual states: -\begin{align} - \label{eq:psientangled} -\ket{\psi}&=\ket{\psi_1}\otimes\ket{\psi_2}=\left(\sum_m^M a_m \ket{\alpha_m}\right) \otimes \left(\sum_n^N b_n \ket{\beta_n}\right) -\end{align} -\begin{align} -\ket{\psi}&=\sum_m^M \sum_n^N a_m b_n \ket{\alpha_m} \otimes \ket{\beta_n}. \label{eq:psientangled3} -\end{align} - -Separable states thus only describes a small subset of all possible states. - -\section{Statistical Mixtures and Density Operator} - -Having set up the formalism for writing down the full quantum state with plenty of labels, we have to solve the next problem. As an experimentalist, you will rarely measure all of them. This means that you only perform a partial measurement and you have only partial information of the system. The extreme case is the thermodynamic ensemble, where we measure only temperature to describe $10^{23}$ particles. - -A similiar problem arises for Alice and Bob. They typically measure the state of the qubit in their lab without knowing what the other did. So they need some way to describe the system locally. This is done through the density operator approach. - -In the density operator approach the state of the system is described by a Hermitian density operator - -\begin{align} - \hat{\rho} = \sum_{n=1}^N p_n \ket{\phi_n}\bra{\phi_n}. -\end{align} -Here, $\bra{\phi_n}$ are the eigenstates of $\hat{\rho}$, and $p_n$ are the probabilities to find the system in the respective states $\ket{\phi_n}$. The trace of the density operator is the sum of all probabilities $p_n$: -\begin{align} - \tr{\rhohat} = \sum p_n = 1. -\end{align} - -For a pure state $\ket{\psi}$, we get $p_n=1$ for only one value of $n$. For every other $n$, the probabilities vanish. We thus obtain a ``pure'' density operator $\rhohat_{\text{pure}}$ which has the properties of a projection operator: - -\begin{align} -\rhohat_{\text{pure}} = \ket{\psi}\bra{\psi} \qquad \Longleftrightarrow \qquad \rhohat^2 = \rhohat. -\end{align} -For the simple qubit we then have: -\begin{align} - \rhohat &= \left(\alpha_\uparrow\ket{\uparrow}+\alpha_\downarrow\ket{\downarrow}\right)\left(\alpha_\uparrow^*\bra{\uparrow}+\alpha_\downarrow^*\bra{\downarrow}\right)\\ - &= |\alpha_\uparrow|^2\ket{\uparrow}\bra{\uparrow}+|\alpha_\downarrow|^2\ket{\downarrow}\bra{\downarrow}+\alpha_\downarrow\alpha_\uparrow^*\ket{\downarrow}\bra{\uparrow}+\alpha_\uparrow\alpha_\downarrow^*\ket{\uparrow}\bra{\downarrow} -\end{align} -Then it is even simpler to write in matrix form: -\begin{align} - \rhohat &= \left(\begin{array}{cc} - |\alpha_\uparrow|^2&\alpha_\uparrow\alpha_\downarrow^*\\ - \alpha_\downarrow\alpha_\uparrow^*&|\alpha_\downarrow|^2 - \end{array}\right) -\end{align} -For a thermal state on the other hand we have: -\begin{align} -\rhohat_{\text{thermal}} = \sum_{n=1}^N \frac{e^{-\frac{E_n}{k_BT}}}{Z} \ket{\phi_n}\bra{\phi_n}\text{ with }Z = \sum_{n=1}^N e^{-\frac{E_n}{k_BT}} -\end{align} -With this knowledge we can now determine the result of a measurement of an observable $A$ belonging to an operator $\hat{A}$. For the pure state $\ket{\psi}$ we get: -% -\begin{align} -\langle \hat{A}\rangle = \bra{\psi} \hat{A} \ket{\psi}. -\end{align} -% -For a mixed state we get: -% -\begin{align} -\langle \hat{A}\rangle = \tr{\rhohat \cdot \hat{A}} = \sum_n {p_n} \bra{\phi_n} \hat{A} \ket{\phi_n}. -\end{align} -The time evolution of the density operator can be expressed with the von Neumann equation: -\begin{align} -i\hbar \partial_{t}\rhohat(t) = [\hat{H}(t),\rhohat(t)]. -\end{align} - -\subsection{Back to partial measurements} - -We can now come back to the correlated photons sent to Alice and Bob, sharing a Bell pair. They full density matrix is then especially simple: -\begin{align} - \rhohat &= \left(\begin{array}{cccc} - \frac{1}{2}& 0& 0 &\frac{1}{2}\\ - 0 & 0 & 0& 0\\ - 0&0&0&0\\ - \frac{1}{2}&0&0&\frac{1}{2} - \end{array}\right) -\end{align} - -Let us write the system as $S = S_A \otimes S_B$. If we are looking for the density operator $\rhohat_i$ of each individual, we can simply write: - -\begin{align} -\rhohat_A=&\trarb{B}{\rhohat},\\ -\rhohat_B=&\trarb{A}{\rhohat}, -\end{align} -where $\hat{\rho}=\ket{\psi}\bra{\psi}$ and $\trarb{j}{\rhohat}$ is the trace over the Hilbert space of subsystem $j$. - -To reduce the density matrix of the Bell state it is actually helpful to write out the definitions: -\begin{align} -\trarb{B}{\rhohat} &= \bra{\uparrow_B}\rhohat\ket{\uparrow_B}+\bra{\downarrow_B}\rhohat\ket{\downarrow_B}\\ -&=\frac{1}{2}\left(\ket{\uparrow_A}\bra{\uparrow_A}+\ket{\downarrow_A}\bra{\downarrow_A}\right) -\end{align} -So we end up with the fully mixed state: -\begin{align} - \rhohat_{A,B} &= \left(\begin{array}{cc} - \frac{1}{2}&0\\ - 0&\frac{1}{2} - \end{array}\right) -\end{align} -Alice and Bob are simply cossing a coin if they ignore the outcome of the other member. But once they start comparing results we will see that the quantum case can dramatically differ from the classical case. This will be the content of lecture 12 \cite{entanglement}. - -\section{Important Consequences of the Principles} -\subsection{Uncertainty Relation} - -The product of the variances of two noncommuting operators has a lower limit: -\begin{align} - \Delta \hat{A} \cdot \Delta \hat{B} \geq \frac{1}{2} \left| \braket{\left[\hat{A},\hat{B}\right]} \right|, -\end{align} -where the variance is defined as $\Delta \hat{A} = \sqrt{\braket{\hat{A}^2}-\braket{\hat{A}}^2}$. - -\textbf{Examples.} -\begin{align} -\left[ \hat{x}, \hat{p} \right] &= i \hbar \\ -\left[ \hat{J}_i , \hat{J}_j \right] &= i \hbar \epsilon_{ijk} \hat{J}_k -\end{align} - -\textbf{Note.} This is a statement about the \emph{state} itself, and not the measurement! - -\subsection{Ehrenfest Theorem} -With the Ehrenfest theorem, one can determine the time evolution of the expectation value of an operator $\hat{A}$: -\begin{align} - \frac{d}{dt}\braket{\hat{A}}=\frac{1}{i\hbar}\braket{\left[\hat{A},\hat{H}\right]}+\braket{\partial_t{\hat{A}}{t}}. \label{eq:ehrenfest} -\end{align} -If $\hat{A}$ is time-independent and $\left[\hat{A},\hat{H}\right]=0$, the expectation value $\braket{\hat{A}}$ is a constant of the motion. - -\subsection{Complete Set of Commuting Observables} - -A set of commuting operators $\{\hat{A},\hat{B},\hat{C},\cdots,\hat{X}\}$ is considered a complete set if their common eigenbasis is unique. Thus, the measurement of all quantities $\{A,B,\cdots,X\}$ will determine the system uniquely. The clean identification of such a Hilbert space can be quite challenging and a nice way of its measurment even more. Coming back to our previous examples: - -\begin{enumerate} -\item Performing the full spectroscopy of the atom. Even for the hydrogen atom we will see that the full answer can be rather involved... -\item The occupation number is rather straight forward. However, we have to be careful that we really collect a substantial amount of the photons etc. -\item Are we able to measure the full position information ? What is the resolution of the detector and the point-spread function ? -\item Here it is again rather clean to put a very efficient detector at the output of the two arms ... -\item What are the components of the spin that we can access ? The $z$ component does not commute with the other components, so what should we measure ? -\end{enumerate} - -In the \href{https://www.authorea.com/326444/GsbfEypTdf4dvncV23L8_Q}{third lecture} of this course will start to apply these discussions to the two-level system, which is one of the simplest yet most powerful models of quantum mechanics. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 20 - A few words on quantum computing with trapped ions(1).tex b/amo/tex_files/Lecture 20 - A few words on quantum computing with trapped ions(1).tex deleted file mode 100644 index b5f3b08..0000000 --- a/amo/tex_files/Lecture 20 - A few words on quantum computing with trapped ions(1).tex +++ /dev/null @@ -1,437 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand*\ch[1]{\ensuremath{\mathrm{#1}}} - -\begin{document} - -\title{Lecture 20 - A few words on quantum computing with trapped ions} - - - -\author[1]{Fred Jendrzejewski}% -\affil[1]{Kirchhoff-Institut für Physik}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In this lecture we are going to discuss the fundamental ingredients for quantum computing with trapped ions. In a first step, we discuss trapping and cooling, then single qubit operations and finally two-qubit operations.% -\end{abstract}% - - - -\sloppy - - -Quantum computation has become a branch of research at the interaction of physics, engineering, mathematices and computer science by now. The standard book on the topic is most likely the book by Nielsen and Chang \cite{Nielsen_2009}. However, an enormous amount of additional literature exists, I will only reference here to a nice introduction \cite{beginners} a more complete list is left for future discussions. - - -In this lecture we will discuss shortly the idea behind quantum computing and the discuss its implementation on trapped ions. While a large number of them exist, we decided to start with trapped ions for several very subjective reasons \footnote{Philipp Hauke worked a lot with them. Fred is an AMO person and Ferdinand Schmidt-Kaler was kind enough to provide a lot of background information on the experiments}. - -And before we can start the discussion we would highly recommend the readers to take some time to go through the Nobel prize lecture of Dave Wineland as it gives a detailled discussion of the field from his point of view \cite{Wineland_2013}. - -\section{What do we want from a QC ?} -In a QC we would like to implement algorithms, which are based on well defined operations. Influential examples of such algorithms are the quantum Fourier transform and the Grover algorithm \cite{beginners}. - -Given that computations are typically implemented through logical truth tables, we typically base a quantum computer on qubits. We then call one state $\ket{0}$ and on $\ket{1}$. Given that we would like to have reproducable computations, we always assume that we start them out with all qubits in the $\ket{0}$ state. - -A computation consists then in applying a number of gates. The key is here that any algorithm might be built up from an extremely limited number of gates. Typically four are sufficient: -\begin{itemize} -\item The three gates that rotate each individual qubit on the Bloch sphere. -\item A gate that entangles them properly. The standard example is here the CNOT gate, which we will come back too. -\end{itemize} - -Such computations are then typically nicely visualized through circuit diagrams as used them already for the study of Bell inequalities and visualized in Fig. \ref{354313}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/TwoQubitsCircuit/TwoQubitsCircuit} -\caption{{A simple circuit diagram. It show the initial state, an entanglement -gate, a number of single qubit gates and the final readout. -{\label{354313}}% -}} -\end{center} -\end{figure} - -As atomic physics is only a minor part of the QC field, we typically have to learn the new notations of the field again. As such single qubit gates are typically not explained through the Pauli matrices but by different symbols like $H$ or $Z$. We come back to this later. - -\subsection{Some of the hopes for QCs} -The major point to about a properly chosen set of gates is that it allows us to implement ANY algorithm. So they allow us to implement a \textit{universal} quantum computer. The main question is then how powerful such a QC would be. Could it solve problems as fast a a classical computer or maybe even faster ? This question is at the hard of the field of complexity classes, which studies which kind of problem can be solved how efficiently \cite{zoo}. - -The most fundamental question is then if a problem can be solved in a polynomial time (P hard) or not (NP-hard). Linear problems are P-hard and the travelling salesman problem is NP-hard. For some problems a quantum computer might then provide an answer in polynomial time, where a classical computer would not... The factorization of prime numbers is one of these problems as discussed in Shor algorithm. - -And the google paper that was published in 2019 actually indicated for the first time that a quantum computer achieved such a task \cite{Arute_2019}. - - - -\subsection{Requirements for a QC} -Given our excitement for a quantum computer, we might want a checklist of what we want from a quantum computer hardware. DiVincenzo proposed the following ingredients \cite{HAFFNER_2008}: -\begin{enumerate} -\item Qubits that can store information in a scalable system. -\item The ability to initialize the system in the right state. -\item A universal set of gates. -\item Long coherence times, which are much longer than gate operation times. -\item Good measurement capabilities -\end{enumerate} - -Trapped ions allow us to fulfill all these requirements as we will see in this lecture and we will go through them step-by-step. - -\section{Trapping and cooling} -For computing experiments one typically works with singe-charged ions like $^{40}Ca^+$. Given their charge, they can be trapped in very clean traps under vacuum. As such they are extremely well isolated from the environment and high precision experiments can be performed. Finally, they have only one remain electron in the outer shell. Therefore they have a hydrogenlike atomic structure. - -However, the trap construction is not trivial given Maxwells equation $\text{div} \vec{E} = 0$. So, the experimentalists have to play some tricks with oscillating fields. We will not derive in detail how a resulting \textbf{Paul trap} works, but the \href{https://youtu.be/Xb-zpM0UOzk}{linked video} gives a very nice impression of the idea behind it. - -This work on trapping ions dates back to the middle of the last century (!!!) and was recognized by the\href{https://www.nobelprize.org/prizes/physics/1989/summary/}{ Nobel prize in 1989} for Wolfgang Paul \cite{Paul_1990} and Hans Dehmelt \cite{Dehmelt_1990}. They shared the prize with Norman Ramsey, who developped extremely precise spectroscopic methods, now known as Ramsey spectroscopy \cite{Ramsey_1990}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/354px-Paul-Trap/354px-Paul-Trap} -\caption{{The two phases of the oscillating electric field of a Paul trap. Taken -from~\href{https://en.wikipedia.org/wiki/Quadrupole_ion_trap}{wikipedia}. -{\label{692754}}% -}} -\end{center} -\end{figure}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/trap3/trap3} -\caption{{A linear ion (Paul) trap containing six calcium 40 ions. Taken -from~\href{https://quantumoptics.at/en/research/lintrap.html}{here} . -{\label{570611}}% -}} -\end{center} -\end{figure} - - A Paul trap provides a harmonic oscillator confinement with trapping frequencies in the order of hundreds of kHz. An ion trapped in such a trap can the be described by the Hamiltonian: -\begin{align}\label{Eq:HamHO} -\hat{H}_{t} &= \frac{\hat{p}^2}{2m}+ \frac{m\omega_t^2}{2}\hat{x}^2 -\end{align} - -The two variables $p$ and $x$ are non-commuting $[x, p] = i\hbar$, so they cannot be measured at the same time. It can be nicely diagonalized in terms of the ladder operators (see for more details see Section 1 of \cite{Jendrzejewski}): -\begin{align} -\hat{x} &= \sqrt{\frac{\hbar}{2m\omega_t}}\left(\hat{a}+\hat{a}^\dag\right)\\ -\hat{p} &= i\sqrt{\frac{\hbar}{2m\omega_t}}\left(\hat{a}^\dag-\hat{a}\right)\\ -\end{align} -So the Hamiltonian can now be written as: -\begin{align} -\hat{H} &= \hbar \omega_t \left(\hat{N} + \frac{1}{2}\right)\text{ with } \hat{N} = a^\dag a -\end{align} -Having loaded the ions into the Paul trap we also need to cool them down. - -\section{Atom-light interaction} -Given that the ions keep only on atom on the outer shell, they have a hydrogenlike structure \cite{Jendrzejewskia, Jendrzejewskib}, which makes them optically well controllable. To control the ions further we use light of amplitude $E_0$ and frequency $\omega_L$: -\begin{align} -\vec{E}(t) &= \vec{E}_0 \cos(kx - \omega_L t+\varphi)\\ -&= \frac{\vec{E}_0}{2} \left(e^{i[kx - \omega_lt+\varphi]}+e^{-i[kx-\omega_lt+\varphi]}\right) -\end{align} -We will describe the interal states of the ion for the moment with the simple two state system of ground state $\ket{g}$ and excited state $\ket{e}$ at an energy $\hbar \omega_0$, which is typically in the order of thousands of THz. It has the Hamiltonian: -\begin{align} -H_{ion} = \hbar \omega_0 \ket{e}\bra{e} -\end{align} -Putting this ion into propagating light will induce a coupling between these two internal states. As previously , we will describe the coupling in the semi-classical approximation through $H_\textrm{int} = -\hat{\vec{D}} \cdot \vec{E} $. However, in this context we will not ignore the propagating nature of the light field and keep its position dependence. This is necessary as we would like to understand how the light influences the movement of the atoms and not only the internal states. Putting them together we obtain: -\begin{align} -H_\textrm{int} &= \frac{\Omega}{2}\left([\ket{g}\bra{e}+\ket{e}\bra{g}]e^{i(k \hat{x} - \omega_L t+\varphi)} + h.c.\right) -\end{align} -The laser frequency is tuned closely to the frequency of the internal state transition and we will be only interested in the detuning $\Delta = \omega_0 - \omega_L$. Importantly, it couples the position of the atom and the internal states. - -To simplify the problem, we can work in the rotating frame to describe the external and internal degrees of freedom for the ion \cite{Jendrzejewskic}: -\begin{align}\label{Eq:DressedAtomLightInteraction} -\hat{H}= \hbar \omega_t \hat{a}^\dag \hat{a} + \hbar\Delta \ket{e}\bra{e} + \frac{\Omega}{2}\left(\ket{e}\bra{g}e^{i\left(k \hat{x}+\varphi\right)} + h.c.\right) -\end{align} - -We will now see how this system is used to cool the ions to the motional groundstate, perform single qubit operations and then two-qubit operations. - - -\section{Doppler cooling} -This interaction of the atom with a photon is at the origin of the all-important Laser cooling, which was pioneered for ions in the 1970s (!!) by the Wineland group. For cooling transition we couple the ground state to an excited state of finitie lifetime $\tau= \frac{1}{\Gamma}$. - -The basic idea is visualized in Fig. \ref{960763} and more details can be found in Sec. IV.A of \cite{Leibfried_2003}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/LaserCooling/LaserCooling-01} -\caption{{The basic idea of laser cooling. The incoming light gives the ion a -momentum kick~\(\vec{k}_{in}\). The photon is reemitted in a random -direction such that~\(<\vec{k}_{out}>=0\). -{\label{960763}}% -}} -\end{center} -\end{figure} - -This laser cooling had a tremendous impact on the field of atomic physics in general. Notably it gave rise to the field of cold atoms to which we will get back in the next lecture. This importance was recognized in the Nobel prizes of 1997 for Steve Chu \cite{Chu_1998}, Claude Cohen-Tannoudji \cite{Cohen_Tannoudji_1998} and Bill Phillips \cite{Phillips_1998}. - - - - - -\subsection{Working in the Lamb-Dicke regime} -After this initial cooling stage the atoms have to be cooled to the ground state in the trap. To treat the trapped particles we will express the position operator in terms of the ladder operator, such that: -\begin{align} -k\hat{x} &= \eta (\hat{a}^\dag+ \hat{a})\\ -\eta &= \sqrt{\frac{\hbar^2 k^2/2m}{\hbar \omega_t}} =\sqrt{\frac{E_R}{\hbar \omega_t}} -\end{align} -$\eta$ is called the \textit{Lamb-Dicke} parameter. It compares the change in motional energy due to the absorption of the photon $E_r = \frac{(\hbar k)^2}{2m}$ compared to the energy spacing $\hbar \omega_t$ in the trap. When it is small it suppresses the change of the motional state of the atom due to the absorption of a photon. - -For simplicity we will set in this section $\varphi=0$ and develop the exponent to obtain: - -\begin{align} -H_\textrm{int} &= \frac{\Omega}{2}\left(\ket{e}\bra{g}\left(1 + i\eta[\hat{a}^\dag+ \hat{a}]\right) + h.c.\right) -\end{align} -So it contains three couplings for different trap levels and internal states: -\begin{itemize} -\item The \textit{carrier} transition $\ket{g,n}\rightarrow \ket{e,n}$ with strength $\Omega$. -\item The \textit{red} sideband $\ket{g,n}\rightarrow \ket{e,n-1}$ with strength $\eta \Omega(n+1)$. It leads to a reduction of the trap level and it is resonant for $\Delta = -\omega_t$. -\item The \textit{blue} sideband $\ket{g,n}\rightarrow \ket{e,n+1}$ with strength $\eta \Omega n$. It leads to an increase of the trap level and it is resonant for $\Delta = \omega_t$. -\end{itemize} -The full energy diagram is summarized in Fig. \ref{226851}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/LevelStructure/LevelStructure-01} -\caption{{Level structure of an two-level system coupled to a laser field as -discussed in the text. -{\label{226851}}% -}} -\end{center} -\end{figure} - -This scheme is used to perform \textbf{Raman side-band cooling}. The laser is tuned on the transition $\ket{n,g}\rightarrow \ket{n-1,e}$ such that each absorption involves a reduction in the trap level. This set-up for cooling was first demonstrated in 1995 by the Wineland group \cite{Monroe_1995}. - -It is at this stage that the ions are in the motional ground state and we can focus our attention to the high control of the internal qubit states of the ion for quantum computing. - -\section{Single-qubit operations} - -The single qubit operations can now be identified with the transition $\ket{e,n}\leftrightarrow \ket{g,n}$. We can then simplify Eq. \eqref{Eq:DressedAtomLightInteraction} too: -\begin{align}\label{Eq:SingleQubitOperation} -\hat{H}= \hbar\Delta \ket{e}\bra{e} + \frac{\hbar\Omega}{2}\left(\ket{e}\bra{g}e^{i\varphi} +\ket{g}\bra{e}e^{-i\varphi}\right) -\end{align} -We can translate this into the language of qubit operations through the definitions: -\begin{align} -\sigma_z &= \frac{\ket{e}\bra{e}-\ket{g}\bra{g}}{2}\\ -\sigma_x &= \frac{\ket{e}\bra{g}+\ket{g}\bra{e}}{2}\\ -\sigma_y &= \frac{i\ket{e}\bra{g}-i\ket{g}\bra{e}}{2} -\end{align} -So we can now simply write the Hamiltonian as \cite{Jendrzejewskid}: -\begin{align}\label{Eq:SingleQubitOperation} -\hat{H}= \hbar\Delta \sigma_z +\Omega_x \sigma_x +\Omega_y \sigma_\\ -\Omega_x = \Omega \cos(\varphi)\\ -\Omega_y = \Omega \sin(\varphi) -\end{align} - -In the QC community people rarely talk about the Pauli matrices, but much rather about a few specific gates. The most cited here is the \textit{Hadamard} gate, which transforms $\ket{0/1}\rightarrow \frac{\ket{0}\pm\ket{1}}{\sqrt{2}}$. So it has no good classical analog. Further a double application brings us back to the origin. - -The other gate we named about was a Z gate, which is simply a $\pi$ rotation around the z axis. - -\section{Two-qubit operations} - -To implement a quantum computer the system has to be completed by a two-qubit operation. For ions a number of two-qubit gates exist as discussed nicely in Sec. 2.6 of \cite{HAFFNER_2008}: -\begin{itemize} -\item The \textbf{Cirac-Zoller} gate was the first proposed two-qubit gate \cite{Cirac_1995} and it was also the first one realized within the same year \cite{Monroe_1995a}. -\item The \textbf{Soerensen-Moelmer} gate was proposed later \cite{S_rensen_1999}, but it is extremely important from a practical point of view as it leads to very high entanglement fidelities. -\item Another realization, which we mention for completeness is the geometric phase-gate, which is used in the NIST group \cite{Leibfried_2003a}. -\end{itemize} - -We will now discuss a bit the Soerensen-Moelmer gate, which is nicely described in Ref. \cite{S_rensen_2000}. In this set-up two ions sit in a common trap. The cost of energy for exciting one of the ions will be labelled $\omega_t$ as in the first section. So we assume that the scheme starts in the state $\ket{ggn}$, where both atoms are in the internal ground-state $g$ and in some excited trap level $n$. - -In the next step, these two ions experience two lasers, which are coupling excited and the ground state of the ions: -\begin{itemize} -\item One laser has frequency $\omega_1=\omega_0-\omega_t+\delta$ and Rabi coupling strength $\Omega$. It is therefore only slightly detuned from the transitions $|ggn\rangle\rightarrow|eg,n-1\rangle |ge,n-1\rangle$. -\item The second laser has frequency $\omega_2=\omega_0+\omega_t-\delta$ and Rabi coupling strength $\Omega$. It is therefore only slightly detuned from the transitions $|ggn\rangle\rightarrow|eg,n+1\rangle |ge,n+1\rangle$. -\end{itemize} -The resulting level diagram is depicted in Fig. \ref{658942}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/SM-LevelDiagramv1/SM-LevelDiagramv1} -\caption{{Level scheme of the Sorensen Moelmer gate as described in the text. -{\label{658942}}% -}} -\end{center} -\end{figure} - -The gate is then operated in the regime of small coupling strength $\eta \Omega n \ll \delta$. In this case coupling to the excited motional states $n\pm 1$ is suppressed by a factor of $\frac{\eta \Omega n}{\delta}$. On the other hand we are exactly on resonance for the two-photon transitions $|ggn\rangle\rightarrow|eg,n+1\rangle\rightarrow|ee,n\rangle$ etc. So we can do second-order pertubation theory (Sec 1 of \cite{Jendrzejewskie})or adiabatic elimination (see Sec. 2.1 of \cite{Jendrzejewskic}) to obtain the effective Hamiltonian: -\begin{align} -H_\mathrm{SM} &= \frac{\Omega_\mathrm{SL}}{2}\left(\ket{ggn}\bra{een} + (\ket{een}\bra{ggn}\right)\text{ with }\Omega_{SL} = -\frac{(\Omega \eta)^2}{2(\eta - \delta)} -\end{align} -So starting out with the state $\ket{gg}$ and applying the laser for $t\Omega =\frac{\pi}{2}$, we obtain the entangled state that we are looking for. - -The operation of the gate was first demonstrated in 2000 by the Wineland group and allowed at the time for generating a Bell state with a fidelity of 83\% \cite{Sackett_2000}. This limit has been increasingly pushed of the years and now reaches the 99.9\% region \cite{Benhelm_2008,Gaebler_2016,Ballance_2016}. - -Such a fidelity sounds very impressive on first sight and it is by now the result of several decades of work. However, in a quantum computer we would like to chain a large number of these gates behind each other. -\begin{itemize} -\item After 10 iterations the fidelity dropped to 99\%. -\item After 100 iterations the fidelity dropped to 90\%. -\item After 1000 iterations the fidelity dropped to 30\%. -\end{itemize} -So even with such an excellent fidelity it will barely be possible to chain much more than 100 gates before the some extremely iffy things start to happen.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2019-05-13-um-06-03-32/Bildschirmfoto-2019-05-13-um-06-03-32} -\caption{{From the iSWAP to the CNOT gate. -{\label{483914}}% -}} -\end{center} -\end{figure} - -So we have experimentally the choice of entanglement tool in the way that is most adapted to our work. - - - -\section{Practical considerations} - -A commonly used ion is $\ch{Ca+} \, (Z=20)$. Per shell we get: - -\begin{tabular}{c|cccc} -n & 1 & 2 & 3 & 4\\ -\hline \\ -$N_{e}$ & 2 & 8 & 8 & 1 -\end{tabular} - -The level scheme of the calcium atom is shown in \ref{652265}. The different transitions are used for different purposes: -\begin{itemize} -\item The broad transition at 397nm is used for cooling. -\item Coupling between the qubit states is performed through the 729nm transition. -\item The 866nm and the 854nm are used for pumping the atoms into appropiate substates. -\end{itemize}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/exploringthequantum/Bildschirmfoto-2019-04-23-um-16.33.03} -\caption{{The level scheme of the calcium atom. The arrows indicate transitions by -absorption and emission of photons. A qubit can be realized by choosing -the ground state and an excited state. Taken from~\protect\cite{Schindler_2013}. -{\label{652265}}% -}} -\end{center} -\end{figure} - -Several solutions for scaling up the quantum computing architecture are -under way .~~\emph{Long ion chains} in linear Paul traps as shown -in~{\ref{570611}} with up to 40 ions are the current -`work-horse'. This is the `simplest' existing architecture. In such a -geometry Shors algorithm was shown for the number 15~\cite{Monz_2016} -with five qubits and entanglement between up to 14 qubits was -studied~\cite{Monz_2011}. However, it reaches its natural limits for -entangling distant ions due to cross-talk with other ions during the -operation. Therefore, different approaches are currently tested to scale -the architecture to larger fault-tolerant geometries \cite{Bermudez_2017}. - -By no means we will be able to give a full picture of the booming field. -However, a few main players are: - -\begin{itemize} -\tightlist -\item - NIST, JQI and IonQ, which are all strongly connected through their - shared past with Dave Wineland. -\item - Innsbruck,~ Mainz and AQT which are connected through their shared - past and present with Rainer Blatt. -\item - ETH, Oxford, \ldots{} -\item - The AQTION and the MicroQC network, which are part of the European - flagship initiative. -\end{itemize} - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 20 - Controlling spontaneous emission and absorption.tex b/amo/tex_files/Lecture 20 - Controlling spontaneous emission and absorption.tex deleted file mode 100644 index 85dcfcc..0000000 --- a/amo/tex_files/Lecture 20 - Controlling spontaneous emission and absorption.tex +++ /dev/null @@ -1,353 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand*\ch[1]{\ensuremath{\mathrm{#1}}} - -\begin{document} - -\title{Lecture 20 - Controlling spontaneous emission and absorption} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\author[2]{Matthias Weidemüller}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In todays lecture we will study spontaneous emission its connection with absorption and how we can control it certain situations.% -\end{abstract}% - - - -\sloppy - - -In the last lecture \cite{states} we treated the atom as a two-level system and coupled it only to a single mode of the electromagnetic vacuum. However, this situation is a highly engineered one and more typically the atom is coupled to a large (infinite) number of electromagnetic field mode. This coupling is at the origin of spontaneous emission as we will see now. - -\section{Spontaneous Emission} - -We assume that initially the atom is in the excited state $\ket{e}$ and that there is no light field present, i.e., the field state is $\ket{0}$. We would now like to understand how it can get into the state $\ket{g}$. The answer is after our previous discussions that it will emit a photon into one of the vacuum modes, which was already presented in \cite{field}. - -This coupling is associated with the matrix element -% -\begin{align} -w = \braket{g|\hat{\vec{D}} \cdot \vec{\epsilon}^*|e} \braket{n|a^\dag|n'}, -\end{align} -% -where $n\overset{!}{=} 1$ and $n'=0$, where the occupation number might describe any polarization or direction. What kind of dynamics do we expect from this? Since, the emission is not restricted to a single mode. So we can \emph{not} write -\begin{align} -\ket{e,0} \rightarrow \ket{g,1}. -\end{align} -% -In fact, the photon is emitted into many modes with almost equal probability: -\begin{align} -\ket{e,\{ 0 \}} \rightarrow \sum\limits_{\vec{k},\;\text{pol.}} c_{\vec{k},\text{pol.}} (t) \ket{g,1_{\vec{k},\text{pol.}}}. -\end{align} -Given that the photon might travel into any direction we are basically studying now the problem of coupling a well-defined initial mode to a continuum. This problem was as already adressed for the first time in Lecture 4 \cite{Jendrzejewski} and it thoroughly discussed in Sec. 1.3 of \cite{grynberg}. - -\subsection{Exponential decay} -So we will describe the initial situation by the initial state $\ket{i} = \ket{e,0}$, which is coupled to a large number of states, which will will note $\ket{k}$. The interaction might be noted $\hat{W}$ and for simplicity we will assume: -\begin{align} -\bra{i}\hat{W}\ket{k} &= w\\ -\bra{k'}\hat{W}\ket{k} &= 0\\ -\bra{i}\hat{W}\ket{i} &= 0 -\end{align} -$w$ is then the constant, real coupling of the initial state to the states $\ket{k}$. The different energy levels $k$ are then assumed to be of energy: -\begin{align} -E_k = E_i +k\epsilon -\end{align} -$\epsilon$ is therefore the energy spacing for the different states. It is actually quite common to use the density of states. -It is generally defined as: -\begin{align} -\rho(E) &= \frac{dN(E)}{dE}\\ -&= \frac{1}{\epsilon} -\end{align} -We can now decompose the wavefunction as: -\begin{align} -\ket{\gamma(t)}=\gamma_i(t)\ket{i} +\sum_k \gamma_k(t) e^{-ik\epsilon t/\hbar}\ket{k} -\end{align} -The equations of motion are then: -\begin{align} -i\hbar \dot{\gamma}_i &= w\sum_k \gamma_k e^{-ik\epsilon t/\hbar}\\ -i\hbar \dot{\gamma}_k &= w \gamma_i e^{ik\epsilon t/\hbar} -\end{align} -We already discussed its evolution of short times (see \cite{Jendrzejewski}). Here, we will follow the more general Wigner-Weisskopf approach, which also holds for long times. - -Given that the system is initially within the state $\ket{i}$, we can integrate the second equation and obtain: -\begin{align} -\gamma_k &= \frac{w}{i\hbar} \int_0^t dt'~\gamma_i(t') e^{ik\epsilon t'/\hbar} -\end{align} -We can now use this solution to rewrite the first equation as: -\begin{align}\label{Eq:GammaIRepl} -\dot{\gamma}_i &= -\frac{\Gamma}{2\pi\hbar}\int_0^t dt'~\gamma_i(t') \sum_k \epsilon e^{-ik\epsilon (t-t')/\hbar} -\end{align} -We have defined here the transition rate (known from Fermis golden rule): -\begin{align} -\Gamma &= \frac{2\pi}{\hbar}w^2\rho -\end{align} -We can solve this by rewriting the sum over k as an integral over the energy: -\begin{align} -\sum_k \epsilon e^{-ik\epsilon (t-t')/\hbar}\rightarrow \int dE e^{-iE (t-t')/\hbar} = 2\pi \hbar \delta(t-t') -\end{align} -Plugging this into \eqref{Eq:GammaIRepl} we actually end up with\footnote{The factor 1/2 appears as we are not integrating over all times}: -\begin{align}\label{Eq:GammaIRepl} -\dot{\gamma}_i &= -\frac{\Gamma}{2}\gamma_i(t) -\end{align} -So the coupling to the continuum leads to the well-known exponential decay. - - - -\subsection{The Mollow triplet} - -We have now seen that spontaneous emission leads to an exponential decay of the excited state $\ket{e}$. How is it modified if we take into account a strong light beam that pumps the atoms in the excited state ? For that it is best to work in the dressed atom picture. For absorption we get for the bare states -\begin{align} -\ket{g,n+1} \rightarrow \ket{e,n}, -\end{align} -and emission can be described by -\begin{align} \label{eq:barestatesemission} -\ket{e,n} \rightarrow \ket{g,n+1}. -\end{align} -The laser is dressing the bare states with strength $\hbar \Omega$, which leads to the dressed atom picture shown in (see \ref{786304}): One photon gets emitted into a mode different from the one considered and is lost.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/mollowtriplet/mollowtriplet} -\caption{{Spontaneous emission under dressing, which leads to the Mollow triplet. -Figure taken from \protect\cite{Cohen_Tannoudji_1998} -{\label{786304}}% -}} -\end{center} -\end{figure} - - - -From \ref{786304} we see that in spontaneous emission, three different spectral lines can be observed at: -\begin{align} -&\omega_\textrm{l}\\ -&\omega=\omega_\textrm{l} \pm \Omega -\end{align} -This is called the \textit{Mollow triplet}. To actually observe it with a spectrometer, $\Omega$ needs to be much larger than the natural linewidth $\Gamma_\text{sp}$. It was observed in Ref. \cite{Grove_1977}. - - - -\section{Absorption under dressing} - -We can move the idea of dressing a step further and ask how do the dressed states absorb light? A possible experiment to investigate this could be to illuminate atoms with a dressing light field and a probing light field, i.e. a beam of a tunable laser (see \ref{118683}). One would then measure how much of the probe field is transmitted through the bunch of atoms.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-02-um-08-37-21/ThreeLevelAbsorption} -\caption{{A possible experiment to investigate how dressed atoms absorb light. -{\label{118683}}% -}} -\end{center} -\end{figure} - -A typical configuration of the experiments that is presented in Fig. \ref{118683} b) is that it addresses a total of three levels. The dressing laser will then couple the state $\ket{i}$ and the excited state $\ket{e}$ with strength $\Omega_1$. The probe laser couples the state $\ket{g}$ to the same excited state $\ket{e}$ with coupling strength $\Omega_2$. Only the excited state has some finite lifetime, the other two states are very long lived or stable. -We can then describe the Hamiltonian through the following Hamiltonian: -\begin{align}\label{Eq:ThreeLevelHam} -\hat{H}&= \Omega_1\left(\ket{i}\bra{e}+\ket{e}\bra{i}\right)+\Omega_2\left(\ket{g}\bra{e}+\ket{e}\bra{g}\right) -\end{align} -To understand the absorption qualitatively, we can once again work in the dressed atom picture. The dressing laser is creating a superpositions of $\ket{e}$ and $\ket{i}$, which are separated by $2\Omega_1$. The probe laser field should then experience two peaks with a dip on resonance. This is indeed the observed shape, however the on resonance we do not just have a dip, but the absorption disappears as shown in Fig. \ref{893938}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2019-01-07-um-08-04-42/Bildschirmfoto-2019-01-07-um-08-04-42} -\caption{{Observation of EIT. Figure taken from \protect\cite{Boller_1991} -{\label{893938}}% -}} -\end{center} -\end{figure} - -\subsection{EIT} -This observation is known as Electromagnetically-Induced Transmission (EIT). To understand it, we can rewrite \eqref{Eq:ThreeLevelHam} as: -\begin{align} -\hat{H}&= (\Omega_1\ket{i}+\Omega_2\ket{g})\bra{e}+\ket{e}(\Omega_1\bra{i}+\Omega_2\bra{g})\\ -&\propto\ket{B}\bra{e}+\ket{e}\bra{B}\\ -\ket{B}&= \frac{\Omega_1\ket{i}+\Omega_2\ket{g}}{\sqrt{\Omega_1^2+\Omega_2^2}} -\end{align} -So in the three level scheme the excited state is always could to the so-called bright state, which is a coherent superposition of $\ket{g}$ and $\ket{i}$. The orthogonal state is the dark state: -\begin{align} -\ket{D}&= \frac{\Omega_2\ket{i}-\Omega_1\ket{g}}{\sqrt{\Omega_1^2+\Omega_2^2}}\\ -\langle B| D\rangle &= 0 -\end{align} -Only the bright state is coupled to excited state, while the dark state is uneffected by the two lasers. - -\subsection{Slow light} -The complex absorption spectrum tests the imaginary part of the susceptibility $\chi$. The real part of the susceptibility on the other hand indicates the group velocity of the light propagating through the medium. Actually, the group velocity of the light pulse is given by (see \cite{Jendrzejewskia}): -\begin{align} -v_g = \frac{c}{1+\frac{\omega_L}{2}\frac{d\chi}{d\omega}} -\end{align} -The predictions for the three level system are shown on left hand side of Fig. \ref{112751}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/SlowLight/SlowLight} -\caption{{Observation of slow light as shown in \protect\cite{Hau_1999} -{\label{112751}}% -}} -\end{center} -\end{figure} - -So while the bright state might be able to propagate with strongly reduced absorption this comes to the price of a strongly reduced group velocity. - -\subsection{Light storage} - -The idea of bright and dark states has been pushed to the extreme nowadays in the idea of storing light. Imagine the following situation: -\begin{itemize} -\item An atomic vapor is dressed through a dressing beam. -\item A weak probe pulse is then coupled into the dark state. In other words it sees a transparent medium and simply travels through the atomic vapor. -\item As the pulse is within the atomic vapor, we switch off the dressing field. What happens ? -\end{itemize} -The results of such an experiment are shown in Fig. \ref{561560}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2019-01-07-um-08-58-14/Bildschirmfoto-2019-01-07-um-08-58-14} -\caption{{Storage of light as observed in Ref. \protect\cite{Phillips_2001} -{\label{561560}}% -}} -\end{center} -\end{figure} - -So basically, the light pulse was stored in the atomic vapor. The precise theoretical description goes substantially beyond the scope of this lecture, but the idea is rather roughly the following: -\begin{itemize} -\item In the presence of the controlling beam the propagating 'dressed' states is a mixture of the atoms and the light itself. It in system. -\item When the control beam is switched off the dressed dark state becomes a purely atomic excitation, which hence does not propagate anymore. -\item Once the control beam is switched on again the 'dark' state becomes once again a mixture of light and atoms and the light can escape the atomic vapor once again. -\end{itemize} - -This idea of mixed atom+light states is widely used by now for the storage of light, but also to create 'interacting' photons \cite{Firstenberg_2013}, polaritons etc. -\subsection{STIRAP} - -This idea was also used to get molecules into their groundstate, through a transfer sequence known as STIRAP (stimulated Raman adiabatic passage). - -Given all the complexities of molecules it seems non-trivial to find a scheme that gets them into the ground state. For atoms laser cooling has proven very efficient as we will discuss later. However, it mainly adresses the cooling of external degrees of freedom. In molecules a significant amount of energy its in the rotational and vibrational levels. In this connection, a beautiful solution has been demonstrated in \cite{Ni_2008}. The scheme is visualized in Fig. \ref{304719}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-12-12-um-10-32-59/Bildschirmfoto-2018-12-12-um-10-32-59} -\caption{{Production of groundstate molecules of K + Rb. Figure is taken from -\protect\cite{Ni_2008} -{\label{304719}}% -}} -\end{center} -\end{figure} - - - -In a first step the atoms are cooled and then associated to a highly excited molecule in the a\textsuperscript{3}$\Sigma$ state. From there the atom has to be transferred down in to the ground state $\ket{g}$. A direct thransfer is not possible as the Franck-Condon factors do not allow for it. Another path is to go through an intermediate level (here the 2$^3 \Sigma$ level), which has overlap with both of them. However, this level has typically overlap with plenty of other levels and a finite lifetime. How can we then optimize the transfer ? The idea is to use the concept of dark states in the triplet of $\{i, e, g\}$. - - -STIRAP transfers the loosely bound molecules coherently into the groundstate without ever passing through the lossy excited level. It has the following steps: -\begin{enumerate} -\item The dressing laser $\Omega_2$ is ramped on. The initial $\ket{i}$ is now the dark state. -\item The coupling laser $\Omega_1$ is ramped on, while the laser $\Omega_2$ is ramped down. This transfers the $\ket{i}$ adiabatically into the state $\ket{g}$, which is the dark state for fully switched of $\Omega_2$. -\end{enumerate} -The molecules are now in the groundstate with a transfer efficiency of roughly $50\%$. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 22 - Quantum degenerate gases.tex b/amo/tex_files/Lecture 22 - Quantum degenerate gases.tex deleted file mode 100644 index f3daf12..0000000 --- a/amo/tex_files/Lecture 22 - Quantum degenerate gases.tex +++ /dev/null @@ -1,324 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand*\ch[1]{\ensuremath{\mathrm{#1}}} - -\begin{document} - -\title{Lecture 22 - Quantum degenerate gases} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\author[2]{Matthias Weidemüller}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -We will discuss today how quantum effects emerge in degenerate gases and how they are connected to problems that come traditionally from condensed-matter physics.% -\end{abstract}% - - - -\sloppy - - -We have seen now, how we can cool down the gases to very low temperatures. At some point we expect their quantum character to play a role, this is the regime degenerate quantum gases. We will first discuss qualitatively when we expect this regime to be reached and then discuss the case of ideal Bose gas vs fermi Gas. - -\section{Quantum degenerate gases} -Massive particles only seem point-like for high temperatures as they have very large momentum. The associated wavelength is called the the \textit{de Broglie} wavelength -% -\begin{align} -\lambda_\text{dB} = \frac{h}{p} = \frac{h}{\sqrt{2mE_{kin}}} = \frac{h}{\sqrt{2mk_\textrm{b}T}} -\end{align} - -When do we expect this quantum character to be relevant ? -\begin{enumerate} -\item If the cloud consists of many-particles, we can describe it best by its density $n$. The quantum correlations will start to become relevant as the particles 'see' each other. The characteristic relation is here the regime of: -\begin{align} -n\lambda_{dB}^3\sim 1 -\end{align} -\item If there is only a single particle trapped in the potential, the quantum character will become important as its energy is in the order of the level spacing of the trapped states. For a harmonic trap whose characteristic length scale is $a_{HO}=\sqrt{\hbar/m\omega}$, this means that: -\begin{align} -\lambda_{dB}\sim a_{HO} -\end{align} -\end{enumerate} -Both regimes are nowadays frequently reached in experiments: -\begin{enumerate} -\item Degenerate quantum gases have become a major branch of atomic physics, as they allow for the clean emulation of complex many-body problems known from condensed-matter physics \cite{Bloch_2008}. -\item Single ions can be cooled within tight traps into the ground state. They have now become a major platform for quantum computing \cite{Leibfried_2003}. -\end{enumerate} - -We will now discuss first the state of the degenerate Bose gas for instructiveness. - -\section{Ideal Quantum Gases} -Let us start with non-interacting particles, which might be bosons or fermions. We will call $\{\ket{\lambda}\}$ the base of eigenvectors with energies: -\begin{align} -\hat{h}\ket{\lambda}=\epsilon_\lambda \ket{\lambda} -\end{align} -Each of these states is allowed to contain a multitude of particles. This can be nicely described through occupation numbers, and counted through the raising and lowering operators: -\begin{align} -\hat{n}_\lambda &= \hat{a}^\dag_\lambda \hat{a}_\lambda\\ -\hat{n}_\lambda \ket{\cdots, n_\lambda, \cdots} &= n_\lambda \ket{\cdots, n_\lambda, \cdots} -\end{align} -We can then write down the Hamiltonian as: -\begin{align} -\hat{H} &= \sum_\lambda \epsilon_\lambda a_\lambda^\dag a_\lambda -\end{align} -The total number of atoms is then gives as: -\begin{align} -\hat{N} &= \sum_\lambda a_\lambda^\dag a_\lambda -\end{align} - -The connection between this microscopic Hamiltonian and thermodynamics is then done through the grand-canonical ensemble, which is describe by the chemical potential $\mu$ and the temperature $T$. The density operator reads now: -\begin{align} -\hat{\rho} &= \frac{e^{\frac{\mu}{k_BT} \hat{N}-\frac{1}{k_BT}\hat{H}}}{Z_G} -\end{align} -The partition function reads here: -\begin{align} -Z_G = \mathrm{Tr}\left(e^{\frac{\mu}{k_BT} \hat{N}-\frac{1}{k_BT}\hat{H}}\right) -\end{align} -To calculate the partition function, we can work with the following notation for the states: -\begin{align} -\ket{l}&\equiv\ket{n_1, n_2,\cdots}\\ -\hat{N}\ket{l} &= N_l\ket{l}\text{ with }N_l=\sum_\lambda n_\lambda\\ -\hat{H}\ket{l} &= E_l\ket{l}\text{ with }E_l=\sum_\lambda \epsilon_\lambda n_\lambda -\end{align} -The partition function decomposes then in: -\begin{align} -Z_G &= \sum_l\left(e^{\frac{\mu}{k_BT} N_l-\frac{1}{k_BT}E_l}\right)\\ -&= \sum_{n_1, n_2, ...} e^{\frac{\mu-\epsilon_1}{k_BT} n_1}\cdot e^{\frac{\mu-\epsilon_2}{k_BT} n_2}\cdots\\ -&=\prod_\lambda \xi_\lambda -\end{align} -In the last line we have defined: -\begin{align}\label{Eq:XiGeneral} -\xi_\lambda &= \sum_{n_\lambda} e^{\frac{\mu-\epsilon_\lambda}{k_BT} n_\lambda} -\end{align} - - -The total number of atoms in the clouds the derivative of the grand canoncial partition function with respect to $z = e^{\frac{\mu}{k_B T}}$: -\begin{align} -N &= \langle \hat{N}\rangle\\ -&= z\partial_z \ln Z_G -\end{align} -We can relate to the partition function -The new parameters are -How does indistinguishability matter in a gas? We can count the possible states and infer the possible occupation numbers! - - - - - -\subsection{Fermions} - -For fermions we can only have occupation numbers of 0 or 1. We can therefore solve easily \eqref{Eq:XiGeneral} as: -\begin{align} -\xi_\lambda^F = 1+e^{\frac{\mu-\epsilon_\lambda}{k_BT}} -\end{align} - -The resulting atom number is: -\begin{align} -N = \sum_\lambda n_\lambda\\ -n_\lambda^F = \frac{1}{e^{\frac{\epsilon_\lambda-\mu}{k_BT}}+1} -\end{align} -This is the \textit{Fermi-Dirac} distribution. We reach the classical limit for large negative chemical potential, where we recover the \textit{Boltzmann} distribution: -\begin{align} -n_\lambda \simeq z e^{-\frac{\epsilon_\lambda}{k_BT}} -\end{align} - -The limit of very low temperatures is reached for large positive chemical potential $\mu\gg k_BT$. This is the typical regime of condensed matter physics. We then have: -\begin{align} -n_\lambda \approx 1 \text{ for }\epsilon_\lambda < \mu\\ -n_\lambda \approx 0 \text{ for }\epsilon_\lambda > \mu -\end{align} -In this regime we typically call $\mu$ the Fermi energy and rename it $E_F$. The very high fidelity of occupation in low-lying states is successfully employed in the Jochim group for the deterministic preparation of fermionic clouds with very few atoms \cite{Serwane_2011}. - -\subsection{Bosons} -For Bosons we have sum over all positive integer numbers. However, the sum in \eqref{Eq:XiGeneral} becomes now a geometric series and we obtain: -\begin{align} -\xi_\lambda^B = \frac{1}{1-e^{\frac{\mu-\epsilon_\lambda}{k_BT}}} -\end{align} -The total atom is then once again decomposed like for the fermions, but we obtain: -\begin{align}\label{Eq:nB} -n_\lambda^B = \frac{1}{e^{\frac{\epsilon_\lambda-\mu}{k_BT}}-1} -\end{align} -This function diverages if the first part becomes to close to 1, i.e. the chemical potential is limited to values between $-\infty$ and $\epsilon_\text{min}$. For large negative values we obtain again the Boltzmann distribution. Something interesting is happening on the other hand as the chemical potential is getting closer to $\epsilon_{min}$. The difference was strikingly observed in the experiments represented in Fig. \ref{249436}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-11-28-um-11-32-40/Bildschirmfoto-2018-11-28-um-11-32-40} -\caption{{Cooling a cloud of fermions (right hand side) below the Fermi -temperature shows a sharpened profile. However, the cloud size does not -shrink once it is below~\(T_F\) as the all low lying energy -states are already occupied. For bosonic particles (left hand side) the -cloud size keeps shrinking. -{\label{249436}}% -}} -\end{center} -\end{figure} - -\section{Bose-Einstein condensation} - -As the the chemical becomes close to the ground state energy we can develop \eqref{Eq:nB} and find: -\begin{align} -N_0 \simeq \frac{k_B T}{\epsilon_{min}-\mu} -\end{align} -So it diverges. Typically this state is then simply ignored and the number of atoms in the excited states is calculated: -\begin{align} -N' = N - N_0 = \sum_{\lambda>0} \frac{1}{e^{\frac{\epsilon_\lambda - \mu}{k_BT}}-1} -\end{align} -Quite remarkably this number has an upper limit for a given temperature as the chemical potential cannot increase to values above $\epsilon_{min}$. -\begin{align} -N_{max} = N - N_0 = \sum_{\lambda>0} \frac{1}{e^{\frac{\epsilon_\lambda - \epsilon_{min}}{k_BT}}-1} -\end{align} -. If the number of atoms is larger than $N_{max}$ they have to go into the ground state. This transition is known as Bose-Einstein condensation. The critical number of atoms for a given temperature can be calculated in a number of cases. In a harmonic trap we find: -\begin{align} -N_{ho} &= 1.202 \left(\frac{k_B T}{\hbar \omega}\right)^3 -\end{align} -In a three dimensional box it is better to calculate the critical density and we obtain the condition: -\begin{align} -n_c\lambda_{dB}^3\simeq 2.612 -\end{align} -A more detailled discussion can be found in \cite{Dalfovo_1999, Leggett_2001}. We will now discuss on the blackboard how the observation of Bose-Einstein condensation was achieved by the group of Eric Cornell and Carl Wieman as well as the team of Wolfgang Ketterle, gaining all three of them the Nobel prize in 2001 \cite{Cornell_2002,Ketterle_2002}. - -A sketch of the observed signature can be found in Fig. \ref{460581}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2019-01-16-um-09-05-27/Bildschirmfoto-2019-01-16-um-09-05-27} -\caption{{Observation of Bose-Einstein condensation as reported -in~\protect\cite{Anderson_1995}. -{\label{460581}}% -}} -\end{center} -\end{figure} - - - -\section{Synthetic quantum systems} - -The observation of Bose-Einstein condensation was the first step in a major shift in atomic physics as it brought it closer to condensed-matter physics. Actually, Bose-Einstein condensate were long predicted to be at the origin of Helium superfluidity. Further, superconductivity is also based on the idea of condensing 'cooper' pairs into a marcoscopic wavefunction \cite{superconductivity}. Numerous experiments studied therefore the superfluid properties of Bose-Einstein condensated as already discussed in the previous citations. One of the most striking feature of superfluidity is the resisitivity without flow as rather strikingly observed in the experiments on Josephson oscillations by the Oberthaler group shown in Fig.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2019-01-16-um-09-27-55/Bildschirmfoto-2019-01-16-um-09-27-55} -\caption{{Observation of the Josephson effect in Bose-Einstein condensates as -presented in \protect\cite{Albiez_2005} -{\label{448277}}% -}} -\end{center} -\end{figure} - - - -\section{Optical lattices} - -This idea of making close connections between condensed-matter physics and atomic physics was pushed even further by the introduction of optical lattices \cite{Bloch_2008}. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 23 - Dipping the toes into quantum computing.tex b/amo/tex_files/Lecture 23 - Dipping the toes into quantum computing.tex deleted file mode 100644 index b2b2613..0000000 --- a/amo/tex_files/Lecture 23 - Dipping the toes into quantum computing.tex +++ /dev/null @@ -1,288 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} - -\begin{document} - -\title{Lecture 23 - Dipping the toes into quantum computing} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\author[2]{Matthias Weidemüller}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -We will finish our discussion by the some words on quantum simulation and quantum computation.% -\end{abstract}% - - - -\sloppy - - -In the last lecture we spoke about the properties of quantum degenerate gases, what makes the difference between Bosons and Fermions and how they are employed for the precise study of simple condensed-matter problems. We will see how this approach generalizes step-by-step towards the idea of quantum computation. - -\section{Lattice problems} -Amongst other things we discussed how optical lattices enable the study of the Hubbard model: -\begin{align} -\hat{H}_{H}&= -J \sum_{} (\hat{a}^\dag_i \hat{a}_j +\hat{a}^\dag_j \hat{a}_i )+U\sum_i\hat{n}_i(\hat{n}_i-1)-\mu \sum_i \hat{n}_i -\end{align} -The three terms are associated with the following processes: -\begin{itemize} -\item The first term describes the hopping of the particles from one site to a neighboring site. -\item The second term describes the on-site interactions between the particles. -\item The third term fixes the average number of atoms per site in the grand-canonical ensemble. -\end{itemize} - -Within this model it is possible to study with ultracold atoms problems, which are beyond the reach of theoretical methods. One of the most precise measurements of the different quantum states that emerges in these models can be performed in experiments with quantum gas microscopes.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.98\columnwidth]{figures/QuantumGasMicroscope/QuantumGasMicroscope} -\caption{{Quantum gas microscopes and the observation of the Mott insulator shell -structure as presented in Ref. \protect\cite{Sherson_2010} -{\label{783515}}% -}} -\end{center} -\end{figure} - -In these experiments the experimentalist hard-wires the model of interest and then studies its properties as a function of time or temperture. This approach, is nowadays called quantum simulation or analog quantum computation\footnote{The difference in language is mostly a matter of community and journals the papers are submitted too}. - -\section{Spin systems} -These moving (itinerant) particles are by no means the only interesting problems from condensed matter. Another, widely studied problem are spin systems. The standard example being maybe the Ising model. For these kinds of spin systems, only two states are allowed, \textbf{up} or \textbf{down}, i.e. $\pm 1$. - -\subsection{Classical spins} -The classical Hamiltonian of the Ising model reads then : -\begin{align}\label{Eq:ClassicalIsing} -H_I = J \sum_{} s_i s_{i+1}+h \sum_i s_i \text{ with }s_i = \pm 1 -\end{align} -The two terms describe the interaction between spins and an external magnetic field: -\begin{itemize} -\item The first factor describes the interaction between neighboring spins and it can only take two values $+1$, if the spins are aligned and $-1$ if the spins are anti-aligned. -\item The second factor describes the external magnetic field, aligning the spins in the direction of the magnetic field. -\end{itemize} -From the two ingredients it is possible to write down the states of minimal energies. If no external magnetic field is applied, only the first factor counts. -\begin{itemize} - \item If $J$ is positive, the spins should be anti-aligned for minimal energy. The ground-state is an \textbf{anti-ferromagnet}. - \item If $J$ is negative, the spins should be aligned for minimal energy. The ground-state is an \textbf{ferromagnet}. -\end{itemize} -The external magnetic field is always attempting to align the spins, so if the $J$ is positive, there will be a point at which the external magnetic field breaks the state and the ferromagnetic phase becomes the new ground state. - - -\subsection{Quantum spins} - -The same model for quantum spins differs fundamentally from its classical counter-part. The most direct connection to the classical Ising model is done by assuming that each spin has length 1/2. As we detect it, we know the we can only observe \textbf{up} $\uparrow$ and \textbf{down} $\downarrow$, exactly it should be. However, we now at least since the third lecture \cite{Jendrzejewski}, that the quantum spin does not only have the these two states, but it also evolves on any superposition on the Bloch sphere. The quantum version of \eqref{Eq:ClassicalIsing} reads therefore: -\begin{align}\label{Eq:ClassicalIsing} -H_{I} = J \sum_{} \hat{s}_{i,z} \hat{s}_{i+1, z}+h \sum_i \hat{s}_{i,z} \text{ with }s_i = \pm 1 -\end{align} -The index could also be $x,y,z$, the important thing is that both terms have the same index to make the analogy to the classical system. - -To make clear, where the biggest differences between the classical model and the quantum version arise, it is actually possible to change the magnetic field term slightly and the make it point into the transverse direction: - -\begin{align}\label{Eq:ClassicalIsing} -H_{TI} = J \sum_{} \hat{s}_{i,z} \hat{s}_{i+1, z}+h \sum_i \hat{s}_{i,x} \text{ with }s_i = \pm 1 -\end{align} - -Such a mgnetic field does not make any sense for classical Ising spin as transverse magnetization is not allowed in the system. In the quantum version however, the small change in index can lead to very interesting physics. If there is no interaction term $J=0$, the system is described by plenty of two-state systems with eigenstates pointing into the $\ket{\pm} = \frac{\ket{\uparrow}\pm\ket{\downarrow}}{\sqrt{2}}$. If the transverse magnetic field is on the other hand zero, the system can be fully diagonalized in the $z$ basis and the basis states are $\ket{\uparrow}$ or $\ket{\downarrow}$. Most recently, artifical spin chains with up to 50 spins have been realized with ultracold ions and ultracold atoms as shown in Fig. \ref{920878}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/SpinChains/SpinChains} -\caption{{Artifical Quantum Ising models with Ions and neutral atoms. The system -is initialized in a well understood groundstate and then left to evolve -into some complicated superposition states. Pics are taken from -\protect\cite{Islam_2013}\protect\cite{Zhang_2017}\protect\cite{Bernien_2017} -{\label{920878}}% -}} -\end{center} -\end{figure} - - - -This approach of analog quantum simulation allows us to simulate the dynamics of some specific model in regions, which are beyond the access for theory. The complexity of the problem can be seen from the time evolution of the initial state is connected to the initial state via: -\begin{align} -\ket{\psi(t)} &= \hat{U}\ket{0}\\ -\hat{U} &= e^{-i\hat{H}t} -\end{align} -Finding the unitary operator from the Hamiltonian is not simple as: -\begin{align} -e^{-i(\hat{H}_2 +\hat{H}_1)t}\neq e^{-i\hat{H}_2 t}e^{-i\hat{H}_1 t} -\end{align} -We would actually need all the commutators, which can become a impossible task for general models. - - - -\section{Digital quantum simulation} - -The Ising model was not just implemented in the analog approach presented above. Another powerful approach is the digital approach to quantum simulation \cite{Lanyon_2011}. The idea behind this problem is the decomposition of the complex Hamiltonian into a few fundamental ingredients, i.e. two-qubit vs one qubit gates. We then decompose the evolution in small time-steps, which allows us to write: -\begin{align} -e^{-i(\hat{H}_2 +\hat{H}_1)t}&=\lim_{n\rightarrow \infty}\left(1-\frac{i(\hat{H}_2 +\hat{H}_1)t}{n}\right)^n\\ -&=\lim_{n\rightarrow \infty}\left(\left[1-\frac{i\hat{H}_2 t}{n}\right]\left[1-\frac{i\hat{H}_1t}{n}\right]\right)^n\\ -&=\lim_{n\rightarrow \infty}\left(e^{-\frac{i\hat{H}_2 t}{n}}e^{-\frac{i\hat{H}_1t}{n}}\right)^n\\ -\end{align} -So we can simulate the time evolution of the full Hamiltonian through a series of elementary gates, which are applied for a short amount of time. This approach is called trotterization and its results are visualized in Fig. \ref{866769}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/TrotterizationOfIsing/TrotterizationOfIsing} -\caption{{Trotterization of the Ising model as shown in Ref. \protect\cite{Lanyon_2011} -{\label{866769}}% -}} -\end{center} -\end{figure} - -The idea of decomposing the Hamiltonian into a few general gates is actually enormously powerful as the first different ingredients provide all the necessary control to decompose basically any Hamiltonian into its elementary gates. The idea is the following: -\begin{itemize} -\item The Hamiltonian $H_1$ might be any single particle Hamiltonian, which rotates the single spin on its particular Bloch sphere. -\item The Hamiltonian $H_2$ is describing the interaction between two spins, so it creates entanglement, which can be created between the spins. Applying for example $\hat{\sigma}_x\hat{\sigma}_x$ on the state $\ket{\downarrow\downarrow}$ allows for the engeration of a Bell state. -\end{itemize} -The power of this idea was examplified in works with ultracold ions on high-energy problems \cite{Martinez_2016}. Here, the original Hamiltonian from high-energy physics was translated into the language of digital quantum simulation, such that it could be studied with ions. - -\section{Quantum computation} -The power of the few gates is not just helpful for quantum simulation, but also quantum computation. Only physicists would identify the previous systems with spins 1/2 systems. Most mathematician or computer scientists would most likely see some series of bits in the previous formulation. Let us move towards this language. In any modern digital computer the system consists of bits, which might be 0 or 1. We can then initialize the system and tell him in the next step to flip or not in some complicated fashion. We would say that we apply a gate onto the bit chain. - -We call the computer universal if it is able to transfer any bit sequence into any other bit sequence with the some combination of gates. For the simplest case we might just consider a system of two bits, which can then have the states ${00, 10, 01, 11}$. Any computation means that we transfer some initial bit configuration into another one, by some series of gates. Actually, we only need four gates for a universal quantum computer: -\begin{itemize} -\item Three gates to move the particles completely around on the Bloch sphere. -\item And a two-qubit gate, which entangles the different qubits. -\end{itemize} - -The language of these kinds of algorithms can quite rapidly diverge substantially from the one that physicists use . Actually, the field of quantum computation is part of quantum information science. An overview over the most commonly used gates in quantum information science is given in Fig.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2019-01-21-um-10-22-40/Bildschirmfoto-2019-01-21-um-10-22-40} -\caption{{Some common gate of digital quantum computing as given in -\protect\cite{beginners}. -{\label{307961}}% -}} -\end{center} -\end{figure} - - The most common reference on the topic is \cite{Nielsen_2009} and they visualized the divergence quite nicely as shown in Fig. \ref{679777}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2019-01-21-um-09-54-07/Bildschirmfoto-2019-01-21-um-09-54-07} -\caption{{The field of quantum computation as shown by \protect\cite{Nielsen_2009} -{\label{679777}}% -}} -\end{center} -\end{figure} - - - - -\subsection{Quantum algorithms} -The idea that quantum computation might have fundamental advantages over classical computation has driven the field since the 1990s. The different approaches can be read up in the numerous books and literature on the topic \cite{beginners}. - - -\section{A few words about commercial solutions} -In the last years the field of quantum computation has seen dramatic changes by the arrival of commercial players in the field. Since a few years, IBM. Google, Microsoft or IonQ have started to develop commerical quantum computers. This implies not only that they invested substantial amounts of money in an improved hardware. Even more curiously, it is now possible to test simple algorithms on the cloud \cite{ai}. They are for the moment not necessarily of great computational power, but enormous fun to play with. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 3 - The two-level system(1).tex b/amo/tex_files/Lecture 3 - The two-level system(1).tex deleted file mode 100644 index 7fbe86c..0000000 --- a/amo/tex_files/Lecture 3 - The two-level system(1).tex +++ /dev/null @@ -1,362 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} - -\begin{document} - -\title{Lecture 3 - The two-level system} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 04, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -We are going to discuss the two-level system, it's static properties like level splitting at avoided crossings and dynamical properties like Rabi oscillations.% -\end{abstract}% - - - -\sloppy - - -After the previous discussions of some basic cooking recipes to quantum mechanics in last weeks lectures \cite{Jendrzejewskia} and \cite{Jendrzejewski}, we will use them to understand the two-level system. A very detailled discussion can be found in chapter 4 of Ref. \cite{1}. The importance of the two-level system is at least three-fold: -\begin{enumerate} -\item It is the simplest system of quantum mechanics as it spans a Hilbert space of only two states. -\item It is quite ubiquitous in nature and very widely used in atomic physics. -\item The two-level system is another word for the qubit, which is the fundamental building block of the exploding field of quantum computing and quantum information science. -\end{enumerate}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-09-28-um-14-39-281/Bildschirmfoto-2018-09-28-um-14-39-281} -\caption{{Examples for two-state systems. a) Benzene: In the ground state, the -electrons are delocalized. b) Ammonia: The nitrogen atom is either found -above or below the hydrogen triangle. The state changes when the -nitrogen atom tunnels. c) Molecular ion : The electron is either -localized near proton 1 or 2. -{\label{217687}}% -}} -\end{center} -\end{figure} - -Some of the many examples for two-level systems that can be found in nature: -\begin{itemize} -\item Spin of the electron: Up vs. down state -\item Two-level atom with one electron (simplified): Excited vs. ground state -\item Structures of molecules, e.g., \hyperref[fig:twostate]{NH\textsubscript{3}} -\item Occupation of mesoscopic capacitors in nanodevices. -\item Current states in superconducting loops. -\item Nitrogen-vacancy centers in diamond. -\end{itemize} - -\section{Hamiltonian, Eigenstates and Matrix Notation} - -To start out, we will consider two eigenstates $\ket{0}$, $\ket{1}$ of the Hamiltonian $\hat{H}_0$ with -\begin{align} - \hat{H}_0\ket{0}=E_0\ket{0}, \qquad \hat{H}_0\ket{1}=E_1\ket{1}. -\end{align} -Quite typically we might think of it as a two-level atom with states 1 and 2. The eigenstates can be expressed in matrix notation: -\begin{align} - \ket{0}=\left( \begin{array}{c} 1 \\ 0 \end{array} \right), \qquad \ket{1}=\left( \begin{array}{c} 0 \\ 1 \end{array} \right), -\end{align} -so that $\hat{H}_0$ be written as a diagonal matrix -\begin{align} - \hat{H}_0 = \left(\begin{array}{cc} E_0 & 0 \\ 0 & E_1 \end{array}\right). -\end{align} -If we would only prepare eigenstates the system would be rather boring. However, we typically have the ability to change the Hamiltonian by switching on and off laser or microwave fields \footnote{See the discussions of the next lecture}. We can then write the Hamiltonian in its most general form as: -\begin{align}\label{Eq:TwoLevelGeneral} -\hat{H} = \frac{\hbar}{2}\left( \begin{array}{cc} \Delta & \Omega_x - i\Omega_y\\ \Omega_x +i\Omega_y & -\Delta \end{array} \right) -\end{align} -Sometimes we will also chose the definition: -\begin{align} -\Omega = |\Omega| e^{i\varphi}=\Omega_x + i\Omega_y -\end{align} -It is particularly useful for the case in which the coupling is created by a laser. Another useful way of thinking about the two-level system is as a spin in a magnetic field. Let us remind us of the definitions of the of the spin-1/2 matrices: -\begin{align} -s_x = \frac{\hbar}{2}\left(\begin{array}{cc} -0 & 1\\ -1 & 0 -\end{array} -\right)~ -s_y = \frac{\hbar}{2}\left(\begin{array}{cc} -0 & -i\\ -i & 0 -\end{array} -\right)~s_z =\frac{\hbar}{2} \left(\begin{array}{cc} -1 & 0\\ -0 & -1 -\end{array} -\right) -\end{align} -We then obtain: -\begin{align}\label{Eq:HamSpin} -\hat{H} = \mathbf{B}\cdot\hat{\mathbf{s}}\text{ with }\mathbf{B} = (\Omega_x, \Omega_y, \Delta) -\end{align} -You will go through this calculation in the excercise of this week. - -\subsection{Case of no perturbation $\Omega = 0$} - -This is exactly the case of no applied laser fields that we discussed previously. We simply removed the energy offset $E_m = \frac{E_0+E_1}{2}$ and pulled out the factor $\hbar$, such that $\Delta$ measures a frequency. So we have: -\begin{align} -E_0 = E_m+ \frac{\hbar}{2}\Delta\\ -E_1 = E_m- \frac{\hbar}{2}\Delta -\end{align} -We typically call $\Delta$ the energy difference between the levels or the \textbf{detuning}. - -\subsection{Case of no detuning $\Delta = 0$} - -Let us suppose that the diagonal elements are exactly zero. And for simplicity we will also keep $\Omega_y =0$ as it simply complicates the calculations without adding much to the discussion at this stage. The Hamiltonian reads then: -\begin{align} -\hat{H} = \frac{\hbar}{2}\left( \begin{array}{cc} 0 & \Omega\\ \Omega &0 \end{array} \right) -\end{align} - -Quite clearly the states $\varphi_{1,2}$ are not the eigenstates of the system anymore. How should the system be described now ? We can once again diagonalize the system and write -\begin{align} -\hat{H}\ket{\varphi_{\pm}} = E_{\pm}\ket{\varphi_\pm}\\ -E_{\pm} = \pm\frac{\hbar}{2}\Omega\\ -\ket{\varphi_\pm} = \frac{\ket{0}\pm\ket{1}}{\sqrt{2}} -\end{align} -Two important consequences can be understood from this result: -\begin{enumerate} -\item The coupling of the two states shifts their energy by $\Omega$. This is the idea of level repulsion. -\item The coupled states are a superposition of the initial states. -\end{enumerate} -This is also a motivation the formulation of the 'bare' system for $\Omega = 0$ and the 'dressed' states for the coupled system. - -\subsection{General case} - -Quite importantly we can solve the system completely even in the general case. By diagonalizing Eq. \eqref{Eq:TwoLevelGeneral} we obtain: -\begin{align}\label{eq:Epm} - E_\pm = \pm \frac{\hbar}{2} \sqrt{\Delta^2+|\Omega|^2} -\end{align} -The energies can be nicely summarized as in Fig. \ref{326199}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-09-28-um-14-35-34/AvoidedCrossing} -\caption{{Anticrossing of energy levels. -{\label{326199}}% -}} -\end{center} -\end{figure} - -~ - -The Eigenstates then read: -\begin{align} -\ket{\psi_+}&=\cos\left(\frac{\theta}{2}\right) \eexp{-i{\varphi}/{2}}\ket{0}+\sin\left(\frac{\theta}{2}\right) \eexp{i{\varphi}/{2}}\ket{1}, \label{eq:staticpsiplus} -\end{align} -\begin{align} -\ket{\psi_-}&=-\sin\left(\frac{\theta}{2}\right) \eexp{-i{\varphi}/{2}}\ket{0}+\cos\left(\frac{\theta}{2}\right) \eexp{i{\varphi}/{2}}\ket{1}, \label{eq:staticpsiminus} -\end{align} -where -\begin{align} \label{eq:parameters} -\tan(\theta) = \frac{|\Omega|}{\Delta} -\end{align} - -\section{The Bloch sphere} - -While we could just discuss the details of the above state in the abstract, it is extremely helpful to visualize the problem on the Bloch sphere. The idea of the Bloch sphere is that the we have a complex wave function of well defined norm and two free parameters. So it seems quite natural to look for a good representation of it. And this is the Bloch sphere as drawn in Fig. \ref{613576}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/BlochSphereWithVectorForLecture/BlochSphereWithVectorForLecture} -\caption{{The presentation of the eigenstate on the Bloch sphere. -{\label{613576}}% -}} -\end{center} -\end{figure} - -We will see especially its usefulness especially as we discuss the dynamics of the two-state system. - -\section{Dynamical Aspects} -\subsection{Time Evolution of $\ket{\psi(t)}$} - After the static case we now want to investigate the dynamical properties of the two-state system. We calculate the time evolution of $\ket{\psi(t)} = c_0(t)\ket{0} + c_1(t)\ket{1}$ with the Schr\selectlanguage{ngerman}ödinger equation and the perturbed Hamiltonian \eqref{Eq:TwoLevelGeneral}: -\begin{align} -i\hbar \frac{d}{dt}\ket{\psi(t)}&=\hat{H}\ket{\psi(t)},\\ -i \frac{d}{dt}\left(\begin{array}{c} c_0(t) \\ c_1(t) \end{array}\right) &= \frac{1}{2}\left( \begin{array}{cc} \Delta & \Omega \\ \Omega^* & -\Delta \end{array} \right) \left(\begin{array}{c} c_0(t) \\ c_1(t) \end{array} \right). -\end{align} - -We have two coupled differential equations and we luckily already know how to solve them as we have calculated the two eigenenergies in the previous section. For the state $\ket{\psi(t)}$ we get -\begin{align} - \ket{\psi(t)}=\lambda \eexp{-i{E_+}t/{\hbar}} \ket{\psi_+} + \mu \eexp{-i{E_-}t/{\hbar}} \ket{\psi_-} \label{eq:psitimeevolution} -\end{align} -with the factors $\lambda$ and $\mu$, which are defined by the initial state. The most common question is then what happens to the system if we start out in the bare state $\ket{0}$ and then let it evolve under coupling with a laser ? So what is the probability to find it in the other state $\ket{1}$: -\begin{align} -P_1(t)=\left|\braket{1|\psi(t)}\right|^2. -\end{align} - As a first step, we have to apply the initial condition to \eqref{eq:psitimeevolution} and express $\ket{\varphi}$ in terms of \eqref{eq:staticpsiplus} and \eqref{eq:staticpsiminus}: -\begin{align} -\ket{\psi(0)} \overset{!}{=}& \ket{0}\\ - = & \eexp{i{\varphi}/{2}} \left[ \cos\left( \frac{\theta}{2}\right) \ket{\psi_+}-\sin\left(\frac{\theta}{2}\right)\ket{\psi_-}\right] -\end{align} -By equating the coefficients we get for $\lambda$ and $\mu$: -\begin{align} -\lambda = \eexp{i{\varphi}/{2}}\cos\left(\frac{\theta}{2}\right), \qquad \mu = -\eexp{i{\varphi}/{2}}\sin\left(\frac{\theta}{2}\right). -\end{align} -One thus gets: -\begin{align} -\hspace{-2mm} P_1(t)=&\left|\braket{1|\psi(t)}\right|^2 \\ -=& \left|\eexp{i\varphi} \sin\left(\frac{\theta}{2}\right)\cos\left(\frac{\theta}{2}\right)\left[\eexp{-i{E_+}t/{\hbar}} - \eexp{-i{E_-}t/{\hbar}}\right]\right|^2\\ -=& \sin^2(\theta)\sin^2\left(\frac{E_+-E_-}{2\hbar}t\right) -\end{align} -$P_1(t)$ can be expressed with $\Delta$ and $\Omega$ alone. The obtained relation is called Rabi's formula: -\begin{align} - P_1(t)=\frac{1}{1+\left(\frac{\Delta}{|\Omega|}\right)^2}\sin^2\left(\sqrt{|\Omega|^2+\Delta^2}\frac{t}{2}\right) -\end{align}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-09-28-um-14-43-51/RabiOscillation} -\caption{{Rabi oscillations -{\label{833990}}% -}} -\end{center} -\end{figure} - -\subsection{Visualization of the dynamics in the spin picture} - -While the previous derivation might be the standard one, which certainly leads to the right results it might not be the most intuitive way of thinking about the dynamics. They become actually quite transparent in the spin language and on the Bloch sphere. So let us go back to the formulation of the Hamiltonian in terms of spins as in Eq. \eqref{Eq:HamSpin}. - -How would the question of the time evolution from $0$ to $1$ and back go now ? Basically, we would assume that the spin has been initialize into one of the eigenstates of the $z$-basis and now starts to rotate in some magnetic field. How ? This can be nicely studied in the Heisenberg picture, where operators have a time evolution. In the Heisenberg picture we have: -\begin{align} -\frac{d}{dt} \hat{s}_i &= \frac{i}{\hbar}\left[\hat{H},\hat{s}_i\right]\\ -\frac{d}{dt} \hat{s}_i &= \frac{i}{\hbar}\sum_j B_j \left[\hat{s}_j,\hat{s}_i\right]\\ - \end{align} -So to understand we time evolution, we only need to employ the commutator relationships between the spins: -\begin{align} -[ s_x, s_y] = \hbar is_z~~[ s_y, s_z] = \hbar is_x~~[ s_z, s_x] = \hbar is_y -\end{align} -For the specific case of $B_x=\Omega$, $B_y = B_z = 0$, we have then: -\begin{align} -\frac{d}{dt} \hat{s}_x &= 0\\ -\frac{d}{dt} \hat{s}_y &= -\Omega \hat{s}_z\\ -\frac{d}{dt} \hat{s}_z &= \Omega \hat{s}_y - \end{align} - - So applying a field in x-direction leads to a rotation of the spin around the $x$ axis with velocity $\Omega$. We can now use this general picture to understand the dynamics as rotations around an axis, which is defined by the different components of the magnetic field. - -\section{A few words on the quantum information notation} - -The qubit is THE basic ingredient of quantum computers. A nice way to play around with them is actually the \href{https://quantum-computing.ibm.com/}{IBM Quantum experience}. However, you will typically not find Pauli matrices etc within these systems. The typical notation there is: -\begin{itemize} -\item $R_x(\phi)$ is a rotation around the x-axis for an angle $\phi$. -\item Same holds for $R_y$ and $R_z$. -\item $X$ denotes the rotation around the x axis for an angle $\pi$. So it transforms $\ket{1}$ into $\ket{0}$ and vise versa. -\item $Z$ denotes the rotation around the x axis for an angle $\pi$. So it transforms $\ket{+}$ into $\ket{-}$ and vise versa. -\end{itemize} -The most commonly used gate is actually one that we did not talk about at all, it is the \textit{Hadamard} gate, which transforms $\ket{1}$ into $\ket{-}$ and $\ket{0}$ into $\ket{+}$: -\begin{align} -\hat{H}\ket{1} &= \ket{-} ~ \hat{H}\ket{0} &= \ket{+}\\ -\hat{H}\ket{-} &= \ket{1} ~ \hat{H}\ket{+} &= \ket{0} -\end{align} - -In the \href{https://www.authorea.com/326506/emMDRkXxtm44IKqpCtDi6g}{forth lecture} we will see how it is that a time-dependent field can actually couple two atomic states, which are normally of very different energies. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 4 - Atoms in oscillating fields.tex b/amo/tex_files/Lecture 4 - Atoms in oscillating fields.tex deleted file mode 100644 index 4586226..0000000 --- a/amo/tex_files/Lecture 4 - Atoms in oscillating fields.tex +++ /dev/null @@ -1,335 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} - -\begin{document} - -\title{Lecture 4 - Atoms in oscillating fields} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 04, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In the lecture, we will see how a time dependent coupling allows us to engineer a new Hamiltonian. Most importantly, we will discuss the resonant coupling of two levels and the decay of a single level to a continuum.% -\end{abstract}% - - - -\sloppy - - -In the last lecture \cite{Jendrzejewski}, we discussed the properties of two coupled levels. However, we did not elaborate at any stage how such a system might emerge in a true atom. Two fundamental questions come to mind: -\begin{enumerate} -\item How is it that a laser allows to treat two atomic levels of very different energies as if they were degenerate ? -\item An atom has many energy levels $E_n$ and most of them are not degenerate. How can we reduce this complicated structure to a two-level system? -\end{enumerate} - -The solution is to resonantly couple two of the atom's levels by applying an external, oscillatory field, which is very nicely discussed in chapter 12 of Ref. \cite{2002} \cite{Cohen_Tannoudji_1998}. We will discuss important and fundamental properties of systems with a time-dependent Hamiltonian. - -We will discuss a simple model for the atom in the oscillatory field. We can write down the Hamiltonian: - -\begin{align} - \hat{H} = \hat{H}_0 + \hat{V}(t). -\end{align} -Here, $\hat{H}_0$ belongs to the atom and $V(t)$ describes the time-dependent field and its interaction with the atom. We assume that $\ket{n}$ is an eigenstate of $\hat{H}_0$ and write: -\begin{align} -\hat{H}_0\ket{n} = E_n \ket{n}. -\end{align} - -If the system is initially prepared in the state $\ket{i}$, so that -\begin{align} -\ket{\psi(t=0)} = \ket{i}, -\end{align} -what is the probability -\begin{align} -P_m(t) = \left|\braket{m|\psi(t)}\right|^2 -\end{align} -to find the system in the state $\ket{m}$ at the time $t$? - -\section{Evolution Equation} -The system $\ket{\psi(t)}$ can be expressed as follows: -\begin{align} -\ket{\psi(t)} = \sum_n \gamma_n(t) \eexp{-i{E_n}t/{\hbar}} \ket{n}, -\end{align} -where the exponential is the time evolution for $\hat{H}_1 =~0$. We plug this equation in the Schr\selectlanguage{ngerman}ödinger equation and get: -\begin{align} -i\hbar \sum_n\left(\dot{\gamma}_n(t)-i\frac{E_n}{\hbar}\gamma_n(t)\right)\eexp{-i{E_n}t/{\hbar}}\ket{n} = \sum_n \gamma_n(t) \eexp{-i{E_n}t/{\hbar}}\left(\hat{H}_0 + \hat{V}\right) \ket{n}\label{eq:timeev}\\ -\Longleftrightarrow i\hbar\sum_n \dot{\gamma}_n(t) \eexp{-i{E_n}t/{\hbar}} \ket{n} - = \sum_n \gamma_n(t) \eexp{-i{E_n}t/{\hbar}} \hat{V} \ket{n} -\end{align} -If we multiply \eqref{eq:timeev} with $\bra{k}$ we obtain a set of coupled differential equations -\begin{align} -i\hbar \dot{\gamma}_k \eexp{-i{E_k}t/{\hbar}} &= \sum_n \gamma_n \eexp{-{E_n}t/{\hbar}}\bra{k}\hat{V}\ket{n},\\ -i\hbar \dot{\gamma}_k &= \sum_n \gamma_n \eexp{-i {(E_n-E_k)}t/{\hbar}} \bra{k} \hat{V}\ket{n} -\end{align} -with initial conditions $\ket{\psi(t=0)}$. They determine the full time evolution. - -The solution of this set of equations depends on the details of the system. However, there are a few important points: - -\begin{itemize} -\item For short enough times, the dynamics are driving by the coupling strength $\bra{k}\hat{V} \ket{n}$. -\item The right-hand sight will oscillate on time scales of $E_n-E_k$ and typically average to zero for long times. -\item If the coupling element is an oscillating field $\propto e^{i\omega_L t}$, it might put certain times on resonance and allow us to avoid the averaging effect. It is exactly this effect, which allows us to isolate specific transitions to a very high degree \footnote{This is the idea behind atomic and optical clocks, which work nowadays at $10^{-18}$.} -\end{itemize} - -We will now see how the two-state system emerges from these approximations and then set-up the perturbative treatment step-by-step. - -\section{Rotating wave approximation} -We will now assume that the coupling term in indeed an oscillating field with frequency $\omega_L$, so it reads: -\begin{align} -\hat{V} = \hat{V}_0 \cos(\omega_Lt) = \frac{\hat{V}_0}{2} \left(e^{i\omega_lt}+e^{-i\omega_lt}\right) -\end{align} -We will further assume the we would like use it to isolate the transition $i\rightarrow f$, which is of frequency $\hbar \omega_0 = E_f - E_i$. The relevant quantity is then the detuning $\delta = \omega_0 - \omega_L$. If it is much smaller than any other energy difference $E_n-E_i$, we directly reduce the system to the following closed system: - -\begin{align} -i\dot{\gamma}_i &= \gamma_f \eexp{-i \delta t} \Omega\\ -i\dot{\gamma}_f &= \gamma_i \eexp{i \delta t}\Omega^* -\end{align} -Here we defined $\Omega = \bra{i} \frac{\hat{V_0}}{2\hbar}\ket{f}$. And to make it really a time-of the same form as the two-level system from the last lecture, we perform the transformation $\gamma_f = \tilde{\gamma}_f e^{i\delta t}$, which reduces the system too: -\begin{align} -i \dot{\gamma}_i &= \Omega \tilde{\gamma}_f \\ -i\dot{\tilde{\gamma}}_f &= \delta \tilde{\gamma}_f + \Omega^* \gamma_i -\end{align} -This has exactly the form of the two-level system that we studied previously. - - - -\subsection{Adiabatic elimination} - -We can now proceed to the quite important case of far detuning, where $\delta \gg \Omega$. In this case, the final state $\ket{f}$ gets barely populated and the time evolution can be approximated to to be zero \cite{lukin}. -\begin{align} -\dot{\tilde{\gamma}}_f = 0 -\end{align} -We can use this equation to eliminate $\gamma$ from the time evolution of the ground state. This approximation is known as \textit{adiabatic elimination}: -\begin{align} -\tilde{\gamma}_f &= \frac{\Omega^*}{\delta}\gamma_i\\ -\Rightarrow i\hbar \dot{\gamma}_i &= \frac{|\Omega|^2}{\delta} \tilde{\gamma}_i -\end{align} -The last equation described the evolution of the initial state with an energy $E_i = \frac{|\Omega|^2}{\delta}$. If the Rabi coupling is created through an oscillating electric field, i.e. a laser, this is know as the \textbf{light shift} or the \textbf{optical dipole potential}. It is this concept that underlies the optical tweezer for which Arthur Ashkin got the nobel prize in the 2018 \cite{2018}. - - -\subsection{Example: Atomic clocks in optical tweezers} - -A neat example that ties the previous concepts together is the recent paper \cite{readout}. The experimental setup is visualized in Fig. \ref{870855}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2019-10-23-um-11-27-17/Bildschirmfoto-2019-10-23-um-11-27-17} -\caption{{Experimental setup of an atomic array optical clock as taken from -\protect\cite{readout}. -{\label{870855}}% -}} -\end{center} -\end{figure} - -While nice examples these clocks are still far away from the best clocks out there, which are based on optical lattice clocks and ions \cite{Ludlow_2015}. - - - -\section{Perturbative Solution} -The more formal student might wonder at which points all these rather hefty approximation are actually valid, which is obviously a very substantial question. So, we will now try to isolate the most important contributions to the complicated system through perturbation theory. For that we will assume that we can write: -\begin{align} -\hat{V}(t) =\lambda \hat{H}_1(t) -\end{align} -, where $\lambda$ is a small parameter. In other words we assume that the initial system $\hat{H}_0$ is only weakly perturbed. -Having identified the small parameter $\lambda$, we make the \textit{perturbative ansatz} -\begin{align} - \gamma_n(t) = \gamma_n^{(0)} + \lambda \gamma_n^{(1)} + \lambda^2 \gamma_n^{(2)} + \cdots -\end{align} -and plug this ansatz in the evolution equations and sort them by terms of equal power in $\lambda$. - -The $0$th order reads -\begin{align} - i\hbar \dot{\gamma}_k^{(0)} = 0. -\end{align} -The $0$th order does not have a time evolution since we prepared it in an eigenstate of $\hat{H}_0$. Any evolution arises due the coupling, which is at least of order $\lambda$. - -So, for the $1$st order we get -\begin{align} \label{eq:1storderapprox} -i\hbar \dot{\gamma}_k^{(1)} = \sum_n \gamma_n^{(0)} \eexp{-i(E_n-E_k)t/{\hbar}}\bra{k}\hat{H}_1\ket{n}. -\end{align} - -\subsection{First Order Solution (Born Approximation)} -For the initial conditions $\psi(t=0)=\ket{i}$ we get -\begin{align} -\gamma_k^{(0)}(t) = \delta_{ik}. -\end{align} -We plug this in the $1$st order approximation \eqref{eq:1storderapprox} and obtain the rate for the system to go to the final state $\ket{f}$: -% -\begin{align} -i \hbar\dot{\gamma}^{(1)} = \eexp{i(E_f-E_i)t/{\hbar}} \bra{f}\hat{H}_1 \ket{i} -\end{align} -Integration with $\gamma_f^{(1)}(t=0) = 0$ yields -\begin{align}\label{eq:gammaf1} -\gamma_f^{(1)} = \frac{1}{i\hbar}\int\limits_0^t \eexp{i(E_f-E_i)t'/{\hbar}} \bra{f} \hat{H}_1(t')\ket{i} \dif t', -\end{align} -so that we obtain the probability for ending up in the final state: -\begin{align} -P_{i\to f}(t) = \lambda^2\left| \gamma_f^{(1)}(t)\right|^2. -\end{align} -Note that $ P_{i\to f}(t) \ll 1$ is the condition for this approximation to be valid! - -\textbf{Example 1: Constant Perturbation.}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-09-28-um-15-46-04/Bildschirmfoto-2018-09-28-um-15-46-04} -\caption{{Sketch of a constant perturbation -{\label{723552}}% -}} -\end{center} -\end{figure} - -We apply a constant perturbation in the time interval $\left[0,T\right]$, as shown in -\ref{723552}. If we use \eqref{eq:gammaf1} and set $\hbar \omega_0 = E_f-E_i$, we get -\begin{align} -\gamma_f^{(1)}(t\geq T) = \frac{1}{i \hbar} \bra{f}\hat{H}_1\ket{i} \frac{\eexp{i\omega_0 T}-1}{i\omega_0}, -\end{align} -and therefore -\begin{align} -P_{i\to f} = \frac{1}{\hbar^2}\left|\bra{f}\hat{V}\ket{i}\right|^2 \underbrace{\frac{\sin^2\left(\omega_0\frac{T}{2}\right)}{\left(\frac{\omega_0}{2}\right)^2}}_{\mathrm{y}(\omega_0,T)}. -\end{align} -A sketch of $\mathrm{y}(\omega_0,T)$ is shown in \ref{615128}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-09-28-um-15-54-58/Bildschirmfoto-2018-09-28-um-15-54-58} -\caption{{A sketch of y -{\label{615128}}% -}} -\end{center} -\end{figure} - -We can push this calculation to the extreme case of $T\rightarrow \infty$. This results in a delta function, which is peaked round $\omega_0 = 0$ and we can write: -\begin{align} -P_{i\to f} = T\frac{2\pi}{\hbar^2}\left|\bra{f}\hat{V}\ket{i}\right|^2\delta(\omega_0) -\end{align} -This is the celebrated \textbf{Fermi's golden rule}. - -\textbf{Example 2: Sinusoidal Perturbation.} -For the perturbation -\begin{align} -\hat{H}_1(t) = \left\{ \begin{array}{ccl} \hat{H}_1\eexp{-i\omega t} && \text{for}\; 0 < t < T \\ 0 &&\text{otherwise}\end{array} \right. -\end{align} -we obtain the probability -\begin{align} -P_{i\to f} (t \geq T) = \frac{1}{\hbar^2} \left|\bra{f}\hat{V}\ket{i}\right|^2 \mathrm{y}(\omega_0 - \omega, T). -\end{align} - -At $\omega = \left|E_f - E_i\right|/\hbar$ we are on resonance. - -In the -\href{https://www.authorea.com/users/143341/articles/326514-lecture-5-the-hydrogen-atom}{fifth -lecture}, we will start to dive into the hydrogen atom. - -\selectlanguage{english} -\FloatBarrier -\nocite{*} - -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 5 - The Hydrogen Atom.tex b/amo/tex_files/Lecture 5 - The Hydrogen Atom.tex deleted file mode 100644 index 5513c8f..0000000 --- a/amo/tex_files/Lecture 5 - The Hydrogen Atom.tex +++ /dev/null @@ -1,339 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} - -\begin{document} - -\title{Lecture 5 - The Hydrogen Atom} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 04, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In this lecture we will first discuss the diagonalization of the harmonic oscillator and then discuss the main properties of the hydrogen atom.% -\end{abstract}% - - - -\sloppy - - -In the previous lectures we have seen how to treat eigenstates of the two-level system and then how we can derive its effective emergence from some complex level structure if we \href{https://www.authorea.com/users/143341/articles/326506-lecture-4-atoms-in-oscillating-fields}{apply oscillating fields}. - -Today, we will increase the complexity towards the harmonic oscillator and the hydrogen atom. - - -\section{The harmonic oscillator} - -The harmonic oscillator is another great toy model to understand certain properties of quantum mechanical systems. Most importantly, it is a great introduction into the properties of bound systems and ladder operators. The basic Hamiltonian comes along in a rather innocent fashion, namely: - -\begin{align}\label{Eq:HamHO} -\hat{H} &= \frac{\hat{p}^2}{2m}+ \frac{m\omega^2}{2}\hat{x}^2 -\end{align} -The two variables $\hat{p}$ and $\hat{x}$ are non-commuting $[\hat{x}, \hat{p}] = i\hbar$, so they cannot be measured at the same time. We would now like to put the operator into a diagonal form such that it reads something like: -\begin{align}\label{Eq:HamHO} -\hat{H} &= \sum_n \epsilon_n \ket{n}\bra{n} -\end{align} - -We will follow he quite closely the discussion of Ref. \cite{interactions}. - -\subsection{The ladder operators} -We would like to get the spectrum first. So make the equation look a bit nicer we will define $\hat{p} = \hat{P} \sqrt{m\omega}$ and $\hat{x} = \frac{\hat{X}}{\sqrt{m\omega}}$ such that we have: -\begin{align}\label{Eq:HamHO} -\hat{H} &= \frac{\omega}{2}\left(\hat{P}^2 + \hat{X}^2\right) -\end{align} -\footnote{The commutator between $\hat{X}$ and $\hat{P}$ is still as for $x$ and $p$.} The next step is then to define the ladder operators: -\begin{align} -\hat{a} = \frac{1}{\sqrt{2\hbar}}\left(\hat{X}+i\hat{P}\right)\\ -\hat{a}^\dag = \frac{1}{\sqrt{2\hbar}}\left(\hat{X}-i\hat{P}\right)\\ -\end{align} -At this stage we can just try to rewrite the Hamiltonian in terms of the operators, such that: -\begin{align} -\hat{a}^\dag \hat{a} &= \frac{1}{2\hbar}(\hat{X}-i\hat{P})(\hat{X}+i\hat{P})\\ -&= \frac{1}{2\hbar}(\hat{X}^2 +\hat{P}^2 -\hbar)\\ - \frac{1}{2}(X^2 +\hat{P}^2 ) &= \hbar \left(\hat{a}^\dag \hat{a}-\frac{1}{2}\right) -\end{align} -So the Hamiltonian can now be written as: -\begin{align} -\hat{H} &= \hbar \omega \left(\hat{N} + \frac{1}{2}\right)\text{ with } \hat{N} = a^\dag a -\end{align} -At this stage we have diagonalized the Hamiltonian, what remains to be understood is the the values that $\hat{a}^\dag a$ can take. - -\subsection{Action of the ladder operators in the Fock basis} - -We would like to understand the basis, which is defined by: -\begin{align} -\hat{N} \ket{n} = n \ket{n} -\end{align} -The non-commutation between $\hat{X}$ and $\hat{P}$ is translated to the ladder operators as: -\begin{align} -[\hat{a}, \hat{a}^\dag] &= \frac{1}{2\hbar}[\hat{X}+iP,\hat{X}-i\hat{P}] = 1\\ -~[\hat{N}, a] &= -\hat{a}\\ -~[\hat{N}, a^\dag] &= a^\dag -\end{align} -From these relationship we can show then that: -\begin{align} -\hat{a}\ket{n} = \sqrt{n}\ket{n-1}\\ -\hat{a}^\dag \ket{n} = \sqrt{n+1}\ket{n+1}\\ -\end{align} -These relations are the motivation for the name ladder operators as they connect the different eigenstates. And they are raising/lowering the quantum number by one. Finally we have to find the lower limit. And this is quite naturally 0 as $n = \bra{n}\hat{N}\ket{n} = \bra{\psi_1}\ket{\psi_1}\geq 0$. So we can construct the full basis by just defining the action of the lowering operator on the zero element $a\ket{0} = 0$ and the other operators are then constructed as: -\begin{align} -\ket{n} = \frac{(a^\dag)^n}{\sqrt{n!}}\ket{0} -\end{align} - -\subsection{Spatial representation of the eigenstates} - -While we now have the spectrum it would be really nice to obtain the spatial properties of the different states. For that we have to project them onto the x basis. Let us start out with the ground state for which we have $\hat{a}\ket{0}= 0$: -\begin{align} -\bra{x}\frac{1}{\sqrt{2\hbar}}\left(\sqrt{m\omega}\hat{x} +i \frac{1}{\sqrt{m\omega}}\hat{p}\right)\ket{0}= 0\\ -\left(\sqrt{\frac{m\omega}{\hbar}}x + \sqrt{\frac{\hbar}{m\omega}}\partial_x\right)\psi_0(x)= 0\\ -\Rightarrow \psi_0(x) \propto e^{-\frac{x^2}{2a_{HO}^2}} -\end{align} -This also introduces the typical distance in the quantum harmonic oscillator which is given by $a_{HO} =\sqrt{\hbar/m\omega}$. The other states are solutions to the defining equations: -\begin{align} -\psi_n(x) = \frac{1}{\sqrt{n!}2^n}\left(\sqrt{m\omega}x - \frac{1}{\sqrt{m\omega}}\frac{d}{dx}\right)^n \psi_0(x)\\ -\psi_n(x) = \frac{1}{\sqrt{n!}2^n}H_n(x) \psi_0(x)\\ -\end{align} -where $H_n(x)$ are the Hermite polynoms. - -\section{The hamiltonian of the hydrogen atom} - -The hydrogen atom plays at central role in atomic physics as it is \textit{the} basic ingredient of atomic structures. It describes a single \textit{electron}, which is bound to the nucleus of a single \textit{proton}. As such it is the simplest of all atoms and can be described analytically within high precision. This has motivated an enormous body of literature on the problem, which derives all imaginable properties in nauseating detail. Therefore, we will focus here on the main properties and only sketch the derivations, while we will reference to the more technical details. - -For the hydrogen atom as shown in \ref{261310}, we can write down the Hamiltonian -\begin{align} -\hat{H}=\frac{{{\hat{\vec{p}}}^2_\text{p}}}{2m_\text{p}} + \frac{{\hat{\vec{p}}}^2_\text{e}}{2m_\text{e}} - \frac{Ze^2}{4\pi\epsilon_0 r}, -\end{align} -where $Ze$ is the nuclear charge. To solve the problem, we have to find the right Hilbert space. We can not solve the problem of the electron alone. If we do a separation of coordinates, i.e., we separate the Hamiltonian into the the center of mass and the relative motion, we get -\begin{align} -\hat{H} = \underbrace{\frac{{\hat{\vec{p}}}^2_{\textrm{cm}}}{2M}}_{\hat{H}_{\textrm{cm}}} + \underbrace{\frac{{\hat{\vec{p}}}^2_\text{r}}{2\mu}- \frac{Ze^2}{4\pi\epsilon_0r}}_{\hat{H}_{\text{atom}}} \label{eq:hydrogencmatomsplit} -\end{align} -with the reduced mass $1/\mu=1/m_\text{e}+1/m_\text{p}$. -If the state of the hydrogen atom $\ket{\psi}$ is an eigenstate of $\hat{H}$, we can write -\begin{align} -\hat{H}\ket{\psi}=&\left( \hat{H}_\textrm{cm}+\hat{H}_{\text{atom}} \right)\ket{\psi_\textrm{cm}}\otimes \ket{\psi_\text{atom}} \label{eq:hydrogencmatom}\\ -=& \left( E_{\text{kin}} + E_\text{atom} \right) \ket{\psi}. -\end{align} -Both states in \eqref{eq:hydrogencmatom} are eigenstates of the system. %, e.g. particle being in momentum eigenstate -The state $\ket{\psi}$ can be split up as shown since the two degrees of freedom are generally not entangled.% Hilbert space\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-09-28-um-16-07-07/Bildschirmfoto-2018-09-28-um-16-07-07} -\caption{{Sketch of the hydrogen atom with the relative coordinate and the -coordinates of the proton and the electron. -{\label{261310}}% -}} -\end{center} -\end{figure} - - - -The wave function of the system then reads: -\begin{align} -\psi(\vec{R},\vec{r}) =& \left( \bra{R} \otimes \bra{r}\right)\left( \ket{\psi_\textrm{cm}} \otimes \ket{\psi_{\text{atom}}}\right)\\ -=& \psi(\vec{R}) \cdot \psi (\vec{r}) -\end{align} -% -Our goal is now to find the eigenfunctions and eigenenergies of $\hat{H}_\text{atom}$. In order to further divide the Hilbert space, we can use the symmetries. - -\section{Conservation of orbital angular momentum} - -$\hat{H}_\text{atom}$ possesses spherical symmetry, which implies that \textbf{orbital angular momentum} $\hat{\vec{L}}$ is conserved. It is defined as: -\begin{align} -\hat{\vec{L}}=\hat{\vec{r}} \times \hat{\vec{p}} -\end{align} -In other words, we have: -\begin{align} -[\hat{H}_\text{atom}, \hat{\vec{L}}] = 0 -\end{align} -Let us show first that the kinetic term commutes with the angular momentum operator, -We will employ the commutator relationships for position and momentum $[x_i, p_j]=i\hbar$ and the relationship $[A,BC] = [A,B]C+B[A,C]$ and $[f(x), p_x] = [x,p_x]\frac{\partial f(x)}{\partial x}$. So we obtain: -\begin{align} -[p_x^2+p_y^2+p_z^2, xp_y - yp_x]&= [p_x^2,xp_y]-[p_y^2,yp_x] \\ - &= [p_x^2,x]p_y-[p_y^2,y] p_x\\ - &=i\hbar 2 p_xp_y-2i\hbar p_y p_x\\ - &= 0 -\end{align} -Analog calculations show that $L_y$ and $L_z$ commute. In a similiar fashion we can verify that the potential term commutes with the different components of $\hat{\vec{L}}$ -\begin{align} -[\frac{1}{r}, xp_y -yp_x] &= [\frac{1}{r}, xp_y]-[\frac{1}{r}, yp_x]\\ -&= x[\frac{1}{r}, p_y]-y[\frac{1}{r}, p_x]\\ -&= -x \frac{yi\hbar}{2r^{3/2}}+y\frac{xi\hbar}{2r^{3/2}}\\ -&=0 -\end{align} -We can therefore decompose the eigenfunctions of the hydrogen atom over the eigenbasis of the angular momentum operator. A detailled discussion of the properties of $\vec{L}$ can be found in Appendix B of \cite{Hertel_2015}. To find the eigenbasis, we first need to identify the commutation relationships between the components of $\hat{\vec{L}}$. We can calculate them following commutation relationships: -\begin{align} -[L_x, L_y] &= [yp_z - zp_y, zp_x - xp_z]\\ -&=[yp_z, zp_x]-[yp_z,xp_z]- [zp_y, zp_x] + [zp_y,xp_z]\\ -&=[yp_z, zp_x] + [zp_y,xp_z]\\ -&=[yp_z, z]p_x +x[zp_y,p_z]\\ -&=-i\hbar yp_x +i\hbar xp_y\\ -&= i\hbar L_z -\end{align} -This relationship holds for all the other components too and we have in general: -\begin{align} -[L_i, L_j] = i\hbar \epsilon_{ijk}L_k -\end{align} -The orbital angular momentum is therefore part of the large family of angular momentum operators, which also comprises spin etc. In particular the different components are not independent, and therefore we cannot form a basis out the three components. A suitable choice is actually to use the following combinations: -\begin{align} -\hat{\vec{L}}^2\ket{l,m_l} =& \hbar^2 l (l+1)\ket{l,m_l}\\ -\hat{L}_z\ket{l,m_l} =& \hbar m_l \ket{l,m_l} -\end{align} -\begin{itemize} -\item $l$ is a non-negative integer and it is called the \textbf{orbital angular momentum quantum number}. -\item $m_l$ takes values $-l, -l+1, ..., l-1, l$ and it is sometimes called the \textbf{projection of the angular momentum}. -\end{itemize} - -\subsection{Eigenfunction of the angular momentum operators} - -Having identified the relevant operators it would be nice to obtain a space representation of them. This works especially nicely in spherical coordinates. There, we get -\begin{align} -\hat{L}_z&= - i \hbar \partial_{\phi}\\ -\hat{\vec{L}}^2 &= - \hbar^2 \left[\frac{1}{\sin(\theta)}\partial_{\theta} \left( \sin(\theta) \partial_\theta\right) + \frac{1}{\sin^2(\theta)} \partial_{\phi\phi} \right]. -\end{align} -The corresponding wave functions are -\begin{align} -\braket{\theta, \phi | l,m_l} = Y_{lm}(\theta,\phi). -\end{align} - -Where $Y_{lm}(\theta, \phi)$ are the \textbf{spherical harmonics}. - -\section{The radial wave equation} - -Given that we now know that the angular momentum is conserved for the hydrogen atom, we can actually rewrite the Hamltonian \ref{eq:hydrogencmatomsplit} in terms of the angular momentum as we find: -\begin{align} -\hat{H}_\text{atom} = \hat{H}_r + \frac{\hat{L}}{2\mu r^2}+V(r) \\ -\hat{H}_r = -\frac{\hbar^2}{2\mu}\frac{1}{r^2}\frac{\partial}{\partial r}\left(r^2\frac{\partial}{\partial r}\right) -\end{align} -We can now separate out the angular part and decompose it over the eigenfunctions of $\hat{\vec{L}}$, such that we make the ansatz \footnote{ Only if the system is in a well-defined angular momentum state, we can write it down like this.}: -\begin{align} -\psi (r,\theta,\phi) = R(r) Y_{lm}(\theta,\phi) -\end{align} - -We can plug this separated ansatz in the Schr\selectlanguage{ngerman}ödinger equation. We already solved the angular in the discussion of the angular momentum and for the radial part we obtain: -\begin{align} --\frac{\hbar^2}{2\mu}\frac{1}{r}\frac{d^2(rR(r))}{dr^2} - \frac{Ze^2}{4\pi\epsilon_0 r} R(r) + \frac{\hbar^2}{2\mu}\frac{l(l+1)}{r^2}R(r) = ER(r) -\end{align} -% -Substituting $R(r)=u(r)/r$ leads to -\begin{align} --\frac{\hbar^2}{2\mu}\frac{d^2}{dr^2}u(r) +\underbrace{ \left( -\frac{Ze^2}{4\pi\epsilon_0 r} + \frac{\hbar^2}{2\mu} \frac{l(l+1)}{r^2} \right)}_{V_{\text{eff}}} u(r) = E \, u(r),\end{align} -which is known as the ``radial wave equation''. It is a very general result for \emph{any} central potential. It can also be used to describe unbound states ($E>0$) that occur during scattering. - -In the \href{https://www.authorea.com/users/143341/articles/326674-lecture-6-the-dipole-approximation-in-the-hydrogen-atom}{next lecture} we will look into the energy scales of the hydrogen atom and then start coupling different levels. - -\selectlanguage{english} -\FloatBarrier -\nocite{*} - -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 6 - The dipole approximation in the hydrogen atom.tex b/amo/tex_files/Lecture 6 - The dipole approximation in the hydrogen atom.tex deleted file mode 100644 index 4d9ee2f..0000000 --- a/amo/tex_files/Lecture 6 - The dipole approximation in the hydrogen atom.tex +++ /dev/null @@ -1,426 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand{\Hzero}{\hat{H}_0} -\newcommand{\Wop}{\hat{W}} -\newcommand{\aOs}{\tilde{a}_{0}} - -\begin{document} - -\title{Lecture 6 - The dipole approximation in the hydrogen atom} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut für Physik der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 04, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -We will continue with some properties of the hydrogen atom. First compare it to the harmonic oscillator, then look into dipole transitions and end with the coupling to static magnetic fields.% -\end{abstract}% - - - -\sloppy - - -In the last lecture \cite{atom} we discussed the basic properties of the hydrogen atom and found its eigenstates. We will now summarize the most important properties and look into its orbitals. From that we will understand the understand the interaction with electromagnetic waves and introduce the selection rules for dipole transitions. - -\section{The energies of Hydrogen and its wavefunctions} -In the last lecture, we looked into hydrogen and saw that we could write it's Hamiltonian as: -\begin{align} -\hat{H}_\text{atom} = \hat{H}_r + \frac{\hat{L}}{2\mu r^2}+V(r) \\ -\hat{H}_r = -\frac{\hbar^2}{2\mu}\frac{1}{r^2}\frac{\partial}{\partial r}\left(r^2\frac{\partial}{\partial r}\right) -\end{align} -We could then separate out the angular part and decompose it as: -\begin{align} -\psi (r,\theta,\phi) = \frac{u(r)}{r} Y_{lm}(\theta,\phi) -\end{align} -The radial wave equation reads then: -\begin{align}\label{Eq:RadWF} --\frac{\hbar^2}{2\mu}\frac{d^2}{dr^2}u(r) +\underbrace{ \left( -\frac{Ze^2}{4\pi\epsilon_0 r} + \frac{\hbar^2}{2\mu} \frac{l(l+1)}{r^2} \right)}_{V_{\text{eff}}} u(r) = E \, u(r),\end{align} - -\subsection{Energy scales} -We can now make \eqref{Eq:RadWF} dimensionless, by rewriting: -\begin{align} -r = \rho \aOs -\end{align} -So we rewrite: -\begin{align} --\frac{\hbar^2}{2\mu \aOs^2}\frac{d^2}{d\rho^2}u(r) + \left( -\frac{Ze^2}{4\pi\epsilon_0\aOs }\frac{1}{\rho} + \frac{\hbar^2}{2\mu \aOs^2} \frac{l(l+1)}{\rho^2} \right) u(r) = E \, u(r), -\end{align} -This allows us to measure energies in units of: -\begin{align} -E &= \epsilon R_{y,\textrm{m}}\\ -R_{y,\textrm{m}} &= -\frac{\hbar^2}{2\mu \aOs^2} -\end{align} -The equation reads then: -\begin{align} -\frac{d^2}{d\rho^2}u(\rho) + \left( \frac{\mu Ze^2 \aOs}{\hbar^2 4\pi\epsilon_0}\frac{2}{\rho} - \frac{l(l+1)}{\rho^2} \right) u(\rho) = \epsilon u(\rho), -\end{align} -If we finally set -\begin{align} -\aOs &=\frac{4\pi\epsilon_0 \hbar^2}{\mu Z e^2} -\end{align} -We obtain the especially elegant formulation: -\begin{align} -\frac{d^2}{d\rho^2}u(\rho) + \left( \frac{2}{\rho} - \frac{l(l+1)}{\rho^2} \right) u(\rho) = \epsilon u(\rho), -\end{align} -We typically call $\aOs$ the \textbf{Bohr radius} for an atom with reduced mass $\mu$ and with a nucleus with charge number $Z$. $R_{y,\textrm{m}}$ is the \textbf{Rydberg energy} of such an atom. - -The universal constant is defined for the infinite mass limit $\mu \approx m_e$ and for $Z=1$. As a length scale we introduce the Bohr radius for infinite nuclear mass -\begin{align} -a_0 &= \frac{4\pi\epsilon_0\hbar^2}{m_e e^2} = \text{\num{0.5} \text{angstrom}} = \text{\SI{0.05}{\nano\meter}}. -\end{align} -The energy scale reads: -\begin{align} -R_{y,\infty} &= \frac{m_e e^4}{32 \pi^2 \epsilon_0^2 \hbar^2}\\ -&\approx \SI{2.179e-18}{J}\\ -& \approx e \times\SI{13.6}{eV}\\ -&\approx h \times\SI{3289}{T\hertz} -\end{align} - So if we excite the hydrogen atom for time scales of a few attoseconds, we will coherently create superposition states of all existing levels. But which ones ? And at which frequency ? - -\subsection{Solution of the radial wave equation} -At this stage we can have a look into the energy landscape:\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-09-28-um-16-21-46/Bildschirmfoto-2018-09-28-um-16-21-46} -\caption{{Energy potential of the hydrogen atom -{\label{951159}}% -}} -\end{center} -\end{figure} - - - - -The energies read then -\begin{align} -E_n = -\frac{R_{y,\textrm{m}}}{n^2} \qquad \text{with} \qquad n=1,2,3,\cdots -\end{align} -for $l=0$ and -\begin{align} -E_n = -\frac{R_{y,\textrm{m}}}{n^2} \qquad \text{with} \qquad n=2,3,4,\cdots -\end{align} -for $l=1$. Despite the different effective potentials (see \ref{951159}), we get the same eigenstates. This looks like an accidental degeneracy. -Actually, there is a hidden symmetry which comes from the so-called ``Runge-Lenz'' vector. It only occurs in an attractive $1/r$-potential \cite{atom}. This vector reads: -\begin{equation} -\mathbf{A} =\mathbf{p}\times\mathbf{L}-\mathbf{r} -\end{equation} - -Finally, we can also visualize the radial wavefunctions for the hydrogen atom as shown in Fig. \ref{785001}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-29-um-08-04-45/Bildschirmfoto-2018-10-29-um-08-04-45} -\caption{{Radial wavefunctions -{\label{785001}}% -}} -\end{center} -\end{figure} - -Associated with these radial wavefunctions, we also have the angular profiles. Where $Y_{lm}(\theta, \phi)$ are the \textbf{spherical harmonics} as shown in Fig. \ref{175742}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-18-um-09-04-42/Bildschirmfoto-2018-10-18-um-09-04-42} -\caption{{The spherical harmonics. Fig is taken from Ref.~\protect\cite{Demtr_der_2018} -{\label{175742}}% -}} -\end{center} -\end{figure} - -Their shape is especially important for understanding the possibility of coupling different orbits through electromagnetic waves. - - - - - -\section{The electric dipole approximation}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-09-29-um-21-46-38/Bildschirmfoto-2018-09-29-um-21-46-38} -\caption{{Interaction between an atom and an electromagnetic wave -\(\vec{E}\) with wave vector \(\vec{k}\). The states -\(\text{|g>}\) and~\(\text{|e>}\) stand for the ground and -excited state and \(\hbar\omega_0\) is the energy of the resonant -transition between the states. -{\label{823292}}% -}} -\end{center} -\end{figure} - - - -We consider an atom which is located in a radiation field. -By resonant coupling with the frequency $\omega_0$, it can go from the ground state $\ket{g}$ to the excited state $\ket{e}$ (see \ref{823292}). - -The potential energy of a charge distribution in a homogeneous electromagnetic field $\vec{E}$ is: -\begin{align} -E_\text{pot} = \sum_i q_i \vec{r}_i\cdot \vec{E}. -\end{align} -%Multipole expansion. Only one part left: -If the upper limit of the sum is 2, we obtain the dipole moment -\begin{align} -\vec{D} = e \vec{r}. -\end{align} -For the hydrogen atom, the distance corresponds to the Bohr radius.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-09-29-um-21-49-06/Bildschirmfoto-2018-09-29-um-21-49-06} -\caption{{A charge distribution in an electromagnetic field -\$\textbackslash{}vec\{E\}\$ -{\label{241421}}% -}} -\end{center} -\end{figure} - -\textbf{Note.} Apart from the monopole, the dipole potential is the lowest order term of the multipole expansion of the scalar potential $\phi$: -% Distance between particles small compared to range of field distribution we are in. -\begin{align} -\phi \left( \vec{r} \right) =& \frac{1}{4\pi\epsilon_0}\frac{\vec{D}\cdot\vec{r}}{|\vec{r}|^3}\\ -\vec{E}(\vec{r})=& \vec{\nabla}\phi(\vec{r}) = \frac{ 3 \left(\vec{D}\cdot \vec{r}\right) \vec{r}/{|\vec{r}|^2}- \vec{D}}{4\pi\epsilon_0|\vec{r}|^3}. -\end{align} - -For the dipole approximation we consider the size of the atom and compare it to the wavelength $\lambda$ of the electromagnetic field: -\begin{align} -\braket{|r|} \sim 1\text{angstrom}\ll \lambda \sim 10^3\text{angstrom} -\end{align} - -\begin{itemize} -\item Therefore, we assume that the field is homogeneous in space and omit the spatial dependence: -\begin{align} -E(r,t) \approx E(t) -\end{align} -\item The correction term resulting from the semi-classical dipole approximation then is -\begin{align} -\hat{H}_1(t)=-e\hat{\vec{r}} \cdot \vec{E}(t) = -\hat{\vec{D}} \cdot \vec{E}(t) -\end{align} -\item Why can the magnetic field be ignored in this approximation? The velocity of an electron is $\sim \alpha c$. The hydrogen atom only has small relativistic corrections. If we compare the modulus of the magnetic and the electric field, we get: -\begin{align} -\left| \vec{B} \right| = \frac{|\vec{E}|}{c} -\end{align} -The electric field contribution thus dominates. -\end{itemize} -% -Now we choose -\begin{align} -\vec{E} = E_0 \vec{\epsilon} \cos \left(\omega t - \vec{k} \cdot \vec{r}\right) -\end{align} -and do time-\-de\-pen\-dent perturbation theory (see \cite{Jendrzejewski}): - -\begin{align} -\ket{\psi(t)} = \gamma_1(t) \eexp{-iE_1t/\hbar} \ket{1} +& \gamma_2(t) \eexp{-iE_2t/\hbar} \ket{2}\\ -+&\sum_{n=3}^\infty \gamma_n \eexp{-iE_nt/\hbar} \ket{n} -\end{align} -As initial condition we choose -\begin{align} - \gamma_i(0) = \left\{ \begin{array}{ccc} 1 &\text{for}& i=1 \\ 0 &\text{for}& i>1 \end{array} \right. -\end{align} -% -We write $\omega_0 = (E_2-E_1)/\hbar$ and get to first order $\hat{vec{D}}$: - -\begin{align} -\gamma_2(t) = \overbrace{\frac{E_0}{2\hbar} \braket{2|\hat{\vec{D}}\cdot \vec{\epsilon}\,|1}}^{\text{Rabi frequency }\Omega} \underbrace{\left(\frac{\eexp{i(\omega_0 + \omega)t}-1}{\omega_0 + \omega} + \frac{\eexp{i(\omega_0 - \omega)t}-1}{\omega_0 - \omega}\right)}_{\text{time evolution of the system}} -\end{align} -% -The term before the round brackets is called dipole matrix element: -% -\begin{align}\label{Eq:DipOp} -\braket{2|\hat{\vec{D}}\cdot \vec{\epsilon}\,|1} =e \int \psi_2\left(\vec{r}\right) \cdot \vec{r} \cdot \vec{\epsilon} \cdot \psi_1\left(\vec{r}\right) \dif \vec{r}. -\end{align}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-31-um-11-54-46/SelectionRules} -\caption{{Coupling of different orbitals. -{\label{708926}}% -}} -\end{center} -\end{figure} - -\section{Selection rules} -We can now look into the allowed transition in the atom as they are what we will typically observe within experiments. - -\subsection{Change of parity} -The parity operator is defined as: -\begin{align} -\hat{P}\psi(\vec{r}) = \psi(-\vec{r}) -\end{align} -For the eigenfunction we have: -\begin{align} -\hat{P} \psi(\vec{r}) = \lambda \psi(\vec{r})\\ -\lambda = \pm 1 -\end{align} -The eigenvalues are called \textit{odd} and \textit{even}. From the definition of the dipole operator we can see that it is of odd parity. What about the parity of the states that it is coupling ? If they have both the same parity than the whole integral will disappear and no dipole transition can appear. - -We can become more concrete for the given eigenfunctions as we have within spherical coordinates: -\begin{align} -(r, \theta, \phi) \rightarrow (r, \pi -\theta, \phi+\pi) -\end{align} -For the orbitals of the hydrogen atom we then have explicitly: -\begin{align} -\hat{P}\psi_{nlm}(r, \theta, \phi) &= R_{nl}(r)Y_{lm}(\pi -\theta, \phi+\pi)\\ -&= (-1)^l R_{nl}(r)Y_{lm}(, \theta, \phi) -\end{align} -This gives us the first selection rule that the \textbf{orbital angular momentum has to change for dipole transitions} $\Delta l = \pm 1$. -\begin{itemize} -\item $s$ orbitals are only coupled to $p$ orbitals through dipole transitions. -\item $p$ orbitals are only coupled to $s$ and $d$ orbitals through dipole transitions. -\end{itemize} - - - -\subsection{Coupling for linearly polarized light} -Having established the need for parity change, we also need to investigate the influence of the polarization of the light, which enters the dipole operator through the vector $\epsilon$. In the simplest case the light has linear polarization ($\pi$ polarized) and we can write: -\begin{align} -\vec{E}(t) = \vec{e}_zE_0 \cos(\omega t +\varphi) -\end{align} -This means that the dipole transition element \eqref{Eq:DipOp} is now given by: -\begin{align} -\bra{2}\vec{D}\cdot\vec{e}_z\ket{1} = e \int \psi_2(\vec{r}) z \psi_1\left(\vec{r}\right) \dif \vec{r} -\end{align} -We can now transform z into the spherical coordinates $z= r \cos(\theta) = r\sqrt{\frac{4\pi}{3}}Y_{10}(\theta, \phi)$. We can further separate out the angular part of the integral to obtain: -\begin{align} -\bra{2}\vec{D}\cdot\vec{e}_z\ket{1} \propto e \int \sin(\theta) d\theta d\varphi Y_{l',m'}(\theta, \varphi) Y_{10}(\theta, \phi) Y_{l,m}(\theta, \varphi) -\end{align} -This element is only non-zero if $m = m'$ (see appendix C of \cite{Hertel_2015} for all the gorious details).\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-30-um-13-22-49/Bildschirmfoto-2018-10-30-um-13-22-49} -\caption{{Dipole selection rules for different polarizations of light. -{\label{852353}}% -}} -\end{center} -\end{figure} - -\subsection{Circularly polarized light} -Light has not just linear polarization, but it might also have some circular polarization. In this case we can write: -\begin{align} -\vec{E}(t) &= \frac{E_0}{\sqrt{2}} \left(\cos(\omega t +\varphi)\vec{e}_x + \sin(\omega t +\varphi)\vec{e}_y\right)\\ -\vec{E}(t) &= \text{Re}\left(\vec{e}_+ E_0 e^{-i\omega t +\phi}\right)\\ -\vec{e}_\pm &= \frac{\vec{e}_x\pm i\vec{e}_y}{\sqrt{2}} -\end{align} -So light with polarization $\vec{\epsilon} = \vec{e}_+$ is called right-hand circular ($\sigma^+$) and $\vec{\epsilon} = \vec{e}_-$ is called left-hand circular ($\sigma^-$). Let us now evaluate the transition elements here. The dipole operator element boils now down to the evaluation of the integral: -\begin{align} -\bra{l',m',n'}x+iy\ket{l,m,n} -\end{align} -As previously we can express the coupling term in spherical coordinates: -\begin{align} -\frac{x+iy}{\sqrt{2}} = -r \sqrt{\frac{4\pi}{3}}Y_{11}(\theta, \varphi) -\end{align} -Evaluation of the integrals lead now to the rule the projection of the quantum number has to change $m' = m+1$. In a similiar fashion we find for left-hand circular light the selection rule $m' = m - 1$. All the results are summed up in Fig. \ref{852353}. - -In the next lecture~\cite{atoma} we will investigate the influence -of perturbative effects and see how the fine structure arises. - -\selectlanguage{english} -\FloatBarrier -\nocite{*} - -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 7 - Beyond the boring hydrogen atom.tex b/amo/tex_files/Lecture 7 - Beyond the boring hydrogen atom.tex deleted file mode 100644 index 239ba9a..0000000 --- a/amo/tex_files/Lecture 7 - Beyond the boring hydrogen atom.tex +++ /dev/null @@ -1,345 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand{\Hzero}{\hat{H}_0} -\newcommand{\Wop}{\hat{W}} - -\begin{document} - -\title{Lecture 7 - Beyond the 'boring' hydrogen atom} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 04, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In this lecture we will use the hydrogen atom to study static perturbations in form of external magnetic fields and relativistic effects, leading to the fine structure splitting.% -\end{abstract}% - - - -\sloppy - - -We spend quite some time on the properties of the hydrogen atom in the previous lectures \cite{Jendrzejewski,atom}. However, we completely neglected any effects of quantum-electrodynamics and relativistic physics. In this lecture we will study, why this is a good approximation for the hydrogen atom and then investigate in a perturbative fashion the terms. Most importantly, we will introduce that coupling between the orbital angular momentum and the spin of the electron, which leads to the fine splitting. - -\section{Perturbation theory} -Up to now have studied the hydrogen atom to find its eigensystem and then studied how it evolves under the presence of oscillating electric fields. This allowed us to understand in more detail the idea of eigenstates and then of time-dependent perturbation theory. However, one of the most important concepts that can be introduced very nicely on the hydrogen atom is stationnary perturbation theory in form of external magnetic fields or relativistic corrections. We will remind you of perturbation theory here and then apply it to some simple cases. - -We can now simply write down the problem as: -\begin{eqnarray} -\left(\Hzero +\lambda \Wop\right)\ket{\psi_m} = E_m\ket{\psi_m} -\end{eqnarray} -$\lambda$ is a very small parameter and $\Hzero$ is describing the hydrogen atom system. We will note the eigenvalues and eigenstates of this system as: -\begin{align}\label{Eq:EigsUnperturb} -\Hzero \ket{\varphi_n} = \epsilon_n \ket{\varphi_n} -\end{align} -While, we do not know the exact solution of $\ket{\psi_m}$ and the energy $E_m$, we decide to decompose them in the following expansion of the small parameter $\lambda$: -\begin{align} -\ket{\psi_m} &= \ket{\psi_m^{(0)}} + \lambda\ket{\psi_m^{(1)}}+\lambda^2\ket{\psi_m^{(2)}}+O(\lambda^3)\\ -E_m &= E_m^{(0)} +\lambda E_m^{(1)} + \lambda^2 E_m^{(2)}+O(\lambda^3)\, -\end{align} -To zeroth order in $\lambda$ we obtain: -\begin{eqnarray} -\Hzero \ket{\psi_m^{(0)}} = E_m^{(0)}\ket{\psi_m^{(0)}} -\end{eqnarray} -So it is just the unperturbed system and we can identify: -\begin{eqnarray} -\ket{\psi_m^{(0)}} = \ket{\varphi_m}~~E_m^{(0)} = \epsilon_m -\end{eqnarray} -For the first order we have to solve -\begin{eqnarray}\label{Eq:FirstOrder} -(\Hzero-E_m^{(0)}) \ket{\psi_m^{(1)}} + (\Wop-E_m^{(1)})\ket{\psi_m^{(0)}}= 0\\ -(\Hzero-\epsilon_m) \ket{\psi_m^{(1)}} + (\Wop-E_m^{(1)})\ket{\varphi_m}= 0 -\end{eqnarray} -We can multiply the whole equation by $\bra{\varphi_m}$ from the right. As $\bra{\varphi_m}\Hzero = \epsilon_m\bra{\varphi_m}$, the first term cancels out. Hence, we obtain: -\begin{eqnarray}\label{Eq:PerturbFirstOrder} -\boxed{E_m^{(1)} = \bra{\varphi_m}\Wop\ket{\varphi_m}} -\end{eqnarray} -We now also need to obtain the correction to the eigenstate. For that, we put \eqref{Eq:PerturbFirstOrder} into \eqref{Eq:FirstOrder}: -\begin{eqnarray} -(\Hzero-\epsilon_m) \ket{\psi_m^{(1)}} + (\Wop\ket{\varphi_m}-\ket{\varphi_m}\bra{\varphi_m}\Wop\ket{\varphi_m})= 0 -\end{eqnarray} -We can now multiply the whole equation by $\bra{\varphi_i}$ from the right and obtain: -\begin{eqnarray} -(\epsilon_i-\epsilon_m)\bra{\varphi_i}\ket{\psi_m^{(1)}}+\bra{\varphi_i}\Wop\ket{\varphi_m} &=& 0 -\end{eqnarray} -By rewriting the above equation, this directly gives us the decompositon of the $\ket{\psi_m^{(1)}}$ onto the original eigenstates and have: -\begin{eqnarray}\label{Eq:FirstOrderState} -\boxed{\ket{\psi_m^{(1)}} = \sum_{i\neq m} \frac{\bra{\varphi_i}\Wop\ket{\varphi_m}}{(\epsilon_m-\epsilon_i)}\ket{\varphi_i}} -\end{eqnarray} -And we end the calculation with second order pertubation in $\lambda$ -\begin{eqnarray} -(\Hzero-E_m^{(0)}) \ket{\psi_m^{(2)}} + (\Wop-E_m^{(1)})\ket{\psi_m^{(1)}}-E_m^{(2)} \ket{\psi_m^{(0)}}= 0\\ -(\Hzero-\epsilon_m) \ket{\psi_m^{(2)}} + (\Wop-E_m^{(1)})\ket{\psi_m^{(1)}}-E_m^{(2)} \ket{\varphi_m}= 0\\ -\end{eqnarray} -We can multiply once again whole equation by $\bra{\varphi_m}$ from the right, which directly drops the first term. The term $E_m^{(1)}\bra{\varphi_m}\ket{\psi_m^{(1)}}$ drops out as the first order perturbation does not contain a projection onto the initial state. So we can write: -\begin{eqnarray} -E_m^{(2)}= \bra{\varphi_m}\Wop\ket{\psi_m^{(1)}} -\end{eqnarray} -Plugging in our solution \eqref{Eq:FirstOrderState}, we obtain: -\begin{equation}\label{Eq:PerturbSecOrder} -\boxed{E_m^{(2)} = \sum_{i\neq m} \frac{|\bra{\varphi_i}\Wop\ket{\varphi_m}|^2}{(\epsilon_m-\epsilon_i)}} -\end{equation} - -\section{Static external magnetic fields} - -A first beautiful application of perturbation theory is the study of static magnetic fields (see Ch 1.9 and Ch. 2.7.1 of \cite{Hertel_2015} for more details). -The motion of the electron around the nucleus implies a magnetic current -\begin{align} -I = \frac{e}{t} = \frac{ev}{2\pi r} -\end{align} -and this implies a magnetic moment $M = I A$, with the enclosed surface $A=\pi r^2$. It may be rewritten as: -\begin{align} -\vec{M}_L &= -\frac{e}{2m_e}\vec{L} &=-\frac{\mu_B}{\hbar} \vec{L} \\ -\mu_B &= \frac{\hbar e}{2m_e} -\end{align} -where $\mu_B$ is the \textbf{Bohr magneton}. Its potential energy in a magnetic field $\vec{B} = B_0 \vec{e}_z$ is then: -\begin{align} -V_B &= -\vec{M}_L\cdot \vec{B}\\ -&= \frac{\mu_B}{\hbar} L_z B_0 -\end{align} -Its contribution is directly evaluated from Eq. \eqref{Eq:PerturbFirstOrder} to be: -\begin{align} -E_{Zeeman} = \mu_B m B_0 -\end{align} -This is the Zeeman splitting of the different magnetic substates. It is visualized in Fig. \ref{982283}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-31-um-08-07-29/Bildschirmfoto-2018-10-31-um-08-07-29} -\caption{{The Zeeman effect in the hydrogen atom. -{\label{982283}}% -}} -\end{center} -\end{figure} - - - - -\section{Trapping with electric or magnetic fields} -We have now investigated the structure of the hydrogen atom and seen how its energy gets shifted in external magnetic fields. We can combine this understanding to study conservative traps for atoms and ions. Neutral atoms experience the external field: -\begin{align} -E_{mag}(x,y) = \mu_B m B_0(x,y) -\end{align} -For ions on the other hand we have fully charged particles. So they simply experience the external electric field directly: -\begin{align} -E_{el}(x,y) = -q E(x,y) -\end{align} - -Trapping atoms and ions has to be done under very good vacuum such that they are well isolate from the enviromnent and high precision experiments can be performed. - -However, the trap construction is not trivial given Maxwells equation $\text{div} \vec{E} = 0$ and $\text{div} \vec{B} = 0$. So, the experimentalists have to play some tricks with oscillating fields. We will not derive in detail how a resulting \textbf{Paul trap} works, but the \href{https://youtu.be/Xb-zpM0UOzk}{linked video} gives a very nice impression of the idea behind it. A sketch is presented in Fig. \ref{149591}.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/IonTraps-01/IonTraps-01} -\caption{{The upper stage shows the phases of The two phases of the oscillating -electric field of a Paul trap. Taken -from~\href{https://en.wikipedia.org/wiki/Quadrupole_ion_trap}{wikipedia}. -Below we can see a linear ion (Paul) trap containing six calcium 40 -ions. Taken -from~\href{https://quantumoptics.at/en/research/lintrap.html}{here} . -{\label{149591}}% -}} -\end{center} -\end{figure} - - -This work on trapping ions dates back to the middle of the last century (!!!) and was recognized by the\href{https://www.nobelprize.org/prizes/physics/1989/summary/}{ Nobel prize in 1989} for Wolfgang Paul \cite{Paul_1990} and Hans Dehmelt \cite{Dehmelt_1990}. They shared the prize with Norman Ramsey, who developped extremely precise spectroscopic methods, now known as Ramsey spectroscopy \cite{Ramsey_1990}. - -For atoms we can play similiar games with magnetic traps. Again we have to solve the problem of the zero magnetic fields. Widely used configurations are the Ioffe-Pritchard trap, where quadrupole fields are superposed with a bias field \cite{Pritchard_1983}, or TOP-traps \cite{Petrich_1995}. - -Ion traps are now the basis of ionic quantum computers \cite{ions} and magnetic traps paved the way for quantum simulators with cold atoms \cite{Jendrzejewskia}. - - - -\section{What we missed from the Dirac equation} -Until now we have completely neglected relativistic effects, i.e. we should have really solved the Dirac equation instead of the Schr\selectlanguage{ngerman}ödinger equation. However, this is is major task, which we will not undertake here. But what were the main approximations ? -\begin{enumerate} -\item We neglected the existance of the electron spin. -\item We did not take into account the relativistic effects. -\end{enumerate} - -So, how does relativity affect the hydrogen spectrum? In a first step, we should actually introduce the magnetic moment of the spin: -\begin{align} -\vec{M}_S = -g_e \mu_B \frac{\vec{S}}{\hbar} -\end{align} -The spin of the electron is $1/2$, making it a fermion and the \textit{g factor of the electron} reads -\begin{align} -g_e \approx 2.0023 -\end{align} -Further discussions of the g-factor might be found in Chapter 6.6 of \cite{Hertel_2015}. - -\subsection{Amplitude of the relativistic effects} - -We saw in lecture 5 \cite{Jendrzejewski} and 6 \cite{Jendrzejewskib}, that the energy levels of hydrogenlike atoms are given by: -\begin{align}\label{Eq:EnergyHydrogen} -E_n &= \frac{Z^2 R_{y,\infty}}{n^2}\\ -R_{y,\infty} &= \frac{m_e e^4}{32 \pi^2 \epsilon_0^2 \hbar^2} -\end{align} -We can now use the fine-structure constant, which measures the coupling strength of the electric charges to the electromagnetic field: -\begin{align}\label{Eq:FS} -\alpha &= \frac{e^2}{4\pi\epsilon_0\hbar c}\\ -&= \frac{1}{137.035999139(31)} -\end{align} -We can now rewrite Eq. \eqref{Eq:EnergyHydrogen} as: -\begin{align} -E_n = \frac{1}{2} \underbrace{m_e c^2}_{\text{rest mass energy}} Z^2 \alpha^2 \frac{1}{n^2} -\end{align} -Here, $m_e c^2\approx \SI{511}{\kilo eV}$ is the rest mass energy of the electron. $E_n \approx \SI{10}{eV}$ on the other hand is the energy of the bound state and therefore in the order of the kinetic energy of the electron. As long as it is much smaller than the rest-mass of the electron, we can neglect the relativistic effects. A few observations: - -\begin{itemize} -\item Relativistic effects are most pronounced for deeply bound states of small quantum number $n$. -\item Relativistic effects effects will become important once $(Z\alpha)\approx 1$, so they will play a major role in heavy nuclei. -\end{itemize} - -For the hydrogen atom we can thus treat the relativistic effects in a perturbative approach.But the most important consequence of the relativistic terms is actually the existance of the electron spin. - -\subsection{The relativistic mass and Darwin term} - - -\begin{enumerate} -\item ``Relativistic mass'': -The relativistic relation between energy and momentum reads: -\begin{align} -E_\text{rel} &= \sqrt{(mc^2)^2+(\vec{p}c)^2}\\ -&\approx mc^2 + \frac{p^2}{2m}- \frac{\vec{p}^{\,4}}{8m^3c^2} + \cdots -\end{align} -The first two terms of the expansion are the nonrelativistic limit and the third term is the first correction. Therefore, the corresponding Hamiltonian is: -\begin{align} -\hat{H}_\text{rm} = - \frac{\hat{\vec{p}}^{\,4}}{8m^3c^2}. -\end{align} - -\item Darwin term: -If $r=0$, the potential $V(r)$ diverges to $-\infty$. We get: -\begin{align} -\hat{H}_\text{Darwin} = \frac{\pi \hbar^2}{2m^2c^2}\left( \frac{Ze^2}{4\pi\epsilon_0}\right) \delta(\hat{\vec{r}}) -\end{align} - -\end{enumerate} - -If we perform a first correction to the energy of the eigenstates $\braket{n,l,m}$ by calculating -% -\begin{align} -\braket{n,l,m|\hat{H}'|n,l,m}, -\end{align} -% -we find that it works perfectly for case (1) and (2) which is due to degeneracy. -$\hat{H}_\text{rm}$ and $\hat{H}_\text{Darwin}$ commute with all observables forming the complete set of commuting observables (CSCO) for $\hat{H}_0$ -\begin{align} -\hat{H}_0,\hat{\vec{L}}^2, \hat{L}_z, -\end{align} -% -with states described by $\ket{n,l,m}$. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 8 - The Helium atom.tex b/amo/tex_files/Lecture 8 - The Helium atom.tex deleted file mode 100644 index 8e52c08..0000000 --- a/amo/tex_files/Lecture 8 - The Helium atom.tex +++ /dev/null @@ -1,414 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand{\Hzero}{\hat{H}_0} -\newcommand{\Wop}{\hat{W}} - -\begin{document} - -\title{Lecture 8 - The Helium atom} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 04, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -In this lecture we will discuss some basic properties of the Helium atom. We will introduce first some useful notations for the specific Hamiltonian at hand. Then we will focus on the important consequences played by the electron-electron interaction on the spin structure and the level scheme of the system. Finally, we will introduce the variational method for the estimation of the ground state energy.% -\end{abstract}% - - - -\sloppy - - -In todays lecture, we will see how the electron spin couples to the orbital angular momentum and how this creates spin-orbit coupling. We will then start out with the discussion of the Helium atom. - -\section{Spin-orbit coupling} - -The third term, which arises from the Dirac equation is the spin-orbit coupling. We will give here a common hand-waving explanation in a similiar spirit to the discussion of the magnetic moment for given angular momentum \cite{Demtr_der_2010}. Please, be aware that it misses a factor of 2. The electron has a spin 1/2 and hence a magnetic moment $\vec{M}_S = -g_e \mu_B \frac{\vec{S}}{\hbar}$. This magnetic moment experiences a magnetic field, simply due to the motion of the electron charge itself. Assuming a circular motion of the electron, we obtain the magnetic field amplitude: -\begin{align} -B &= \frac{\mu_0 i}{2r}\\ -B &= \frac{\mu_0 ev}{4\pi r^2}\\ -B &= \frac{\mu_0 e}{4\pi m_e r^3}L\\ -\end{align} -Through the coupling with the spin and introducing a fudge factor of 2\footnote{It's proper derivation is left to quantum field theory lectures}, we obtain the Hamiltonian: -\begin{align}\label{Eq:HamLS} -\hat{H}_{LS} = \frac{g_e}{4\pi \epsilon_0}\frac{e^2}{2m_e^2c^2 r^3} \hat{\vec{L}}\cdot \hat{\vec{S}} -\end{align} - -How does it act on a state $\ket{\psi}$? For the example -\begin{align} -\ket{\psi} = \ket{m_l} \otimes \ket{m_s} -\end{align} -we get: -\begin{align} -\hat{L}_z \cdot \hat{S}_z \left( \ket{m_l} \otimes \ket{m_s} \right) -= \hbar^2 m_l \cdot m_s (\ket{m_l} \otimes \ket{m_s}) -\end{align} -The states -% -\begin{align} -\ket{n,l,m_l} \otimes \ket{s,m_s}. -\end{align} -% - -span the complete Hilbert space. Any state of the atom can be represented by: -% -\begin{align} -\ket{\psi} = \sum_{\{n,l,m_l,m_s\}} c_{n,l,m_l,m_s} \ket{n,l,m_l,m_s}. -\end{align} -% -As usual we can massively simplify the problem by using the appropiate conserved quantities. - - - -\subsection{Conservation of total angular momentum} - -We can look into it a bit further into the details and see that the Hamiltonian $\hat{H}_\textrm{LS}$ does not commute with $\hat{L}_z$: -\begin{align} -[L_z, \vec{L}\cdot \vec{S}] &= [L_z, L_x S_x + L_y S_y + L_z S_z]\\ -[L_z, \vec{L}\cdot \vec{S}] &= [L_z, L_x ]S_x + [L_z, L_y ]S_y\\ -[L_z, \vec{L}\cdot \vec{S}] &= i\hbar L_y S_x -i\hbar L_x S_y\neq 0 -\end{align} -This suggests that $L_z$ is not a good quantum number anymore. We have to include the spin degree of freedom into the description. Let us repeat the same procedure for the spin projection: -\begin{align} -[S_z, \vec{L}\cdot \vec{S}] &= [S_z, L_x S_x + L_y S_y + L_z S_z]\\ -[S_z, \vec{L}\cdot \vec{S}] &= L_x [S_z, S_x] + L_y [S_z, S_y]\\ -[S_z, \vec{L}\cdot \vec{S}] &= i\hbar L_x S_y -i\hbar L_y S_x\neq 0 -\end{align} -This implies that the spin projection is not a conserved quantity either. However, the sum of spin and orbital angular momentum will commute $[L_z + S_z, \vec{L}\vec{S}] =0$ according to the above calculations. Similiar calculations hold for the other components, indicating that the \textit{total angular momentum} is conserved \footnote{It should be as there is no external torque acting on the atom}: -\begin{align} -\vec{J} = \vec{L} + \vec{S} -\end{align} -We can now rewrite eq. \eqref{Eq:HamLS} in terms of the conserved quantities through the following following little trick: -\begin{align} -\hat{\vec{J}}^2 &= \left( \hat{\vec{L}} + \hat{\vec{S}} \right) ^2 = \hat{\vec{L}}^2 + 2 \hat{\vec{L}} \cdot \hat{\vec{S}} + \hat{\vec{S}}^2\\ -\hat{\vec{L}} \cdot \hat{\vec{S}} &= \frac{1}{2} \left( \hat{\vec{J}}^2 - \hat{\vec{L}}^2 - \hat{\vec{S}}^2 \right) -\end{align} - - - - -This directly implies that $\hat{J}^2$, $\hat{L}^2$ and $\hat{S}^2$ are new conserved quantities of the system. If we call $\hat{H}_0$ the Hamiltonian of the hydrogen atom, we previously used the complete set of commuting observables \footnote{see lecture 2 for a few words on the definition of such a set }: -\begin{align} -\left\{ \hat{H}_0, \hat{\vec{L}}^2, \hat{L}_z,\hat{\vec{S}}^2, \hat{S}_z \right\} -\end{align} - -We now use the complete set of commuting observables: -\begin{align} -\left\{ \hat{H}_0 + \hat{H}_{LS}, \hat{\vec{L}}^2,\hat{\vec{S}}^2, \hat{\vec{J}}^2, \hat{J}_z \right\}. -\end{align} -The corresponding basis states $\ket{n,l,j,m_j}$ are given by: -% -\begin{align} -\ket{n,l,j,m_j} = \sum_{m_l,m_s} \ket{n, l, m_l, m_s} \underbrace{\braket{n, l, m_l, m_s | n, l, j, m_j}}_{\text{Clebsch-Gordan coefficients}} -\end{align} -% -Here, the Clebsch-Gordan coefficients (cf. \cite{Olive_2014}, p. 557, or \url{http://pdg.lbl.gov/2002/clebrpp.pdf}) describe the coupling of angular momentum states. - - - -\textbf{Example: $l=1$ and $s=1/2$.} - -With the Clebsch-Gordan coefficients, the following example states---given by $Jj$ and $m_j$---can be expressed by linear combinations of states defined by $m_l$ and $m_s$: -% -\begin{align} -\ket{j=\frac{3}{2}, m_j = \frac{3}{2}} &=&& \ket{m_l=1, m_s = +\frac{1}{2}}\\ -\ket{j=\frac{3}{2}, m_j = \frac{1}{2}} &= &\sqrt{\frac{1}{3}} &\ket{m_l=1, m_s = -\frac{1}{2}} +\sqrt{\frac{2}{3}} &\ket{m_l = 0, m_s = +\frac{1}{2}} -\end{align} - -\subsection{Summary of the relativistic shifts} -We can now proceed to a summary of the relativistic effects in the hydrogen atom as presented in Fig. \ref{391959}. - -\begin{itemize} -\item The states should be characterized by angular momentum anymore, but by the total angular momentum $J$ and the orbital angular momentum. We introduce the notation: -\begin{align} -nl_{j} -\end{align} -\item All shifts are on the order of $\alpha^2$ and hence pertubative. -\item Some levels remain degenerate in relativistic theory, most importantly the $2s_{1/2}$ and the $2p_{1/2}$ state. -\end{itemize}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-11-05-um-08-30-48/Bildschirmfoto-2018-11-05-um-08-30-48} -\caption{{Fine structure of the Hydrogen atom. Adapted from~\protect\cite{Demtr_der_2010}~ -Fig. 5.33 -{\label{391959}}% -}} -\end{center} -\end{figure} - -\section{The Lamb shift} - -The previous discussions studied the effects of the Dirac equation onto our understanding of the Hydrogen atom. Most importantly, we saw that we can test those predictions quite well through the shifts in the level scheme. It is possible to push this analysis even further. One particularly important candidate here are the degenerate levels $2s_{1/2}$ and $2p_{1/2}$. Being able to see any splitting here, will be proof physics beyond the Dirac equation. And it is a relative measurement, for which it therefore not necessary to have insane absolute precisions. It is exactly this measurement that Lamb and Retherford undertook in 1947 \cite{Lamb_1947}. They observed actually a splitting of roughly $1$GHz, which they drove through direct rf-transitions. The observed shift was immediately explained by Bethe \cite{Bethe_1947} through the idea of QED a concept that we will come back to later in this lecture in a much simpler context of cavity QED. - -We would simply like to add here that the long story of the hydrogen atom and the Lamb shift is far from over as open questions remained until September 2019. Basically, a group of people measured the radius in some 'heavy' muonic hydrogen very precisely in 2010 \cite{Pohl_2010}. They could only explain them by changing the size of the proton radius, which was previously assumed to be well measured. It was only this year the another team reperformed a similiar measurement on electronic hydrogen (the normal one), obtaining consistent results \cite{Bezginov_2019}. A nice summary of the "proton radius puzzle" can be found \href{https://www.quantamagazine.org/physicists-finally-nail-the-protons-size-and-hope-dies-20190911/}{here}. - -\section{The helium problem} - -In this lecture we will discuss the Helium atom and what makes it so interesting in the laboratory. We will most importantly see that you cannot solve the problem exactly. This makes it a great historical example where a simple system was used to test state-of-the-art theories. An extensive discussion can be found in Chapter 7 of \cite{bransden2003physics} or Chapter 6 of \cite{Demtr_der_2010}. Even nowadays, the system continues to be a nice test-bed of many-body theories \cite{Combescot_2017, Ott_2019}. - -The Helium atom describes a two electron system as shown in the figure below.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/HeliumSketch/HeliumSketch} -\caption{{The helium atom describes two electrons coupled to the nucleus of charge -Z=2.~~ -{\label{982117}}% -}} -\end{center} -\end{figure} - - - -In the reference frame of center-of-mass we obtain the following Hamiltonian: -\begin{equation} -H = -\frac{\hbar^2}{2\mu}\nabla_{r_1}^2 -\frac{\hbar^2}{2\mu}\nabla_{r_2}^2-\frac{\hbar^2}{M}\nabla_{r_1}\cdot\nabla_{r_2}+\frac{e^2}{4\pi \epsilon_0}\left(-\frac{Z}{r_1}-\frac{Z}{r_2}+\frac{1}{r_{12}}\right) -\end{equation} - -The term in the middle is the mass polarization term. We further introduced the reduced mass -\begin{equation} -\mu = \frac{m_eM}{m_e + M} -\end{equation} -For the very large mass differences $M= 7300 m_e \gg m_e$, we can do two simplifications: -\begin{itemize} -\item Omit the term on the mass polarization. -\item Set the reduced mass to the mass of the electron. -\end{itemize} - -So we obtain the simplified Hamiltonian -\begin{equation} -H = -\frac{\hbar^2}{2m_e}\nabla_{r_1}^2 -\frac{\hbar^2}{2m_e}\nabla_{r_2}^2+\frac{e^2}{4\pi \epsilon_0}\left(-\frac{Z}{r_1}-\frac{Z}{r_2}+\frac{1}{r_{12}}\right) -\end{equation} - - - -\section{Natural units} -For simplicity it is actually nice to work in the so-called \textbf{natural units}, where we measure all energies and distance on typical scales. We will start out by measuring all distances in units of $a_0$, which is defined as: -\begin{equation} -a_0 = \frac{4\pi \epsilon_0 \hbar^2}{me^2} = \SI{0.5}{angstrom} -\end{equation} -So we can introduce the replacement: -\begin{equation} -\mathbf{r} = \mathbf{\tilde{r}}a_0 -\end{equation} -So the Hamiltonian reads: -\begin{eqnarray} -H &= -\frac{\hbar^2}{2m_ea_0^2}\nabla_{\tilde{r}_1}^2 -\frac{\hbar^2}{2m_ea_0^2}\nabla_{\tilde{r}_2}^2+\frac{e^2}{4\pi \epsilon_0 a_0}\left(-\frac{Z}{\tilde{r}_1}-\frac{Z}{\tilde{r}_2}+\frac{1}{\tilde{r}_{12}}\right)\\ -H &= -\frac{e^4 m}{2(4\pi\epsilon_0)^2 \hbar^2}\nabla_{\tilde{r}_1}^2 -\frac{e^4 m}{2(4\pi\epsilon_0)^2 \hbar^2}\nabla_{\tilde{r}_2}^2+\frac{e^4 m}{(4\pi \epsilon_0)^2\hbar^2}\left(-\frac{Z}{\tilde{r}_1}-\frac{Z}{\tilde{r}_2}+\frac{1}{\tilde{r}_{12}}\right) -\end{eqnarray} -And finally we can measure all energies in units of -\begin{equation} -E_0 = \frac{e^4 m}{(4\pi\epsilon_0)^2\hbar^2} = \SI{1}{hartree} = \SI{27.2}{eV} -\end{equation} -So the Hamiltonian reads in these natural units: -\begin{equation} -\label{eq:HeliumReduced} -\tilde{H} = -\frac{1}{2}\nabla_{\tilde{r}_1}^2 -\frac{1}{2}\nabla_{\tilde{r}_2}^2+\left(-\frac{Z}{\tilde{r}_1}-\frac{Z}{\tilde{r}_2}+\frac{1}{\tilde{r}_{12}}\right) -\end{equation} -Another, more common, way of introducing this is to define: -\begin{eqnarray} -m &=& \hbar = e = 4\pi \epsilon_0 \equiv 1\\ -\alpha &=& \frac{e^2}{(4\pi \epsilon_0) \hbar c}= \frac{1}{137}\\ -\Rightarrow c &=& \frac{1}{\alpha} -\end{eqnarray} - -Within these units we have for the hydrogen atom: -\begin{equation} -E_n = \frac{Z^2}{2}\frac{1}{n^2}E_0 -\end{equation} - -\textbf{For the remainder of this lecture we will assume that we are working in natural units and just omit the tildas.} - - - -\section{Electron-electron interaction} - -Now we can decompose the Hamiltonian in the following fashion: -\begin{equation} -H = H_1 + H_2 + H_{12} -\end{equation} -So without the coupling term between the electrons we would just have once again two hydrogen atoms. The whole crux is now that the term $H_{12}$ is actually coupling or \textbf{entangling} the two electrons. - - - -\section{Symmetries} - -The \textbf{exchange} operator is defined as: -\begin{align} -P_{12}\psi(r_1,r_2) = \psi(r_2, r_1) -\end{align} -We directly see for \eqref{eq:HeliumReduced} that the exchange operator commutes with the Hamiltonian, $[H,P_{12}] = 0$. This implies directly that the parity is a conserved quantity of the system and that we have a set of Eigenstates associated with the parity. - -We can now apply the operator twice: -\begin{align} -P_{12}^2\psi(r_1,r_2) = \lambda^2 \psi(r_1, r_2) = \psi(r_1, r_2) -\end{align} - -So we can see that there are two sets of eigenvalues with $\lambda = \pm 1$. -\begin{align} -P_{12}\psi_\pm = \pm \psi_\pm -\end{align} - -We will call: -\begin{itemize} -\item $\psi_+$ are para-states -\item $\psi_-$ are ortho-states -\end{itemize} - -This symmetry is a really strong one and it was only recently that direct transitions between ortho and para-states were observed \cite{Kanamori_2017}. Interestingly, we did not need to look into the spin and the Pauli principle for this discussion at all. This will happen in the next step. - -\section{Spin and Pauli principle} - -We have seen that the Hamiltonian \eqref{eq:HeliumReduced} does not contain the spin degree of freedom. So we can decompose the total wave function as: -\begin{equation} -\overline{\psi} = \psi(\mathbf{r}_1, \mathbf{r}_2) \cdot \chi(1,2) -\end{equation} - -\subsection{Spin degree of freedom} - -Given that the electron is $s=\frac{1}{2}$, we can decompose each wavefunction as: -\begin{equation} -\chi = \alpha |\uparrow\rangle + \beta |\downarrow\rangle -\end{equation} -So if the two spins were \textit{not} correlated, we could just write the spin wavefunction as: -\begin{equation} -\chi(1,2) = \chi_\mathrm{1}\cdot\chi_\mathrm{2} -\end{equation} -However, the electron-electron interaction entangles the atoms. An example would be the singlet state: -\begin{equation} -\chi(1,2) = \frac{1}{\sqrt{2}}\left(|\uparrow \downarrow\rangle - |\downarrow\uparrow \rangle\right) -\end{equation} - -To construct the full wave function we need to take into account the \textit{Pauli} principle, which telles us for Fermions that the \textit{full} wavefunction should anti-sysmmetrc under exchange of particles: -\begin{equation} -\overline{\psi}(q_1, q_2, \cdots, q_i,\cdots, q_j, \cdots) = --\overline{\psi}(q_1, q_2, \cdots, q_j,\cdots, q_i, \cdots) -\end{equation} -This tells us that each quantum state can be only occupied by a single electron at maximum. - -Now we can come back to the full wavefunction using the results of the previous section. We have: -\begin{equation} -\overline{\psi}(1,2) = \psi_{\pm}(r_1,r_2)\chi_\mp(1,2) -\end{equation} -with $P_{12}\chi_\pm = \pm \chi_\pm$. Now can once again look for good solutions to this problem. It is basically the total spin $\mathbf{S} = \mathbf{S}_1 + \mathbf{S}_2$, or better $\mathbf{S}^2$. This commutes with both the Hamiltonian and the parity operator, so it is a conserved quantity. Sorting out the solutions we have -\begin{align} -\chi_- &= \frac{1}{\sqrt{2}}\left(|\uparrow\downarrow\rangle - |\downarrow\uparrow\rangle\right)\\ -\chi_{+,1} &= |\uparrow\uparrow\rangle \\ -\chi_{+,1} &= \frac{1}{\sqrt{2}}\left(|\uparrow\downarrow\rangle + |\downarrow\uparrow\rangle\right) \\ -\chi_{+,-1} &= |\downarrow\downarrow\rangle \\ -\end{align} -So $\chi_+$ is associated with spin 1 and $\chi_-$ is associated with spin 0. - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/amo/tex_files/Lecture 9 - More on the Helium atom.tex b/amo/tex_files/Lecture 9 - More on the Helium atom.tex deleted file mode 100644 index 2ce18e0..0000000 --- a/amo/tex_files/Lecture 9 - More on the Helium atom.tex +++ /dev/null @@ -1,424 +0,0 @@ -\documentclass[10pt]{article} - -\usepackage{fullpage} -\usepackage{setspace} -\usepackage{parskip} -\usepackage{titlesec} -\usepackage[section]{placeins} -\usepackage{xcolor} -\usepackage{breakcites} -\usepackage{lineno} -\usepackage{hyphenat} - - - - - -\PassOptionsToPackage{hyphens}{url} -\usepackage[colorlinks = true, - linkcolor = blue, - urlcolor = blue, - citecolor = blue, - anchorcolor = blue]{hyperref} -\usepackage{etoolbox} -\makeatletter -\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{% - \errmessage{\noexpand\@combinedblfloats could not be patched}% -}% -\makeatother - - -\usepackage[round]{natbib} -\let\cite\citep - - - - -\renewenvironment{abstract} - {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize} - {\bigskip} - -\titlespacing{\section}{0pt}{*3}{*1} -\titlespacing{\subsection}{0pt}{*2}{*0.5} -\titlespacing{\subsubsection}{0pt}{*1.5}{0pt} - - -\usepackage{authblk} - - -\usepackage{graphicx} -\usepackage[space]{grffile} -\usepackage{latexsym} -\usepackage{textcomp} -\usepackage{longtable} -\usepackage{tabulary} -\usepackage{booktabs,array,multirow} -\usepackage{amsfonts,amsmath,amssymb} -\providecommand\citet{\cite} -\providecommand\citep{\cite} -\providecommand\citealt{\cite} -% You can conditionalize code for latexml or normal latex using this. -\newif\iflatexml\latexmlfalse -\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}} - -\usepackage[utf8]{inputenc} -\usepackage[ngerman,english]{babel} - - - - - - - - -\usepackage{siunitx} -\usepackage{amsmath} -\newcommand{\bra}[1]{\ensuremath{\left\langle#1\right|}} -\newcommand{\ket}[1]{\ensuremath{\left|#1\right\rangle}} -\newcommand{\braket}[1]{\ensuremath{\left\langle#1\right\rangle}} -\newcommand{\rhohat}{\hat{\rho}} -\newcommand{\tr}[1]{\mathrm{tr}(#1)} -\newcommand{\trarb}[2]{\mathrm{tr}_{#1}(#2)} -\newcommand{\vv}[1]{\mathbf{#1}} -\newcommand*\dif{\mathop{}\!\mathrm{d}} -\newcommand{\eexp}[1]{\mathrm{e}^{#1}} -\newcommand*\ch[1]{\ensuremath{\mathrm{#1}}} - -\begin{document} - -\title{Lecture 9 - More on the Helium atom} - - - -\author[1]{Fred Jendrzejewski}% -\author[2]{Selim Jochim}% -\affil[1]{Kirchhoff-Institut für Physik}% -\affil[2]{Physikalisches Institut der Universität Heidelberg}% - - -\vspace{-1em} - - - - - \date{January 07, 2025} - - -\begingroup -\let\center\flushleft -\let\endcenter\endflushleft -\maketitle -\endgroup - - - - - -\selectlanguage{english} -\begin{abstract} -We will finish our discussion of the Helium atom. Most importantly, we will dive into the strong separation between singlet and triplet states.% -\end{abstract}% - - - -\sloppy - - -In the last lecture \cite{Jendrzejewski}, we saw some important properties of the He atom: -\begin{itemize} -\item Total angular momentum, spin and the electronic quantum number are labelling the states. -\item The exchange symmetry introduces the important distinction between ortho and para-states. -\end{itemize} -Today, we will see how this exchange symmetry enters the level scheme and how it is linked to the spin. - -\section{Level scheme} - -We can now continue through the level scheme of Helium and try to understand our observations. No radiative transitions between $S=0$ and $S=1$, which means that we will basically have two independent schemes. They are characterized by: -\begin{itemize} -\item electronic excitations, which are the main quantum numbers $N$. -\item orbital angular momentum, with quantum number $L$. -\item total spin with quantum number $S$ -\item total angular momentum $J$, but the spin-orbit coupling in Helium is actually extremly small. -\end{itemize} -We will then use the term notation: -\begin{equation} -N ^{2S+1}L_J -\end{equation} -the superscript is giving the multiplicity or the number of different $J$ levels. - -Having the level structure, we are now able to calculate the energies of the different states. We will start out with the ground state and then work our way through the excited states. - - -\section{Independent particle model} - -We will now go back to the influence of the interaction on the eigenenergies of the system. Going back to the Helium atoms, we will treat the single particle Hamiltonians as unperturbed system and $H_{12}$ as the perturbation: -\begin{align} -H_0 &= -\frac{1}{2}\nabla_{r_1}^2 -\frac{Z}{r_1} -\frac{1}{2}\nabla_{r_2}^2 -\frac{Z}{r_2}\\ -H_1 &=\frac{1}{r_{12}} -\end{align} -We now know the solutions to $H_0$, because the factorize: -\begin{align} -\left(\hat{H}_1 + \hat{H}_2\right)|\psi_1\rangle\otimes|\psi_2\rangle = -\left(E_1 + E_2\right)|\psi_1\rangle\otimes|\psi_2\rangle -\end{align} -\subsection{Groundstate energy - perturbative approach} -At this stage we can try to calculate the groundstate energy. We can derive that the unperturbed energy reads: -\begin{equation} -E_0^{(0)}= Z^2\si{hartree} -\end{equation} -The electron interaction leads within first order perturbation theory to an energy shift of: -\begin{equation} -E_0^{(1)}= \langle\psi_0|\frac{1}{r_{12}}|\psi_0\rangle = \frac{5}{8}Z -\end{equation} -We can see that the first order energy shift is actually not that small, so we might start to question perturbation theory. - -\subsection{Groundstate energy - variational approach} - -In the variational approach, we will try to find the minimal energy of the ground state. Namely we will minimize: -\begin{equation} -E_{var} = \frac{\langle\psi|\hat{H}|\psi\rangle}{\langle\psi|\psi\rangle} -\end{equation} -We can actually proof that this works nicely within a few lines. For that we will expand our trial function $|\psi\rangle$ into the (unknown) eigenstates of $\hat{H}$: -\begin{equation} -|\psi\rangle = \sum_n c_n |\psi_n\rangle -\end{equation} -For the energies this implies: -\begin{equation} -\hat{H}|\psi_n\rangle = E_n|\psi_n\rangle -\end{equation} -So we end up with: -\begin{align} -\langle \psi|H|\psi\rangle - E_0 &= \sum_n E_n c_n^*c_n - E_0 \sum_n c_n^*c_n\\ -&= \sum_n (E_n-E_0)|c_n|^2 \geq 0 -\end{align} -So the variational principle always gives an upper bound on the ground state energy. The question is how good is this bound in each individual case. - -To apply the variational approach, we will introduce a variational parameter. This parameter is typically guessed from physical intuition. Here it will be the charge, which will be replaced by an \textit{screened charge} $Z_{eff}$. - - - -As variational wavefunction, we will employ the groundstate of the hydrogen atom, which reads: -\begin{align} -\psi_{var}(r_1, r_2) = e^{-Z_{eff}(r_1+r_2)} -\end{align} -We find then that the total energy is: -\begin{equation} -E_{var}^0 = Z_{eff}^2 -2ZZ_{eff}+\frac{5}{8}Z_{eff} -\end{equation} -It becomes minimal at -\begin{align} -Z_{eff} = Z- \frac{5}{16} -\end{align} -So at this stage, we might compare the different levels of approximation to the experimental result: -\begin{itemize} -\item The experimental observation is $E_{exp}^0=-2.90372$ hartree -\item The independent particle model predicts $E^0 = -4 $ hartree. -\item First order pertubation theory predicts $E^0 = -2,709$ hartree. -\item The variational principle predicts $E^0 = -2.84$ hartree. -\end{itemize} -The best theories achieve an accuracy of $10^{-7}$ \cite{Hertel_2015} Chapter 7.2.5. - - - - - - -\section{Exchange Interaction} -Up to now we focused on the ground state properties of the $1^ -1S$ state. In the next step we will try to understand the influence of the interaction term on the excited states (c.f. \cite{Hertel_2015} Chapter 7). To attack this problem we will approach it pertubatively. - -We saw that we could factorize the full wavefunction into external and internal degrees of freedom. Further, we have the singlet $\chi_S$ (anti-symmetric) and triplet states $\chi_T$ (symmetric) for the spin. This can now be combined too: -\begin{align} -\overline{\psi}_S(1,2) &= \psi_{+}(r_1, r_2)\chi_S(1,2)\\ -\overline{\psi}_T(1,2) &= \psi_{-}(r_1, r_2)\chi_T(1,2)\\ -\end{align} - -In a next step, we can construct $\psi_{\pm}$ from the eigenstates of the unperturbed Hamiltonian. We define the states $\ket{q_1} \equiv \ket{n_1,l_1,m_1}$ and $\ket{q_2} \equiv \ket{n_2,l_2,m_2}$. The properly symmetrized states are: -% -\begin{align} -\ket{\psi_\pm} = \frac{1}{\sqrt{2}}\left( \ket{q_1}_1 \otimes \ket{q_2}_2 \pm \ket{q_2}_1 \otimes \ket{q_1}_2 \right) -\end{align} -Now we can perform an estimate of the energy shift on these states. -\begin{align} -\Delta E_{S,T} &= \bra{\overline{\psi}_{S,T} }\frac{1}{\hat{r}_{12}} \ket{\overline{\psi}_{S,T}}\\ -&= \bra{\psi_{+,-} }\frac{1}{\hat{r}_{12}} \ket{\psi_{+,-} } -\end{align} -We then get -% -\begin{align} -\Delta E_{S,T} &= \frac{1}{2} \left(\bra{q_1 q_2 } \pm \bra{q_2 q_1}\right) \left| \frac{1}{\hat{r}_{12}} \right| \left( \ket{q_1 q_2} \pm \ket{q_2 q_1} \right)\\ -&= \bra{q_1 q_2} \frac{1}{\hat{r}_{12}}\ket{q_1 q_2} \pm \bra{q_1 q_2} \frac{1}{\hat{r}_{12}} \ket{q_2 q_1} -\end{align} -So we summarize: -\begin{align} -\Delta E_S &= J_{nl} + K_{nl}\\ -\Delta E_T &= J_{nl} - K_{nl} -\end{align} - -The first term is called \emph{direct} (Coulomb) term and the second term is known as \emph{exchange} term. If we integrate the direct term, we get: - -\begin{align} -J_{nl} &= \int \int \psi_{q_1}^*\left(\vec{r}_1\right) \psi_{q_2}^* \left(\vec{r}_2\right) \frac{1}{r_{12}} \psi_{q_1} \left(\vec{r}_1\right) \psi_{q_2} \left(\vec{r}_2\right) \dif \vec{r}_1 \dif \vec{r}_2 \\ -&= \int \int \left| \psi_{q_1} \left(\vec{r}_1\right) \right|^2 \left| \psi_{q_2}\left(\vec{r}_2\right) \right|^2 \frac{1}{r_{12}} \dif \vec{r}_1 \dif \vec{r}_2. -\end{align} -This is Coulomb repulsion. - - - - -\subsection{Exchange term} -The integration of the exchange term yields: -% -\begin{align} -K = \bra{q_1 q_2} \frac{1}{r_{12}} \ket{q_2 q_1} = \int \psi_{q_1}^* \left(\vec{r}_1\right) \psi_{q_2}^* \left( \vec{r}_2 \right) \frac{1}{r_{12}} \psi_{q_2}\left(\vec{r}_1\right) \psi_{q_1} \left( \vec{r}_2 \right) \dif \vec{r}_1 \dif \vec{r}_2 -\end{align} -To understand it a bit better, we can rewrite it in a more transparent way in terms of the spin operator, which measures the difference between the singlet and the triplet state. Especially suited is: -\begin{align} -\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2 &= \frac{1}{2} \left(\hat{\vec{S}}^2 - \hat{\vec{S}}_1^2 - \hat{\vec{S}}_2^2 \right)\\ -\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2 \chi_T &= \frac{1}{4} \chi_T\\ -\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2 \chi_S &= -\frac{3}{4} \chi_S -\end{align} -This allows us to rewrite the splitting in terms of an effective Hamiltonian - -\begin{align} -\hat{H}_\text{eff} = J_{nl} + \frac{1}{2}\left(1+ 4\hat{\vec{S}}_1 \cdot \hat{\vec{S}}_2\right) K_{nl} -\end{align} - -\section{Obtained energy shifts.} - -As an example, we have a look at the energy shifts (see \ref{955156}) for two electrons in the states defined by: -% -\begin{align} -&q_1:& &n_1=1,& &l_1 = 0\\ -&q_2:& &n_2=2,& &l_2= 0,1 -\end{align} -% -The $2^3S$ level for example corresponds to the state -\begin{align} -\frac{1}{\sqrt{2}} \left( \ket{1s2s} - \ket{2s1s} \right) \otimes \ket{\uparrow \uparrow} -\end{align}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/Bildschirmfoto-2018-10-01-um-07-47-36/Bildschirmfoto-2018-10-01-um-07-47-36} -\caption{{Obtained energy shifts. -{\label{955156}}% -}} -\end{center} -\end{figure} - -This splitting is in the order of 0.25eV and hence much larger than the typical spin-orbit coupling. This explains, why the coupling to the total angular momentum $J$ remains largely ignored for helium. - -\section{Summary: Structure of the {He} Atom} - -\begin{itemize} -\item In the independent particle model, a state is determined by: -\begin{align} -\ket{n_1 l_1 m_1} \otimes \ket{n_2 l_2 m_2 } -\end{align} -\item Only one electron can be electronically excited to a stable state. An excellent discussion of the auto-ionization can be found in Sec. 1.3 of \cite{Grynberg_2009}. Thus, $N$ is the quantum number of the electronic excitation. - -\item Ignoring the spin degree of freedom, the eigenstates have a discrete symmetry with respect to particle exchange. The \ch{He} eigenstates are therefore either in a \emph{triplet} or in a \emph{singlet} state. Here, we are talking about the symmetry with respect to the exchange of two particles. No inversion of space is done here! -% -Why can we not assume a finite mass of the nucleui in order to describe two electrons by hydrogenic wave functions? The nucleus' motion would introduce an additional coupling term between the electrons -% -%We can introduce an effective term called the Heisenberg exchange term??? -\item The quantum number $L$ stands for the total orbital angular momentum. - -\item There is another conserved quantity we have not discussed yet: The total angular momentum -\begin{align} -\hat{\vec{J}} = \hat{\vec{L}} + \hat{\vec{S}}. -\end{align} -\textbf{Note.} For \ch{^4He}, there is no nuclear spin, meaning that there is no hyperfine structure. -\end{itemize} - -Let us now have a look at the level scheme of the helium atom as depicted in \ref{124335}. - -\textbf{Note.} The general notation used in \ref{124335} is -\begin{align} -N^{2S+1}L_J, -\end{align} -where $2S+1$ denotes the multiplicity of the spin.\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/helevelscheme/helevelscheme} -\caption{{Level scheme of singlet and triplet states of the helium atom from L=0 -up to L=3. The ground state 1\textsuperscript{1}S\textsubscript{0} is -chosen to have the energy E=0. Taken from~\protect\cite{Demtr_der_2010}. -{\label{124335}}% -}} -\end{center} -\end{figure} - -\begin{itemize} -\item The fact that we can write the state down with a well-defined $S$ and $L$ is called $LS$ or Russell-Saunders coupling. All $s_i$ couple to $S = \sum_i s_i$ and all $l_j$ couple to $L=\sum_j l_j$. There is no coupling between the spin and the spatial degree of freedom! -\end{itemize} - -\begin{itemize} -\item We have introduced an effective spin interaction, but we have ignored the ``real'' interactions between the spins! What does it mean? How should we introduce it if we wanted to? How can we find out whether what we did is justifiable? -\item The dipole interaction between two spins is %(Magnetic moment associated with spin (1 Bohr magneton). Compass needles with interaction between them) -\begin{align} -\sim\frac{\mu_0(g \mu_B/2)^2}{4\pi \hbar d^3} = \frac{\alpha^2}{4} \;(\text{a.u.}) -\end{align} -where $\mu_0 = 4\pi \alpha^2$, $\mu_B=1/2$, $\hbar=1$, and $d\approx~a_0~=~1$. -Compared to the energy difference between $2^1S$ and $2^3S$ ---which is $>\alpha^2$ and on the order of \si{\electronvolt}---it is a very small effect. - -%Comes not from spin interaction...? -% -\item Also, we have ignored the spin-orbit interaction of each electron between its own spin and its orbital angular momentum. From the hydrogen atom we know that the energy for the spin-orbit interaction -\begin{align} -E_\textrm{ls} \propto (Z\alpha)^2 -\end{align} -% -is very strongly suppressed compared to the exchange interaction and the Coulomb repulsion. - -\textbf{Note.} This will be different for heavy atoms, where $Z$ is large. -\end{itemize} - -\section{Dipole Selection Rules in Helium}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/hegasdischarge/hegasdischarge} -\caption{{Emission lines of helium. Taken from~\protect\cite{wikipedia}. -{\label{372421}}% -}} -\end{center} -\end{figure}\selectlanguage{english} -\begin{figure}[h!] -\begin{center} -\includegraphics[width=0.70\columnwidth]{figures/hetransitions/hetransitions} -\caption{{Possible transitions within the singlet and triplet system of helium. -Taken from~\protect\cite{Demtr_der_2010} . -{\label{585159}}% -}} -\end{center} -\end{figure} - -If helium atoms are excited in a gas discharge, one can see characteristic emission lines (see \ref{372421}). In \ref{585159} the major dipole transitions are plotted. The singlet and triplet levels are always plotted separately and there is no transition between a singlet and a triplet state. Because of this observation, people thought in the beginning that there were two different types of helium (``para'' and ``ortho''). %Kirchhoff used spectroscopy to identify. How come that this is observed by this? - -The rules for transitions to occur are determined by the dipole matrix element containing the initial state $i$ and the final state $f$: -\begin{align} \label{eq:ifmatrixelement} -\braket{i|\hat{\vec{r}}|f}. -\end{align} - -Due to the $LS$ coupling scheme, we get: %Orbital wave function depending on orbital wfcts times some spin wavefunction -\begin{align} -\ket{\psi(\vec{r}_1, \vec{r}_2)} \otimes \ket{\chi (1,2)}. -\end{align} -There is no entanglement between the degrees of freedom and no mixed symmetry between spin and spatial degree of freedom! If we plug this into \eqref{eq:ifmatrixelement} and multiply it out, we get, because the operator $\hat{\vec{r}}$ does not act on the spin degree of freedom: -%We can multiply it out. What happens to spin dof if we multiply it out? . position operator does not act on -\begin{align} -\braket{i|\hat{\vec{r}}\,|f} = \braket{\chi(1,2) | \chi'(1,2)} \cdot \braket{\psi(\vec{r}_1, \vec{r}_2)|\hat{\vec{r}} \,| \psi'(\vec{r}_1, \vec{r}_2)} -\end{align} -\begin{enumerate} -\item The first factor has to be zero if the total spin is not the same. Then the relative alignment is not the same. Thus, there are no dipole transitions between singlet and triplet atoms! -\item From the second factor we infer that transitions can only occur between states of opposite parity, e.g., $\Delta l = \pm 1$, together with angular momentum conservation. -\end{enumerate} - -\selectlanguage{english} -\FloatBarrier -\bibliographystyle{plainnat} -\bibliography{bibliography/converted_to_latex.bib% -} - -\end{document} - diff --git a/assets/chunks/chunk-1FbNI5qA.js b/assets/chunks/chunk-1FbNI5qA.js new file mode 100644 index 0000000..bee5bdb --- /dev/null +++ b/assets/chunks/chunk-1FbNI5qA.js @@ -0,0 +1,44 @@ +const e=[{title:"Hello World",content:` +This is the first post. It shows that the whole thing is working out nicely.`,publishing_date:"2024-12-02"},{title:"Ideas behind the blog stack",content:` +Over the last few years I kept writing notes and code in all kind of different ways. Sometimes I would use Wordpress, personal notes, markdown or Jupyter notebooks. They get saved in some repo and there you go. But these days I would like to bring them slowly together into some more common structure, i.e. on one common website. + +My rather heavy reliance on Jupyter notebooks and markdown really mostly ruled out Wordpress. I also really like the ideas behind static site generators. They are simple, fast and can be version controlled. Then I had to choose the appropiate stack. The first logical idea would have been [mkdocs-material](https://squidfunk.github.io/mkdocs-material/). I have made great experiences with it in the past. It is super simple to set up, very configurable and it looks great. However, I recently started to have a deeper look into proper web tech of the type of React and it is simply sooo much more natural to work with those components etc. + +Having settled on _React_, I first thought that it is totally enough to work with [create-react-app](https://create-react-app.dev/). However, you soon realize that there have been no releases over the last few years and that the project is not really maintained anymore. A cute little solution was then [nano-react-app](ttps://github.com/nano-react-app/nano-react-app). It is a super minimalistic setup and worked well as I started to play around. + +This got me far enough with a single webpage. But as I wanted to have a blog with multiple posts, I had to think about how to structure the whole thing. And this is the moment where you need some kind of routers. And this is the moment, where I had to learn what react meant with the following statement [on their website](https://react.dev/learn/start-a-new-react-project): + +> If you want to build a new app or a new website fully with React, we recommend picking one of the React-powered frameworks popular in the community. +> +> You can use React without a framework, however we’ve found that most apps and sites eventually build solutions to common problems such as code-splitting, routing, data fetching, and generating HTML. These problems are common to all UI libraries, not just React. +> +> By starting with a framework, you can get started with React quickly, and avoid essentially building your own framework later. + +I really wanted to avoid this blow at the beginning but with the need for multiple pages I had to dive into this. After some research, I settled on [vike](https://vike.dev/). It provides everything I need and super flexible. It also has a bit of an indie vibe, which made it more sympathic. Finally setting it up is made quite easy with [create-bati](https://batijs.dev). + +So here we are. I have a blog stack that I can work with. It is not perfect but it is a start. I will keep you updated on how it goes.`,publishing_date:"2025-01-03"},{title:"Moving old lectures",content:` +In my time in academia, I gave a few lectures on various topics. They are saved as latex, markdown, jupyter notebook, whatever you want. But to get started, I decided to move over a number of lectures on AMO that I gave for several years. + +I had them all saved on a website called Authorea and could export them directly as latex. So what could be easier than just importing them right ? + +## Challenge 1: Loading the markdown + +It was really quite straight forward to convert the files through pandoc with the command \`pandoc MY__INPUT_FILE.tex -s -o MY_FILE.md\`. However, once you have markdown I have to import it into the website. And it is really at this stage where my little python world crumbles. You have the habit that files are yours and any access from any script is identical. However, within the world of javascript, I suddenly had to think about strange things like clients / servers / build times etc. In the end, I chose a solution similiar to the one described by [vike](https://vike.dev/markdown) with a little script that converts the markdown into a json file. This json file is then loaded into the website without the need of any \`fs\`. + +## Challenge 2: Equations and references + +The first challenge, already existed for the blogs in general. But now I also had to handle equations and references. To render them you need a surprising amount of extensions to remark including: + +- [rehype-katex](https://www.npmjs.com/package/rehype-katex) for compiling the equations. +- [remark-gfm](https://github.com/remarkjs/remark-gfm) for references in footnotes +- [remark-math](https://www.npmjs.com/package/remark-math) for compiling equations. + +Despite all of those packages I needed to write a processing script that removed equation labels, equation alignements and also keep the spacing right. All in all it is nicer to use latex for long documents ... + +## Challenge 3: Images + +Now I was already quite proud about the result, but then I realized that the images were not loading. Remember how I was loading markdown into a \`json\` ? Well this messed up the references to images in production. So I had to copy the images into public folder. Further, I had to find a way to keep the images at an appropiate size. This worked nicely with the \`img\` link, but to have this you must allow for [rehype-raw](https://www.npmjs.com/package/rehype-raw). But then it was all good. + +## Conclusion + +Building up this kind of content management is really only for the curious. Otherwise, projects like docusaurus or astro are much more suited. But now I have a cute little system puzzled together and can extend it at will. All of this with a very limited amount of complexity. FWIW, the code can be [found here](https://github.com/fretchen/fretchen.github.io).`,publishing_date:"2025-01-06"}];export{e as b}; diff --git a/assets/chunks/chunk-69ijPTbK.js b/assets/chunks/chunk-69ijPTbK.js new file mode 100644 index 0000000..2d723c2 --- /dev/null +++ b/assets/chunks/chunk-69ijPTbK.js @@ -0,0 +1 @@ +import{j as s,c as r}from"./chunk-DjXTsExv.js";import{b as i}from"./chunk-1FbNI5qA.js";const o=function(){return s.jsx("div",{className:"BlogList",children:[...i].reverse().map((t,e)=>s.jsxs("div",{style:{marginBottom:"20px"},children:[t.publishing_date&&s.jsx("p",{style:{marginBottom:"5px"},children:t.publishing_date}),s.jsxs(r,{href:`/blog/${i.length-1-e}`,children:[" ",s.jsxs("h2",{style:{marginTop:"0"},children:[" ",t.title," "]})]})]},i.length-1-e))})};export{o as B}; diff --git a/assets/chunks/chunk-B6MK7gFR.js b/assets/chunks/chunk-B6MK7gFR.js new file mode 100644 index 0000000..e193033 --- /dev/null +++ b/assets/chunks/chunk-B6MK7gFR.js @@ -0,0 +1 @@ +const e=JSON.parse(`[{"title":"Lecture 1 - Some cooking recipes for Quantum Mechanics","content":"\\nIn this first lecture we will review the foundations of quantum\\nmechanics at the level of a cooking recipe. This will enable us to use\\nthem later for the discussion of the atomic structure and interaction\\nbetween atoms and light.\\n\\nThis is the first lecture of the Advanced Atomic Physics course at\\nHeidelberg University, as tought in the wintersemester 2019/2020. It is\\nintended for master students, which have a basic understanding of\\nquantum mechanics and electromagnetism. In total, we will study multiple\\ntopics of modern atomic, molecular and optical physics over a total of\\n24 lectures, where each lectures is approximately 90 minutes.\\n\\n- We will start the series with some basics on quantum mechanics.\\n\\n- Then work our way into the harmonic oscillator and the hydrogen\\n atom.\\n\\n- We will then leave the path of increasingly complex atoms for a\\n moment to have some fun with light-propagation, lasers and\\n discussion of the Bell inequalities.\\n\\n- A discussion of more complex atoms gives us the acutual tools at\\n hand that are in the lab.\\n\\n- This sets up a discussion of di-atomic molecules, which ends the\\n old-school AMO.\\n\\n- We move on to quantized atom-light interaction, the Jaynes Cummings\\n model and strong-field lasers.\\n\\n- We will finally finish with modern ways to implement quantum\\n simulators and quantum computers.\\n\\nThe topics of the lectures will be discussed in more details in the\\nassociated tutorials.\\n\\n# Introduction\\n\\nIn AMO physics we will encounter the consequences of quantum mechanics\\nall the time. So we will start out with a review of the basic\\ningredients to facilitate the later discussion of the experiments.\\n\\nSome good introductions on the traditional approach can be found in\\n[^2002], [^2006], [^CT1], [^CT2]. Previously, we mostly followed the discussion\\nof Ref. [^2006]. Nowadays, I also recommend the works by Scott Aaronson in [this](https://scottaaronson.com/democritus/lec9.html) and [this lecture](https://www.scottaaronson.com/barbados-2016.pdf). There is also a good [article by\\nQuanta-Magazine](https://www.quantamagazine.org/quantum-theory-rebuilt-from-simple-physical-principles-20170830/#)\\non the whole effort to derive quantum mechanics from some simple\\nprinciples. This effort started with [this paper](https://arxiv.org/abs/quant-ph/0101012v4), which actually\\nmakes for a nice read.\\n\\nBefore we start with the detailled cooking recipe let us give you some\\nexamples of quantum systems, which are of major importance throughout\\nthe lecture:\\n\\n1. _Orbit in an atom, molecule etc_. Most of you might have studied\\n this during the introduction into quantum mechanics.\\n\\n2. _Occupation number of a photon mode_. Any person working on quantum\\n optics has to understand the quantum properties of photons.\\n\\n3. _Position of an atom_ is of great importance for double slit\\n experiments, the quantum simulation of condensed matter systems with\\n atoms, or matterwave experiments.\\n\\n4. The _spin degree of freedom_ of an atom like in the historical\\n Stern-Gerlach experiment.\\n\\n5. The classical coin-toss or bit, which connects us nicely to simple\\n classical probability theory or computing\\n\\n# The possible outcomes (the Hilbert Space) for the Problem in Question\\n\\nThe first step is to identify the right Hilbert space for your problem.\\nFor a classical problem, we would simply list all the different possible\\noutcomes in a list $$(p_1, \\\\cdots, p_N)$$ of _real_ numbers. As one of the\\noutcomes has to happen, we obtain the normalization condition:\\n\\n\`\`\`math\\n \\\\sum_i p_i = 1\\n\`\`\`\\n\\nIn quantum mechanics, we follow a similar approach of first identifying\\nthe possible outcomes. But instead of describing the outcomes with real\\nnumbers, we now associate a complex number $$\\\\alpha_i$$ to each outcome\\n$$(\\\\alpha_1, \\\\cdots, \\\\alpha_N)$$, with $$\\\\alpha_i \\\\in \\\\mathbb{C}$$. Given\\nthat they should also describe some probability they have to be\\nnormalized to one, but now we have the condition:\\n\\n$$\\n\\\\sum_i |\\\\alpha_i|^2 = 1\\n$$\\n\\nAaronson claims that this is just measuring probabilities in in $L_2$\\nnorm. I would highly recommend his discussions on his blog for a more\\ninstructive derivation[@quantum]. Next we will not use the traditional\\nlists, but the bra-ket notation, by writing:\\n\\n$$\\n\\\\left|\\\\psi\\\\right\\\\rangle = \\\\sum_i \\\\alpha_i \\\\left|i\\\\right\\\\rangle\\n$$\\n\\nAnd given that these are complex vectors, we will measure their overlap\\nthrough a Hermitian scalar product\\n\\n$$\\n\\\\langle\\\\psi_1 \\\\psi_2\\\\rangle=(\\\\langle{\\\\psi_2}| \\\\psi_1\\\\rangle)^*.\\n$$\\n\\n## The coin toss\\n\\nThe situation becomes particularly nice to follow for the two level\\nsystem or the coin toss. In classical systems, we will get heads up\\n$\\\\uparrow$ with a certain probability p. So the inverse $\\\\downarrow$\\narrives with likelyhood $1-p$. We would then classical list the\\nprobabilities with $(p,1-p)$. In the quantum world we achieve such a\\ncoin for example in spin 1/2 systems or qubits in general. We will then\\ndescribe the system through the state:\\n\\n$$\\n\\\\left|\\\\psi\\\\right\\\\rangle = \\\\alpha_\\\\uparrow \\\\left|\\\\uparrow\\\\right\\\\rangle + \\\\alpha_\\\\downarrow \\\\left|\\\\downarrow\\\\right\\\\rangle \\\\qquad \\\\text{with} \\\\; \\\\langle\\\\psi | \\\\psi\\\\rangle = 1.\\n$$\\n\\nThe next problem is how to act on the system in the classical world or\\nin the quantum world.\\n\\n## Quantum rules\\n\\nHaving set up the space on which we want to act we have to follow the\\nrules of quantum mechanics. The informal way of describing is actually\\nnicely described by Chris Monroe [in this\\nvideo](https://youtu.be/CC7nlBM2cSM). We might summarize them as\\nfollows:\\n\\n1. Quantum objects can be in several states at the same time.\\n\\n2. Rule number one only works when you are not looking.\\n\\nThe more methematical fashion is two say that there two ways of\\nmanipulating quantum states:\\n\\n1. Unitary transformations $\\\\hat{U}$.\\n\\n2. Measurements.\\n\\n# Unitary transformations\\n\\nAs states change and evolve, we know that the total probability should\\nbe conserved. So we transform the state by some operator $\\\\hat{U}$,\\nwhich just maps the state\\n$\\\\left|\\\\psi\\\\right\\\\rangle\\\\xrightarrow[]{U}\\\\left|\\\\psi'\\\\right\\\\rangle$.\\nThis should not change the norm, and we obtain the condition:\\n\\n$$\\n\\\\left\\\\langle\\\\psi\\\\right|\\\\hat{U}^\\\\dag\\\\hat{U} \\\\left|\\\\psi\\\\right\\\\rangle = 1\\\\\\\\\\n\\\\hat{U}^\\\\dag\\\\hat{U} = \\\\mathbb{1}\\n$$\\n\\nThat's the very definition of unitary operators and\\nunitary matrices. Going back to the case of a coin toss, we see that we\\ncan then transform our qubit through the unitary operator:\\n\\n$$\\n\\\\hat{U}=\\\\frac{1}{\\\\sqrt{2}}\\\\left(\\\\begin{array}{cc}\\n1 & -1\\\\\\\\\\n1 & 1\\n\\\\end{array}\\\\right)\\n$$\\n\\nApplying it on the previously defined states $\\\\uparrow$\\nand $\\\\downarrow$, we get the superposition state:\\n\\n$$\\n\\\\hat{U}\\\\left|\\\\uparrow\\\\right\\\\rangle = \\\\frac{\\\\left|\\\\uparrow\\\\right\\\\rangle-\\\\left|\\\\downarrow\\\\right\\\\rangle}{\\\\sqrt{2}}\\\\\\\\\\n\\\\hat{U}\\\\left|\\\\downarrow\\\\right\\\\rangle = \\\\frac{\\\\left|\\\\uparrow\\\\right\\\\rangle+\\\\left|\\\\downarrow\\\\right\\\\rangle}{\\\\sqrt{2}}\\n$$\\n\\nAs we use the unitary matrices we also see why we might\\none to use complex numbers. Imagine that we would like to do something\\nthat is roughly the square root of the unitary, which often just means\\nthat the system should evolve for half the time as we will see later. If\\nwe then have negative nummbers, they will immediately become imaginary.\\n\\nSuch superposition would not be possible in the classical case, as\\nnon-negative values are forbidden there. Actually, operations on\\nclassical propability distributions are only possible if every entry of\\nthe matrix is non-negative (probabilities are never negative right ?)\\nand each column adds up to one (we cannot loose something in a\\ntransformation). Such matrices are called .\\n\\n# Observables and Measurements\\n\\nAs much fun as it might be to manipulate a quantum state, we also have\\nto measure it and how it connects to the properties of the system at\\nhand. Any given physical quantity $A$ is associated with a Hermitian\\noperator $\\\\hat{A} = \\\\hat{A}^\\\\dag$ acting in the Hilbert space of the\\nsystem, which we defined previously. Please, be utterly aware that those\\nHermitian operators have absolutely no need to be unitary. However, any\\nunitary operator might be written as $\\\\hat{U}= e^{i\\\\hat{A}}$.\\n\\nIn a _measurement_ , the possible outcomes are then the eigenvalues\\n$a_\\\\alpha$ of the operator $\\\\hat{A}$:\\n\\n$$\\n\\\\hat{A}\\\\left|\\\\alpha\\\\right\\\\rangle=a_{\\\\alpha}\\\\left|\\\\alpha\\\\right\\\\rangle.\\n$$\\n\\nThe system will collapse to the corresponding\\neigenvector and the probability of finding the system in state\\n$\\\\left|\\\\alpha\\\\right\\\\rangle$ is\\n\\n$$\\nP(\\\\left|\\\\alpha\\\\right\\\\rangle)=||\\\\hat{P}_{\\\\left|\\\\alpha\\\\right\\\\rangle} \\\\left|\\\\psi\\\\right\\\\rangle||^2 = \\\\left\\\\langle\\\\psi\\\\right| \\\\hat{P}^{\\\\dag}_{\\\\left|\\\\alpha\\\\right\\\\rangle} \\\\hat{P}_{\\\\left|\\\\alpha\\\\right\\\\rangle} \\\\left|\\\\psi\\\\right\\\\rangle,\\n$$\\n\\nwhere\\n$\\\\hat{P}_{\\\\left|\\\\alpha\\\\right\\\\rangle}= \\\\left|\\\\alpha\\\\right\\\\rangle \\\\left\\\\langle\\\\alpha\\\\right|$.\\n\\nAs for our previous examples, how would you measure them typically, i.e.\\nwhat would be the operator ?\\n\\n1. In atoms the operators will be angular moment, radius, vibrations\\n etc.\\n\\n2. For the occupation number we have nowadays number counting\\n photodectors.\\n\\n3. The position of an atom might be detected through high-resolution\\n CCD cameras.\\n\\n4. For the _measurement of the spin_, we typically correlate the\\n internal degree of freedom to the spatial degree of freedom. This is\\n done by applying a magnetic field gradient acting on the magnetic\\n moment $\\\\hat{\\\\vec{\\\\mu}}$ , which in turn is associated with the spin\\n via $\\\\hat{\\\\vec{\\\\mu}} = g \\\\mu_B \\\\hat{\\\\vec{s}}/\\\\hbar$, where $g$ is\\n the Landé $g$-factor and $\\\\mu_B$ is the Bohr magneton . The energy\\n of the system is $\\\\hat{H} = -\\\\hat{\\\\vec{\\\\mu}} \\\\cdot \\\\vec{B}$.\\n\\n# Time Evolution\\n\\nBeing able to access the operator values and intialize the wavefunction\\nin some way, we also want to have a prediction on its time-evolution.\\nFor most cases of this lecture we can simply describe the system by the\\nnon-relativistic **Schrödinger Equation.** It reads\\n\\n$$\\ni\\\\hbar\\\\partial_t\\\\left|\\\\psi(t)\\\\right\\\\rangle=\\\\hat{H}(t)\\\\left|\\\\psi(t)\\\\right\\\\rangle.\\n$$\\n\\nIn general, the Hamilton operator $\\\\hat{H}$ is\\ntime-dependent. For a time-independent Hamilton operator $\\\\hat{H}$, we\\ncan find eigenstates $\\\\left|\\\\phi_n\\\\right\\\\rangle$ with\\ncorresponding eigenenergies $E_n$ :\\n\\n$$\\n\\\\hat{H}\\\\left|\\\\phi_n\\\\right\\\\rangle=E_n\\\\left|\\\\phi_n\\\\right\\\\rangle.\\n$$\\n\\nThe eigenstates $\\\\left|\\\\phi_n\\\\right\\\\rangle$\\nin turn have a simple time evolution:\\n\\n$$\\n \\\\left|\\\\phi_n(t)\\\\right\\\\rangle=\\\\left|\\\\phi_n(0)\\\\right\\\\rangle\\\\cdot \\\\exp{-i E_nt/\\\\hbar}.\\n$$\\n\\nIf we know the initial state of a system\\n\\n$$\\n\\\\left|\\\\psi(0)\\\\right\\\\rangle=\\\\sum_n \\\\alpha_n\\\\left|\\\\phi_n\\\\right\\\\rangle,\\n$$\\n\\nwhere $\\\\alpha_n=\\\\langle\\\\phi_n | \\\\psi(0)\\\\rangle$, we will\\nknow the full dimension time evolution\\n\\n$$\\n\\\\left|\\\\psi(t)\\\\right\\\\rangle=\\\\sum_n\\\\alpha_n\\\\left|\\\\phi_n\\\\right\\\\rangle\\\\exp{-i E_n t/\\\\hbar}. \\\\;\\\\, \\\\text{(Schrödinger picture)}\\n$$\\n\\n**Note.** Sometimes it is beneficial to work in the\\nHeisenberg picture, which works with static ket vectors\\n$\\\\left|\\\\psi\\\\right\\\\rangle^{(H)}$ and incorporates the time\\nevolution in the operators. [^1] In certain cases one would have to have\\naccess to relativistic dynamics, which are then described by the **Dirac\\nequation**. However, we will only touch on this topic very briefly, as\\nit directly leads us into the intruiging problems of **quantum\\nelectrodynamics**.\\n\\n## The Heisenberg picture\\n\\nAs mentionned in the first lecture it can benefitial to work in the\\nHeisenberg picture instead of the Schrödinger picture. This approach is\\nwidely used in the field of many-body physics, as it underlies the\\nformalism of the second quantization. To make the connection with the\\nSchrödinger picture we should remember that we have the formal solution\\nof\\n\\n$$\\n\\\\left|\\\\psi(t)\\\\right\\\\rangle = \\\\mathrm{e}^{-i\\\\hat{H}t}\\\\left|\\\\psi(0)\\\\right\\\\rangle\\n$$\\n\\nSo, if we would like to look into the expectation value\\nof some operator, we have:\\n\\n$$\\n\\\\langle\\\\hat{A}(t)\\\\rangle = \\\\left\\\\langle\\\\psi(0)\\\\right|\\\\mathrm{e}^{i\\\\hat{H}t}\\\\hat{A}_S\\\\mathrm{e}^{-i\\\\hat{H}t}\\\\left|\\\\psi(0)\\\\right\\\\rangle\\n$$\\n\\nThis motivates the following definition of the operator\\nin the Heisenberg picture:\\n\\n$$\\n \\\\hat{A}_H=\\\\mathrm{e}^{i{\\\\hat{H} t}/{\\\\hbar}} \\\\hat{A}_S \\\\mathrm{e}^{-i{\\\\hat{H} t}/{\\\\hbar}}\\n$$\\n\\nwhere $\\\\exp{-i{\\\\hat{H} t}/{\\\\hbar}}$ is a time evolution\\noperator (N.B.: $\\\\hat{H}_S = \\\\hat{H}_H$). The time evolution of\\n$\\\\hat{A}_H$ is:\\n\\n$$\\n \\\\frac{d}{dt} \\\\hat{A}_H = \\\\frac{i}{\\\\hbar}\\\\hat{H}\\\\mathrm{e}^{i{\\\\hat{H}t}/{\\\\hbar}}\\\\hat{A}_S \\\\mathrm{e}^{-i{\\\\hat{H} t}/{\\\\hbar}}\\\\\\\\\\n -\\\\frac{i}{\\\\hbar} \\\\mathrm{e}^{i{\\\\hat{H} t}/{\\\\hbar}}\\\\hat{A}_S \\\\mathrm{e}^{-i{\\\\hat{H}t}/{\\\\hbar}}\\\\hat{H}+\\\\partial_t \\\\hat{A}_H\\\\\\\\\\n = \\\\frac{i}{\\\\hbar}\\\\left[\\\\hat{H},\\\\hat{A}_H\\\\right] + \\\\mathrm{e}^{i{\\\\hat{H}t}/{\\\\hbar}}\\\\partial_t\\\\hat{A}_S\\\\mathrm{e}^{-i{\\\\hat{H}t}/{\\\\hbar}}\\n$$\\n\\n**Note.** In the Heisenberg picture the state vectors\\nare time-independent:\\n\\n$$\\n \\\\left|\\\\psi\\\\right\\\\rangle_H \\\\equiv \\\\left|\\\\psi(t=0)\\\\right\\\\rangle=\\\\exp{i{\\\\hat{H}}t/{\\\\hbar}} \\\\left|\\\\psi(t)\\\\right\\\\rangle.\\n$$\\n\\nTherefore, the results of measurements are the same in\\nboth pictures:\\n\\n$$\\n \\\\left\\\\langle\\\\psi(t)\\\\right|\\\\hat{A}\\\\left|\\\\psi(t)\\\\right\\\\rangle = \\\\left\\\\langle\\\\psi\\\\right|_H \\\\hat{A}_H \\\\left|\\\\psi\\\\right\\\\rangle_H.\\n$$\\n\\n[^1]:\\n We will follow this route in the discussion of the two-level\\n system and the Bloch sphere.\\n\\n[^2002]: Dalibard Basdevant. Quantum Mechanics. Springer-Verlag, 2002\\n\\n[^2006]: Jean Dalibard Jean-Louis Basdevant. The Quantum Mechanics Solver. Springer-Verlag, 2006.\\n\\n[^CT1]: Quantum Mechanics, Volume 1.\\n\\n[^CT2]: Quantum Mechanics, Volume 2.","order":1},{"title":"Lecture 2 - A few more cooking recipes for quantum mechanics","content":"\\nIn this second lecture we will finish the discussion of the basic\\ncooking recipes and discuss a few of the consequences like the\\nuncertainty relation, the existance of wave packages and the Ehrenfest\\ntheorem.\\n\\nIn the first lecture we discussed briefly the basic\\nprinciples of quantum mechanics like operators, state vectors and the\\nSchrödinger equation. We will finish this discussion today and then\\nintroduce the most important consequences. We will continue to closely\\nfollow the discussion of the introductory chapter of Ref. [^2006]\\n\\n## Composite systems\\n\\nIt is actually quite rare that we can label the system with a single\\nquantum number. Any atom will involve spin, position, angular momentum.\\nOther examples might just involve two spin which we observe. So the\\nquestion is then on how we label those systems. We then have two\\nquestions to answer:\\n\\n1. How many labels do we need for a system to fully determine its\\n quantum state ?\\n\\n2. Once I know all the labels, how do I construct the full state out of\\n them ?\\n\\nWe will actually discuss the second question first as it sets the\\nnotation for the first question.\\n\\n### Entangled States\\n\\nIn AMO we typically would like to characterize is the state of an\\nelectron in a hydrogen atom. We need to define its angular momentum\\nlabel $L$, which might be 0, 1, 2 and also its electron spin $S$, which\\nmight be $\\\\{\\\\uparrow, \\\\downarrow\\\\}$. It state is then typically labelled\\nas something like\\n\\n$$\\\\left|L=0, S=\\\\uparrow\\\\right\\\\rangle = \\\\left|0,\\\\uparrow\\\\right\\\\rangle$$\\n\\netc.\\n\\nAnother, simple example is that of two spins, each one having two\\npossible states $\\\\{\\\\uparrow, \\\\downarrow\\\\}$. This is a standard problem\\nin optical communication, where you send correlated photons with a\\ncertain polarization to different people. We will typically call them\\nAlice and Bob [^1].\\n\\nWe now would like to understand than if we can disentangle the\\ninformation about the different labels. Naively, we can now associate\\nwith Alice one set of outcomes and describe it by some state\\n$\\\\left|\\\\psi_{A}\\\\right\\\\rangle$ and the Bob has another set\\n$\\\\left|\\\\psi_{B}\\\\right\\\\rangle$:\\n\\n$$\\n\\\\left|\\\\psi_A\\\\right\\\\rangle= a_{\\\\uparrow} \\\\left|\\\\uparrow_A\\\\right\\\\rangle+ a_{\\\\downarrow} \\\\left|\\\\downarrow_A\\\\right\\\\rangle\\\\\\\\\\n\\\\left|\\\\psi_B\\\\right\\\\rangle= b_{\\\\uparrow} \\\\left|\\\\uparrow_B\\\\right\\\\rangle+ b_{\\\\downarrow} \\\\left|\\\\downarrow_B\\\\right\\\\rangle\\n$$\\n\\nThe full state will then be described by the possible outcomes\\n$\\\\{\\\\uparrow_A\\\\uparrow_B,\\\\downarrow_A\\\\uparrow_B,\\\\uparrow_A\\\\downarrow_B, \\\\downarrow_A\\\\downarrow_B\\\\}$.\\nWe can then write:\\n\\n$$\\n\\\\left|\\\\psi\\\\right\\\\rangle = \\\\alpha_{\\\\uparrow\\\\uparrow}(\\\\left|\\\\uparrow_A\\\\right\\\\rangle\\\\otimes\\\\left|\\\\uparrow_B\\\\right\\\\rangle)+\\\\alpha_{\\\\uparrow\\\\downarrow}(\\\\left|\\\\uparrow_A\\\\right\\\\rangle\\\\otimes\\\\left|\\\\downarrow_B\\\\right\\\\rangle)+\\\\alpha_{\\\\downarrow\\\\uparrow}(\\\\left|\\\\downarrow_A\\\\right\\\\rangle\\\\otimes\\\\left|\\\\uparrow_B\\\\right\\\\rangle)+\\\\alpha_{\\\\downarrow\\\\downarrow}(\\\\left|\\\\downarrow_A\\\\right\\\\rangle\\\\otimes\\\\left|\\\\downarrow_B\\\\right\\\\rangle)\\\\\\\\\\n= \\\\alpha_{\\\\uparrow\\\\uparrow}\\\\left|\\\\uparrow\\\\uparrow\\\\right\\\\rangle+\\\\alpha_{\\\\uparrow\\\\downarrow}\\\\left|\\\\uparrow\\\\downarrow\\\\right\\\\rangle+\\\\alpha_{\\\\downarrow\\\\uparrow}\\\\left|\\\\downarrow \\\\uparrow\\\\right\\\\rangle+\\\\alpha_{\\\\downarrow\\\\downarrow}\\\\left|\\\\downarrow\\\\downarrow\\\\right\\\\rangle\\n$$\\n\\nSo we will typically just plug the labels into a single\\nket and drop indices, to avoid rewriting the tensor symbol each time. We\\nsay that a state is _separable_, if we can write it as a product of the\\ntwo individual states as above:\\n\\n$$\\n\\\\left|\\\\psi\\\\right\\\\rangle = \\\\left|\\\\psi_A\\\\right\\\\rangle\\\\otimes\\\\left|\\\\psi_B\\\\right\\\\rangle\\\\\\\\\\n=a_{\\\\uparrow} b_\\\\uparrow \\\\left|\\\\uparrow\\\\uparrow\\\\right\\\\rangle+a_{\\\\downarrow} b_\\\\uparrow \\\\left|\\\\downarrow\\\\uparrow\\\\right\\\\rangle+a_{\\\\uparrow} b_\\\\downarrow \\\\left|\\\\uparrow\\\\downarrow\\\\right\\\\rangle+a_{\\\\downarrow} b_\\\\downarrow \\\\left|\\\\downarrow\\\\downarrow\\\\right\\\\rangle\\n$$\\n\\nAll other states are called _entangled_. The most famous entangled\\nstates are the Bell states:\\n\\n$$\\n\\\\left|\\\\psi_\\\\textrm{Bell}\\\\right\\\\rangle=\\\\frac{\\\\left|\\\\uparrow\\\\uparrow\\\\right\\\\rangle+\\\\left|\\\\downarrow\\\\downarrow\\\\right\\\\rangle}{\\\\sqrt{2}}\\n$$\\n\\nIn general we will say that the quantum system is formed by two\\nsubsystems $S_1$ and $S_2$. If they are independent we can write each of\\nthem as:\\n\\n$$\\n\\\\left|\\\\psi_1\\\\right\\\\rangle=\\\\sum_m^M a_m \\\\left|\\\\alpha_m\\\\right\\\\rangle,\\\\\\\\\\n\\\\left|\\\\psi_2\\\\right\\\\rangle=\\\\sum_n^N b_n \\\\left|\\\\beta_n\\\\right\\\\rangle.\\n$$\\n\\nIn general we will then write:\\n\\n$$\\n\\\\left|\\\\psi\\\\right\\\\rangle=\\\\sum_m^M \\\\sum_n^N c_{mn}(\\\\left|\\\\alpha_m\\\\right\\\\rangle\\\\otimes \\\\left|\\\\beta_n\\\\right\\\\rangle).\\n$$\\n\\nSo we can determine such a state by $M \\\\times N$ numbers\\n$c_{mn}$ here. If the states are _separable_, we can write\\n$\\\\left|\\\\psi\\\\right\\\\rangle$ as a product of the individual\\nstates:\\n\\n$$\\n\\\\left|\\\\psi\\\\right\\\\rangle=\\\\left|\\\\psi_1\\\\right\\\\rangle\\\\otimes\\\\left|\\\\psi_2\\\\right\\\\rangle=\\\\left(\\\\sum_m^M a_m \\\\left|\\\\alpha_m\\\\right\\\\rangle\\\\right) \\\\otimes \\\\left(\\\\sum_n^N b_n \\\\left|\\\\beta_n\\\\right\\\\rangle\\\\right)\\n$$\\n\\n$$\\n\\\\left|\\\\psi\\\\right\\\\rangle=\\\\sum_m^M \\\\sum_n^N a_m b_n \\\\left|\\\\alpha_m\\\\right\\\\rangle \\\\otimes \\\\left|\\\\beta_n\\\\right\\\\rangle.\\n$$\\n\\nSeparable states thus only describes a small subset of all possible\\nstates.\\n\\n## Statistical Mixtures and Density Operator\\n\\nHaving set up the formalism for writing down the full quantum state with\\nplenty of labels, we have to solve the next problem. As an\\nexperimentalist, you will rarely measure all of them. This means that\\nyou only perform a partial measurement and you have only partial\\ninformation of the system. The extreme case is the thermodynamic\\nensemble, where we measure only temperature to describe $10^{23}$\\nparticles.\\n\\nA similiar problem arises for Alice and Bob. They typically measure the\\nstate of the qubit in their lab without knowing what the other did. So\\nthey need some way to describe the system locally. This is done through\\nthe density operator approach.\\n\\nIn the density operator approach the state of the system is described by\\na Hermitian density operator\\n\\n$$\\n \\\\hat{\\\\rho} = \\\\sum_{n=1}^N p_n \\\\left|\\\\phi_n\\\\right\\\\rangle\\\\left\\\\langle\\\\phi_n\\\\right|.\\n$$\\n\\nHere, $\\\\left\\\\langle\\\\phi_n\\\\right|$ are the\\neigenstates of $\\\\hat{\\\\rho}$, and $p_n$ are the probabilities to find the\\nsystem in the respective states\\n$\\\\left|\\\\phi_n\\\\right\\\\rangle$. The trace of the density\\noperator is the sum of all probabilities $p_n$:\\n\\n$$\\n \\\\mathrm{tr}(\\\\hat{\\\\rho}) = \\\\sum p_n = 1.\\n$$\\n\\nFor a pure state $\\\\left|\\\\psi\\\\right\\\\rangle$, we get $p_n=1$\\nfor only one value of $n$. For every other $n$, the probabilities\\nvanish. We thus obtain a \\"pure\\" density operator\\n$\\\\hat{\\\\rho}_{\\\\text{pure}}$ which has the properties of a projection\\noperator:\\n\\n$$\\n\\\\hat{\\\\rho}_{\\\\text{pure}} = \\\\left|\\\\psi\\\\right\\\\rangle\\\\left\\\\langle\\\\psi\\\\right| \\\\qquad \\\\Longleftrightarrow \\\\qquad \\\\hat{\\\\rho}^2 = \\\\hat{\\\\rho}.\\n$$\\n\\nFor the simple qubit we then have:\\n\\n$$\\n \\\\hat{\\\\rho}= \\\\left(\\\\alpha_\\\\uparrow\\\\left|\\\\uparrow\\\\right\\\\rangle+\\\\alpha_\\\\downarrow\\\\left|\\\\downarrow\\\\right\\\\rangle\\\\right)\\\\left(\\\\alpha_\\\\uparrow^*\\\\left\\\\langle\\\\uparrow\\\\right|+\\\\alpha_\\\\downarrow^*\\\\left\\\\langle\\\\downarrow\\\\right|\\\\right)\\\\\\\\\\n = |\\\\alpha_\\\\uparrow|^2\\\\left|\\\\uparrow\\\\right\\\\rangle\\\\left\\\\langle\\\\uparrow\\\\right|+|\\\\alpha_\\\\downarrow|^2\\\\left|\\\\downarrow\\\\right\\\\rangle\\\\left\\\\langle\\\\downarrow\\\\right|+\\\\alpha_\\\\downarrow\\\\alpha_\\\\uparrow^*\\\\left|\\\\downarrow\\\\right\\\\rangle\\\\left\\\\langle\\\\uparrow\\\\right|+\\\\alpha_\\\\uparrow\\\\alpha_\\\\downarrow^*\\\\left|\\\\uparrow\\\\right\\\\rangle\\\\left\\\\langle\\\\downarrow\\\\right|\\n$$\\n\\nThen it is even simpler to write in matrix form:\\n\\n$$\\n \\\\hat{\\\\rho}= \\\\left(\\\\begin{array}{cc}\\n |\\\\alpha_\\\\uparrow|^2&\\\\alpha_\\\\uparrow\\\\alpha_\\\\downarrow^*\\\\\\\\\\n \\\\alpha_\\\\downarrow\\\\alpha_\\\\uparrow^*&|\\\\alpha_\\\\downarrow|^2\\n \\\\end{array}\\\\right)\\n$$\\n\\nFor a thermal state on the other hand we have:\\n\\n$$\\n\\\\hat{\\\\rho}_{\\\\text{thermal}} = \\\\sum_{n=1}^N \\\\frac{e^{-\\\\frac{E_n}{k_BT}}}{Z} \\\\left|\\\\phi_n\\\\right\\\\rangle\\\\left\\\\langle\\\\phi_n\\\\right|\\\\text{ with }Z = \\\\sum_{n=1}^N e^{-\\\\frac{E_n}{k_BT}}\\n$$\\n\\nWith this knowledge we can now determine the result of a\\nmeasurement of an observable $A$ belonging to an operator $\\\\hat{A}$. For\\nthe pure state $\\\\left|\\\\psi\\\\right\\\\rangle$ we get:\\n\\n$$\\n\\\\langle \\\\hat{A}\\\\rangle = \\\\left\\\\langle\\\\psi\\\\right| \\\\hat{A} \\\\left|\\\\psi\\\\right\\\\rangle.\\n$$\\n\\nFor a mixed state we get:\\n\\n$$\\n\\\\langle \\\\hat{A}\\\\rangle = \\\\mathrm{tr}(\\\\hat{\\\\rho}\\\\cdot \\\\hat{A}) = \\\\sum_n {p_n} \\\\left\\\\langle\\\\phi_n\\\\right| \\\\hat{A} \\\\left|\\\\phi_n\\\\right\\\\rangle.\\n$$\\n\\nThe time evolution of the density operator can be\\nexpressed with the von Neumann equation:\\n\\n$$\\ni\\\\hbar \\\\partial_{t}\\\\hat{\\\\rho}(t) = [\\\\hat{H}(t),\\\\hat{\\\\rho}(t)].\\n$$\\n\\n### Back to partial measurements\\n\\nWe can now come back to the correlated photons sent to Alice and Bob,\\nsharing a Bell pair. They full density matrix is then especially simple:\\n\\n$$\\n \\\\hat{\\\\rho}= \\\\left(\\\\begin{array}{cccc}\\n \\\\frac{1}{2}& 0& 0 &\\\\frac{1}{2}\\\\\\\\\\n 0 & 0 & 0& 0\\\\\\\\\\n 0&0&0&0\\\\\\\\\\n \\\\frac{1}{2}&0&0&\\\\frac{1}{2}\\n \\\\end{array}\\\\right)\\n$$\\n\\nLet us write the system as $S = S_A \\\\otimes S_B$. If we are looking for\\nthe density operator $\\\\hat{\\\\rho}_i$ of each individual, we can simply\\nwrite:\\n\\n$$\\n\\\\hat{\\\\rho}_A=\\\\mathrm{tr}_{B}(\\\\hat{\\\\rho}),\\\\\\\\\\n\\\\hat{\\\\rho}_B=\\\\mathrm{tr}_{A}(\\\\hat{\\\\rho}),\\n$$\\n\\nwhere\\n$\\\\hat{\\\\rho}=\\\\left|\\\\psi\\\\right\\\\rangle\\\\left\\\\langle\\\\psi\\\\right|$\\nand $\\\\mathrm{tr}_{j}(\\\\hat{\\\\rho})$ is the trace over the Hilbert space of\\nsubsystem $j$.\\n\\nTo reduce the density matrix of the Bell state it is actually helpful to\\nwrite out the definitions:\\n\\n$$\\n\\\\mathrm{tr}_{B}(\\\\hat{\\\\rho}) = \\\\left\\\\langle\\\\uparrow_B\\\\right|\\\\hat{\\\\rho}\\\\left|\\\\uparrow_B\\\\right\\\\rangle+\\\\left\\\\langle\\\\downarrow_B\\\\right|\\\\hat{\\\\rho}\\\\left|\\\\downarrow_B\\\\right\\\\rangle\\\\\\\\\\n=\\\\frac{1}{2}\\\\left(\\\\left|\\\\uparrow_A\\\\right\\\\rangle\\\\left\\\\langle\\\\uparrow_A\\\\right|+\\\\left|\\\\downarrow_A\\\\right\\\\rangle\\\\left\\\\langle\\\\downarrow_A\\\\right|\\\\right)\\n$$\\n\\nSo we end up with the fully mixed state:\\n\\n$$\\n \\\\hat{\\\\rho}_{A,B} = \\\\left(\\\\begin{array}{cc}\\n \\\\frac{1}{2}&0\\\\\\\\\\n 0&\\\\frac{1}{2}\\n \\\\end{array}\\\\right)\\n$$\\n\\nAlice and Bob are simply cossing a coin if they ignore\\nthe outcome of the other member. But once they start comparing results\\nwe will see that the quantum case can dramatically differ from the\\nclassical case. This will be the content of lecture 12 [@entanglement].\\n\\n## Important Consequences of the Principles\\n\\n### Uncertainty Relation\\n\\nThe product of the variances o two noncommuting operators has a lower\\nlimit:\\n\\n$$\\n \\\\Delta \\\\hat{A} \\\\cdot \\\\Delta \\\\hat{B} \\\\geq \\\\frac{1}{2} \\\\left| \\\\left\\\\langle\\\\left[\\\\hat{A,\\\\hat{B}}\\\\right]\\\\right\\\\rangle \\\\right|,\\n$$\\n\\nwhere the variance is defined as\\n$\\\\Delta \\\\hat{A} = \\\\sqrt{\\\\left\\\\langle\\\\hat{A^2}\\\\right\\\\rangle-\\\\left\\\\langle\\\\hat{A}^2\\\\right\\\\rangle}$.\\n\\n**Examples.**\\n\\n$$\\n\\\\left[ \\\\hat{x}, \\\\hat{p} \\\\right] = i \\\\hbar \\\\\\\\\\n\\\\left[ \\\\hat{J}_i , \\\\hat{J}_j \\\\right] = i \\\\hbar \\\\epsilon_{ijk} \\\\hat{J}_k\\n$$\\n\\n**Note.** This is a statement about the _state_ itself, and not the\\nmeasurement!\\n\\n### Ehrenfest Theorem\\n\\nWith the Ehrenfest theorem, one can determine the time evolution of the\\nexpectation value of an operator $\\\\hat{A}$:\\n\\n$$\\n \\\\frac{d}{dt}\\\\left\\\\langle\\\\hat{A}\\\\right\\\\rangle=\\\\frac{1}{i\\\\hbar}\\\\left\\\\langle\\\\left[\\\\hat{A},\\\\hat{H}\\\\right]\\\\right\\\\rangle+\\\\left\\\\langle\\\\partial_t\\\\hat{A}(t)\\\\right\\\\rangle.\\n$$\\n\\nIf $\\\\hat{A}$ is time-independent and\\n$\\\\left[\\\\hat{A},\\\\hat{H}\\\\right]=0$, the expectation value\\n$\\\\left\\\\langle\\\\hat{A}\\\\right\\\\rangle$ is a constant of the\\nmotion.\\n\\n### Complete Set of Commuting Observables\\n\\nA set of commuting operators\\n$\\\\{\\\\hat{A},\\\\hat{B},\\\\hat{C},\\\\cdots,\\\\hat{X}\\\\}$ is considered a complete\\nset if their common eigenbasis is unique. Thus, the measurement of all\\nquantities $\\\\{A,B,\\\\cdots,X\\\\}$ will determine the system uniquely. The\\nclean identification of such a Hilbert space can be quite challenging\\nand a nice way of its measurment even more. Coming back to our previous\\nexamples:\\n\\n1. Performing the full spectroscopy of the atom. Even for the hydrogen\\n atom we will see that the full answer can be rather involved\\\\...\\n\\n2. The occupation number is rather straight forward. However, we have\\n to be careful that we really collect a substantial amount of the\\n photons etc.\\n\\n3. Are we able to measure the full position information ? What is the\\n resolution of the detector and the point-spread function ?\\n\\n4. Here it is again rather clean to put a very efficient detector at\\n the output of the two arms \\\\...\\n\\n5. What are the components of the spin that we can access ? The $z$\\n component does not commute with the other components, so what should\\n we measure ?\\n\\nIn the [third\\nlecture](https://www.authorea.com/326444/GsbfEypTdf4dvncV23L8_Q) of this\\ncourse will start to apply these discussions to the two-level system,\\nwhich is one of the simplest yet most powerful models of quantum\\nmechanics.\\n\\n[^1]: And if someone wants to listen the person is called Eve\\n\\n[^2006]: Jean Dalibard Jean-Louis Basdevant. The Quantum Mechanics Solver. Springer-Verlag, 2006.","order":2},{"title":"Lecture 3 - The two-level system","content":"\\nWe are going to discuss the two-level system, it's static properties\\nlike level splitting at avoided crossings and dynamical properties like\\nRabi oscillations.\\n\\nAfter the previous discussions of some basic cooking recipes to quantum\\nmechanics in last weeks lectures, we will use them to understand the two-level system. A very detailled\\ndiscussion can be found in chapter 4 of Ref. [^CT1]. The importance of the\\ntwo-level system is at least three-fold:\\n\\n1. It is the simplest system of quantum mechanics as it spans a Hilbert\\n space of only two states.\\n\\n2. It is quite ubiquitous in nature and very widely used in atomic\\n physics.\\n\\n3. The two-level system is another word for the qubit, which is the\\n fundamental building block of the exploding field of quantum\\n computing and quantum information science.\\n\\n\\n\\nExamples for two-state systems. a) Benzene: In the ground state, the\\nelectrons are delocalized. b) Ammonia: The nitrogen atom is either found\\nabove or below the hydrogen triangle. The state changes when the\\nnitrogen atom tunnels. c) Molecular ion : The electron is either\\nlocalized near proton 1 or 2.\\n\\nSome of the many examples for two-level systems that can be found in\\nnature:\\n\\n- Spin of the electron: Up vs. down state\\n\\n- Two-level atom with one electron (simplified): Excited vs. ground\\n state\\n\\n- Structures of molecules, e.g., $NH_3$\\n\\n- Occupation of mesoscopic capacitors in nanodevices.\\n\\n- Current states in superconducting loops.\\n\\n- Nitrogen-vacancy centers in diamond.\\n\\n## Hamiltonian, Eigenstates and Matrix Notation\\n\\nTo start out, we will consider two eigenstates\\n$\\\\left|0\\\\right\\\\rangle$, $\\\\left|1\\\\right\\\\rangle$\\nof the Hamiltonian $\\\\hat{H}_0$ with\\n\\n$$\\n \\\\hat{H}_0\\\\left|0\\\\right\\\\rangle=E_0\\\\left|0\\\\right\\\\rangle, \\\\qquad \\\\hat{H}_0\\\\left|1\\\\right\\\\rangle=E_1\\\\left|1\\\\right\\\\rangle.\\n$$\\n\\nQuite typically we might think of it as a two-level atom\\nwith states 1 and 2. The eigenstates can be expressed in matrix\\nnotation:\\n\\n$$\\n \\\\left|0\\\\right\\\\rangle=\\\\left( \\\\begin{array}{c} 1 \\\\\\\\ 0 \\\\end{array} \\\\right), \\\\qquad \\\\left|1\\\\right\\\\rangle=\\\\left( \\\\begin{array}{c} 0 \\\\\\\\ 1 \\\\end{array} \\\\right),\\n$$\\n\\nso that $\\\\hat{H}_0$ be written as a diagonal matrix\\n\\n$$\\n \\\\hat{H}_0 = \\\\left(\\\\begin{array}{cc} E_0 & 0 \\\\\\\\ 0 & E_1 \\\\end{array}\\\\right).\\n$$\\n\\nIf we would only prepare eigenstates the system would be\\nrather boring. However, we typically have the ability to change the\\nHamiltonian by switching on and off laser or microwave fields [^1]. We\\ncan then write the Hamiltonian in its most general form as:\\n\\n$$\\n\\n\\\\hat{H} = \\\\frac{\\\\hbar}{2}\\\\left( \\\\begin{array}{cc} \\\\Delta & \\\\Omega_x - i\\\\Omega_y\\\\\\\\ \\\\Omega_x +i\\\\Omega_y & -\\\\Delta \\\\end{array} \\\\right)\\n$$\\n\\nSometimes we will also chose the definition:\\n\\n$$\\n\\\\Omega = |\\\\Omega| e^{i\\\\varphi}=\\\\Omega_x + i\\\\Omega_y\\n$$\\n\\nIt is particularly useful for the case in which the\\ncoupling is created by a laser. Another useful way of thinking about the\\ntwo-level system is as a spin in a magnetic field. Let us remind us of\\nthe definitions of the of the spin-1/2 matrices:\\n\\n$$\\ns_x = \\\\frac{\\\\hbar}{2}\\\\left(\\\\begin{array}{cc}\\n0 & 1\\\\\\\\\\n1 & 0\\n\\\\end{array}\\n\\\\right)~\\ns_y = \\\\frac{\\\\hbar}{2}\\\\left(\\\\begin{array}{cc}\\n0 & -i\\\\\\\\\\ni & 0\\n\\\\end{array}\\n\\\\right)~s_z =\\\\frac{\\\\hbar}{2} \\\\left(\\\\begin{array}{cc}\\n1 & 0\\\\\\\\\\n0 & -1\\n\\\\end{array}\\n\\\\right)\\n$$\\n\\nWe then obtain:\\n\\n$$\\n\\n\\\\hat{H} = \\\\mathbf{B}\\\\cdot\\\\hat{\\\\mathbf{s}}\\\\text{ with }\\\\mathbf{B} = (\\\\Omega_x, \\\\Omega_y, \\\\Delta)\\n$$\\n\\nYou will go through this calculation in the excercise of\\nthis week.\\n\\n### Case of no perturbation $\\\\Omega = 0$\\n\\nThis is exactly the case of no applied laser fields that we discussed\\npreviously. We simply removed the energy offset\\n$E_m = \\\\frac{E_0+E_1}{2}$ and pulled out the factor $\\\\hbar$, such that\\n$\\\\Delta$ measures a frequency. So we have:\\n\\n$$\\nE_0 = E_m+ \\\\frac{\\\\hbar}{2}\\\\Delta\\\\\\\\\\nE_1 = E_m- \\\\frac{\\\\hbar}{2}\\\\Delta\\n$$\\n\\nWe typically call $\\\\Delta$ the energy difference between\\nthe levels or the **detuning**.\\n\\n### Case of no detuning $\\\\Delta = 0$\\n\\nLet us suppose that the diagonal elements are exactly zero. And for\\nsimplicity we will also keep $\\\\Omega_y =0$ as it simply complicates the\\ncalculations without adding much to the discussion at this stage. The\\nHamiltonian reads then:\\n\\n$$\\n\\\\hat{H} = \\\\frac{\\\\hbar}{2}\\\\left( \\\\begin{array}{cc} 0 & \\\\Omega\\\\\\\\ \\\\Omega &0 \\\\end{array} \\\\right)\\n$$\\n\\nQuite clearly the states $\\\\varphi_{1,2}$ are not the eigenstates of the\\nsystem anymore. How should the system be described now ? We can once\\nagain diagonalize the system and write\\n\\n$$\\n\\\\hat{H}\\\\left|\\\\varphi_{\\\\pm}\\\\right\\\\rangle = E_{\\\\pm}\\\\left|\\\\varphi_\\\\pm\\\\right\\\\rangle\\\\\\\\\\nE_{\\\\pm} = \\\\pm\\\\frac{\\\\hbar}{2}\\\\Omega\\\\\\\\\\n\\\\left|\\\\varphi_\\\\pm\\\\right\\\\rangle = \\\\frac{\\\\left|0\\\\right\\\\rangle\\\\pm\\\\left|1\\\\right\\\\rangle}{\\\\sqrt{2}}\\n$$\\n\\nTwo important consequences can be understood from this\\nresult:\\n\\n1. The coupling of the two states shifts their energy by $\\\\Omega$. This\\n is the idea of level repulsion.\\n\\n2. The coupled states are a superposition of the initial states.\\n\\nThis is also a motivation the formulation of the 'bare' system for\\n$\\\\Omega = 0$ and the 'dressed' states for the coupled system.\\n\\n### General case\\n\\nQuite importantly we can solve the system completely even in the general\\ncase. By diagonalizing the Hamiltonian we obtain:\\n\\n$$\\n E_\\\\pm = \\\\pm \\\\frac{\\\\hbar}{2} \\\\sqrt{\\\\Delta^2+|\\\\Omega|^2}\\n$$\\n\\nThe energies can be nicely summarized as in Fig.\\n\\n\\n\\nThe Eigenstates then read:\\n\\n$$\\n\\\\left|\\\\psi_+\\\\right\\\\rangle=\\\\cos\\\\left(\\\\frac{\\\\theta}{2}\\\\right) \\\\mathrm{e}^{-i{\\\\varphi}/{2}}\\\\left|0\\\\right\\\\rangle+\\\\sin\\\\left(\\\\frac{\\\\theta}{2}\\\\right) \\\\mathrm{e}^{i{\\\\varphi}/{2}}\\\\left|1\\\\right\\\\rangle,\\n$$\\n\\n$$\\n\\\\left|\\\\psi_-\\\\right\\\\rangle=-\\\\sin\\\\left(\\\\frac{\\\\theta}{2}\\\\right) \\\\mathrm{e}^{-i{\\\\varphi}/{2}}\\\\left|0\\\\right\\\\rangle+\\\\cos\\\\left(\\\\frac{\\\\theta}{2}\\\\right) \\\\mathrm{e}^{i{\\\\varphi}/{2}}\\\\left|1\\\\right\\\\rangle,\\n$$\\n\\nwhere\\n\\n$$\\n\\n\\\\tan(\\\\theta) = \\\\frac{|\\\\Omega|}{\\\\Delta}\\n$$\\n\\n## The Bloch sphere\\n\\nWhile we could just discuss the details of the above state in the\\nabstract, it is extremely helpful to visualize the problem on the Bloch\\nsphere. The idea of the Bloch sphere is that the we have a complex wave\\nfunction of well defined norm and two free parameters. So it seems quite\\nnatural to look for a good representation of it. And this is the Bloch\\nsphere as drawn below\\n\\n\\n\\nWe will see especially its usefulness especially as we discuss the\\ndynamics of the two-state system.\\n\\n## Dynamical Aspects\\n\\n### Time Evolution of $\\\\left|\\\\psi(t)\\\\right\\\\rangle$\\n\\nAfter the static case we now want to investigate the dynamical\\nproperties of the two-state system. We calculate the time evolution of\\n$\\\\left|\\\\psi(t)\\\\right\\\\rangle = c_0(t)\\\\left|0\\\\right\\\\rangle + c_1(t)\\\\left|1\\\\right\\\\rangle$\\nwith the Schrödinger equation and the perturbed Hamiltonian:\\n\\n$$\\ni\\\\hbar \\\\frac{d}{dt}\\\\left|\\\\psi(t)\\\\right\\\\rangle=\\\\hat{H}\\\\left|\\\\psi(t)\\\\right\\\\rangle,\\\\\\\\\\ni \\\\frac{d}{dt}\\\\left(\\\\begin{array}{c} c_0(t) \\\\\\\\ c_1(t) \\\\end{array}\\\\right) = \\\\frac{1}{2}\\\\left( \\\\begin{array}{cc} \\\\Delta & \\\\Omega \\\\\\\\ \\\\Omega^* & -\\\\Delta \\\\end{array} \\\\right) \\\\left(\\\\begin{array}{c} c_0(t) \\\\\\\\ c_1(t) \\\\end{array} \\\\right).\\n$$\\n\\nWe have two coupled differential equations and we luckily already know\\nhow to solve them as we have calculated the two eigenenergies in the\\nprevious section. For the state\\n$\\\\left|\\\\psi(t)\\\\right\\\\rangle$ we get\\n\\n$$\\n \\\\left|\\\\psi(t)\\\\right\\\\rangle=\\\\lambda \\\\mathrm{e}^{-i{E_+}t/{\\\\hbar}} \\\\left|\\\\psi_+\\\\right\\\\rangle + \\\\mu \\\\mathrm{e}^{-i{E_-}t/{\\\\hbar}} \\\\left|\\\\psi_-\\\\right\\\\rangle\\n$$\\n\\nwith the factors $\\\\lambda$ and $\\\\mu$, which are defined\\nby the initial state. The most common question is then what happens to\\nthe system if we start out in the bare state\\n$\\\\left|0\\\\right\\\\rangle$ and then let it evolve under\\ncoupling with a laser ? So what is the probability to find it in the\\nother state $\\\\left|1\\\\right\\\\rangle$:\\n\\n$$\\nP_1(t)=\\\\left|\\\\left\\\\langle 1|\\\\psi(t)\\\\right\\\\rangle\\\\right|^2.\\n$$\\n\\nAs a first step, we have to apply the initial condition\\nto and express\\n$\\\\left|\\\\varphi\\\\right\\\\rangle$ in terms of $|\\\\psi_+$ and $|\\\\psi_-$:\\n\\n$$\\n\\\\left|\\\\psi(0)\\\\right\\\\rangle \\\\overset{!}{=} \\\\left|0\\\\right\\\\rangle\\\\\\\\\\n = \\\\mathrm{e}^{i{\\\\varphi}/{2}} \\\\left[ \\\\cos\\\\left( \\\\frac{\\\\theta}{2}\\\\right) \\\\left|\\\\psi_+\\\\right\\\\rangle-\\\\sin\\\\left(\\\\frac{\\\\theta}{2}\\\\right)\\\\left|\\\\psi_-\\\\right\\\\rangle\\\\right]\\n$$\\n\\nBy equating the coefficients we get for $\\\\lambda$ and\\n$\\\\mu$:\\n\\n$$\\n\\\\lambda = \\\\mathrm{e}^{i{\\\\varphi}/{2}}\\\\cos\\\\left(\\\\frac{\\\\theta}{2}\\\\right), \\\\qquad \\\\mu = -\\\\mathrm{e}^{i{\\\\varphi}/{2}}\\\\sin\\\\left(\\\\frac{\\\\theta}{2}\\\\right).\\n$$\\n\\nOne thus gets:\\n\\n$$\\n\\\\hspace{-2mm} P_1(t)=\\\\left|\\\\left\\\\langle 1|\\\\psi(t)\\\\right\\\\rangle\\\\right|^2 \\\\\\\\\\n= \\\\left|\\\\mathrm{e}^{i\\\\varphi} \\\\sin\\\\left(\\\\frac{\\\\theta}{2}\\\\right)\\\\cos\\\\left(\\\\frac{\\\\theta}{2}\\\\right)\\\\left[\\\\mathrm{e}^{-i{E_+}t/{\\\\hbar}} - \\\\mathrm{e}^{-i{E_-}t/{\\\\hbar}}\\\\right]\\\\right|^2\\\\\\\\\\n= \\\\sin^2(\\\\theta)\\\\sin^2\\\\left(\\\\frac{E_+-E_-}{2\\\\hbar}t\\\\right)\\n$$\\n\\n$P_1(t)$ can be expressed with $\\\\Delta$ and $\\\\Omega$\\nalone. The obtained relation is called Rabi's formula:\\n\\n$$\\n P_1(t)=\\\\frac{1}{1+\\\\left(\\\\frac{\\\\Delta}{|\\\\Omega|}\\\\right)^2}\\\\sin^2\\\\left(\\\\sqrt{|\\\\Omega|^2+\\\\Delta^2}\\\\frac{t}{2}\\\\right)\\n$$\\n\\n\\n\\n### Visualization of the dynamics in the spin picture\\n\\nWhile the previous derivation might be the standard one, which certainly\\nleads to the right results it might not be the most intuitive way of\\nthinking about the dynamics. They become actually quite transparent in\\nthe spin language and on the Bloch sphere. So let us go back to the\\nformulation of the Hamiltonian in terms of spins as at the beginning of the lecture.\\n\\nHow would the question of the time evolution from $0$ to $1$ and back go\\nnow ? Basically, we would assume that the spin has been initialize into\\none of the eigenstates of the $z$-basis and now starts to rotate in some\\nmagnetic field. How ? This can be nicely studied in the Heisenberg\\npicture, where operators have a time evolution. In the Heisenberg\\npicture we have:\\n\\n$$\\n\\\\frac{d}{dt} \\\\hat{s}_i = \\\\frac{i}{\\\\hbar}\\\\left[\\\\hat{H},\\\\hat{s}_i\\\\right]\\\\\\\\\\n\\\\frac{d}{dt} \\\\hat{s}_i = \\\\frac{i}{\\\\hbar}\\\\sum_j B_j \\\\left[\\\\hat{s}_j,\\\\hat{s}_i\\\\right]\\\\\\\\\\n\\n\\n$$\\n\\nSo to understand we time evolution, we only need to\\nemploy the commutator relationships between the spins:\\n\\n$$\\n= \\\\hbar is_z~~[ s_y, s_z] = \\\\hbar is_x~~[ s_z, s_x] = \\\\hbar is_y\\n$$\\n\\nFor the specific case of $B_x=\\\\Omega$, $B_y = B_z = 0$,\\nwe have then:\\n\\n$$\\n\\\\frac{d}{dt} \\\\hat{s}_x = 0\\\\\\\\\\n\\\\frac{d}{dt} \\\\hat{s}_y = -\\\\Omega \\\\hat{s}_z\\\\\\\\\\n\\\\frac{d}{dt} \\\\hat{s}_z = \\\\Omega \\\\hat{s}_y\\n\\n\\n$$\\n\\nSo applying a field in x-direction leads to a rotation of the spin\\naround the $x$ axis with velocity $\\\\Omega$. We can now use this general\\npicture to understand the dynamics as rotations around an axis, which is\\ndefined by the different components of the magnetic field.\\n\\n## A few words on the quantum information notation\\n\\nThe qubit is THE basic ingredient of quantum computers. A nice way to\\nplay around with them is actually the [IBM Quantum\\nexperience](https://quantum-computing.ibm.com/). However, you will\\ntypically not find Pauli matrices etc within these systems. The typical\\nnotation there is:\\n\\n- $R_x(\\\\phi)$ is a rotation around the x-axis for an angle $\\\\phi$.\\n\\n- Same holds for $R_y$ and $R_z$.\\n\\n- $X$ denotes the rotation around the x axis for an angle $\\\\pi$. So it\\n transforms $\\\\left|1\\\\right\\\\rangle$ into\\n $\\\\left|0\\\\right\\\\rangle$ and vise versa.\\n\\n- $Z$ denotes the rotation around the x axis for an angle $\\\\pi$. So it\\n transforms $\\\\left|+\\\\right\\\\rangle$ into\\n $\\\\left|-\\\\right\\\\rangle$ and vise versa.\\n\\nThe most commonly used gate is actually one that we did not talk about\\nat all, it is the _Hadamard_ gate, which transforms\\n$\\\\left|1\\\\right\\\\rangle$ into\\n$\\\\left|-\\\\right\\\\rangle$ and\\n$\\\\left|0\\\\right\\\\rangle$ into\\n$\\\\left|+\\\\right\\\\rangle$:\\n\\n$$\\n\\\\hat{H}\\\\left|1\\\\right\\\\rangle = \\\\left|-\\\\right\\\\rangle ~ \\\\hat{H}\\\\left|0\\\\right\\\\rangle = \\\\left|+\\\\right\\\\rangle\\\\\\\\\\n\\\\hat{H}\\\\left|-\\\\right\\\\rangle = \\\\left|1\\\\right\\\\rangle ~ \\\\hat{H}\\\\left|+\\\\right\\\\rangle = \\\\left|0\\\\right\\\\rangle\\n$$\\n\\nIn the forth lecture we will see how it is that a time-dependent field can actually couple two atomic states, which are normally of very different energies.\\n\\n[^1]: See the discussions of the next lecture\\n\\n[^CT1]: Quantum Mechanics, Volume 1. Cohen-Tannoudji, Diu, Laloe. Wiley-VCH, 2006.","order":3},{"title":"Lecture 4 - Atoms in oscillating fields","content":"\\nIn the lecture, we will see how a time dependent coupling allows us to\\nengineer a new Hamiltonian. Most importantly, we will discuss the\\nresonant coupling of two levels and the decay of a single level to a\\ncontinuum.\\n\\nIn the last lecture, we discussed the properties of two\\ncoupled levels. However, we did not elaborate at any stage how such a\\nsystem might emerge in a true atom. Two fundamental questions come to\\nmind:\\n\\n1. How is it that a laser allows to treat two atomic levels of very\\n different energies as if they were degenerate ?\\n\\n2. An atom has many energy levels $E_n$ and most of them are not\\n degenerate. How can we reduce this complicated structure to a\\n two-level system?\\n\\nThe solution is to resonantly couple two of the atom's levels by\\napplying an external, oscillatory field, which is very nicely discussed\\nin chapter 12 of Ref. [^2002] [^Cohen_Tannoudji_1998]. We will discuss\\nimportant and fundamental properties of systems with a time-dependent\\nHamiltonian.\\n\\nWe will discuss a simple model for the atom in the oscillatory field. We\\ncan write down the Hamiltonian:\\n\\n$$\\n \\\\hat{H} = \\\\hat{H}_0 + \\\\hat{V}(t).\\n$$\\n\\nHere, $\\\\hat{H}_0$ belongs to the atom and $V(t)$\\ndescribes the time-dependent field and its interaction with the atom. We\\nassume that $\\\\left|n\\\\right\\\\rangle$ is an eigenstate of\\n$\\\\hat{H}_0$ and write:\\n\\n$$\\n\\\\hat{H}_0\\\\left|n\\\\right\\\\rangle = E_n \\\\left|n\\\\right\\\\rangle.\\n$$\\n\\nIf the system is initially prepared in the state\\n$\\\\left|i\\\\right\\\\rangle$, so that\\n\\n$$\\n\\\\left|\\\\psi(t=0)\\\\right\\\\rangle = \\\\left|i\\\\right\\\\rangle,\\n$$\\n\\nwhat is the probability\\n\\n$$\\nP_m(t) = \\\\left|\\\\left\\\\langle m|\\\\psi(t)\\\\right\\\\rangle\\\\right|^2\\n$$\\n\\nto find the system in the state\\n$\\\\left|m\\\\right\\\\rangle$ at the time $t$?\\n\\n## Evolution Equation\\n\\nThe system $\\\\left|\\\\psi(t)\\\\right\\\\rangle$ can be expressed as\\nfollows:\\n\\n$$\\n\\\\left|\\\\psi(t)\\\\right\\\\rangle = \\\\sum_n \\\\gamma_n(t) \\\\mathrm{e}^{-i{E_n}t/{\\\\hbar}} \\\\left|n\\\\right\\\\rangle,\\n$$\\n\\nwhere the exponential is the time evolution for\\n$\\\\hat{H}_1 =~0$. We plug this equation in the Schrödinger equation and\\nget:\\n\\n$$\\ni\\\\hbar \\\\sum_n\\\\left(\\\\dot{\\\\gamma}_n(t)-i\\\\frac{E_n}{\\\\hbar}\\\\gamma_n(t)\\\\right)\\\\mathrm{e}^{-i{E_n}t/{\\\\hbar}}\\\\left|n\\\\right\\\\rangle = \\\\sum_n \\\\gamma_n(t) \\\\mathrm{e}^{-i{E_n}t/{\\\\hbar}}\\\\left(\\\\hat{H}_0 + \\\\hat{V}\\\\right) \\\\left|n\\\\right\\\\rangle\\\\\\\\\\n\\\\Longleftrightarrow i\\\\hbar\\\\sum_n \\\\dot{\\\\gamma}_n(t) \\\\mathrm{e}^{-i{E_n}t/{\\\\hbar}} \\\\left|n\\\\right\\\\rangle\\n = \\\\sum_n \\\\gamma_n(t) \\\\mathrm{e}^{-i{E_n}t/{\\\\hbar}} \\\\hat{V} \\\\left|n\\\\right\\\\rangle\\n$$\\n\\nIf we multiply the equation with $\\\\left\\\\langle k\\\\right|$ we\\nobtain a set of coupled differential equations\\n\\n$$\\ni\\\\hbar \\\\dot{\\\\gamma}_k \\\\mathrm{e}^{-i{E_k}t/{\\\\hbar}} = \\\\sum_n \\\\gamma_n \\\\mathrm{e}^{-{E_n}t/{\\\\hbar}}\\\\left\\\\langle k\\\\right|\\\\hat{V}\\\\left|n\\\\right\\\\rangle,\\\\\\\\\\ni\\\\hbar \\\\dot{\\\\gamma}_k = \\\\sum_n \\\\gamma_n \\\\mathrm{e}^{-i {(E_n-E_k)}t/{\\\\hbar}} \\\\left\\\\langle k\\\\right| \\\\hat{V}\\\\left|n\\\\right\\\\rangle\\n$$\\n\\nwith initial conditions\\n$\\\\left|\\\\psi(t=0)\\\\right\\\\rangle$. They determine the full\\ntime evolution.\\n\\nThe solution of this set of equations depends on the details of the\\nsystem. However, there are a few important points:\\n\\n- For short enough times, the dynamics are driving by the coupling\\n strength\\n $\\\\left\\\\langle k\\\\right|\\\\hat{V} \\\\left|n\\\\right\\\\rangle$.\\n\\n- The right-hand sight will oscillate on time scales of $E_n-E_k$ and\\n typically average to zero for long times.\\n\\n- If the coupling element is an oscillating field\\n $\\\\propto e^{i\\\\omega_L t}$, it might put certain times on resonance\\n and allow us to avoid the averaging effect. It is exactly this\\n effect, which allows us to isolate specific transitions to a very\\n high degree [^1]\\n\\nWe will now see how the two-state system emerges from these\\napproximations and then set-up the perturbative treatment step-by-step.\\n\\n## Rotating wave approximation\\n\\nWe will now assume that the coupling term in indeed an oscillating field\\nwith frequency $\\\\omega_L$, so it reads:\\n\\n$$\\n\\\\hat{V} = \\\\hat{V}_0 \\\\cos(\\\\omega_Lt) = \\\\frac{\\\\hat{V}_0}{2} \\\\left(e^{i\\\\omega_lt}+e^{-i\\\\omega_lt}\\\\right)\\n$$\\n\\nWe will further assume the we would like use it to\\nisolate the transition $i\\\\rightarrow f$, which is of frequency\\n$\\\\hbar \\\\omega_0 = E_f - E_i$. The relevant quantity is then the detuning\\n$\\\\delta = \\\\omega_0 - \\\\omega_L$. If it is much smaller than any other\\nenergy difference $E_n-E_i$, we directly reduce the system to the\\nfollowing closed system:\\n\\n$$\\ni\\\\dot{\\\\gamma}_i = \\\\gamma_f \\\\mathrm{e}^{-i \\\\delta t} \\\\Omega\\\\\\\\\\ni\\\\dot{\\\\gamma}_f = \\\\gamma_i \\\\mathrm{e}^{i \\\\delta t}\\\\Omega^*\\n$$\\n\\nHere we defined\\n$\\\\Omega = \\\\left\\\\langle i\\\\right| \\\\frac{\\\\hat{V_0}}{2\\\\hbar}\\\\left|f\\\\right\\\\rangle$.\\nAnd to make it really a time-of the same form as the two-level system\\nfrom the last lecture, we perform the transformation\\n$\\\\gamma_f = \\\\tilde{\\\\gamma}_f e^{i\\\\delta t}$, which reduces the system\\ntoo:\\n\\n$$\\ni \\\\dot{\\\\gamma}_i = \\\\Omega \\\\tilde{\\\\gamma}_f \\\\\\\\\\ni\\\\dot{\\\\tilde{\\\\gamma}}_f = \\\\delta \\\\tilde{\\\\gamma}_f + \\\\Omega^* \\\\gamma_i\\n$$\\n\\nThis has exactly the form of the two-level system that\\nwe studied previously.\\n\\n### Adiabatic elimination\\n\\nWe can now proceed to the quite important case of far detuning, where\\n$\\\\delta \\\\gg \\\\Omega$. In this case, the final state\\n$\\\\left|f\\\\right\\\\rangle$ gets barely populated and the time\\nevolution can be approximated to to be zero [@lukin].\\n\\n$$\\n\\\\dot{\\\\tilde{\\\\gamma}}_f = 0\\n$$\\n\\nWe can use this equation to eliminate $\\\\gamma$ from the\\ntime evolution of the ground state. This approximation is known as\\n_adiabatic elimination_:\\n\\n$$\\n\\\\tilde{\\\\gamma}_f = \\\\frac{\\\\Omega^*}{\\\\delta}\\\\gamma_i\\\\\\\\\\n\\\\Rightarrow i\\\\hbar \\\\dot{\\\\gamma}_i = \\\\frac{|\\\\Omega|^2}{\\\\delta} \\\\tilde{\\\\gamma}_i\\n$$\\n\\nThe last equation described the evolution of the initial\\nstate with an energy $E_i = \\\\frac{|\\\\Omega|^2}{\\\\delta}$. If the Rabi\\ncoupling is created through an oscillating electric field, i.e. a laser,\\nthis is know as the **light shift** or the **optical dipole potential**.\\nIt is this concept that underlies the optical tweezer for which Arthur\\nAshkin got the [nobel prize in the 2018](https://www.nobelprize.org/uploads/2018/10/advanced-physicsprize2018.pdf).\\n\\n### Example: Atomic clocks in optical tweezers\\n\\nA neat example that ties the previous concepts together is [the recent\\npaper](https://arxiv.org/abs/1908.05619v2). The experimental setup is visualized in the figure below.\\n\\n\\n\\nWhile nice examples these clocks are still far away from the best clocks\\nout there, which are based on [optical lattice clocks and ions](http://dx.doi.org/10.1103/revmodphys.87.637).\\n\\n## Perturbative Solution\\n\\nThe more formal student might wonder at which points all these rather\\nhefty approximation are actually valid, which is obviously a very\\nsubstantial question. So, we will now try to isolate the most important\\ncontributions to the complicated system through perturbation theory. For\\nthat we will assume that we can write:\\n\\n$$\\n\\\\hat{V}(t) =\\\\lambda \\\\hat{H}_1(t)\\n$$\\n\\n, where $\\\\lambda$ is a small parameter. In other words\\nwe assume that the initial system $\\\\hat{H}_0$ is only weakly perturbed.\\nHaving identified the small parameter $\\\\lambda$, we make the\\n_perturbative ansatz_\\n\\n$$\\n \\\\gamma_n(t) = \\\\gamma_n^{(0)} + \\\\lambda \\\\gamma_n^{(1)} + \\\\lambda^2 \\\\gamma_n^{(2)} + \\\\cdots\\n$$\\n\\nand plug this ansatz in the evolution equations and sort\\nthem by terms of equal power in $\\\\lambda$.\\n\\nThe $0$th order reads\\n\\n$$\\n i\\\\hbar \\\\dot{\\\\gamma}_k^{(0)} = 0.\\n$$\\n\\nThe $0$th order does not have a time evolution since we\\nprepared it in an eigenstate of $\\\\hat{H}_0$. Any evolution arises due\\nthe coupling, which is at least of order $\\\\lambda$.\\n\\nSo, for the $1$st order we get\\n\\n$$\\n\\ni\\\\hbar \\\\dot{\\\\gamma}_k^{(1)} = \\\\sum_n \\\\gamma_n^{(0)} \\\\mathrm{e}^{-i(E_n-E_k)t/{\\\\hbar}}\\\\left\\\\langle k\\\\right|\\\\hat{H}_1\\\\left|n\\\\right\\\\rangle.\\n$$\\n\\n### First Order Solution (Born Approximation)\\n\\nFor the initial conditions $\\\\psi(t=0)=\\\\left|i\\\\right\\\\rangle$\\nwe get\\n\\n$$\\n\\\\gamma_k^{(0)}(t) = \\\\delta_{ik}.\\n$$\\n\\nWe plug this in the $1$st order approximation and obtain the rate for the system to go\\nto the final state $\\\\left|f\\\\right\\\\rangle$:\\n\\n$$\\ni \\\\hbar\\\\dot{\\\\gamma}^{(1)} = \\\\mathrm{e}^{i(E_f-E_i)t/{\\\\hbar}} \\\\left\\\\langle f\\\\right|\\\\hat{H}_1 \\\\left|i\\\\right\\\\rangle\\n$$\\n\\nIntegration with $\\\\gamma_f^{(1)}(t=0) = 0$ yields\\n\\n$$\\n\\n\\\\gamma_f^{(1)} = \\\\frac{1}{i\\\\hbar}\\\\int\\\\limits_0^t \\\\mathrm{e}^{i(E_f-E_i)t'/{\\\\hbar}} \\\\left\\\\langle f\\\\right| \\\\hat{H}_1(t')\\\\left|i\\\\right\\\\rangle \\\\mathop{}\\\\!\\\\mathrm{d}t',\\n$$\\n\\nso that we obtain the probability for ending up in the\\nfinal state:\\n\\n$$\\nP_{i\\\\to f}(t) = \\\\lambda^2\\\\left| \\\\gamma_f^{(1)}(t)\\\\right|^2.\\n$$\\n\\nNote that $P_{i\\\\to f}(t) \\\\ll 1$ is the condition for\\nthis approximation to be valid!\\n\\n**Example 1: Constant Perturbation.**\\n\\n\\n\\nSketch of a constant perturbation.\\n\\nWe apply a constant perturbation in the time interval\\n$\\\\left[0,T\\\\right]$, as shown in above. If we use the expression for $\\\\gamma_f^{(1)}$ and set $\\\\hbar \\\\omega_0 = E_f-E_i$, we get\\n\\n$$\\n\\\\gamma_f^{(1)}(t\\\\geq T) = \\\\frac{1}{i \\\\hbar} \\\\left\\\\langle f\\\\right|\\\\hat{H}_1\\\\left|i\\\\right\\\\rangle \\\\frac{\\\\mathrm{e}^{i\\\\omega_0 T}-1}{i\\\\omega_0},\\n$$\\n\\nand therefore\\n\\n$$\\nP_{i\\\\to f} = \\\\frac{1}{\\\\hbar^2}\\\\left|\\\\left\\\\langle f\\\\right|\\\\hat{V}\\\\left|i\\\\right\\\\rangle\\\\right|^2 \\\\underbrace{\\\\frac{\\\\sin^2\\\\left(\\\\omega_0\\\\frac{T}{2}\\\\right)}{\\\\left(\\\\frac{\\\\omega_0}{2}\\\\right)^2}}_{\\\\mathrm{y}(\\\\omega_0,T)}.\\n$$\\n\\nA sketch of $\\\\mathrm{y}(\\\\omega_0,T)$ is shown below\\n\\n\\n\\nA sketch of y\\n\\nWe can push this calculation to the extreme case of\\n$T\\\\rightarrow \\\\infty$. This results in a delta function, which is peaked\\nround $\\\\omega_0 = 0$ and we can write:\\n\\n$$\\nP_{i\\\\to f} = T\\\\frac{2\\\\pi}{\\\\hbar^2}\\\\left|\\\\left\\\\langle f\\\\right|\\\\hat{V}\\\\left|i\\\\right\\\\rangle\\\\right|^2\\\\delta(\\\\omega_0)\\n$$\\n\\nThis is the celebrated **Fermi's golden rule**.\\n\\n**Example 2: Sinusoidal Perturbation.** For the perturbation\\n\\n$$\\n\\\\hat{H}_1(t) = \\\\left\\\\{ \\\\begin{array}{ccl} \\\\hat{H}_1\\\\mathrm{e}^{-i\\\\omega t} && \\\\text{for}\\\\; 0 < t < T \\\\\\\\ 0 &&\\\\text{otherwise}\\\\end{array} \\\\right.\\n$$\\n\\nwe obtain the probability\\n\\n$$\\nP_{i\\\\to f} (t \\\\geq T) = \\\\frac{1}{\\\\hbar^2} \\\\left|\\\\left\\\\langle f\\\\right|\\\\hat{V}\\\\left|i\\\\right\\\\rangle\\\\right|^2 \\\\mathrm{y}(\\\\omega_0 - \\\\omega, T).\\n$$\\n\\nAt $\\\\omega = \\\\left|E_f - E_i\\\\right|/\\\\hbar$ we are on resonance.\\n\\nIn the fifth lecture, we will start to dive into the hydrogen atom.\\n\\n[^1]:\\n This is the idea behind atomic and optical clocks, which work\\n nowadays at $10^{-18}$.\\n\\n[^2002]: Jean Dalibard Jean-Louis Basdevant. Quantum Mechanics. Springer-Verlag, 2002.\\n\\n[^Cohen_Tannoudji_1998]: Claude Cohen-Tannoudji, Jacques Dupont-Roc, Gilbert Grynberg. Atom-Photon Interactions. Wiley-VCH Verlag GmbH, 1998.","order":4},{"title":"Lecture 5 - The Hydrogen Atom","content":"\\nIn this lecture we will first discuss the diagonalization of the\\nharmonic oscillator and then discuss the main properties of the hydrogen\\natom.\\n\\nIn the previous lectures we have seen how to treat eigenstates of the\\ntwo-level system and then how we can derive its effective emergence from\\nsome complex level structure if we apply oscillating\\nfields.\\n\\nToday, we will increase the complexity towards the harmonic oscillator\\nand the hydrogen atom.\\n\\n# The harmonic oscillator\\n\\nThe harmonic oscillator is another great toy model to understand certain\\nproperties of quantum mechanical systems. Most importantly, it is a\\ngreat introduction into the properties of bound systems and ladder\\noperators. The basic Hamiltonian comes along in a rather innocent\\nfashion, namely:\\n\\n$$\\n\\n\\\\hat{H} = \\\\frac{\\\\hat{p}^2}{2m}+ \\\\frac{m\\\\omega^2}{2}\\\\hat{x}^2\\n$$\\n\\nThe two variables $\\\\hat{p}$ and $\\\\hat{x}$ are\\nnon-commuting $[\\\\hat{x}, \\\\hat{p}] = i\\\\hbar$, so they cannot be measured\\nat the same time. We would now like to put the operator into a diagonal\\nform such that it reads something like:\\n\\n$$\\n\\n\\\\hat{H} = \\\\sum_n \\\\epsilon_n \\\\left|n\\\\right\\\\rangle\\\\left\\\\langle n\\\\right|\\n$$\\n\\nWe will follow he quite closely [this discussion](https://ocw.mit.edu/courses/nuclear-engineering/22-51-quantum-theory-of-radiation-interactions-fall-2012/lecture-notes/MIT22_51F12_Ch9.pdf).\\n\\n## The ladder operators\\n\\nWe would like to get the spectrum first. So make the equation look a bit\\nnicer we will define $\\\\hat{p} = \\\\hat{P} \\\\sqrt{m\\\\omega}$ and\\n$\\\\hat{x} = \\\\frac{\\\\hat{X}}{\\\\sqrt{m\\\\omega}}$ such that we have:\\n\\n$$\\n\\n\\\\hat{H} = \\\\frac{\\\\omega}{2}\\\\left(\\\\hat{P}^2 + \\\\hat{X}^2\\\\right)\\n$$\\n\\n[^1] The next step is then to define the ladder\\noperators:\\n\\n$$\\n\\\\hat{a} = \\\\frac{1}{\\\\sqrt{2\\\\hbar}}\\\\left(\\\\hat{X}+i\\\\hat{P}\\\\right)\\\\\\\\\\n\\\\hat{a}^\\\\dag = \\\\frac{1}{\\\\sqrt{2\\\\hbar}}\\\\left(\\\\hat{X}-i\\\\hat{P}\\\\right)\\\\\\\\\\n$$\\n\\nAt this stage we can just try to rewrite the Hamiltonian\\nin terms of the operators, such that:\\n\\n$$\\n\\\\hat{a}^\\\\dag \\\\hat{a} = \\\\frac{1}{2\\\\hbar}(\\\\hat{X}-i\\\\hat{P})(\\\\hat{X}+i\\\\hat{P})\\\\\\\\\\n= \\\\frac{1}{2\\\\hbar}(\\\\hat{X}^2 +\\\\hat{P}^2 -\\\\hbar)\\\\\\\\\\n \\\\frac{1}{2}(X^2 +\\\\hat{P}^2 ) = \\\\hbar \\\\left(\\\\hat{a}^\\\\dag \\\\hat{a}-\\\\frac{1}{2}\\\\right)\\n$$\\n\\nSo the Hamiltonian can now be written as:\\n\\n$$\\n\\\\hat{H} = \\\\hbar \\\\omega \\\\left(\\\\hat{N} + \\\\frac{1}{2}\\\\right)\\\\text{ with } \\\\hat{N} = a^\\\\dag a\\n$$\\n\\nAt this stage we have diagonalized the Hamiltonian, what\\nremains to be understood is the the values that $\\\\hat{a}^\\\\dag a$ can\\ntake.\\n\\n## Action of the ladder operators in the Fock basis\\n\\nWe would like to understand the basis, which is defined by:\\n\\n$$\\n\\\\hat{N} \\\\left|n\\\\right\\\\rangle = n \\\\left|n\\\\right\\\\rangle\\n$$\\n\\nThe non-commutation between $\\\\hat{X}$ and $\\\\hat{P}$ is\\ntranslated to the ladder operators as:\\n\\n$$\\n= \\\\frac{1}{2\\\\hbar}[\\\\hat{X}+iP,\\\\hat{X}-i\\\\hat{P}] = 1\\\\\\\\\\n~[\\\\hat{N}, a] = -\\\\hat{a}\\\\\\\\\\n~[\\\\hat{N}, a^\\\\dag] = a^\\\\dag\\n$$\\n\\nFrom these relationship we can show then that:\\n\\n$$\\n\\\\hat{a}\\\\left|n\\\\right\\\\rangle = \\\\sqrt{n}\\\\left|n-1\\\\right\\\\rangle\\\\\\\\\\n\\\\hat{a}^\\\\dag \\\\left|n\\\\right\\\\rangle = \\\\sqrt{n+1}\\\\left|n+1\\\\right\\\\rangle\\\\\\\\\\n$$\\n\\nThese relations are the motivation for the name ladder\\noperators as they connect the different eigenstates. And they are\\nraising/lowering the quantum number by one. Finally we have to find the\\nlower limit. And this is quite naturally 0 as\\n$n = \\\\left\\\\langle n\\\\right|\\\\hat{N}\\\\left|n\\\\right\\\\rangle = \\\\left\\\\langle\\\\psi_1\\\\right|\\\\left|\\\\psi_1\\\\right\\\\rangle\\\\geq 0$.\\nSo we can construct the full basis by just defining the action of the\\nlowering operator on the zero element\\n$a\\\\left|0\\\\right\\\\rangle = 0$ and the other operators are\\nthen constructed as:\\n\\n$$\\n\\\\left|n\\\\right\\\\rangle = \\\\frac{(a^\\\\dag)^n}{\\\\sqrt{n!}}\\\\left|0\\\\right\\\\rangle\\n$$\\n\\n## Spatial representation of the eigenstates\\n\\nWhile we now have the spectrum it would be really nice to obtain the\\nspatial properties of the different states. For that we have to project\\nthem onto the x basis. Let us start out with the ground state for which\\nwe have $\\\\hat{a}\\\\left|0\\\\right\\\\rangle= 0$:\\n\\n$$\\n\\\\left\\\\langle x\\\\right|\\\\frac{1}{\\\\sqrt{2\\\\hbar}}\\\\left(\\\\sqrt{m\\\\omega}\\\\hat{x} +i \\\\frac{1}{\\\\sqrt{m\\\\omega}}\\\\hat{p}\\\\right)\\\\left|0\\\\right\\\\rangle= 0\\\\\\\\\\n\\\\left(\\\\sqrt{\\\\frac{m\\\\omega}{\\\\hbar}}x + \\\\sqrt{\\\\frac{\\\\hbar}{m\\\\omega}}\\\\partial_x\\\\right)\\\\psi_0(x)= 0\\\\\\\\\\n\\\\Rightarrow \\\\psi_0(x) \\\\propto e^{-\\\\frac{x^2}{2a_{HO}^2}}\\n$$\\n\\nThis also introduces the typical distance in the quantum\\nharmonic oscillator which is given by $a_{HO} =\\\\sqrt{\\\\hbar/m\\\\omega}$.\\nThe other states are solutions to the defining equations:\\n\\n$$\\n\\\\psi_n(x) = \\\\frac{1}{\\\\sqrt{n!}2^n}\\\\left(\\\\sqrt{m\\\\omega}x - \\\\frac{1}{\\\\sqrt{m\\\\omega}}\\\\frac{d}{dx}\\\\right)^n \\\\psi_0(x)\\\\\\\\\\n\\\\psi_n(x) = \\\\frac{1}{\\\\sqrt{n!}2^n}H_n(x) \\\\psi_0(x)\\\\\\\\\\n$$\\n\\nwhere $H_n(x)$ are the Hermite polynoms.\\n\\n# The hamiltonian of the hydrogen atom\\n\\nThe hydrogen atom plays at central role in atomic physics as it is _the_\\nbasic ingredient of atomic structures. It describes a single _electron_,\\nwhich is bound to the nucleus of a single _proton_. As such it is the\\nsimplest of all atoms and can be described analytically within high\\nprecision. This has motivated an enormous body of literature on the\\nproblem, which derives all imaginable properties in nauseating detail.\\nTherefore, we will focus here on the main properties and only sketch the\\nderivations, while we will reference to the more technical details.\\n\\n\\n\\nSketch of the hydrogen atom with the relative coordinate and the\\ncoordinates of the proton and the electron.\\n\\nFor the hydrogen atom as shown in above, we can write down the Hamiltonian\\n\\n$$\\n\\\\hat{H}=\\\\frac{{{\\\\hat{\\\\vec{p}}}^2_\\\\text{p}}}{2m_\\\\text{p}} + \\\\frac{{\\\\hat{\\\\vec{p}}}^2_\\\\text{e}}{2m_\\\\text{e}} - \\\\frac{Ze^2}{4\\\\pi\\\\epsilon_0 r},\\n$$\\n\\nwhere $Ze$ is the nuclear charge. To solve the problem,\\nwe have to find the right Hilbert space. We can not solve the problem of\\nthe electron alone. If we do a separation of coordinates, i.e., we\\nseparate the Hamiltonian into the the center of mass and the relative\\nmotion, we get\\n\\n$$\\n\\\\hat{H} = \\\\underbrace{\\\\frac{{\\\\hat{\\\\vec{p}}}^2_{\\\\textrm{cm}}}{2M}}_{\\\\hat{H}_{\\\\textrm{cm}}} + \\\\underbrace{\\\\frac{{\\\\hat{\\\\vec{p}}}^2_\\\\text{r}}{2\\\\mu}- \\\\frac{Ze^2}{4\\\\pi\\\\epsilon_0r}}_{\\\\hat{H}_{\\\\text{atom}}}\\n$$\\n\\nwith the reduced mass $1/\\\\mu=1/m_\\\\text{e}+1/m_\\\\text{p}$.\\nIf the state of the hydrogen atom $\\\\left|\\\\psi\\\\right\\\\rangle$\\nis an eigenstate of $\\\\hat{H}$, we can write\\n\\n$$\\n\\\\hat{H}\\\\left|\\\\psi\\\\right\\\\rangle=\\\\left(\\\\hat{H}_\\\\textrm{cm}+\\\\hat{H}_{\\\\text{atom}} \\\\right)\\\\left|\\\\psi_\\\\textrm{cm}\\\\right\\\\rangle\\\\otimes \\\\left|\\\\psi_\\\\text{atom}\\\\right\\\\rangle \\\\\\\\\\n= \\\\left( E_{\\\\text{kin}} + E_\\\\text{atom} \\\\right) \\\\left|\\\\psi\\\\right\\\\rangle.\\n$$\\n\\nBoth states are eigenstates of the system. The state\\n$\\\\left|\\\\psi\\\\right\\\\rangle$ can be split up as shown since\\nthe two degrees of freedom are generally not entangled.\\n\\n![Sketch of the hydrogen atom with the relative coordinate and the\\ncoordinates of the proton and the electron.\\n](figures/Bildschirmfoto-2018-09-28-um-16-07-07/Bildschirmfoto-2018-09-28-um-16-07-07){#261310\\nwidth=\\"0.70\\\\\\\\columnwidth\\"}\\n\\nThe wave function of the system then reads:\\n\\n$$\\n\\\\psi(\\\\vec{R},\\\\vec{r}) = \\\\left( \\\\left\\\\langle R\\\\right| \\\\otimes \\\\left\\\\langle r\\\\right|\\\\right)\\\\left( \\\\left|\\\\psi_\\\\textrm{cm}\\\\right\\\\rangle \\\\otimes \\\\left|\\\\psi_{\\\\text{atom}}\\\\right\\\\rangle\\\\right)\\\\\\\\\\n= \\\\psi(\\\\vec{R}) \\\\cdot \\\\psi (\\\\vec{r})\\n$$\\n\\nOur goal is now to find the eigenfunctions and\\neigenenergies of $\\\\hat{H}_\\\\text{atom}$. In order to further divide the\\nHilbert space, we can use the symmetries.\\n\\n# Conservation of orbital angular momentum\\n\\n$\\\\hat{H}_\\\\text{atom}$ possesses spherical symmetry, which implies that\\n**orbital angular momentum** $\\\\hat{\\\\vec{L}}$ is conserved. It is defined\\nas:\\n\\n$$\\n\\\\hat{\\\\vec{L}}=\\\\hat{\\\\vec{r}} \\\\times \\\\hat{\\\\vec{p}}\\n$$\\n\\nIn other words, we have:\\n\\n$$\\n= 0\\n$$\\n\\nLet us show first that the kinetic term commutes with\\nthe angular momentum operator, We will employ the commutator\\nrelationships for position and momentum $[x_i, p_j]=i\\\\hbar$ and the\\nrelationship $[A,BC] = [A,B]C+B[A,C]$ and\\n$[f(x), p_x] = [x,p_x]\\\\frac{\\\\partial f(x)}{\\\\partial x}$. So we obtain:\\n\\n$$\\n= [p_x^2,xp_y]-[p_y^2,yp_x] \\\\\\\\\\n = [p_x^2,x]p_y-[p_y^2,y] p_x\\\\\\\\\\n =i\\\\hbar 2 p_xp_y-2i\\\\hbar p_y p_x\\\\\\\\\\n = 0\\n$$\\n\\nAnalog calculations show that $L_y$ and $L_z$ commute.\\nIn a similiar fashion we can verify that the potential term commutes\\nwith the different components of $\\\\hat{\\\\vec{L}}$\\n\\n$$\\n= [\\\\frac{1}{r}, xp_y]-[\\\\frac{1}{r}, yp_x]\\\\\\\\\\n= x[\\\\frac{1}{r}, p_y]-y[\\\\frac{1}{r}, p_x]\\\\\\\\\\n= -x \\\\frac{yi\\\\hbar}{2r^{3/2}}+y\\\\frac{xi\\\\hbar}{2r^{3/2}}\\\\\\\\\\n=0\\n$$\\n\\nWe can therefore decompose the eigenfunctions of the\\nhydrogen atom over the eigenbasis of the angular momentum operator. A\\ndetailled discussion of the properties of $\\\\vec{L}$ can be found in\\n[Appendix B of Hertel](http://dx.doi.org/10.1007/978-3-642-54322-7). To find the eigenbasis, we first need to\\nidentify the commutation relationships between the components of\\n$\\\\hat{\\\\vec{L}}$. We can calculate them following commutation\\nrelationships:\\n\\n$$\\n= [yp_z - zp_y, zp_x - xp_z]\\\\\\\\\\n=[yp_z, zp_x]-[yp_z,xp_z]- [zp_y, zp_x] + [zp_y,xp_z]\\\\\\\\\\n=[yp_z, zp_x] + [zp_y,xp_z]\\\\\\\\\\n=[yp_z, z]p_x +x[zp_y,p_z]\\\\\\\\\\n=-i\\\\hbar yp_x +i\\\\hbar xp_y\\\\\\\\\\n= i\\\\hbar L_z\\n$$\\n\\nThis relationship holds for all the other components too\\nand we have in general:\\n\\n$$\\n= i\\\\hbar \\\\epsilon_{ijk}L_k\\n$$\\n\\nThe orbital angular momentum is therefore part of the\\nlarge family of angular momentum operators, which also comprises spin\\netc. In particular the different components are not independent, and\\ntherefore we cannot form a basis out the three components. A suitable\\nchoice is actually to use the following combinations:\\n\\n$$\\n\\\\hat{\\\\vec{L}}^2\\\\left|l,m_l\\\\right\\\\rangle = \\\\hbar^2 l (l+1)\\\\left|l,m_l\\\\right\\\\rangle\\\\\\\\\\n\\\\hat{L}_z\\\\left|l,m_l\\\\right\\\\rangle = \\\\hbar m_l \\\\left|l,m_l\\\\right\\\\rangle\\n$$\\n\\n- $l$ is a non-negative integer and it is called the **orbital angular\\n momentum quantum number**.\\n\\n- $m_l$ takes values $-l, -l+1, ..., l-1, l$ and it is sometimes\\n called the **projection of the angular momentum**.\\n\\n## Eigenfunction of the angular momentum operators\\n\\nHaving identified the relevant operators it would be nice to obtain a\\nspace representation of them. This works especially nicely in spherical\\ncoordinates. There, we get\\n\\n$$\\n\\\\hat{L}_z= - i \\\\hbar \\\\partial_{\\\\phi}\\\\\\\\\\n\\\\hat{\\\\vec{L}}^2 = - \\\\hbar^2 \\\\left[\\\\frac{1}{\\\\sin(\\\\theta)}\\\\partial_{\\\\theta} \\\\left( \\\\sin(\\\\theta) \\\\partial_\\\\theta\\\\right) + \\\\frac{1}{\\\\sin^2(\\\\theta)} \\\\partial_{\\\\phi\\\\phi} \\\\right].\\n$$\\n\\nThe corresponding wave functions are\\n\\n$$\\n\\\\left\\\\langle\\\\theta, \\\\phi | l,m_l\\\\right\\\\rangle = Y_{lm}(\\\\theta,\\\\phi).\\n$$\\n\\nWhere $Y_{lm}(\\\\theta, \\\\phi)$ are the **spherical harmonics**.\\n\\n# The radial wave equation\\n\\nGiven that we now know that the angular momentum is conserved for the\\nhydrogen atom, we can actually rewrite the Hamltonian in terms of the angular momentum as\\nwe find:\\n\\n$$\\n\\\\hat{H}_\\\\text{atom} = \\\\hat{H}_r + \\\\frac{\\\\hat{L}}{2\\\\mu r^2}+V(r) \\\\\\\\\\n\\\\hat{H}_r = -\\\\frac{\\\\hbar^2}{2\\\\mu}\\\\frac{1}{r^2}\\\\frac{\\\\partial}{\\\\partial r}\\\\left(r^2\\\\frac{\\\\partial}{\\\\partial r}\\\\right)\\n$$\\n\\nWe can now separate out the angular part and decompose\\nit over the eigenfunctions of $\\\\hat{\\\\vec{L}}$, such that we make the\\nansatz [^2]:\\n\\n$$\\n\\\\psi (r,\\\\theta,\\\\phi) = R(r) Y_{lm}(\\\\theta,\\\\phi)\\n$$\\n\\nWe can plug this separated ansatz in the Schrödinger equation. We\\nalready solved the angular in the discussion of the angular momentum and\\nfor the radial part we obtain:\\n\\n$$\\n-\\\\frac{\\\\hbar^2}{2\\\\mu}\\\\frac{1}{r}\\\\frac{d^2(rR(r))}{dr^2} - \\\\frac{Ze^2}{4\\\\pi\\\\epsilon_0 r} R(r) + \\\\frac{\\\\hbar^2}{2\\\\mu}\\\\frac{l(l+1)}{r^2}R(r) = ER(r)\\n$$\\n\\nSubstituting $R(r)=u(r)/r$ leads to\\n\\n$$\\n-\\\\frac{\\\\hbar^2}{2\\\\mu}\\\\frac{d^2}{dr^2}u(r) +\\\\underbrace{ \\\\left( -\\\\frac{Ze^2}{4\\\\pi\\\\epsilon_0 r} + \\\\frac{\\\\hbar^2}{2\\\\mu} \\\\frac{l(l+1)}{r^2} \\\\right)}_{V_{\\\\text{eff}}} u(r) = E \\\\, u(r),\\n$$\\n\\nwhich is known as the \\"radial wave equation\\". It is a\\nvery general result for _any_ central potential. It can also be used to\\ndescribe unbound states ($E>0$) that occur during scattering.\\n\\nIn the next lecture we will look into the energy scales of the hydrogen atom and then start\\ncoupling different levels.\\n\\n[^1]:\\n The commutator between $\\\\hat{X}$ and $\\\\hat{P}$ is still as for $x$\\n and $p$.\\n\\n[^2]:\\n Only if the system is in a well-defined angular momentum state, we\\n can write it down like this.","order":5},{"title":"Lecture 6 - The dipole approximation in the hydrogen atom","content":"\\nWe will continue with some properties of the hydrogen atom. First\\ncompare it to the harmonic oscillator, then look into dipole transitions\\nand end with the coupling to static magnetic fields.\\n\\nIn the last lecture, we discussed the basic properties of the\\nhydrogen atom and found its eigenstates. We will now summarize the most\\nimportant properties and look into its orbitals. From that we will\\nunderstand the understand the interaction with electromagnetic waves and\\nintroduce the selection rules for dipole transitions.\\n\\n# The energies of Hydrogen and its wavefunctions\\n\\nIn the last lecture, we looked into hydrogen and saw that we could write\\nit's Hamiltonian as:\\n\\n$$\\n\\\\hat{H}_\\\\text{atom} = \\\\hat{H}_r + \\\\frac{\\\\hat{L}}{2\\\\mu r^2}+V(r) \\\\\\\\\\n\\\\hat{H}_r = -\\\\frac{\\\\hbar^2}{2\\\\mu}\\\\frac{1}{r^2}\\\\frac{\\\\partial}{\\\\partial r}\\\\left(r^2\\\\frac{\\\\partial}{\\\\partial r}\\\\right)\\n$$\\n\\nWe could then separate out the angular part and\\ndecompose it as:\\n\\n$$\\n\\\\psi (r,\\\\theta,\\\\phi) = \\\\frac{u(r)}{r} Y_{lm}(\\\\theta,\\\\phi)\\n$$\\n\\nThe radial wave equation reads then:\\n\\n$$\\n\\n-\\\\frac{\\\\hbar^2}{2\\\\mu}\\\\frac{d^2}{dr^2}u(r) +\\\\underbrace{ \\\\left( -\\\\frac{Ze^2}{4\\\\pi\\\\epsilon_0 r} + \\\\frac{\\\\hbar^2}{2\\\\mu} \\\\frac{l(l+1)}{r^2} \\\\right)}_{V_{\\\\text{eff}}} u(r) = E \\\\, u(r),\\n$$\\n\\n## Energy scales\\n\\nWe can now make the last equation dimensionless, by rewriting:\\n\\n$$\\nr = \\\\rho \\\\tilde{a}_{0}\\n$$\\n\\nSo we rewrite:\\n\\n$$\\n-\\\\frac{\\\\hbar^2}{2\\\\mu \\\\tilde{a}_{0}^2}\\\\frac{d^2}{d\\\\rho^2}u(r) + \\\\left( -\\\\frac{Ze^2}{4\\\\pi\\\\epsilon_0\\\\tilde{a}_{0}}\\\\frac{1}{\\\\rho} + \\\\frac{\\\\hbar^2}{2\\\\mu \\\\tilde{a}_{0}^2} \\\\frac{l(l+1)}{\\\\rho^2} \\\\right) u(r) = E \\\\, u(r),\\n$$\\n\\nThis allows us to measure energies in units of:\\n\\n$$\\nE = \\\\epsilon R_{y,\\\\textrm{m}}\\\\\\\\\\nR_{y,\\\\textrm{m}} = -\\\\frac{\\\\hbar^2}{2\\\\mu \\\\tilde{a}_{0}^2}\\n$$\\n\\nThe equation reads then:\\n\\n$$\\n\\\\frac{d^2}{d\\\\rho^2}u(\\\\rho) + \\\\left( \\\\frac{\\\\mu Ze^2 \\\\tilde{a}_{0}}{\\\\hbar^2 4\\\\pi\\\\epsilon_0}\\\\frac{2}{\\\\rho} - \\\\frac{l(l+1)}{\\\\rho^2} \\\\right) u(\\\\rho) = \\\\epsilon u(\\\\rho),\\n$$\\n\\nIf we finally set\\n\\n$$\\n\\\\tilde{a}_{0}=\\\\frac{4\\\\pi\\\\epsilon_0 \\\\hbar^2}{\\\\mu Z e^2}\\n$$\\n\\nWe obtain the especially elegant formulation:\\n\\n$$\\n\\\\frac{d^2}{d\\\\rho^2}u(\\\\rho) + \\\\left( \\\\frac{2}{\\\\rho} - \\\\frac{l(l+1)}{\\\\rho^2} \\\\right) u(\\\\rho) = \\\\epsilon u(\\\\rho),\\n$$\\n\\nWe typically call $\\\\tilde{a}_{0}$ the **Bohr radius**\\nfor an atom with reduced mass $\\\\mu$ and with a nucleus with charge\\nnumber $Z$. $R_{y,\\\\textrm{m}}$ is the **Rydberg energy** of such an\\natom.\\n\\nThe universal constant is defined for the infinite mass limit\\n$\\\\mu \\\\approx m_e$ and for $Z=1$. As a length scale we introduce the Bohr\\nradius for infinite nuclear mass\\n\\n$$\\na_0 = \\\\frac{4\\\\pi\\\\epsilon_0\\\\hbar^2}{m_e e^2} = 0.5\\\\text{angstrom} = 0.05 \\\\text{nm}.\\n$$\\n\\nThe energy scale reads:\\n\\n$$\\nR_{y,\\\\infty} = \\\\frac{m_e e^4}{32 \\\\pi^2 \\\\epsilon_0^2 \\\\hbar^2}\\\\\\\\\\n\\\\approx 2.179e-18\\\\textrm{J}\\\\\\\\\\n \\\\approx e \\\\times 13.6\\\\textrm{eV}\\\\\\\\\\n\\\\approx h \\\\times 3289\\\\textrm{THz}\\n$$\\n\\nSo if we excite the hydrogen atom for time scales of a\\nfew attoseconds, we will coherently create superposition states of all\\nexisting levels. But which ones ? And at which frequency ?\\n\\n## Solution of the radial wave equation\\n\\nAt this stage we can have a look into the energy landscape:\\n\\n\\n\\nEnergy potential of the hydrogen atom\\n\\nThe energies read then\\n\\n$$\\nE_n = -\\\\frac{R_{y,\\\\textrm{m}}}{n^2} \\\\qquad \\\\text{with} \\\\qquad n=1,2,3,\\\\cdots\\n$$\\n\\nfor $l=0$ and\\n\\n$$\\nE_n = -\\\\frac{R_{y,\\\\textrm{m}}}{n^2} \\\\qquad \\\\text{with} \\\\qquad n=2,3,4,\\\\cdots\\n$$\\n\\nfor $l=1$. Despite the different effective potentials, we get the\\nsame eigenstates. This looks like an accidental degeneracy. Actually,\\nthere is a hidden symmetry which comes from the so-called \\"Runge-Lenz\\"\\nvector. It only occurs in an attractive $1/r$-potential . This\\nvector reads: $$\\\\mathbf{A} =\\\\mathbf{p}\\\\times\\\\mathbf{L}-\\\\mathbf{r}$$\\n\\nFinally, we can also visualize the radial wavefunctions for the hydrogen\\natom as shown below\\n\\n\\n\\nAssociated with these radial wavefunctions, we also have the angular\\nprofiles. Where $Y_{lm}(\\\\theta, \\\\phi)$ are the **spherical harmonics**\\nas shown below\\n\\n\\n\\nTheir shape is especially important for understanding the possibility of\\ncoupling different orbits through electromagnetic waves.\\n\\n# The electric dipole approximation\\n\\nBelow you see the interaction between an atom and an electromagnetic wave $\\\\vec{E}$ with\\nwave vector $\\\\vec{k}$. The states $\\\\text{|g>}$ and $\\\\text{|e>}$ stand\\nfor the ground and excited state and $\\\\hbar\\\\omega_0$ is the energy of\\nthe resonant transition between the states.\\n\\n\\n\\nWe consider an atom which is located in a radiation field. By resonant\\ncoupling with the frequency $\\\\omega_0$, it can go from the ground state\\n$\\\\left|g\\\\right\\\\rangle$ to the excited state\\n$\\\\left|e\\\\right\\\\rangle$.\\n\\nThe potential energy of a charge distribution in a homogeneous\\nelectromagnetic field $\\\\vec{E}$ is:\\n\\n$$\\nE_\\\\text{pot} = \\\\sum_i q_i \\\\vec{r}_i\\\\cdot \\\\vec{E}.\\n$$\\n\\nIf the upper limit of the sum is 2, we obtain the dipole\\nmoment\\n\\n$$\\n\\\\vec{D} = e \\\\vec{r}.\\n$$\\n\\nFor the hydrogen atom, the distance corresponds to the\\nBohr radius.\\n\\n\\n\\n**Note.** Apart from the monopole, the dipole potential is the lowest\\norder term of the multipole expansion of the scalar potential $\\\\phi$:\\n\\n$$\\n\\\\phi \\\\left( \\\\vec{r} \\\\right) = \\\\frac{1}{4\\\\pi\\\\epsilon_0}\\\\frac{\\\\vec{D}\\\\cdot\\\\vec{r}}{|\\\\vec{r}|^3}\\\\\\\\\\n\\\\vec{E}(\\\\vec{r})= \\\\vec{\\\\nabla}\\\\phi(\\\\vec{r}) = \\\\frac{ 3 \\\\left(\\\\vec{D}\\\\cdot \\\\vec{r}\\\\right) \\\\vec{r}/{|\\\\vec{r}|^2}- \\\\vec{D}}{4\\\\pi\\\\epsilon_0|\\\\vec{r}|^3}.\\n$$\\n\\nFor the dipole approximation we consider the size of the atom and\\ncompare it to the wavelength $\\\\lambda$ of the electromagnetic field:\\n\\n$$\\n\\\\left\\\\langle|r|\\\\right\\\\rangle \\\\sim 1\\\\text{angstrom}\\\\ll \\\\lambda \\\\sim 10^3\\\\text{angstrom}\\n$$\\n\\n- Therefore, we assume that the field is homogeneous in space and omit\\n the spatial dependence:\\n\\n$$\\n E(r,t) \\\\approx E(t)\\n\\n\\n\\n\\n$$\\n\\n- The correction term resulting from the semi-classical dipole\\n approximation then is\\n\\n$$\\n \\\\hat{H}_1(t)=-e\\\\hat{\\\\vec{r}} \\\\cdot \\\\vec{E}(t) = -\\\\hat{\\\\vec{D}} \\\\cdot \\\\vec{E}(t)\\n\\n\\n\\n\\n$$\\n\\n- Why can the magnetic field be ignored in this approximation? The\\n velocity of an electron is $\\\\sim \\\\alpha c$. The hydrogen atom only\\n has small relativistic corrections. If we compare the modulus of the\\n magnetic and the electric field, we get:\\n\\n$$\\n \\\\left| \\\\vec{B} \\\\right| = \\\\frac{|\\\\vec{E}|}{c}\\n$$\\n\\nThe electric field contribution thus dominates. Now we choose\\n\\n$$\\n\\\\vec{E} = E_0 \\\\vec{\\\\epsilon} \\\\cos \\\\left(\\\\omega t - \\\\vec{k} \\\\cdot \\\\vec{r}\\\\right)\\n$$\\n\\nand do time-dependent perturbation theory:\\n\\n$$\\n\\\\left|\\\\psi(t)\\\\right\\\\rangle = \\\\gamma_1(t) \\\\mathrm{e}^{-iE_1t/\\\\hbar} \\\\left|1\\\\right\\\\rangle + \\\\gamma_2(t) \\\\mathrm{e}^{-iE_2t/\\\\hbar} \\\\left|2\\\\right\\\\rangle\\\\\\\\\\n+\\\\sum_{n=3}^\\\\infty \\\\gamma_n \\\\mathrm{e}^{-iE_nt/\\\\hbar} \\\\left|n\\\\right\\\\rangle\\n$$\\n\\nAs initial condition we choose\\n\\n$$\\n \\\\gamma_i(0) = \\\\left\\\\{ \\\\begin{array}{ccc} 1 &\\\\text{for}& i=1 \\\\\\\\ 0 &\\\\text{for}& i>1 \\\\end{array} \\\\right.\\n$$\\n\\nWe write $\\\\omega_0 = (E_2-E_1)/\\\\hbar$ and get to first\\norder $\\\\hat{\\\\vec{D}}$:\\n\\n$$\\n\\\\gamma_2(t) = \\\\overbrace{\\\\frac{E_0}{2\\\\hbar} \\\\left\\\\langle 2|\\\\hat{\\\\vec{D}}\\\\cdot \\\\vec{\\\\epsilon}|1\\\\right\\\\rangle}^{\\\\text{Rabi frequency }\\\\Omega} \\\\underbrace{\\\\left(\\\\frac{\\\\mathrm{e}^{i(\\\\omega_0 + \\\\omega)t}-1}{\\\\omega_0 + \\\\omega} + \\\\frac{\\\\mathrm{e}^{i(\\\\omega_0 - \\\\omega)t}-1}{\\\\omega_0 - \\\\omega}\\\\right)}_{\\\\text{time evolution of the system}}\\n$$\\n\\nThe term before the round brackets is called dipole\\nmatrix element:\\n\\n$$\\n\\n\\\\left\\\\langle 2|\\\\hat{\\\\vec{D}}\\\\cdot \\\\vec{\\\\epsilon}\\\\,|1\\\\right\\\\rangle =e \\\\int \\\\psi_2\\\\left(\\\\vec{r}\\\\right) \\\\cdot \\\\vec{r} \\\\cdot \\\\vec{\\\\epsilon} \\\\cdot \\\\psi_1\\\\left(\\\\vec{r}\\\\right) \\\\mathop{}\\\\!\\\\mathrm{d}\\\\vec{r}.\\n$$\\n\\n\\n\\n# Selection rules\\n\\nWe can now look into the allowed transition in the atom as they are what\\nwe will typically observe within experiments.\\n\\n## Change of parity\\n\\nThe parity operator is defined as:\\n\\n$$\\n\\\\hat{P}\\\\psi(\\\\vec{r}) = \\\\psi(-\\\\vec{r})\\n$$\\n\\nFor the eigenfunction we have:\\n\\n$$\\n\\\\hat{P} \\\\psi(\\\\vec{r}) = \\\\lambda \\\\psi(\\\\vec{r})\\\\\\\\\\n\\\\lambda = \\\\pm 1\\n$$\\n\\nThe eigenvalues are called _odd_ and _even_. From the\\ndefinition of the dipole operator we can see that it is of odd parity.\\nWhat about the parity of the states that it is coupling ? If they have\\nboth the same parity than the whole integral will disappear and no\\ndipole transition can appear.\\n\\nWe can become more concrete for the given eigenfunctions as we have\\nwithin spherical coordinates:\\n\\n$$\\n(r, \\\\theta, \\\\phi) \\\\rightarrow (r, \\\\pi -\\\\theta, \\\\phi+\\\\pi)\\n$$\\n\\nFor the orbitals of the hydrogen atom we then have\\nexplicitly:\\n\\n$$\\n\\\\hat{P}\\\\psi_{nlm}(r, \\\\theta, \\\\phi) = R_{nl}(r)Y_{lm}(\\\\pi -\\\\theta, \\\\phi+\\\\pi)\\\\\\\\\\n= (-1)^l R_{nl}(r)Y_{lm}(, \\\\theta, \\\\phi)\\n$$\\n\\nThis gives us the first selection rule that the\\n**orbital angular momentum has to change for dipole transitions**\\n$\\\\Delta l = \\\\pm 1$.\\n\\n- $s$ orbitals are only coupled to $p$ orbitals through dipole\\n transitions.\\n\\n- $p$ orbitals are only coupled to $s$ and $d$ orbitals through dipole\\n transitions.\\n\\n## Coupling for linearly polarized light\\n\\nHaving established the need for parity change, we also need to\\ninvestigate the influence of the polarization of the light, which enters\\nthe dipole operator through the vector $\\\\epsilon$. In the simplest case\\nthe light has linear polarization ($\\\\pi$ polarized) and we can write:\\n\\n$$\\n\\\\vec{E}(t) = \\\\vec{e}_zE_0 \\\\cos(\\\\omega t +\\\\varphi)\\n$$\\n\\nThis means that the dipole transition element is now given by:\\n\\n$$\\n\\\\left\\\\langle 2\\\\right|\\\\vec{D}\\\\cdot\\\\vec{e}_z\\\\left|1\\\\right\\\\rangle = e \\\\int \\\\psi_2(\\\\vec{r}) z \\\\psi_1\\\\left(\\\\vec{r}\\\\right) \\\\mathop{}\\\\!\\\\mathrm{d}\\\\vec{r}\\n$$\\n\\nWe can now transform z into the spherical coordinates\\n$z= r \\\\cos(\\\\theta) = r\\\\sqrt{\\\\frac{4\\\\pi}{3}}Y_{10}(\\\\theta, \\\\phi)$. We can\\nfurther separate out the angular part of the integral to obtain:\\n\\n$$\\n\\\\left\\\\langle 2\\\\right|\\\\vec{D}\\\\cdot\\\\vec{e}_z\\\\left|1\\\\right\\\\rangle \\\\propto e \\\\int \\\\sin(\\\\theta) d\\\\theta d\\\\varphi Y_{l',m'}(\\\\theta, \\\\varphi) Y_{10}(\\\\theta, \\\\phi) Y_{l,m}(\\\\theta, \\\\varphi)\\n$$\\n\\nThis element is only non-zero if $m = m'$ (see [appendix\\nC of Hertel 2015](http://dx.doi.org/10.1007/978-3-642-54322-7) for all the gorious details).\\n\\n\\n\\nAbove are the dipole selection rules for different polarizations of light.\\n\\n## Circularly polarized light\\n\\nLight has not just linear polarization, but it might also have some\\ncircular polarization. In this case we can write:\\n\\n$$\\n\\\\vec{E}(t) = \\\\frac{E_0}{\\\\sqrt{2}} \\\\left(\\\\cos(\\\\omega t +\\\\varphi)\\\\vec{e}_x + \\\\sin(\\\\omega t +\\\\varphi)\\\\vec{e}_y\\\\right)\\\\\\\\\\n\\\\vec{E}(t) = \\\\text{Re}\\\\left(\\\\vec{e}_+ E_0 e^{-i\\\\omega t +\\\\phi}\\\\right)\\\\\\\\\\n\\\\vec{e}_\\\\pm = \\\\frac{\\\\vec{e}_x\\\\pm i\\\\vec{e}_y}{\\\\sqrt{2}}\\n$$\\n\\nSo light with polarization $\\\\vec{\\\\epsilon} = \\\\vec{e}_+$\\nis called right-hand circular ($\\\\sigma^+$) and\\n$\\\\vec{\\\\epsilon} = \\\\vec{e}_-$ is called left-hand circular ($\\\\sigma^-$).\\nLet us now evaluate the transition elements here. The dipole operator\\nelement boils now down to the evaluation of the integral:\\n\\n$$\\n\\\\left\\\\langle l',m',n'\\\\right|x+iy\\\\left|l,m,n\\\\right\\\\rangle\\n$$\\n\\nAs previously we can express the coupling term in\\nspherical coordinates:\\n\\n$$\\n\\\\frac{x+iy}{\\\\sqrt{2}} = -r \\\\sqrt{\\\\frac{4\\\\pi}{3}}Y_{11}(\\\\theta, \\\\varphi)\\n$$\\n\\nEvaluation of the integrals lead now to the rule the\\nprojection of the quantum number has to change $m' = m+1$. In a similiar\\nfashion we find for left-hand circular light the selection rule\\n$m' = m - 1$.\\n\\nIn the next lecture, we will investigate the influence of\\nperturbative effects and see how the fine structure arises.","order":6},{"title":"Lecture 7 - Beyond the 'boring' hydrogen atom","content":"\\nIn this lecture we will use the hydrogen atom to study static\\nperturbations in form of external magnetic fields and relativistic\\neffects, leading to the fine structure splitting.\\n\\nWe spend quite some time on the properties of the hydrogen atom in the\\nprevious lectures [@Jendrzejewski; @atom]. However, we completely\\nneglected any effects of quantum-electrodynamics and relativistic\\nphysics. In this lecture we will study, why this is a good approximation\\nfor the hydrogen atom and then investigate in a perturbative fashion the\\nterms. Most importantly, we will introduce that coupling between the\\norbital angular momentum and the spin of the electron, which leads to\\nthe fine splitting.\\n\\n## Perturbation theory\\n\\nUp to now have studied the hydrogen atom to find its eigensystem and\\nthen studied how it evolves under the presence of oscillating electric\\nfields. This allowed us to understand in more detail the idea of\\neigenstates and then of time-dependent perturbation theory. However, one\\nof the most important concepts that can be introduced very nicely on the\\nhydrogen atom is stationnary perturbation theory in form of external\\nmagnetic fields or relativistic corrections. We will remind you of\\nperturbation theory here and then apply it to some simple cases.\\n\\nWe can now simply write down the problem as:\\n\\n$$\\n\\\\left(\\\\hat{H}_0+\\\\lambda \\\\hat{W}\\\\right)\\\\left|\\\\psi_m\\\\right\\\\rangle = E_m\\\\left|\\\\psi_m\\\\right\\\\rangle\\n$$\\n\\n$\\\\lambda$ is a very small parameter and $\\\\hat{H}_0$ is\\ndescribing the hydrogen atom system. We will note the eigenvalues and\\neigenstates of this system as:\\n\\n$$\\n\\n\\\\hat{H}_0\\\\left|\\\\varphi_n\\\\right\\\\rangle = \\\\epsilon_n \\\\left|\\\\varphi_n\\\\right\\\\rangle\\n$$\\n\\nWhile, we do not know the exact solution of\\n$\\\\left|\\\\psi_m\\\\right\\\\rangle$ and the energy $E_m$, we decide\\nto decompose them in the following expansion of the small parameter\\n$\\\\lambda$:\\n\\n$$\\n\\\\left|\\\\psi_m\\\\right\\\\rangle = \\\\left|\\\\psi_m^{(0)}\\\\right\\\\rangle + \\\\lambda\\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle+\\\\lambda^2\\\\left|\\\\psi_m^{(2)}\\\\right\\\\rangle+O(\\\\lambda^3)\\\\\\\\\\nE_m = E_m^{(0)} +\\\\lambda E_m^{(1)} + \\\\lambda^2 E_m^{(2)}+O(\\\\lambda^3)\\\\,\\n$$\\n\\nTo zeroth order in $\\\\lambda$ we obtain:\\n\\n$$\\n\\\\hat{H}_0\\\\left|\\\\psi_m^{(0)}\\\\right\\\\rangle = E_m^{(0)}\\\\left|\\\\psi_m^{(0)}\\\\right\\\\rangle\\n$$\\n\\nSo it is just the unperturbed system and we can\\nidentify:\\n\\n$$\\n\\\\left|\\\\psi_m^{(0)}\\\\right\\\\rangle = \\\\left|\\\\varphi_m\\\\right\\\\rangle~~E_m^{(0)} = \\\\epsilon_m\\n$$\\n\\nFor the first order we have to solve\\n\\n$$\\n\\n(\\\\hat{H}_0-E_m^{(0)}) \\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle + (\\\\hat{W}-E_m^{(1)})\\\\left|\\\\psi_m^{(0)}\\\\right\\\\rangle= 0\\\\\\\\\\n(\\\\hat{H}_0-\\\\epsilon_m) \\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle + (\\\\hat{W}-E_m^{(1)})\\\\left|\\\\varphi_m\\\\right\\\\rangle= 0\\n$$\\n\\nWe can multiply the whole equation by\\n$\\\\left\\\\langle\\\\varphi_m\\\\right|$ from the right. As\\n$\\\\left\\\\langle\\\\varphi_m\\\\right|\\\\hat{H}_0= \\\\epsilon_m\\\\left\\\\langle\\\\varphi_m\\\\right|$,\\nthe first term cancels out. Hence, we obtain:\\n\\n$$\\n\\n\\\\boxed{E_m^{(1)} = \\\\left\\\\langle\\\\varphi_m\\\\right|\\\\hat{W}\\\\left|\\\\varphi_m\\\\right\\\\rangle}\\n$$\\n\\nWe now also need to obtain the correction to the\\neigenstate. For that, we put the solution for the energy into the Ansatz to obain:\\n\\n$$\\n(\\\\hat{H}_0-\\\\epsilon_m) \\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle + (\\\\hat{W}\\\\left|\\\\varphi_m\\\\right\\\\rangle-\\\\left|\\\\varphi_m\\\\right\\\\rangle\\\\left\\\\langle\\\\varphi_m\\\\right|\\\\hat{W}\\\\left|\\\\varphi_m\\\\right\\\\rangle)= 0\\n$$\\n\\nWe can now multiply the whole equation by\\n$\\\\left\\\\langle\\\\varphi_i\\\\right|$ from the right and obtain:\\n\\n$$\\n(\\\\epsilon_i-\\\\epsilon_m)\\\\left\\\\langle\\\\varphi_i\\\\right|\\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle+\\\\left\\\\langle\\\\varphi_i\\\\right|\\\\hat{W}\\\\left|\\\\varphi_m\\\\right\\\\rangle = 0\\n$$\\n\\nBy rewriting the above equation, this directly gives us\\nthe decompositon of the $\\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle$\\nonto the original eigenstates and have:\\n\\n$$\\n\\n\\\\boxed{\\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle = \\\\sum_{i\\\\neq m} \\\\frac{\\\\left\\\\langle\\\\varphi_i\\\\right|\\\\hat{W}\\\\left|\\\\varphi_m\\\\right\\\\rangle}{(\\\\epsilon_m-\\\\epsilon_i)}\\\\left|\\\\varphi_i\\\\right\\\\rangle}\\n$$\\n\\nAnd we end the calculation with second order pertubation\\nin $\\\\lambda$\\n\\n$$\\n(\\\\hat{H}_0-E_m^{(0)}) \\\\left|\\\\psi_m^{(2)}\\\\right\\\\rangle + (\\\\hat{W}-E_m^{(1)})\\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle-E_m^{(2)} \\\\left|\\\\psi_m^{(0)}\\\\right\\\\rangle= 0\\\\\\\\\\n(\\\\hat{H}_0-\\\\epsilon_m) \\\\left|\\\\psi_m^{(2)}\\\\right\\\\rangle + (\\\\hat{W}-E_m^{(1)})\\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle-E_m^{(2)} \\\\left|\\\\varphi_m\\\\right\\\\rangle= 0\\\\\\\\\\n$$\\n\\nWe can multiply once again whole equation by\\n$\\\\left\\\\langle\\\\varphi_m\\\\right|$ from the right, which\\ndirectly drops the first term. The term\\n$E_m^{(1)}\\\\left\\\\langle\\\\varphi_m\\\\right|\\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle$\\ndrops out as the first order perturbation does not contain a projection\\nonto the initial state. So we can write:\\n\\n$$\\nE_m^{(2)}= \\\\left\\\\langle\\\\varphi_m\\\\right|\\\\hat{W}\\\\left|\\\\psi_m^{(1)}\\\\right\\\\rangle\\n$$\\n\\nPlugging in our solution, we obtain:\\n\\n$$\\n\\\\boxed{E_m^{(2)} = \\\\sum_{i\\\\neq m} \\\\frac{|\\\\left\\\\langle\\\\varphi_i\\\\right|\\\\hat{W}\\\\left|\\\\varphi_m\\\\right\\\\rangle|^2}{(\\\\epsilon_m-\\\\epsilon_i)}}\\n$$\\n\\n## Static external magnetic fields\\n\\nA first beautiful application of perturbation theory is the study of\\nstatic magnetic fields (see Ch 1.9 and Ch. 2.7.1 of [@Hertel_2015] for\\nmore details). The motion of the electron around the nucleus implies a\\nmagnetic current\\n\\n$$\\nI = \\\\frac{e}{t} = \\\\frac{ev}{2\\\\pi r}\\n$$\\n\\nand this implies a magnetic moment $M = I A$, with the\\nenclosed surface $A=\\\\pi r^2$. It may be rewritten as:\\n\\n$$\\n\\\\vec{M}_L = -\\\\frac{e}{2m_e}\\\\vec{L} =-\\\\frac{\\\\mu_B}{\\\\hbar} \\\\vec{L} \\\\\\\\\\n\\\\mu_B = \\\\frac{\\\\hbar e}{2m_e}\\n$$\\n\\nwhere $\\\\mu_B$ is the **Bohr magneton**. Its potential\\nenergy in a magnetic field $\\\\vec{B} = B_0 \\\\vec{e}_z$ is then:\\n\\n$$\\nV_B = -\\\\vec{M}_L\\\\cdot \\\\vec{B}\\\\\\\\\\n= \\\\frac{\\\\mu_B}{\\\\hbar} L_z B_0\\n$$\\n\\nIts contribution is directly evaluated from the expression on first oder pertubation theory to be:\\n\\n$$\\nE_{Zeeman} = \\\\mu_B m B_0\\n$$\\n\\nThis is the Zeeman splitting of the different magnetic\\nsubstates. It is visualized below\\n\\n\\n\\nThe Zeeman effect in the hydrogen atom.\\n\\n## Trapping with electric or magnetic fields\\n\\nWe have now investigated the structure of the hydrogen atom and seen how\\nits energy gets shifted in external magnetic fields. We can combine this\\nunderstanding to study conservative traps for atoms and ions. Neutral\\natoms experience the external field:\\n\\n$$\\nE_{mag}(x,y) = \\\\mu_B m B_0(x,y)\\n$$\\n\\nFor ions on the other hand we have fully charged\\nparticles. So they simply experience the external electric field\\ndirectly:\\n\\n$$\\nE_{el}(x,y) = -q E(x,y)\\n$$\\n\\nTrapping atoms and ions has to be done under very good vacuum such that\\nthey are well isolate from the enviromnent and high precision\\nexperiments can be performed.\\n\\nHowever, the trap construction is not trivial given Maxwells equation\\n$\\\\text{div} \\\\vec{E} = 0$ and $\\\\text{div} \\\\vec{B} = 0$. So, the\\nexperimentalists have to play some tricks with oscillating fields. We\\nwill not derive in detail how a resulting **Paul trap** works, but the\\n[linked video](https://youtu.be/Xb-zpM0UOzk) gives a very nice\\nimpression of the idea behind it. A sketch is presented in Fig.\\n\\n\\n\\nThe upper stage shows the phases of The two phases of the oscillating\\nelectric field of a Paul trap. Taken\\nfrom [wikipedia](https://en.wikipedia.org/wiki/Quadrupole_ion_trap).\\nBelow we can see a linear ion (Paul) trap containing six calcium 40\\nions. Taken\\nfrom [here](https://quantumoptics.at/en/research/lintrap.html).\\n\\nThis work on trapping ions dates back to the middle of the last century\\n(!!!) and was recognized by the[ Nobel prize in\\n1989](https://www.nobelprize.org/prizes/physics/1989/summary/) for\\n[Wolfgang Paul](http://dx.doi.org/10.1103/revmodphys.62.531) and[Hans Dehmelt](http://dx.doi.org/10.1103/revmodphys.62.525). They shared\\nthe prize with Norman Ramsey, who developped extremely precise\\nspectroscopic methods, now known [as Ramsey spectroscopy](http://dx.doi.org/10.1103/revmodphys.62.541).\\n\\nFor atoms we can play similiar games with magnetic traps. Again we have\\nto solve the problem of the zero magnetic fields. Widely used\\nconfigurations are the Ioffe-Pritchard trap, where quadrupole fields are\\nsuperposed [with a bias field](http://dx.doi.org/10.1103/physrevlett.51.1336), or [TOP-traps](http://dx.doi.org/10.1103/physrevlett.74.3352).\\n\\nIon traps are now the basis of ionic quantum computers and\\nmagnetic traps paved the way for quantum simulators with cold atoms as will see later on.\\n\\n### What we missed from the Dirac equation\\n\\nUntil now we have completely neglected relativistic effects, i.e. we\\nshould have really solved the Dirac equation instead of the Schrödinger\\nequation. However, this is is major task, which we will not undertake\\nhere. But what were the main approximations ?\\n\\n1. We neglected the existance of the electron spin.\\n\\n2. We did not take into account the relativistic effects.\\n\\nSo, how does relativity affect the hydrogen spectrum? In a first step,\\nwe should actually introduce the magnetic moment of the spin:\\n\\n$$\\n\\\\vec{M}_S = -g_e \\\\mu_B \\\\frac{\\\\vec{S}}{\\\\hbar}\\n$$\\n\\nThe spin of the electron is $1/2$, making it a fermion\\nand the _g factor of the electron_ reads\\n\\n$$\\ng_e \\\\approx 2.0023\\n$$\\n\\nFurther discussions of the g-factor might be found in\\n[Chapter 6.6 of Hertel](http://dx.doi.org/10.1007/978-3-642-54322-7).\\n\\n#### Amplitude of the relativistic effects\\n\\nWe saw in the previous lectures, that the\\nenergy levels of hydrogenlike atoms are given by:\\n\\n$$\\n\\nE_n = \\\\frac{Z^2 R_{y,\\\\infty}}{n^2}\\\\\\\\\\nR_{y,\\\\infty} = \\\\frac{m_e e^4}{32 \\\\pi^2 \\\\epsilon_0^2 \\\\hbar^2}\\n$$\\n\\nWe can now use the fine-structure constant, which\\nmeasures the coupling strength of the electric charges to the\\nelectromagnetic field:\\n\\n$$\\n\\n\\\\alpha = \\\\frac{e^2}{4\\\\pi\\\\epsilon_0\\\\hbar c}\\\\\\\\\\n= \\\\frac{1}{137.035999139(31)}\\n$$\\n\\nWe can now rewrite the energies of the hydrogen atom as:\\n\\n$$\\nE_n = \\\\frac{1}{2} \\\\underbrace{m_e c^2}_{\\\\text{rest mass energy}} Z^2 \\\\alpha^2 \\\\frac{1}{n^2}\\n$$\\n\\nHere, $m_e c^2\\\\approx 511\\\\textrm{k eV}$ is the rest\\nmass energy of the electron. $E_n \\\\approx 10\\\\text{eV}$ on the other hand\\nis the energy of the bound state and therefore in the order of the\\nkinetic energy of the electron. As long as it is much smaller than the\\nrest-mass of the electron, we can neglect the relativistic effects. A\\nfew observations:\\n\\n- Relativistic effects are most pronounced for deeply bound states of\\n small quantum number $n$.\\n\\n- Relativistic effects effects will become important once\\n $(Z\\\\alpha)\\\\approx 1$, so they will play a major role in heavy\\n nuclei.\\n\\nFor the hydrogen atom we can thus treat the relativistic effects in a\\nperturbative approach.But the most important consequence of the\\nrelativistic terms is actually the existance of the electron spin.\\n\\n### The relativistic mass and Darwin term\\n\\n1. \\"Relativistic mass\\": The relativistic relation between energy and\\n momentum reads:\\n\\n$$\\n E_\\\\text{rel} = \\\\sqrt{(mc^2)^2+(\\\\vec{p}c)^2}\\\\\\\\\\n \\\\approx mc^2 + \\\\frac{p^2}{2m}- \\\\frac{\\\\vec{p}^{\\\\,4}}{8m^3c^2} + \\\\cdots\\n$$\\n\\nThe first two terms of the expansion are the\\nnonrelativistic limit and the third term is the first correction.\\nTherefore, the corresponding Hamiltonian is:\\n\\n$$\\n \\\\hat{H}_\\\\text{rm} = - \\\\frac{\\\\hat{\\\\vec{p}}^{\\\\,4}}{8m^3c^2}.\\n$$\\n\\n2. Darwin term: If $r=0$, the potential $V(r)$ diverges to $-\\\\infty$.\\n We get:\\n\\n$$\\n \\\\hat{H}_\\\\text{Darwin} = \\\\frac{\\\\pi \\\\hbar^2}{2m^2c^2}\\\\left( \\\\frac{Ze^2}{4\\\\pi\\\\epsilon_0}\\\\right) \\\\delta(\\\\hat{\\\\vec{r}})\\n$$\\n\\nIf we perform a first correction to the energy of the eigenstates\\n$\\\\left\\\\langle n,l,m\\\\right\\\\rangle$ by calculating\\n\\n$$\\n\\\\left\\\\langle n,l,m|\\\\hat{H'|n,l,m}\\\\right\\\\rangle,\\n$$\\n\\nwe find that it works perfectly for case (1) and (2)\\nwhich is due to degeneracy. $\\\\hat{H}_\\\\text{rm}$ and\\n$\\\\hat{H}_\\\\text{Darwin}$ commute with all observables forming the\\ncomplete set of commuting observables (CSCO) for $\\\\hat{H}_0$\\n\\n$$\\n\\\\hat{H}_0,\\\\hat{\\\\vec{L}}^2, \\\\hat{L}_z,\\n$$\\n\\nwith states described by $\\\\left|n,l,m\\\\right\\\\rangle$.","order":7},{"title":"Lecture 8 - The Helium atom","content":"\\nIn this lecture we will discuss some basic properties of the Helium\\natom. We will introduce first some useful notations for the specific\\nHamiltonian at hand. Then we will focus on the important consequences\\nplayed by the electron-electron interaction on the spin structure and\\nthe level scheme of the system. Finally, we will introduce the\\nvariational method for the estimation of the ground state energy.\\n\\nIn todays lecture, we will see how the electron spin couples to the\\norbital angular momentum and how this creates spin-orbit coupling. We\\nwill then start out with the discussion of the Helium atom.\\n\\n## Spin-orbit coupling\\n\\nThe third term, which arises from the Dirac equation is the spin-orbit\\ncoupling. We will give here a common hand-waving explanation in a\\nsimiliar spirit to the discussion of the magnetic moment [for given\\nangular momentum](http://dx.doi.org/10.1007/978-3-642-10298-1). Please, be aware that it misses a\\nfactor of 2. The electron has a spin 1/2 and hence a magnetic moment\\n$\\\\vec{M}_S = -g_e \\\\mu_B \\\\frac{\\\\vec{S}}{\\\\hbar}$. This magnetic moment\\nexperiences a magnetic field, simply due to the motion of the electron\\ncharge itself. Assuming a circular motion of the electron, we obtain the\\nmagnetic field amplitude:\\n\\n$$\\nB = \\\\frac{\\\\mu_0 i}{2r}\\\\\\\\\\nB = \\\\frac{\\\\mu_0 ev}{4\\\\pi r^2}\\\\\\\\\\nB = \\\\frac{\\\\mu_0 e}{4\\\\pi m_e r^3}L\\\\\\\\\\n$$\\n\\nThrough the coupling with the spin and introducing a\\nfudge factor of 2 [^1], we obtain the Hamiltonian:\\n\\n$$\\n\\n\\\\hat{H}_{LS} = \\\\frac{g_e}{4\\\\pi \\\\epsilon_0}\\\\frac{e^2}{2m_e^2c^2 r^3} \\\\hat{\\\\vec{L}}\\\\cdot \\\\hat{\\\\vec{S}}\\n$$\\n\\nHow does it act on a state $\\\\left|\\\\psi\\\\right\\\\rangle$? For\\nthe example\\n\\n$$\\n\\\\left|\\\\psi\\\\right\\\\rangle = \\\\left|m_l\\\\right\\\\rangle \\\\otimes \\\\left|m_s\\\\right\\\\rangle\\n$$\\n\\nwe get:\\n\\n$$\\n\\\\hat{L}_z \\\\cdot \\\\hat{S}_z \\\\left( \\\\left|m_l\\\\right\\\\rangle \\\\otimes \\\\left|m_s\\\\right\\\\rangle \\\\right)\\n= \\\\hbar^2 m_l \\\\cdot m_s (\\\\left|m_l\\\\right\\\\rangle \\\\otimes \\\\left|m_s\\\\right\\\\rangle)\\n$$\\n\\nThe states\\n\\n$$\\n\\\\left|n,l,m_l\\\\right\\\\rangle \\\\otimes \\\\left|s,m_s\\\\right\\\\rangle.\\n$$\\n\\nspan the complete Hilbert space. Any state of the atom can be\\nrepresented by:\\n\\n$$\\n\\\\left|\\\\psi\\\\right\\\\rangle = \\\\sum_{\\\\{n,l,m_l,m_s\\\\}} c_{n,l,m_l,m_s} \\\\left|n,l,m_l,m_s\\\\right\\\\rangle.\\n$$\\n\\nAs usual we can massively simplify the problem by using\\nthe appropiate conserved quantities.\\n\\n### Conservation of total angular momentum\\n\\nWe can look into it a bit further into the details and see that the\\nHamiltonian $\\\\hat{H}_\\\\textrm{LS}$ does not commute with $\\\\hat{L}_z$:\\n\\n$$\\n= [L_z, L_x S_x + L_y S_y + L_z S_z]\\\\\\\\\\n[L_z, \\\\vec{L}\\\\cdot \\\\vec{S}] = [L_z, L_x ]S_x + [L_z, L_y ]S_y\\\\\\\\\\n[L_z, \\\\vec{L}\\\\cdot \\\\vec{S}] = i\\\\hbar L_y S_x -i\\\\hbar L_x S_y\\\\neq 0\\n$$\\n\\nThis suggests that $L_z$ is not a good quantum number\\nanymore. We have to include the spin degree of freedom into the\\ndescription. Let us repeat the same procedure for the spin projection:\\n\\n$$\\n= [S_z, L_x S_x + L_y S_y + L_z S_z]\\\\\\\\\\n[S_z, \\\\vec{L}\\\\cdot \\\\vec{S}] = L_x [S_z, S_x] + L_y [S_z, S_y]\\\\\\\\\\n[S_z, \\\\vec{L}\\\\cdot \\\\vec{S}] = i\\\\hbar L_x S_y -i\\\\hbar L_y S_x\\\\neq 0\\n$$\\n\\nThis implies that the spin projection is not a conserved\\nquantity either. However, the sum of spin and orbital angular momentum\\nwill commute $[L_z + S_z, \\\\vec{L}\\\\vec{S}] =0$ according to the above\\ncalculations. Similiar calculations hold for the other components,\\nindicating that the _total angular momentum_ is conserved [^2]:\\n\\n$$\\n\\\\vec{J} = \\\\vec{L} + \\\\vec{S}\\n$$\\n\\nWe can now rewrite $\\\\hat{H}_{LS}$ in terms of the conserved quantities through the following following\\nlittle trick:\\n\\n$$\\n\\\\hat{\\\\vec{J}}^2 = \\\\left( \\\\hat{\\\\vec{L}} + \\\\hat{\\\\vec{S}} \\\\right) ^2 = \\\\hat{\\\\vec{L}}^2 + 2 \\\\hat{\\\\vec{L}} \\\\cdot \\\\hat{\\\\vec{S}} + \\\\hat{\\\\vec{S}}^2\\\\\\\\\\n\\\\hat{\\\\vec{L}} \\\\cdot \\\\hat{\\\\vec{S}} = \\\\frac{1}{2} \\\\left( \\\\hat{\\\\vec{J}}^2 - \\\\hat{\\\\vec{L}}^2 - \\\\hat{\\\\vec{S}}^2 \\\\right)\\n$$\\n\\nThis directly implies that $\\\\hat{J}^2$, $\\\\hat{L}^2$ and $\\\\hat{S}^2$ are\\nnew conserved quantities of the system. If we call $\\\\hat{H}_0$ the\\nHamiltonian of the hydrogen atom, we previously used the complete set of\\ncommuting observables [^3]:\\n\\n$$\\n\\\\left\\\\{ \\\\hat{H}_0, \\\\hat{\\\\vec{L}}^2, \\\\hat{L}_z,\\\\hat{\\\\vec{S}}^2, \\\\hat{S}_z \\\\right\\\\}\\n$$\\n\\nWe now use the complete set of commuting observables:\\n\\n$$\\n\\\\left\\\\{ \\\\hat{H}_0 + \\\\hat{H}_{LS}, \\\\hat{\\\\vec{L}}^2,\\\\hat{\\\\vec{S}}^2, \\\\hat{\\\\vec{J}}^2, \\\\hat{J}_z \\\\right\\\\}.\\n$$\\n\\nThe corresponding basis states\\n$\\\\left|n,l,j,m_j\\\\right\\\\rangle$ are given by:\\n\\n$$\\n\\\\left|n,l,j,m_j\\\\right\\\\rangle = \\\\sum_{m_l,m_s} \\\\left|n, l, m_l, m_s\\\\right\\\\rangle \\\\underbrace{\\\\left\\\\langle n, l, m_l, m_s | n, l, j, m_j\\\\right\\\\rangle}_{\\\\text{Clebsch-Gordan coefficients}}\\n$$\\n\\nHere, the Clebsch-Gordan coefficients (cf. [Olive 2014 p. 557](http://dx.doi.org/10.1088/1674-1137/38/9/090001) or the [PDG](http://pdg.lbl.gov/2002/clebrpp.pdf))\\ndescribe the coupling of angular momentum states.\\n\\n**Example: $l=1$ and $s=1/2$.**\\n\\nWith the Clebsch-Gordan coefficients, the following example\\nstates---given by $Jj$ and $m_j$---can be expressed by linear\\ncombinations of states defined by $m_l$ and $m_s$:\\n\\n$$\\n\\\\left|j=\\\\frac{3}{2}, m_j = \\\\frac{3}{2}\\\\right\\\\rangle = \\\\left|m_l=1, m_s = +\\\\frac{1}{2}\\\\right\\\\rangle\\\\\\\\\\n\\\\left|j=\\\\frac{3}{2}, m_j = \\\\frac{1}{2}\\\\right\\\\rangle = \\\\sqrt{\\\\frac{1}{3}} \\\\left|m_l=1, m_s = -\\\\frac{1}{2}\\\\right\\\\rangle +\\\\sqrt{\\\\frac{2}{3}} \\\\left|m_l = 0, m_s = +\\\\frac{1}{2}\\\\right\\\\rangle\\n$$\\n\\n### Summary of the relativistic shifts\\n\\nWe can now proceed to a summary of the relativistic effects in the\\nhydrogen atom as presented in Fig.\\n\\n\\n\\nFine structure of the Hydrogen atom. Adapted from [Demtröder 2010 Fig. 5.33](http://dx.doi.org/10.1007/978-3-642-10298-1)\\n\\n- The states should be characterized by angular momentum anymore, but\\n by the total angular momentum $J$ and the orbital angular momentum.\\n We introduce the notation:\\n\\n$$\\n nl_{j}\\n$$\\n\\n- All shifts are on the order of $\\\\alpha^2$ and hence pertubative.\\n\\n- Some levels remain degenerate in relativistic theory, most\\n importantly the $2s_{1/2}$ and the $2p_{1/2}$ state.\\n\\n## The Lamb shift\\n\\nThe previous discussions studied the effects of the Dirac equation onto\\nour understanding of the Hydrogen atom. Most importantly, we saw that we\\ncan test those predictions quite well through the shifts in the level\\nscheme. It is possible to push this analysis even further. One\\nparticularly important candidate here are the degenerate levels\\n$2s_{1/2}$ and $2p_{1/2}$. Being able to see any splitting here, will be\\nproof physics beyond the Dirac equation. And it is a relative\\nmeasurement, for which it therefore not necessary to have insane\\nabsolute precisions. It is exactly this measurement that [Lamb and\\nRetherford undertook in 1947](http://dx.doi.org/10.1103/physrev.72.241). They observed actually a\\nsplitting of roughly $1$GHz, which they drove through direct\\nrf-transitions. The observed shift was immediately [explained by Bethe](http://dx.doi.org/10.1103/physrev.72.339) through the idea of QED a concept that we will come back\\nto later in this lecture in a much simpler context of cavity QED.\\n\\nWe would simply like to add here that the long story of the hydrogen\\natom and the Lamb shift is far from over as open questions remained\\nuntil September 2019. Basically, a group of people measured the radius\\nin some 'heavy' muonic hydrogen very [precisely in 2010](http://dx.doi.org/10.1038/nature09250).\\nThey could only explain them by changing the size of the proton radius,\\nwhich was previously assumed to be well measured. It was only this year\\nthe another team reperformed a similiar measurement on electronic\\nhydrogen (the normal one), [obtaining consistent results](http://dx.doi.org/10.1126/science.aau7807). A nice summary of the \\\\\\"proton radius puzzle\\\\\\" can be\\nfound [here](https://www.quantamagazine.org/physicists-finally-nail-the-protons-size-and-hope-dies-20190911/).\\n\\n## The helium problem\\n\\nIn this lecture we will discuss the Helium atom and what makes it so\\ninteresting in the laboratory. We will most importantly see that you\\ncannot solve the problem exactly. This makes it a great historical\\nexample where a simple system was used to test state-of-the-art\\ntheories. An extensive discussion can be found in Chapter 7 of Bransden [^Bransden] or [Chapter 6 of Demtröder 20210](http://dx.doi.org/10.1007/978-3-642-10298-1). Even nowadays, the system continues to be a nice test-bed of many-body theories, see for example the paper by [Combescot in 2017](http://dx.doi.org/10.1103/physrevx.7.041035) or by [Ott in 2019](http://dx.doi.org/10.1103/physrevlett.123.203401)..\\n\\nThe Helium atom describes a two electron system as shown in the figure\\nbelow.\\n\\n\\n\\nThe helium atom describes two electrons coupled to the nucleus of\\ncharge Z=2.\\n\\nIn the reference frame of center-of-mass we obtain the following\\nHamiltonian:\\n$$H = -\\\\frac{\\\\hbar^2}{2\\\\mu}\\\\nabla_{r_1}^2 -\\\\frac{\\\\hbar^2}{2\\\\mu}\\\\nabla_{r_2}^2-\\\\frac{\\\\hbar^2}{M}\\\\nabla_{r_1}\\\\cdot\\\\nabla_{r_2}+\\\\frac{e^2}{4\\\\pi \\\\epsilon_0}\\\\left(-\\\\frac{Z}{r_1}-\\\\frac{Z}{r_2}+\\\\frac{1}{r_{12}}\\\\right)$$\\n\\nThe term in the middle is the mass polarization term. We further\\nintroduced the reduced mass $$\\\\mu = \\\\frac{m_eM}{m_e + M}$$ For the very\\nlarge mass differences $M= 7300 m_e \\\\gg m_e$, we can do two\\nsimplifications:\\n\\n- Omit the term on the mass polarization.\\n\\n- Set the reduced mass to the mass of the electron.\\n\\nSo we obtain the simplified Hamiltonian\\n$$H = -\\\\frac{\\\\hbar^2}{2m_e}\\\\nabla_{r_1}^2 -\\\\frac{\\\\hbar^2}{2m_e}\\\\nabla_{r_2}^2+\\\\frac{e^2}{4\\\\pi \\\\epsilon_0}\\\\left(-\\\\frac{Z}{r_1}-\\\\frac{Z}{r_2}+\\\\frac{1}{r_{12}}\\\\right)$$\\n\\n## Natural units\\n\\nFor simplicity it is actually nice to work in the so-called **natural\\nunits**, where we measure all energies and distance on typical scales.\\nWe will start out by measuring all distances in units of $a_0$, which is\\ndefined as:\\n$$a_0 = \\\\frac{4\\\\pi \\\\epsilon_0 \\\\hbar^2}{me^2} = 0.5\\\\text{angstrom}$$ So\\nwe can introduce the replacement: $$\\\\mathbf{r} = \\\\mathbf{\\\\tilde{r}}a_0$$\\nSo the Hamiltonian reads:\\n\\n$$\\nH = -\\\\frac{\\\\hbar^2}{2m_ea_0^2}\\\\nabla_{\\\\tilde{r}_1}^2 -\\\\frac{\\\\hbar^2}{2m_ea_0^2}\\\\nabla_{\\\\tilde{r}_2}^2+\\\\frac{e^2}{4\\\\pi \\\\epsilon_0 a_0}\\\\left(-\\\\frac{Z}{\\\\tilde{r}_1}-\\\\frac{Z}{\\\\tilde{r}_2}+\\\\frac{1}{\\\\tilde{r}_{12}}\\\\right)\\\\\\\\\\nH = -\\\\frac{e^4 m}{2(4\\\\pi\\\\epsilon_0)^2 \\\\hbar^2}\\\\nabla_{\\\\tilde{r}_1}^2 -\\\\frac{e^4 m}{2(4\\\\pi\\\\epsilon_0)^2 \\\\hbar^2}\\\\nabla_{\\\\tilde{r}_2}^2+\\\\frac{e^4 m}{(4\\\\pi \\\\epsilon_0)^2\\\\hbar^2}\\\\left(-\\\\frac{Z}{\\\\tilde{r}_1}-\\\\frac{Z}{\\\\tilde{r}_2}+\\\\frac{1}{\\\\tilde{r}_{12}}\\\\right)\\n$$\\n\\nAnd finally we can measure all energies in units of\\n$$E_0 = \\\\frac{e^4 m}{(4\\\\pi\\\\epsilon_0)^2\\\\hbar^2} = 1\\\\text{hartree} = 27.2\\\\text{eV}$$\\nSo the Hamiltonian reads in these natural units:\\n\\n$$\\n\\\\tilde{H} = -\\\\frac{1}{2}\\\\nabla_{\\\\tilde{r}_1}^2 -\\\\frac{1}{2}\\\\nabla_{\\\\tilde{r}_2}^2+\\\\left(-\\\\frac{Z}{\\\\tilde{r}_1}-\\\\frac{Z}{\\\\tilde{r}_2}+\\\\frac{1}{\\\\tilde{r}_{12}}\\\\right)\\n$$\\n\\nAnother, more common, way of introducing this is to define:\\n\\n$$\\nm = \\\\hbar = e = 4\\\\pi \\\\epsilon_0 \\\\equiv 1\\\\\\\\\\n\\\\alpha = \\\\frac{e^2}{(4\\\\pi \\\\epsilon_0) \\\\hbar c}= \\\\frac{1}{137}\\\\\\\\\\n\\\\Rightarrow c = \\\\frac{1}{\\\\alpha}\\n$$\\n\\nWithin these units we have for the hydrogen atom:\\n$$E_n = \\\\frac{Z^2}{2}\\\\frac{1}{n^2}E_0$$\\n\\n**For the remainder of this lecture we will assume that we are working\\nin natural units and just omit the tildas.**\\n\\n## Electron-electron interaction\\n\\nNow we can decompose the Hamiltonian in the following fashion:\\n$$H = H_1 + H_2 + H_{12}$$ So without the coupling term between the\\nelectrons we would just have once again two hydrogen atoms. The whole\\ncrux is now that the term $H_{12}$ is actually coupling or\\n**entangling** the two electrons.\\n\\n## Symmetries\\n\\nThe **exchange** operator is defined as:\\n\\n$$\\nP_{12}\\\\psi(r_1,r_2) = \\\\psi(r_2, r_1)\\n$$\\n\\nWe directly see for the Hamiltonian of Helium in the reduced units that the exchange operator commutes with\\nthe Hamiltonian, $[H,P_{12}] = 0$. This implies directly that the parity\\nis a conserved quantity of the system and that we have a set of\\nEigenstates associated with the parity.\\n\\nWe can now apply the operator twice:\\n\\n$$\\nP_{12}^2\\\\psi(r_1,r_2) = \\\\lambda^2 \\\\psi(r_1, r_2) = \\\\psi(r_1, r_2)\\n$$\\n\\nSo we can see that there are two sets of eigenvalues with\\n$\\\\lambda = \\\\pm 1$.\\n\\n$$\\nP_{12}\\\\psi_\\\\pm = \\\\pm \\\\psi_\\\\pm\\n$$\\n\\nWe will call:\\n\\n- $\\\\psi_+$ are para-states\\n\\n- $\\\\psi_-$ are ortho-states\\n\\nThis symmetry is a really strong one and it was only recently that\\ndirect transitions between [ortho and para-states were observed](http://dx.doi.org/10.1103/physrevlett.119.173401). Interestingly, we did not need to look into the spin\\nand the Pauli principle for this discussion at all. This will happen in\\nthe next step.\\n\\n## Spin and Pauli principle\\n\\nWe have seen that the Hamiltonian does not contain the spin degree of\\nfreedom. So we can decompose the total wave function as:\\n\\n$$\\n\\\\overline{\\\\psi} = \\\\psi(\\\\mathbf{r}_1, \\\\mathbf{r}_2) \\\\cdot \\\\chi(1,2)\\n$$\\n\\n### Spin degree of freedom\\n\\nGiven that the electron is $s=\\\\frac{1}{2}$, we can decompose each\\nwavefunction as:\\n$$\\\\chi = \\\\alpha |\\\\uparrow\\\\rangle + \\\\beta |\\\\downarrow\\\\rangle$$ So if the\\ntwo spins were _not_ correlated, we could just write the spin\\nwavefunction as: $$\\\\chi(1,2) = \\\\chi_\\\\mathrm{1}\\\\cdot\\\\chi_\\\\mathrm{2}$$\\nHowever, the electron-electron interaction entangles the atoms. An\\nexample would be the singlet state:\\n$$\\\\chi(1,2) = \\\\frac{1}{\\\\sqrt{2}}\\\\left(|\\\\uparrow \\\\downarrow\\\\rangle - |\\\\downarrow\\\\uparrow \\\\rangle\\\\right)$$\\n\\nTo construct the full wave function we need to take into account the\\n_Pauli_ principle, which telles us for Fermions that the _full_\\nwavefunction should anti-sysmmetrc under exchange of particles:\\n\\n$$\\n\\\\overline{\\\\psi}(q_1, q_2, \\\\cdots, q_i,\\\\cdots, q_j, \\\\cdots) =\\n-\\\\overline{\\\\psi}(q_1, q_2, \\\\cdots, q_j,\\\\cdots, q_i, \\\\cdots)\\n$$\\n\\nThis tells us that each quantum state can be only occupied by a single\\nelectron at maximum.\\n\\nNow we can come back to the full wavefunction using the results of the\\nprevious section. We have:\\n\\n$$\\n\\\\overline{\\\\psi}(1,2) = \\\\psi_{\\\\pm}(r_1,r_2)\\\\chi_\\\\mp(1,2)\\n$$\\n\\nwith\\n$P_{12}\\\\chi_\\\\pm = \\\\pm \\\\chi_\\\\pm$. Now can once again look for good\\nsolutions to this problem. It is basically the total spin\\n$\\\\mathbf{S} = \\\\mathbf{S}_1 + \\\\mathbf{S}_2$, or better $\\\\mathbf{S}^2$.\\nThis commutes with both the Hamiltonian and the parity operator, so it\\nis a conserved quantity. Sorting out the solutions we have\\n\\n$$\\n\\n\\\\chi*- = \\\\frac{1}{\\\\sqrt{2}}\\\\left(|\\\\uparrow\\\\downarrow\\\\rangle - |\\\\downarrow\\\\uparrow\\\\rangle\\\\right)\\\\\\\\\\n\\\\chi*{+,1} = |\\\\uparrow\\\\uparrow\\\\rangle \\\\\\\\\\n\\\\chi*{+,1} = \\\\frac{1}{\\\\sqrt{2}}\\\\left(|\\\\uparrow\\\\downarrow\\\\rangle + |\\\\downarrow\\\\uparrow\\\\rangle\\\\right) \\\\\\\\\\n\\\\chi*{+,-1} = |\\\\downarrow\\\\downarrow\\\\rangle \\\\\\\\\\n\\n\\n$$\\n\\nSo $\\\\chi_+$ is associated with spin 1 and $\\\\chi_-$ is\\nassociated with spin 0.\\n\\n[^1]: It's proper derivation is left to quantum field theory lectures\\n\\n[^2]: It should be as there is no external torque acting on the atom\\n\\n[^3]: see lecture 2 for a few words on the definition of such a set\\n\\n[^Bransden]: Brian Harold Bransden, Charles Jean Joachain. Physics of atoms and molecules. Pearson Education India, 2003.","order":8},{"title":"Lecture 9 - More on the Helium atom","content":"\\nWe will finish our discussion of the Helium atom. Most importantly, we\\nwill dive into the strong separation between singlet and triplet states.\\n\\nIn the last lecture, we saw some important properties\\nof the He atom:\\n\\n- Total angular momentum, spin and the electronic quantum number are\\n labelling the states.\\n\\n- The exchange symmetry introduces the important distinction between\\n ortho and para-states.\\n\\nToday, we will see how this exchange symmetry enters the level scheme\\nand how it is linked to the spin.\\n\\n# Level scheme\\n\\nWe can now continue through the level scheme of Helium and try to\\nunderstand our observations. No radiative transitions between $S=0$ and\\n$S=1$, which means that we will basically have two independent schemes.\\nThey are characterized by:\\n\\n- electronic excitations, which are the main quantum numbers $N$.\\n\\n- orbital angular momentum, with quantum number $L$.\\n\\n- total spin with quantum number $S$\\n\\n- total angular momentum $J$, but the spin-orbit coupling in Helium is\\n actually extremly small.\\n\\nWe will then use the term notation: $$N ^{2S+1}L_J$$ the superscript is\\ngiving the multiplicity or the number of different $J$ levels.\\n\\nHaving the level structure, we are now able to calculate the energies of\\nthe different states. We will start out with the ground state and then\\nwork our way through the excited states.\\n\\n# Independent particle model\\n\\nWe will now go back to the influence of the interaction on the\\neigenenergies of the system. Going back to the Helium atoms, we will\\ntreat the single particle Hamiltonians as unperturbed system and\\n$H_{12}$ as the perturbation:\\n\\n$$\\nH_0 = -\\\\frac{1}{2}\\\\nabla_{r_1}^2 -\\\\frac{Z}{r_1} -\\\\frac{1}{2}\\\\nabla_{r_2}^2 -\\\\frac{Z}{r_2}\\\\\\\\\\nH_1 =\\\\frac{1}{r_{12}}\\n$$\\n\\nWe now know the solutions to $H_0$, because the\\nfactorize:\\n\\n$$\\n\\\\left(\\\\hat{H}_1 + \\\\hat{H}_2\\\\right)|\\\\psi_1\\\\rangle\\\\otimes|\\\\psi_2\\\\rangle = \\n\\\\left(E_1 + E_2\\\\right)|\\\\psi_1\\\\rangle\\\\otimes|\\\\psi_2\\\\rangle\\n$$\\n\\n## Groundstate energy - perturbative approach\\n\\nAt this stage we can try to calculate the groundstate energy. We can\\nderive that the unperturbed energy reads: $$E_0^{(0)}= Z^2\\\\text{hartree}$$\\nThe electron interaction leads within first order perturbation theory to\\nan energy shift of:\\n$$E_0^{(1)}= \\\\langle\\\\psi_0|\\\\frac{1}{r_{12}}|\\\\psi_0\\\\rangle = \\\\frac{5}{8}Z$$\\nWe can see that the first order energy shift is actually not that small,\\nso we might start to question perturbation theory.\\n\\n## Groundstate energy - variational approach\\n\\nIn the variational approach, we will try to find the minimal energy of\\nthe ground state. Namely we will minimize:\\n$$E_{var} = \\\\frac{\\\\langle\\\\psi|\\\\hat{H}|\\\\psi\\\\rangle}{\\\\langle\\\\psi|\\\\psi\\\\rangle}$$\\nWe can actually proof that this works nicely within a few lines. For\\nthat we will expand our trial function $|\\\\psi\\\\rangle$ into the (unknown)\\neigenstates of $\\\\hat{H}$: $$|\\\\psi\\\\rangle = \\\\sum_n c_n |\\\\psi_n\\\\rangle$$\\nFor the energies this implies:\\n$$\\\\hat{H}|\\\\psi_n\\\\rangle = E_n|\\\\psi_n\\\\rangle$$ So we end up with:\\n$$\\n\\\\langle \\\\psi|H|\\\\psi\\\\rangle - E_0 = \\\\sum_n E_n c_n^*c_n - E_0 \\\\sum_n c_n^*c_n\\\\\\\\\\n= \\\\sum_n (E_n-E_0)|c_n|^2 \\\\geq 0\\n$$\\n\\nSo the variational principle always gives an upper bound\\non the ground state energy. The question is how good is this bound in\\neach individual case.\\n\\nTo apply the variational approach, we will introduce a variational\\nparameter. This parameter is typically guessed from physical intuition.\\nHere it will be the charge, which will be replaced by an *screened\\ncharge* $Z_{eff}$.\\n\\nAs variational wavefunction, we will employ the groundstate of the\\nhydrogen atom, which reads:\\n\\n$$\\n\\\\psi_{var}(r_1, r_2) = e^{-Z_{eff}(r_1+r_2)}\\n$$\\n\\nWe find then that the total energy is:\\n$$E_{var}^0 = Z_{eff}^2 -2ZZ_{eff}+\\\\frac{5}{8}Z_{eff}$$ It becomes\\nminimal at\\n\\n$$\\nZ_{eff} = Z- \\\\frac{5}{16}\\n$$\\n\\nSo at this stage, we might compare the different levels\\nof approximation to the experimental result:\\n\\n- The experimental observation is $E_{exp}^0=-2.90372$ hartree\\n\\n- The independent particle model predicts $E^0 = -4$ hartree.\\n\\n- First order pertubation theory predicts $E^0 = -2,709$ hartree.\\n\\n- The variational principle predicts $E^0 = -2.84$ hartree.\\n\\nThe best theories achieve an accuracy of $10^{-7}$, see [Hertel 2015,\\nChapter 7.2.5](http://dx.doi.org/10.1007/978-3-642-54322-7_7).\\n\\n# Exchange Interaction\\n\\nUp to now we focused on the ground state properties of the $1^\\n1S$ state. In the next step we will try to understand the influence of\\nthe interaction term on the excited states (c.f. [Hertel 2015,\\nChapter 7](http://dx.doi.org/10.1007/978-3-642-54322-7_7)). To attack this problem we will approach it pertubatively.\\n\\nWe saw that we could factorize the full wavefunction into external and\\ninternal degrees of freedom. Further, we have the singlet $\\\\chi_S$\\n(anti-symmetric) and triplet states $\\\\chi_T$ (symmetric) for the spin.\\nThis can now be combined too:\\n\\n$$\\n\\\\overline{\\\\psi}_S(1,2) = \\\\psi_{+}(r_1, r_2)\\\\chi_S(1,2)\\\\\\\\\\n\\\\overline{\\\\psi}_T(1,2) = \\\\psi_{-}(r_1, r_2)\\\\chi_T(1,2)\\\\\\\\\\n$$\\n\\nIn a next step, we can construct $\\\\psi_{\\\\pm}$ from the eigenstates of\\nthe unperturbed Hamiltonian. We define the states\\n$\\\\left|q_1\\\\right\\\\rangle \\\\equiv \\\\left|n_1,l_1,m_1\\\\right\\\\rangle$\\nand\\n$\\\\left|q_2\\\\right\\\\rangle \\\\equiv \\\\left|n_2,l_2,m_2\\\\right\\\\rangle$.\\nThe properly symmetrized states are:\\n\\n$$\\n\\\\left|\\\\psi_\\\\pm\\\\right\\\\rangle = \\\\frac{1}{\\\\sqrt{2}}\\\\left( \\\\left|q_1\\\\right\\\\rangle_1 \\\\otimes \\\\left|q_2\\\\right\\\\rangle_2 \\\\pm \\\\left|q_2\\\\right\\\\rangle_1 \\\\otimes \\\\left|q_1\\\\right\\\\rangle_2 \\\\right)\\n$$\\n\\nNow we can perform an estimate of the energy shift on\\nthese states.\\n\\n$$\\n\\\\Delta E_{S,T} = \\\\left\\\\langle\\\\overline{\\\\psi_{S,T} }\\\\right|\\\\frac{1}{\\\\hat{r}_{12}} \\\\left|\\\\overline{\\\\psi_{S,T}}\\\\right\\\\rangle\\\\\\\\\\n= \\\\left\\\\langle\\\\psi_{+,- }\\\\right|\\\\frac{1}{\\\\hat{r}_{12}} \\\\left|\\\\psi_{+,- }\\\\right\\\\rangle\\n$$\\n\\nWe then get\\n\\n$$\\n\\\\Delta E_{S,T} = \\\\frac{1}{2} \\\\left(\\\\left\\\\langle q_1 q_2 \\\\right| \\\\pm \\\\left\\\\langle q_2 q_1\\\\right|\\\\right) \\\\left| \\\\frac{1}{\\\\hat{r}_{12}} \\\\right| \\\\left( \\\\left|q_1 q_2\\\\right\\\\rangle \\\\pm \\\\left|q_2 q_1\\\\right\\\\rangle \\\\right)\\\\\\\\\\n= \\\\left\\\\langle q_1 q_2\\\\right| \\\\frac{1}{\\\\hat{r}_{12}}\\\\left|q_1 q_2\\\\right\\\\rangle \\\\pm \\\\left\\\\langle q_1 q_2\\\\right| \\\\frac{1}{\\\\hat{r}_{12}} \\\\left|q_2 q_1\\\\right\\\\rangle\\n$$\\n\\nSo we summarize:\\n\\n$$\\n\\\\Delta E_S = J_{nl} + K_{nl}\\\\\\\\\\n\\\\Delta E_T = J_{nl} - K_{nl}\\n$$\\n\\nThe first term is called *direct* (Coulomb) term and the second term is\\nknown as *exchange* term. If we integrate the direct term, we get:\\n\\n$$\\nJ_{nl} = \\\\int \\\\int \\\\psi_{q_1}^*\\\\left(\\\\vec{r}_1\\\\right) \\\\psi_{q_2}^* \\\\left(\\\\vec{r}_2\\\\right) \\\\frac{1}{r_{12}} \\\\psi_{q_1} \\\\left(\\\\vec{r}_1\\\\right) \\\\psi_{q_2} \\\\left(\\\\vec{r}_2\\\\right) \\\\mathop{}\\\\!\\\\mathrm{d}\\\\vec{r}_1 \\\\mathop{}\\\\!\\\\mathrm{d}\\\\vec{r}_2 \\\\\\\\\\n= \\\\int \\\\int \\\\left| \\\\psi_{q_1} \\\\left(\\\\vec{r}_1\\\\right) \\\\right|^2 \\\\left| \\\\psi_{q_2}\\\\left(\\\\vec{r}_2\\\\right) \\\\right|^2 \\\\frac{1}{r_{12}} \\\\mathop{}\\\\!\\\\mathrm{d}\\\\vec{r}_1 \\\\mathop{}\\\\!\\\\mathrm{d}\\\\vec{r}_2.\\n$$\\n\\nThis is Coulomb repulsion.\\n\\n## Exchange term\\n\\nThe integration of the exchange term yields:\\n\\n$$\\nK = \\\\left\\\\langle q_1 q_2\\\\right| \\\\frac{1}{r_{12}} \\\\left|q_2 q_1\\\\right\\\\rangle = \\\\int \\\\psi_{q_1}^* \\\\left(\\\\vec{r}_1\\\\right) \\\\psi_{q_2}^* \\\\left( \\\\vec{r}_2 \\\\right) \\\\frac{1}{r_{12}} \\\\psi_{q_2}\\\\left(\\\\vec{r}_1\\\\right) \\\\psi_{q_1} \\\\left( \\\\vec{r}_2 \\\\right) \\\\mathop{}\\\\!\\\\mathrm{d}\\\\vec{r}_1 \\\\mathop{}\\\\!\\\\mathrm{d}\\\\vec{r}_2\\n$$\\n\\nTo understand it a bit better, we can rewrite it in a\\nmore transparent way in terms of the spin operator, which measures the\\ndifference between the singlet and the triplet state. Especially suited\\nis:\\n\\n$$\\n\\\\hat{\\\\vec{S}}_1 \\\\cdot \\\\hat{\\\\vec{S}}_2 = \\\\frac{1}{2} \\\\left(\\\\hat{\\\\vec{S}}^2 - \\\\hat{\\\\vec{S}}_1^2 - \\\\hat{\\\\vec{S}}_2^2 \\\\right)\\\\\\\\\\n\\\\hat{\\\\vec{S}}_1 \\\\cdot \\\\hat{\\\\vec{S}}_2 \\\\chi_T = \\\\frac{1}{4} \\\\chi_T\\\\\\\\\\n\\\\hat{\\\\vec{S}}_1 \\\\cdot \\\\hat{\\\\vec{S}}_2 \\\\chi_S = -\\\\frac{3}{4} \\\\chi_S\\n$$\\n\\nThis allows us to rewrite the splitting in terms of an\\neffective Hamiltonian\\n\\n$$\\n\\\\hat{H}_\\\\text{eff} = J_{nl} + \\\\frac{1}{2}\\\\left(1+ 4\\\\hat{\\\\vec{S}}_1 \\\\cdot \\\\hat{\\\\vec{S}}_2\\\\right) K_{nl}\\n$$\\n\\n# Obtained energy shifts.\\n\\nAs an example, we have a look at the energy shifts (see figure below) for two electrons in the states defined by:\\n\\n$$\\nq_1: n_1=1,l_1 = 0\\\\\\\\\\nq_2:_2=2,l_2= 0,1\\n$$\\n\\nThe $2^3S$ level for example corresponds to the state\\n$$\\n\\\\frac{1}{\\\\sqrt{2}} \\\\left( \\\\left|1s2s\\\\right\\\\rangle - \\\\left|2s1s\\\\right\\\\rangle \\\\right) \\\\otimes \\\\left|\\\\uparrow \\\\uparrow\\\\right\\\\rangle\\n$$\\n\\n\\n\\nThis splitting is in the order of 0.25eV and hence much larger than the\\ntypical spin-orbit coupling. This explains, why the coupling to the\\ntotal angular momentum $J$ remains largely ignored for helium.\\n\\n# Summary: Structure of the He Atom\\n\\n- In the independent particle model, a state is determined by:\\n \\n\\n$$\\n \\\\left|n_1 l_1 m_1\\\\right\\\\rangle \\\\otimes \\\\left|n_2 l_2 m_2 \\\\right\\\\rangle\\n \\n\\n$$\\n\\n- Only one electron can be electronically excited to a stable state.\\n An excellent discussion of the auto-ionization can be found in [Sec.\\n 1.3 of Grynberg 2009](http://dx.doi.org/10.1017/cbo9780511778261). Thus, $N$ is the quantum number of the electronic excitation.\\n\\n- Ignoring the spin degree of freedom, the eigenstates have a discrete\\n symmetry with respect to particle exchange. The $\\\\mathrm{He}$\\n eigenstates are therefore either in a *triplet* or in a *singlet*\\n state. Here, we are talking about the symmetry with respect to the\\n exchange of two particles. No inversion of space is done here! Why\\n can we not assume a finite mass of the nucleui in order to describe\\n two electrons by hydrogenic wave functions? The nucleus' motion\\n would introduce an additional coupling term between the electrons\\n\\n- The quantum number $L$ stands for the total orbital angular\\n momentum.\\n\\n- There is another conserved quantity we have not discussed yet: The\\n total angular momentum\\n\\n$$\\n \\\\hat{\\\\vec{J}} = \\\\hat{\\\\vec{L}} + \\\\hat{\\\\vec{S}}.\\n$$\\n\\n\\n\\n**Note.** For $\\\\mathrm{^4He}$, there is no nuclear spin, meaning that there is no hyperfine structure.\\n\\nLet us now have a look at the level scheme of the helium atom as depicted below.\\n\\n**Note.** The general notation used in the figure below is\\n\\n$$\\nN^{2S+1}L_J,\\n$$\\n\\nwhere $2S+1$ denotes the multiplicity of the spin.\\n\\n\\n\\n\\nLevel scheme of singlet and triplet states of the helium atom from L=0\\nup to L=3. The ground state 1^1^S~0~ is chosen to have the energy E=0.\\nTaken from [Demtröder 2010](http://dx.doi.org/10.1007/978-3-642-10298-1).\\n\\n- The fact that we can write the state down with a well-defined $S$\\n and $L$ is called $LS$ or Russell-Saunders coupling. All $s_i$\\n couple to $S = \\\\sum_i s_i$ and all $l_j$ couple to $L=\\\\sum_j l_j$.\\n There is no coupling between the spin and the spatial degree of\\n freedom!\\n\\n\\n\\n- We have introduced an effective spin interaction, but we have\\n ignored the \\"real\\" interactions between the spins! What does it\\n mean? How should we introduce it if we wanted to? How can we find\\n out whether what we did is justifiable?\\n\\n- The dipole interaction between two spins is\\n\\n$$\\n \\\\sim\\\\frac{\\\\mu_0(g \\\\mu_B/2)^2}{4\\\\pi \\\\hbar d^3} = \\\\frac{\\\\alpha^2}{4} \\\\;(\\\\text{a.u.})\\n$$\\n\\nwhere $\\\\mu_0 = 4\\\\pi \\\\alpha^2$, $\\\\mu_B=1/2$,\\n $\\\\hbar=1$, and $d\\\\approx~a_0~=~1$. Compared to the energy difference\\n between $2^1S$ and $2^3S$, which is $>\\\\alpha^2$ and on the order\\n of eV, it is a very small effect.\\n\\n- Also, we have ignored the spin-orbit interaction of each electron\\n between its own spin and its orbital angular momentum. From the\\n hydrogen atom we know that the energy for the spin-orbit interaction\\n \\n\\n$$\\n E_\\\\textrm{ls} \\\\propto (Z\\\\alpha)^2\\n$$\\n\\nis very strongly suppressed compared to the exchange interaction and the Coulomb repulsion.\\n\\n**Note.** This will be different for heavy atoms, where $Z$ is large.\\n\\n# Dipole Selection Rules in Helium\\n\\n\\n\\n\\nIf helium atoms are excited in a gas discharge, one can see\\ncharacteristic emission lines as shown above (taken from [Wikipedia](https://en.wikipedia.org/wiki/Helium)).\\n\\n\\n\\n\\nPossible transitions within the singlet and triplet system of helium.\\nTaken from [Demtröder 2010](http://dx.doi.org/10.1007/978-3-642-10298-1).\\nThe singlet and triplet levels are always plotted separately and there is no\\ntransition between a singlet and a triplet state. Because of this\\nobservation, people thought in the beginning that there were two\\ndifferent types of helium (\\"para\\" and \\"ortho\\").\\n\\nThe rules for transitions to occur are determined by the dipole matrix\\nelement containing the initial state $i$ and the final state $f$:\\n\\n$$\\n\\\\left\\\\langle i|\\\\hat{\\\\vec{r}|f}\\\\right\\\\rangle.\\n$$\\n\\nDue to the $LS$ coupling scheme, we get:\\n\\n$$\\n\\\\left|\\\\psi(\\\\vec{r_1, \\\\vec{r}_2)}\\\\right\\\\rangle \\\\otimes \\\\left|\\\\chi (1,2)\\\\right\\\\rangle.\\n$$\\n\\nThere is no entanglement between the degrees of freedom\\nand no mixed symmetry between spin and spatial degree of freedom! If we\\nplug this into the matrix element and multiply it out, we get, because the\\noperator $\\\\hat{\\\\vec{r}}$ does not act on the spin degree of freedom:\\n$$\\n\\\\left\\\\langle i|\\\\hat{\\\\vec{r}\\\\,|f}\\\\right\\\\rangle = \\\\left\\\\langle\\\\chi(1,2) | \\\\chi'(1,2)\\\\right\\\\rangle \\\\cdot \\\\left\\\\langle\\\\psi(\\\\vec{r_1, \\\\vec{r}_2)|\\\\hat{\\\\vec{r}} \\\\,| \\\\psi'(\\\\vec{r}_1, \\\\vec{r}_2)}\\\\right\\\\rangle\\n$$\\n\\n1. The first factor has to be zero if the total spin is not the same.\\n Then the relative alignment is not the same. Thus, there are no\\n dipole transitions between singlet and triplet atoms!\\n\\n2. From the second factor we infer that transitions can only occur\\n between states of opposite parity, e.g., $\\\\Delta l = \\\\pm 1$,\\n together with angular momentum conservation.","order":9},{"title":"Lecture 10 - Propagation of light in dielectric media","content":"\\nIn this lecture we will study the propagation of light through a\\ndielectric medium like atomic gases. We will see that it is\\ncharacterized by the susceptibility and discuss the case of two-level\\natoms. This sets the stage for the laser.\\n\\nUntil now we focused on the properties of atoms and how can control them\\nthrough external fields. In this lecture, we will focus much more on the\\nproperties of the light passing through a medium.\\n\\n# Introduction\\n\\nWe would like to study the propagation of a electric field through an\\nensemble of atoms as visualized in Fig.\\n[1](#fig-dielectric). We assume a\\nmono-chromatic plane wave to come in, such that we can write down the\\nelectric field as:\\n\\n$$\\n\\\\vec{E}_{in}= E_0 \\\\vec{\\\\epsilon}e^{i kz -i\\\\omega_L t}\\n$$\\n\\nThis incoming field will polarize the gas of dipoles.\\n\\n
\\n\\n
Propagation of a light field through a dielectric medium.
\\n
\\n\\nFor the propagation we will do the following assumptions:\\n\\n- The atoms are independent.\\n- We can describe them as small dipoles.\\n- We can describe the light in the semi-classical approximation.\\n\\nWe have already employed this picture in in the slightly abstract\\nformulation in Lecture 4, where we studied the evolution of the atoms in\\nelectric fields and in Lecture 6 \\nconcerning the transition rules in hydrogen. This allows us to calculate\\nthe expectation value of the dipole operator through:\\n\\n$$\\n\\\\langle \\\\vec{D}\\\\rangle = \\\\left\\\\langle\\\\psi\\\\right|\\\\vec{D}\\\\left|\\\\psi\\\\right\\\\rangle\\n$$\\n\\nAs already discussed in Lecture 6 we can then write it down as:\\n\\n$$\\n\\\\langle \\\\vec{D}\\\\rangle = E_0 \\\\vec{\\\\alpha}\\n$$\\n\\nWe call $\\\\alpha$ the **polarizability**. For a large gas\\nwith a constant density of dipoles $n$, we obtain a macroscopic\\npolarization of:\\n\\n$$\\n\\\\vec{P} = n \\\\langle \\\\vec{D}\\\\rangle\\\\\\\\\\n= n \\\\vec{\\\\alpha} E_0\\n$$\\n\\nThis leads us then to identify the susceptibility of the\\ndielectric medium:\\n\\n$$\\n\\n\\\\vec{P} = \\\\epsilon_0 \\\\chi \\\\vec{E}\\\\\\\\\\n\\\\chi = \\\\frac{n \\\\alpha}{\\\\epsilon_0}\\n$$\\n\\nTo notes to this relation:\\n\\n1. The linear relationship between polarization and electric field is\\n only valid for weak electric fields. For stronger fields, higher\\n order terms become important. They are the fundamental ingredient of\\n non-linear optics. In general, we can write:\\n\\n$$\\n P_i = \\\\epsilon_0 \\\\sum_{j}\\\\chi_{ij}^{1}E_j+\\\\epsilon_0 \\\\sum_{jk}\\\\chi_{ijk}^{2}E_jE_k + ...\\n \\n\\n$$\\n\\n2. Given that $\\\\chi$ and $\\\\alpha$ are proportional to\\n $\\\\langle D \\\\rangle$, they can be complex. We will see that real and\\n imaginary part have very different interpretations.\\n\\n# Propagation of light\\n\\nAt this stage we would like to understand the propagation of an electric\\nfield through such a polarized medium. The general Maxwell equation\\nactually reads:\\n\\n$$\\n\\n\\\\nabla^2 \\\\vec{E}-\\\\frac{1}{c^2}\\\\frac{\\\\partial^2 \\\\vec{E}}{\\\\partial t^2}= \\\\frac{1}{\\\\epsilon_0 c^2}\\\\frac{\\\\partial^2 \\\\vec{P}}{\\\\partial t^2}\\n$$\\n\\nThis equation can be massively simplified by only\\nlooking at a slowly-evolving envelope $\\\\mathcal{E}(r,t)$ and\\n$\\\\mathcal{P}(r,t)$, which are defined through:\\n\\n$$\\n\\\\vec{E} = \\\\mathcal{E} e^{ikz-i \\\\omega_L t}\\\\\\\\\\n\\\\vec{P} = \\\\mathcal{P} e^{ikz-i \\\\omega_L t}\\\\\\\\\\n$$\\n\\nAs shown in more detail in [Chapter 4 of Lukin](http://lukin.physics.harvard.edu/wp-uploads/Papers/285b_notes_2005-1.Lily.pdf), the Maxwell equation reduces then to:\\n\\n$$\\n\\\\frac{\\\\partial}{\\\\partial z}\\\\mathcal{E}+\\\\frac{1}{c}\\\\frac{\\\\partial}{\\\\partial t}\\\\mathcal{E} = \\\\frac{ik}{2\\\\epsilon_0}\\\\mathcal{P}\\n$$\\n\\nThis equation becomes especially transparent, if we investigate it for\\nvery long times, such that we can perform a Fourier transformation and\\nobtain:\\n\\n$$\\n\\\\frac{\\\\partial}{\\\\partial z}\\\\mathcal{E}= i\\\\frac{\\\\omega}{c}\\\\mathcal{E} +\\\\frac{ik}{2\\\\epsilon_0}\\\\mathcal{P}\\n$$\\n\\nFinally, we can use the definition of the susceptibility to write:\\n\\n$$\\n\\\\frac{\\\\partial}{\\\\partial z}\\\\mathcal{E}= i\\\\left(\\\\frac{\\\\omega}{c} +\\\\frac{k}{2} \\\\chi(\\\\omega)\\\\right) \\\\mathcal{E}\\\\\\\\\\n\\\\mathcal{E}(\\\\omega, z) =E_0 e^{i\\\\left(\\\\frac{\\\\omega}{c} +\\\\frac{k}{2}\\\\chi(\\\\omega)\\\\right)z} \\n$$\\n\\n## Absorption and refraction\\n\\nThe meaning of the susceptibility becomes especially clear for a\\ncontinuous wave, where $\\\\omega\\\\rightarrow 0$ and we obtain:\\n$$\\n\\\\mathcal{E}(\\\\omega\\\\rightarrow 0, z) =E_0 e^{i\\\\frac{k\\\\chi(0)}{2} z}\\n$$\\n\\nWe can then see that:\\n\\n- The imaginary part of the susceptibility leads to absorption on a\\n scale $l^{-1} = \\\\frac{k}{2}\\\\text{Im}(\\\\chi(0))$\\n\\n- The real part describes a phase shift. The evolution of the electric\\n field can be seen as propagating with a wavevector\\n $k \\\\rightarrow k +\\\\frac{k}{2}\\\\text{Re}(\\\\chi(0))$, so the dielectric\\n medium has a refractive index $n = 1 + \\\\frac{\\\\text{Re}(\\\\chi(0))}{2}$\\n\\n## Dispersion\\n\\nIf the electric field has a certain frequency distribution, we might\\nhave to perform the proper integral to obtain the time evolution, i.e.:\\n$$\\n\\\\mathcal{E}(t, z) =\\\\int d\\\\omega e^{-i\\\\omega t}\\\\mathcal{E}(\\\\omega,0) e^{i\\\\left(\\\\frac{\\\\omega}{c} +\\\\frac{k}{2}\\\\chi(\\\\omega)\\\\right)z}\\n$$\\n\\nTo solve the problem we can develop the susceptibility:\\n$$\\n\\\\chi(\\\\omega) = \\\\chi(0)+\\\\frac{d\\\\chi}{d\\\\omega}\\\\omega\\n$$\\n\\nAnd we obtain:\\n\\n$$\\n\\\\mathcal{E}(t, z) =e^{izk\\\\chi(0)/2}\\n\\\\mathcal{E}(t-z/v_g, 0)\\\\\\\\\\nv_g = \\\\frac{c}{1+\\\\frac{\\\\omega_L}{2}\\\\frac{d\\\\chi}{d\\\\omega}}\\n$$\\n\\nSo the group velocity is controlled by the derivative of the\\nsusceptibility !\\n\\n# Two level system\\n\\nAfter this rather general discussion, we will now employ it to\\nunderstand the action of two-level systems on the travelling beam. So we\\nwill now focus on the influence of the atoms on the field in comparision\\nwith the previous discussions. Further, we will have to take into\\naccount the finite lifetime of the excited states in a phenomenological\\nmanner. For a two level system with excited state\\n$\\\\left|e\\\\right\\\\rangle$ and groundstate\\n$\\\\left|g\\\\right\\\\rangle$, we can directly write down the\\nwavefunction as:\\n\\n$$\\n\\\\left|\\\\psi\\\\right\\\\rangle = \\\\gamma_g\\\\left|g\\\\right\\\\rangle+ \\\\gamma_e\\\\left|e\\\\right\\\\rangle\\n$$\\n\\nIn this basis, the dipole element reads:\\n$$\\n\\\\langle D\\\\rangle = \\\\left\\\\langle e\\\\right|D\\\\left|g\\\\right\\\\rangle \\\\gamma_e^*\\\\gamma_g\\\\\\\\\\n= d \\\\sigma_{eg}\\n$$\\n\\nIn the second line we introduced the notations:\\n\\n- $d = \\\\left\\\\langle e\\\\right|D\\\\left|g\\\\right\\\\rangle$\\n\\n- The product $\\\\gamma_e^*\\\\gamma_g$ can identified with the\\n off-diagonal component of the density operator\\n $\\\\sigma=\\\\left|\\\\psi\\\\right\\\\rangle\\\\left\\\\langle\\\\psi\\\\right|$.\\n We will often call it **coherence**.\\n\\nThe Hamiltonian of this model reads then in the rotating\\nwave-approximation:\\n\\n$$\\n\\\\hat{H} = 0\\\\left|g\\\\right\\\\rangle\\\\left\\\\langle g\\\\right|+\\\\hbar\\\\delta \\\\left|e\\\\right\\\\rangle\\\\left\\\\langle e\\\\right| + \\\\hbar\\\\Omega\\\\left[\\\\left|e\\\\right\\\\rangle\\\\left\\\\langle g\\\\right|+\\\\left|g\\\\right\\\\rangle\\\\left\\\\langle e\\\\right|\\\\right]\\\\\\\\\\n\\\\Omega = d E/\\\\hbar\\n$$\\n\\nThis is exactly the model that we discussed in the\\nlectures 3 and 4 [@Jendrzejewskib; @Jendrzejewskia]. We then found that\\nthe time evolution might be described via:\\n\\n$$\\ni\\\\dot{\\\\gamma}_g(t) = \\\\Omega \\\\gamma_e\\\\\\\\\\ni\\\\dot{\\\\gamma}_e(t) = \\\\delta \\\\gamma_e +\\\\Omega \\\\gamma_g\\\\\\\\\\n$$\\n\\nWe can combine them to the components of the density\\noperator, which then read:\\n\\n$$\\n\\\\sigma_{ij} = c_{i}^*c_j\\n$$\\n\\nFrom these coefficients, we can now obtain the evolution\\nof the populations:\\n\\n$$\\n\\\\dot{N}_g = \\\\dot{\\\\sigma}_{gg} = \\\\dot{\\\\gamma}_{g}^*\\\\gamma_g+ \\\\gamma_{g}^*\\\\dot{\\\\gamma}_g\\\\\\\\\\n= i\\\\Omega(\\\\sigma_{eg}-\\\\sigma_{ge})\\\\\\\\\\n\\\\dot{N}_e = -\\\\dot{N}_g\\n$$\\n\\nSo the total number of atoms stays automatically\\nconserved. As for the coherences we obtain:\\n\\n$$\\n\\\\dot{\\\\sigma}_{eg} = \\\\dot{\\\\gamma}_{e}^*\\\\gamma_g+ \\\\gamma_{e}^*\\\\dot{\\\\gamma}_g\\\\\\\\\\n= i\\\\delta \\\\sigma_{eg}+i (N_g-N_e)\\\\Omega\\\\\\\\\\n\\\\dot{\\\\sigma}_{ge}= -i\\\\delta \\\\sigma_{ge}-i (N_g-N_e)\\\\Omega\\n$$\\n\\nThis density operator approach allows us to introduce spontaneous decay\\nin a very straight-forward fashion:\\n\\n- The time evolution of the excited state gets an additional term\\n $-\\\\Gamma N_e$.\\n\\n- Atoms coming from the excited state relax to the ground state, so we\\n add a term $\\\\Gamma N_e$.\\n\\n- The coherence decays also through a term $-\\\\Gamma_2 \\\\sigma_{ge}$. We\\n will use here for simplicity the limit of $\\\\Gamma_2 = \\\\Gamma/2$\\n\\nSo the full equations read now:\\n\\n$$\\n\\\\dot{N}_g = i\\\\Omega(\\\\sigma_{eg}-\\\\sigma_{ge})+\\\\Gamma N_e\\\\\\\\\\n\\\\dot{\\\\sigma}_{ge}= -i\\\\delta \\\\sigma_{ge}-i (N_g-N_e)\\\\Omega-\\\\Gamma_2\\\\sigma_{ge}\\n$$\\n\\nAt this stage we can find the steady-state solutions by setting\\n$\\\\dot{N}_g = \\\\dot{\\\\sigma}_{ge} = 0$. This leads too:\\n\\n$$\\n\\nN_e = \\\\frac{1}{2}\\\\frac{\\\\Omega^2 \\\\frac{\\\\Gamma_2}{\\\\Gamma}}{(\\\\omega_0-\\\\omega_L)^2+\\\\Gamma_2^2+\\\\Omega^2\\\\frac{\\\\Gamma_2}{\\\\Gamma}}\\n$$\\n\\n$$\\n\\n\\\\sigma_{ge} = i\\\\frac{\\\\Omega}{2}\\\\frac{\\\\Gamma_2-i(\\\\omega_L-\\\\omega_0)}{\\\\Gamma_2^2+(\\\\omega_0-\\\\omega_L)^2+\\\\Omega^2\\\\Gamma_2/\\\\Gamma}\\n$$\\n\\nIn the next lecture we will employ those results to\\nstudy the laser.","order":10}]`);export{e as b}; diff --git a/assets/chunks/chunk-BcEW-Cv4.js b/assets/chunks/chunk-BcEW-Cv4.js new file mode 100644 index 0000000..a6cb1de --- /dev/null +++ b/assets/chunks/chunk-BcEW-Cv4.js @@ -0,0 +1,2 @@ +function _(e){return Array.from(new Set(e))}const V="0.4.211",b={projectName:"Vike",projectVersion:V},L=`_${b.projectName.toLowerCase()}`;function m(e,n){const t=B();return t[e]=t[e]||n}function B(){return globalThis[L]=globalThis[L]||{}}const l=new Proxy({},{get:(e,n)=>t=>n==="code"?`\`${t}\``:n==="string"?`'${t}'`:t}),u=m("assertSingleInstance.ts",{instances:[],alreadyLogged:new Set}),O="Client runtime of both Server Routing and Client Routing loaded https://vike.dev/client-runtimes-conflict",P="Client runtime loaded twice https://vike.dev/client-runtime-duplicated";function R(){{const e=_(u.instances);H(e.length<=1,`vike@${l.bold(e[0])} and vike@${l.bold(e[1])} loaded but only one version should be loaded`)}u.checkSingleInstance&&u.instances.length>1&&T(!1,P,{onlyOnce:!0,showStackTrace:!0})}function X(e){T(u.isClientRouting!==!1,O,{onlyOnce:!0,showStackTrace:!0}),T(u.isClientRouting===void 0,P,{onlyOnce:!0,showStackTrace:!0}),u.isClientRouting=!0,u.checkSingleInstance=!0,R()}function A(){u.instances.push(b.projectVersion),R()}function H(e,n){if(e)return;const t=`[vike][Wrong Usage] ${n}`;throw new Error(t)}function T(e,n,{onlyOnce:t,showStackTrace:o}){if(e)return;const r=`[vike][Warning] ${n}`;if(t){const{alreadyLogged:i}=u,c=t===!0?r:t;if(i.has(c))return;i.add(c)}console.warn(o?new Error(r):r)}function U(){return!(typeof process>"u"||!process.cwd||!process.versions||typeof process.versions.node>"u"||!process.release||process.release.name!=="node")}function g(e,n){const t=new Error(e);return U()&&(t.stack=G(t.stack,n)),t}function G(e,n){if(!e)return e;const t=z(e);let o=0;return t.filter(i=>i.includes(" (internal/")||i.includes(" (node:internal")?!1:o{if(!n)return null;const h=typeof n=="string"?n:JSON.stringify(n);return l.dim(`Debug info (for Vike maintainers; you can ignore this): ${h}`)})();let r=[`You stumbled upon a Vike bug. Go to ${l.blue("https://github.com/vikejs/vike/issues/new")} and copy-paste this error. A maintainer will fix the bug (usually within 24 hours).`,t].filter(Boolean).join(" ");r=f(r),r=k(r,"Bug"),r=d(r,!0);const i=g(r,p);throw(c=s.onBeforeLog)==null||c.call(s),i}function M(e,n,{showStackTrace:t}={}){var r;if(e)return;t=t||s.alwaysShowStackTrace,n=f(n),n=k(n,"Wrong Usage"),n=d(n);const o=g(n,p);throw t&&s.showStackTraceList.add(o),(r=s.onBeforeLog)==null||r.call(s),o}function K(e){return e=f(e),e=k(e,"Error"),e=d(e),g(e,p)}function Y(e,n,{onlyOnce:t,showStackTrace:o}){var r;if(!e){if(o=o||s.alwaysShowStackTrace,n=f(n),n=k(n,"Warning"),n=d(n),t){const{alreadyLogged:i}=s,c=t===!0?n:t;if(i.has(c))return;i.add(c)}if((r=s.onBeforeLog)==null||r.call(s),o){const i=g(n,p);s.showStackTraceList.add(i),s.logger(i,"warn")}else s.logger(n,"warn")}}function ee(e,n,{onlyOnce:t}){var o;if(n=f(n),n=d(n),t){const{alreadyLogged:r}=s,i=n;if(r.has(i))return;r.add(i)}(o=s.onBeforeLog)==null||o.call(s),s.logger(n,"info")}function k(e,n){let t=`[${n}]`;const o=n==="Warning"?"yellow":"red";return t=l.bold(l[o](t)),`${t}${e}`}function f(e){return e.startsWith("[")?e:` ${e}`}function d(e,n=!1){return`${n?q:F}${e}`}function E(e){const n=e/1e3;if(n<120){const t=W(n);return`${t} second${C(t)}`}{const t=n/60,o=W(t);return`${o} minute${C(o)}`}}function W(e){let n=e.toFixed(1);return n.endsWith(".0")&&(n=n.slice(0,-2)),n}function C(e){return e==="1"?"":"s"}const v=m("utils/executeHook.ts",{userHookErrors:new WeakMap,pageContext:null});function ne(e,n,t){const{hookName:o,hookFilePath:r,hookTimeout:{error:i,warning:c}}=n;let h,w;const I=new Promise((a,N)=>{h=y=>{S(),a(y)},w=y=>{S(),N(y)}}),S=()=>{j&&clearTimeout(j),$&&clearTimeout($)},j=x(c)&&setTimeout(()=>{Y(!1,`The ${o}() hook defined by ${r} is slow: it's taking more than ${E(c)} (https://vike.dev/hooksTimeout)`,{onlyOnce:!1})},c),$=x(i)&&setTimeout(()=>{const a=K(`The ${o}() hook defined by ${r} timed out: it didn't finish after ${E(i)} (https://vike.dev/hooksTimeout)`);w(a)},i);return(async()=>{try{Q(t);const a=await e();h(a)}catch(a){D(a)&&v.userHookErrors.set(a,{hookName:o,hookFilePath:r}),w(a)}})(),I}function x(e){return!!e&&e!==1/0}function Q(e){v.pageContext=e,Promise.resolve().then(()=>{v.pageContext=null})}export{M as a,l as b,Y as c,Z as d,ne as e,K as f,m as g,ee as h,D as i,X as j,Q as p,_ as u}; diff --git a/assets/chunks/chunk-C45O1yEu.js b/assets/chunks/chunk-C45O1yEu.js new file mode 100644 index 0000000..3460e8c --- /dev/null +++ b/assets/chunks/chunk-C45O1yEu.js @@ -0,0 +1,66 @@ +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const x=globalThis,B=x.ShadowRoot&&(x.ShadyCSS===void 0||x.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,G=Symbol(),q=new WeakMap;let ht=class{constructor(s,t,e){if(this._$cssResult$=!0,e!==G)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=s,this.t=t}get styleSheet(){let s=this.o;const t=this.t;if(B&&s===void 0){const e=t!==void 0&&t.length===1;e&&(s=q.get(t)),s===void 0&&((this.o=s=new CSSStyleSheet).replaceSync(this.cssText),e&&q.set(t,s))}return s}toString(){return this.cssText}};const pt=s=>new ht(typeof s=="string"?s:s+"",void 0,G),_t=(s,...t)=>{const e=s.length===1?s[0]:t.reduce((i,r,o)=>i+(n=>{if(n._$cssResult$===!0)return n.cssText;if(typeof n=="number")return n;throw Error("Value passed to 'css' function must be a 'css' function result: "+n+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(r)+s[o+1],s[0]);return new ht(e,s,G)},$t=(s,t)=>{if(B)s.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const e of t){const i=document.createElement("style"),r=x.litNonce;r!==void 0&&i.setAttribute("nonce",r),i.textContent=e.cssText,s.appendChild(i)}},K=B?s=>s:s=>s instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return pt(e)})(s):s;/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const{is:gt,defineProperty:ft,getOwnPropertyDescriptor:mt,getOwnPropertyNames:vt,getOwnPropertySymbols:At,getPrototypeOf:yt}=Object,E=globalThis,F=E.trustedTypes,St=F?F.emptyScript:"",J=E.reactiveElementPolyfillSupport,U=(s,t)=>s,H={toAttribute(s,t){switch(t){case Boolean:s=s?St:null;break;case Object:case Array:s=s==null?s:JSON.stringify(s)}return s},fromAttribute(s,t){let e=s;switch(t){case Boolean:e=s!==null;break;case Number:e=s===null?null:Number(s);break;case Object:case Array:try{e=JSON.parse(s)}catch{e=null}}return e}},W=(s,t)=>!gt(s,t),Q={attribute:!0,type:String,converter:H,reflect:!1,hasChanged:W};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),E.litPropertyMetadata??(E.litPropertyMetadata=new WeakMap);class S extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??(this.l=[])).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=Q){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(t,e),!e.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,e);r!==void 0&&ft(this.prototype,t,r)}}static getPropertyDescriptor(t,e,i){const{get:r,set:o}=mt(this.prototype,t)??{get(){return this[e]},set(n){this[e]=n}};return{get(){return r==null?void 0:r.call(this)},set(n){const a=r==null?void 0:r.call(this);o.call(this,n),this.requestUpdate(t,a,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??Q}static _$Ei(){if(this.hasOwnProperty(U("elementProperties")))return;const t=yt(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(U("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(U("properties"))){const e=this.properties,i=[...vt(e),...At(e)];for(const r of i)this.createProperty(r,e[r])}const t=this[Symbol.metadata];if(t!==null){const e=litPropertyMetadata.get(t);if(e!==void 0)for(const[i,r]of e)this.elementProperties.set(i,r)}this._$Eh=new Map;for(const[e,i]of this.elementProperties){const r=this._$Eu(e,i);r!==void 0&&this._$Eh.set(r,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const r of i)e.unshift(K(r))}else t!==void 0&&e.push(K(t));return e}static _$Eu(t,e){const i=e.attribute;return i===!1?void 0:typeof i=="string"?i:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var t;this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),(t=this.constructor.l)==null||t.forEach(e=>e(this))}addController(t){var e;(this._$EO??(this._$EO=new Set)).add(t),this.renderRoot!==void 0&&this.isConnected&&((e=t.hostConnected)==null||e.call(t))}removeController(t){var e;(e=this._$EO)==null||e.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const i of e.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return $t(t,this.constructor.elementStyles),t}connectedCallback(){var t;this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$EO)==null||t.forEach(e=>{var i;return(i=e.hostConnected)==null?void 0:i.call(e)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$EO)==null||t.forEach(e=>{var i;return(i=e.hostDisconnected)==null?void 0:i.call(e)})}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$EC(t,e){var i;const r=this.constructor.elementProperties.get(t),o=this.constructor._$Eu(t,r);if(o!==void 0&&r.reflect===!0){const n=(((i=r.converter)==null?void 0:i.toAttribute)!==void 0?r.converter:H).toAttribute(e,r.type);this._$Em=t,n==null?this.removeAttribute(o):this.setAttribute(o,n),this._$Em=null}}_$AK(t,e){var i;const r=this.constructor,o=r._$Eh.get(t);if(o!==void 0&&this._$Em!==o){const n=r.getPropertyOptions(o),a=typeof n.converter=="function"?{fromAttribute:n.converter}:((i=n.converter)==null?void 0:i.fromAttribute)!==void 0?n.converter:H;this._$Em=o,this[o]=a.fromAttribute(e,n.type),this._$Em=null}}requestUpdate(t,e,i){if(t!==void 0){if(i??(i=this.constructor.getPropertyOptions(t)),!(i.hasChanged??W)(this[t],e))return;this.P(t,e,i)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(t,e,i){this._$AL.has(t)||this._$AL.set(t,e),i.reflect===!0&&this._$Em!==t&&(this._$Ej??(this._$Ej=new Set)).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(const[o,n]of this._$Ep)this[o]=n;this._$Ep=void 0}const r=this.constructor.elementProperties;if(r.size>0)for(const[o,n]of r)n.wrapped!==!0||this._$AL.has(o)||this[o]===void 0||this.P(o,this[o],n)}let e=!1;const i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),(t=this._$EO)==null||t.forEach(r=>{var o;return(o=r.hostUpdate)==null?void 0:o.call(r)}),this.update(i)):this._$EU()}catch(r){throw e=!1,this._$EU(),r}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;(e=this._$EO)==null||e.forEach(i=>{var r;return(r=i.hostUpdated)==null?void 0:r.call(i)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&(this._$Ej=this._$Ej.forEach(e=>this._$EC(e,this[e]))),this._$EU()}updated(t){}firstUpdated(t){}}S.elementStyles=[],S.shadowRootOptions={mode:"open"},S[U("elementProperties")]=new Map,S[U("finalized")]=new Map,J==null||J({ReactiveElement:S}),(E.reactiveElementVersions??(E.reactiveElementVersions=[])).push("2.0.4");/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const L=globalThis,k=L.trustedTypes,Z=k?k.createPolicy("lit-html",{createHTML:s=>s}):void 0,at="$lit$",m=`lit$${Math.random().toFixed(9).slice(2)}$`,lt="?"+m,Et=`<${lt}>`,y=document,T=()=>y.createComment(""),R=s=>s===null||typeof s!="object"&&typeof s!="function",V=Array.isArray,bt=s=>V(s)||typeof(s==null?void 0:s[Symbol.iterator])=="function",z=`[ +\f\r]`,w=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,X=/-->/g,tt=/>/g,v=RegExp(`>|${z}(?:([^\\s"'>=/]+)(${z}*=${z}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),et=/'/g,st=/"/g,ct=/^(?:script|style|textarea|title)$/i,Ct=s=>(t,...e)=>({_$litType$:s,strings:t,values:e}),wt=Ct(1),b=Symbol.for("lit-noChange"),c=Symbol.for("lit-nothing"),it=new WeakMap,A=y.createTreeWalker(y,129);function dt(s,t){if(!V(s)||!s.hasOwnProperty("raw"))throw Error("invalid template strings array");return Z!==void 0?Z.createHTML(t):t}const Ut=(s,t)=>{const e=s.length-1,i=[];let r,o=t===2?"":t===3?"":"",n=w;for(let a=0;a"?(n=r??w,l=-1):p[1]===void 0?l=-2:(l=n.lastIndex-p[2].length,d=p[1],n=p[3]===void 0?v:p[3]==='"'?st:et):n===st||n===et?n=v:n===X||n===tt?n=w:(n=v,r=void 0);const f=n===v&&s[a+1].startsWith("/>")?" ":"";o+=n===w?h+Et:l>=0?(i.push(d),h.slice(0,l)+at+h.slice(l)+m+f):h+m+(l===-2?a:f)}return[dt(s,o+(s[e]||"")+(t===2?"":t===3?"":"")),i]};class M{constructor({strings:t,_$litType$:e},i){let r;this.parts=[];let o=0,n=0;const a=t.length-1,h=this.parts,[d,p]=Ut(t,e);if(this.el=M.createElement(d,i),A.currentNode=this.el.content,e===2||e===3){const l=this.el.content.firstChild;l.replaceWith(...l.childNodes)}for(;(r=A.nextNode())!==null&&h.length0){r.textContent=k?k.emptyScript:"";for(let f=0;f2||i[0]!==""||i[1]!==""?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=c}_$AI(t,e=this,i,r){const o=this.strings;let n=!1;if(o===void 0)t=C(this,t,e,0),n=!R(t)||t!==this._$AH&&t!==b,n&&(this._$AH=t);else{const a=t;let h,d;for(t=o[0],h=0;h{const i=(e==null?void 0:e.renderBefore)??t;let r=i._$litPart$;if(r===void 0){const o=(e==null?void 0:e.renderBefore)??null;i._$litPart$=r=new N(t.insertBefore(T(),o),o,void 0,e??{})}return r._$AI(s),r};/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */let P=class extends S{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var s;const t=super.createRenderRoot();return(s=this.renderOptions).renderBefore??(s.renderBefore=t.firstChild),t}update(s){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(s),this._$Do=Nt(t,this.renderRoot,this.renderOptions)}connectedCallback(){var s;super.connectedCallback(),(s=this._$Do)==null||s.setConnected(!0)}disconnectedCallback(){var s;super.disconnectedCallback(),(s=this._$Do)==null||s.setConnected(!1)}render(){return b}};var nt;P._$litElement$=!0,P.finalized=!0,(nt=globalThis.litElementHydrateSupport)==null||nt.call(globalThis,{LitElement:P});const ot=globalThis.litElementPolyfillSupport;ot==null||ot({LitElement:P});(globalThis.litElementVersions??(globalThis.litElementVersions=[])).push("4.1.1");/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const It=s=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(s,t)}):customElements.define(s,t)};/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const xt={attribute:!0,type:String,converter:H,reflect:!1,hasChanged:W},Ht=(s=xt,t,e)=>{const{kind:i,metadata:r}=e;let o=globalThis.litPropertyMetadata.get(r);if(o===void 0&&globalThis.litPropertyMetadata.set(r,o=new Map),o.set(e.name,s),i==="accessor"){const{name:n}=e;return{set(a){const h=t.get.call(this);t.set.call(this,a),this.requestUpdate(n,h,s)},init(a){return a!==void 0&&this.P(n,void 0,s),a}}}if(i==="setter"){const{name:n}=e;return function(a){const h=this[n];t.call(this,a),this.requestUpdate(n,h,s)}}throw Error("Unsupported decorator location: "+i)};function $(s){return(t,e)=>typeof e=="object"?Ht(s,t,e):((i,r,o)=>{const n=r.hasOwnProperty(o);return r.constructor.createProperty(o,n?{...i,wrapped:!0}:i),n?Object.getOwnPropertyDescriptor(r,o):void 0})(s,t,e)}/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Lt=s=>s.strings===void 0;/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const kt={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Dt=s=>(...t)=>({_$litDirective$:s,values:t});let jt=class{constructor(s){}get _$AU(){return this._$AM._$AU}_$AT(s,t,e){this._$Ct=s,this._$AM=t,this._$Ci=e}_$AS(s,t){return this.update(s,t)}update(s,t){return this.render(...t)}};/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const O=(s,t)=>{var e;const i=s._$AN;if(i===void 0)return!1;for(const r of i)(e=r._$AO)==null||e.call(r,t,!1),O(r,t);return!0},D=s=>{let t,e;do{if((t=s._$AM)===void 0)break;e=t._$AN,e.delete(s),s=t}while((e==null?void 0:e.size)===0)},ut=s=>{for(let t;t=s._$AM;s=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(s))break;e.add(s),Bt(t)}};function zt(s){this._$AN!==void 0?(D(this),this._$AM=s,ut(this)):this._$AM=s}function Yt(s,t=!1,e=0){const i=this._$AH,r=this._$AN;if(r!==void 0&&r.size!==0)if(t)if(Array.isArray(i))for(let o=e;o{s.type==kt.CHILD&&(s._$AP??(s._$AP=Yt),s._$AQ??(s._$AQ=zt))};class Gt extends jt{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,i){super._$AT(t,e,i),ut(this),this.isConnected=t._$AU}_$AO(t,e=!0){var i,r;t!==this.isConnected&&(this.isConnected=t,t?(i=this.reconnected)==null||i.call(this):(r=this.disconnected)==null||r.call(this)),e&&(O(this,t),D(this))}setValue(t){if(Lt(this._$Ct))this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Wt=()=>new Vt;class Vt{}const Y=new WeakMap,qt=Dt(class extends Gt{render(s){return c}update(s,[t]){var e;const i=t!==this.Y;return i&&this.Y!==void 0&&this.rt(void 0),(i||this.lt!==this.ct)&&(this.Y=t,this.ht=(e=s.options)==null?void 0:e.host,this.rt(this.ct=s.element)),c}rt(s){if(this.isConnected||(s=void 0),typeof this.Y=="function"){const t=this.ht??globalThis;let e=Y.get(t);e===void 0&&(e=new WeakMap,Y.set(t,e)),e.get(this.Y)!==void 0&&this.Y.call(this.ht,void 0),e.set(this.Y,s),s!==void 0&&this.Y.call(this.ht,s)}else this.Y.value=s}get lt(){var s,t;return typeof this.Y=="function"?(s=Y.get(this.ht??globalThis))==null?void 0:s.get(this.Y):(t=this.Y)==null?void 0:t.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var Kt=Object.defineProperty,Ft=Object.getOwnPropertyDescriptor,_=(s,t,e,i)=>{for(var r=i>1?void 0:i?Ft(t,e):t,o=s.length-1,n;o>=0;o--)(n=s[o])&&(r=(i?n(t,e,r):n(r))||r);return i&&r&&Kt(t,e,r),r};function Jt(s){return customElements.get(s)?t=>t:It(s)}let u=class extends P{constructor(){super(),this.GISCUS_SESSION_KEY="giscus-session",this.GISCUS_DEFAULT_HOST="https://giscus.app",this.ERROR_SUGGESTION="Please consider reporting this error at https://github.com/giscus/giscus/issues/new.",this.__session="",this._iframeRef=Wt(),this.messageEventHandler=this.handleMessageEvent.bind(this),this.hasLoaded=!1,this.host=this.GISCUS_DEFAULT_HOST,this.strict="0",this.reactionsEnabled="1",this.emitMetadata="0",this.inputPosition="bottom",this.theme="light",this.lang="en",this.loading="eager",this.setupSession(),window.addEventListener("message",this.messageEventHandler)}get iframeRef(){var s;return(s=this._iframeRef)==null?void 0:s.value}get _host(){try{return new URL(this.host),this.host}catch{return this.GISCUS_DEFAULT_HOST}}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("message",this.messageEventHandler)}_formatError(s){return`[giscus] An error occurred. Error message: "${s}".`}setupSession(){const s=location.href,t=new URL(s),e=localStorage.getItem(this.GISCUS_SESSION_KEY),i=t.searchParams.get("giscus")??"";if(this.__session="",i){localStorage.setItem(this.GISCUS_SESSION_KEY,JSON.stringify(i)),this.__session=i,t.searchParams.delete("giscus"),t.hash="",history.replaceState(void 0,document.title,t.toString());return}if(e)try{this.__session=JSON.parse(e)}catch(r){localStorage.removeItem(this.GISCUS_SESSION_KEY),console.warn(`${this._formatError(r==null?void 0:r.message)} Session has been cleared.`)}}signOut(){localStorage.removeItem(this.GISCUS_SESSION_KEY),this.__session="",this.update(new Map)}handleMessageEvent(s){if(s.origin!==this._host)return;const{data:t}=s;if(!(typeof t=="object"&&t.giscus))return;if(this.iframeRef&&t.giscus.resizeHeight&&(this.iframeRef.style.height=`${t.giscus.resizeHeight}px`),t.giscus.signOut){console.info("[giscus] User has logged out. Session has been cleared."),this.signOut();return}if(!t.giscus.error)return;const e=t.giscus.error;if(e.includes("Bad credentials")||e.includes("Invalid state value")||e.includes("State has expired")){if(localStorage.getItem(this.GISCUS_SESSION_KEY)!==null){console.warn(`${this._formatError(e)} Session has been cleared.`),this.signOut();return}console.error(`${this._formatError(e)} No session is stored initially. ${this.ERROR_SUGGESTION}`)}if(e.includes("Discussion not found")){console.warn(`[giscus] ${e}. A new discussion will be created if a comment/reaction is submitted.`);return}console.error(`${this._formatError(e)} ${this.ERROR_SUGGESTION}`)}sendMessage(s){var t;!((t=this.iframeRef)!=null&&t.contentWindow)||!this.hasLoaded||this.iframeRef.contentWindow.postMessage({giscus:s},this._host)}updateConfig(){const s={setConfig:{repo:this.repo,repoId:this.repoId,category:this.category,categoryId:this.categoryId,term:this.getTerm(),number:+this.getNumber(),strict:this.strict==="1",reactionsEnabled:this.reactionsEnabled==="1",emitMetadata:this.emitMetadata==="1",inputPosition:this.inputPosition,theme:this.theme,lang:this.lang}};this.sendMessage(s)}firstUpdated(){var s;(s=this.iframeRef)==null||s.addEventListener("load",()=>{var t;(t=this.iframeRef)==null||t.classList.remove("loading"),this.hasLoaded=!0,this.updateConfig()})}requestUpdate(s,t,e){if(!this.hasUpdated||s==="host"){super.requestUpdate(s,t,e);return}this.updateConfig()}getMetaContent(s,t=!1){const e=t?`meta[property='og:${s}'],`:"",i=document.querySelector(e+`meta[name='${s}']`);return i?i.content:""}_getCleanedUrl(){const s=new URL(location.href);return s.searchParams.delete("giscus"),s.hash="",s}getTerm(){switch(this.mapping){case"url":return this._getCleanedUrl().toString();case"title":return document.title;case"og:title":return this.getMetaContent("title",!0);case"specific":return this.term??"";case"number":return"";case"pathname":default:return location.pathname.length<2?"index":location.pathname.substring(1).replace(/\.\w+$/,"")}}getNumber(){return this.mapping==="number"?this.term??"":""}getIframeSrc(){const s=this._getCleanedUrl().toString(),t=`${s}${this.id?"#"+this.id:""}`,e=this.getMetaContent("description",!0),i=this.getMetaContent("giscus:backlink")||s,r={origin:t,session:this.__session,repo:this.repo,repoId:this.repoId??"",category:this.category??"",categoryId:this.categoryId??"",term:this.getTerm(),number:this.getNumber(),strict:this.strict,reactionsEnabled:this.reactionsEnabled,emitMetadata:this.emitMetadata,inputPosition:this.inputPosition,theme:this.theme,description:e,backLink:i},o=this._host,n=this.lang?`/${this.lang}`:"",a=new URLSearchParams(r);return`${o}${n}/widget?${a.toString()}`}render(){return wt` + + `}};u.styles=_t` + :host, + iframe { + width: 100%; + border: none; + min-height: 150px; + color-scheme: light dark; + } + + iframe.loading { + opacity: 0; + } + `;_([$({reflect:!0})],u.prototype,"host",2);_([$({reflect:!0})],u.prototype,"repo",2);_([$({reflect:!0})],u.prototype,"repoId",2);_([$({reflect:!0})],u.prototype,"category",2);_([$({reflect:!0})],u.prototype,"categoryId",2);_([$({reflect:!0})],u.prototype,"mapping",2);_([$({reflect:!0})],u.prototype,"term",2);_([$({reflect:!0})],u.prototype,"strict",2);_([$({reflect:!0})],u.prototype,"reactionsEnabled",2);_([$({reflect:!0})],u.prototype,"emitMetadata",2);_([$({reflect:!0})],u.prototype,"inputPosition",2);_([$({reflect:!0})],u.prototype,"theme",2);_([$({reflect:!0})],u.prototype,"lang",2);_([$({reflect:!0})],u.prototype,"loading",2);u=_([Jt("giscus-widget")],u);export{u as GiscusWidget}; diff --git a/assets/chunks/chunk-D7HrI6pR.js b/assets/chunks/chunk-D7HrI6pR.js new file mode 100644 index 0000000..fd83d50 --- /dev/null +++ b/assets/chunks/chunk-D7HrI6pR.js @@ -0,0 +1 @@ +const h="modulepreload",E=function(i){return"/"+i},a={},y=function(u,s,v){let c=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const e=document.querySelector("meta[property=csp-nonce]"),t=(e==null?void 0:e.nonce)||(e==null?void 0:e.getAttribute("nonce"));c=Promise.allSettled(s.map(r=>{if(r=E(r),r in a)return;a[r]=!0;const o=r.endsWith(".css"),d=o?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${r}"]${d}`))return;const n=document.createElement("link");if(n.rel=o?"stylesheet":h,o||(n.as="script"),n.crossOrigin="",n.href=r,t&&n.setAttribute("nonce",t),document.head.appendChild(n),o)return new Promise((f,m)=>{n.addEventListener("load",f),n.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${r}`)))})}))}function l(e){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return c.then(e=>{for(const t of e||[])t.status==="rejected"&&l(t.reason);return u().catch(l)})};export{y as _}; diff --git a/assets/chunks/chunk-DjXTsExv.js b/assets/chunks/chunk-DjXTsExv.js new file mode 100644 index 0000000..771ef18 --- /dev/null +++ b/assets/chunks/chunk-DjXTsExv.js @@ -0,0 +1,49 @@ +/* empty css */import{p as _y}from"./chunk-BcEW-Cv4.js";/* empty css */function lv(g){return g&&g.__esModule&&Object.prototype.hasOwnProperty.call(g,"default")?g.default:g}var $i={exports:{}},j={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Cs;function Oy(){if(Cs)return j;Cs=1;var g=Symbol.for("react.transitional.element"),B=Symbol.for("react.portal"),q=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),V=Symbol.for("react.profiler"),yl=Symbol.for("react.consumer"),ul=Symbol.for("react.context"),il=Symbol.for("react.forward_ref"),M=Symbol.for("react.suspense"),T=Symbol.for("react.memo"),$=Symbol.for("react.lazy"),cl=Symbol.iterator;function fl(s){return s===null||typeof s!="object"?null:(s=cl&&s[cl]||s["@@iterator"],typeof s=="function"?s:null)}var Sl={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jl=Object.assign,Pl={};function Ll(s,A,p){this.props=s,this.context=A,this.refs=Pl,this.updater=p||Sl}Ll.prototype.isReactComponent={},Ll.prototype.setState=function(s,A){if(typeof s!="object"&&typeof s!="function"&&s!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,s,A,"setState")},Ll.prototype.forceUpdate=function(s){this.updater.enqueueForceUpdate(this,s,"forceUpdate")};function Mt(){}Mt.prototype=Ll.prototype;function Yl(s,A,p){this.props=s,this.context=A,this.refs=Pl,this.updater=p||Sl}var yt=Yl.prototype=new Mt;yt.constructor=Yl,jl(yt,Ll.prototype),yt.isPureReactComponent=!0;var wt=Array.isArray,k={H:null,A:null,T:null,S:null},Ql=Object.prototype.hasOwnProperty;function Wt(s,A,p,R,_,K){return p=K.ref,{$$typeof:g,type:s,key:A,ref:p!==void 0?p:null,props:K}}function $t(s,A){return Wt(s.type,A,void 0,void 0,void 0,s.props)}function N(s){return typeof s=="object"&&s!==null&&s.$$typeof===g}function F(s){var A={"=":"=0",":":"=2"};return"$"+s.replace(/[=:]/g,function(p){return A[p]})}var Il=/\/+/g;function Ut(s,A){return typeof s=="object"&&s!==null&&s.key!=null?F(""+s.key):A.toString(36)}function bt(){}function Rt(s){switch(s.status){case"fulfilled":return s.value;case"rejected":throw s.reason;default:switch(typeof s.status=="string"?s.then(bt,bt):(s.status="pending",s.then(function(A){s.status==="pending"&&(s.status="fulfilled",s.value=A)},function(A){s.status==="pending"&&(s.status="rejected",s.reason=A)})),s.status){case"fulfilled":return s.value;case"rejected":throw s.reason}}throw s}function Cl(s,A,p,R,_){var K=typeof s;(K==="undefined"||K==="boolean")&&(s=null);var Q=!1;if(s===null)Q=!0;else switch(K){case"bigint":case"string":case"number":Q=!0;break;case"object":switch(s.$$typeof){case g:case B:Q=!0;break;case $:return Q=s._init,Cl(Q(s._payload),A,p,R,_)}}if(Q)return _=_(s),Q=R===""?"."+Ut(s,0):R,wt(_)?(p="",Q!=null&&(p=Q.replace(Il,"$&/")+"/"),Cl(_,A,p,"",function(rl){return rl})):_!=null&&(N(_)&&(_=$t(_,p+(_.key==null||s&&s.key===_.key?"":(""+_.key).replace(Il,"$&/")+"/")+Q)),A.push(_)),1;Q=0;var Bl=R===""?".":R+":";if(wt(s))for(var P=0;P>>1,s=z[al];if(0>>1;alV(R,Y))_V(K,R)?(z[al]=K,z[_]=Y,al=_):(z[al]=R,z[p]=Y,al=p);else if(_V(K,Y))z[al]=K,z[_]=Y,al=_;else break l}}return X}function V(z,X){var Y=z.sortIndex-X.sortIndex;return Y!==0?Y:z.id-X.id}if(g.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var yl=performance;g.unstable_now=function(){return yl.now()}}else{var ul=Date,il=ul.now();g.unstable_now=function(){return ul.now()-il}}var M=[],T=[],$=1,cl=null,fl=3,Sl=!1,jl=!1,Pl=!1,Ll=typeof setTimeout=="function"?setTimeout:null,Mt=typeof clearTimeout=="function"?clearTimeout:null,Yl=typeof setImmediate<"u"?setImmediate:null;function yt(z){for(var X=q(T);X!==null;){if(X.callback===null)o(T);else if(X.startTime<=z)o(T),X.sortIndex=X.expirationTime,B(M,X);else break;X=q(T)}}function wt(z){if(Pl=!1,yt(z),!jl)if(q(M)!==null)jl=!0,Rt();else{var X=q(T);X!==null&&Cl(wt,X.startTime-z)}}var k=!1,Ql=-1,Wt=5,$t=-1;function N(){return!(g.unstable_now()-$tz&&N());){var al=cl.callback;if(typeof al=="function"){cl.callback=null,fl=cl.priorityLevel;var s=al(cl.expirationTime<=z);if(z=g.unstable_now(),typeof s=="function"){cl.callback=s,yt(z),X=!0;break t}cl===q(M)&&o(M),yt(z)}else o(M);cl=q(M)}if(cl!==null)X=!0;else{var A=q(T);A!==null&&Cl(wt,A.startTime-z),X=!1}}break l}finally{cl=null,fl=Y,Sl=!1}X=void 0}}finally{X?Il():k=!1}}}var Il;if(typeof Yl=="function")Il=function(){Yl(F)};else if(typeof MessageChannel<"u"){var Ut=new MessageChannel,bt=Ut.port2;Ut.port1.onmessage=F,Il=function(){bt.postMessage(null)}}else Il=function(){Ll(F,0)};function Rt(){k||(k=!0,Il())}function Cl(z,X){Ql=Ll(function(){z(g.unstable_now())},X)}g.unstable_IdlePriority=5,g.unstable_ImmediatePriority=1,g.unstable_LowPriority=4,g.unstable_NormalPriority=3,g.unstable_Profiling=null,g.unstable_UserBlockingPriority=2,g.unstable_cancelCallback=function(z){z.callback=null},g.unstable_continueExecution=function(){jl||Sl||(jl=!0,Rt())},g.unstable_forceFrameRate=function(z){0>z||125al?(z.sortIndex=Y,B(T,z),q(M)===null&&z===q(T)&&(Pl?(Mt(Ql),Ql=-1):Pl=!0,Cl(wt,Y-al))):(z.sortIndex=s,B(M,z),jl||Sl||(jl=!0,Rt())),z},g.unstable_shouldYield=N,g.unstable_wrapCallback=function(z){var X=fl;return function(){var Y=fl;fl=X;try{return z.apply(this,arguments)}finally{fl=Y}}}}(Pi)),Pi}var xs;function Uy(){return xs||(xs=1,Fi.exports=My()),Fi.exports}var Ii={exports:{}},pl={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ls;function Ry(){if(Ls)return pl;Ls=1;var g=uf();function B(M){var T="https://react.dev/errors/"+M;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(g)}catch(B){console.error(B)}}return g(),Ii.exports=Ry(),Ii.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Js;function qy(){if(Js)return Te;Js=1;var g=Uy(),B=uf(),q=Hy();function o(l){var t="https://react.dev/errors/"+l;if(1)":-1e||f[a]!==d[e]){var r=` +`+f[a].replace(" at new "," at ");return l.displayName&&r.includes("")&&(r=r.replace("",l.displayName)),r}while(1<=a&&0<=e);break}}}finally{Rt=!1,Error.prepareStackTrace=u}return(u=l?l.displayName||l.name:"")?bt(u):""}function z(l){switch(l.tag){case 26:case 27:case 5:return bt(l.type);case 16:return bt("Lazy");case 13:return bt("Suspense");case 19:return bt("SuspenseList");case 0:case 15:return l=Cl(l.type,!1),l;case 11:return l=Cl(l.type.render,!1),l;case 1:return l=Cl(l.type,!0),l;default:return""}}function X(l){try{var t="";do t+=z(l),l=l.return;while(l);return t}catch(u){return` +Error generating stack: `+u.message+` +`+u.stack}}function Y(l){var t=l,u=l;if(l.alternate)for(;t.return;)t=t.return;else{l=t;do t=l,t.flags&4098&&(u=t.return),l=t.return;while(l)}return t.tag===3?u:null}function al(l){if(l.tag===13){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}function s(l){if(Y(l)!==l)throw Error(o(188))}function A(l){var t=l.alternate;if(!t){if(t=Y(l),t===null)throw Error(o(188));return t!==l?null:l}for(var u=l,a=t;;){var e=u.return;if(e===null)break;var n=e.alternate;if(n===null){if(a=e.return,a!==null){u=a;continue}break}if(e.child===n.child){for(n=e.child;n;){if(n===u)return s(e),l;if(n===a)return s(e),t;n=n.sibling}throw Error(o(188))}if(u.return!==a.return)u=e,a=n;else{for(var c=!1,i=e.child;i;){if(i===u){c=!0,u=e,a=n;break}if(i===a){c=!0,a=e,u=n;break}i=i.sibling}if(!c){for(i=n.child;i;){if(i===u){c=!0,u=n,a=e;break}if(i===a){c=!0,a=n,u=e;break}i=i.sibling}if(!c)throw Error(o(189))}}if(u.alternate!==a)throw Error(o(190))}if(u.tag!==3)throw Error(o(188));return u.stateNode.current===u?l:t}function p(l){var t=l.tag;if(t===5||t===26||t===27||t===6)return l;for(l=l.child;l!==null;){if(t=p(l),t!==null)return t;l=l.sibling}return null}var R=Array.isArray,_=q.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,K={pending:!1,data:null,method:null,action:null},Q=[],Bl=-1;function P(l){return{current:l}}function rl(l){0>Bl||(l.current=Q[Bl],Q[Bl]=null,Bl--)}function sl(l,t){Bl++,Q[Bl]=l.current,l.current=t}var Et=P(null),_a=P(null),kt=P(null),_e=P(null);function Oe(l,t){switch(sl(kt,t),sl(_a,l),sl(Et,null),l=t.nodeType,l){case 9:case 11:t=(t=t.documentElement)&&(t=t.namespaceURI)?ms(t):0;break;default:if(l=l===8?t.parentNode:t,t=l.tagName,l=l.namespaceURI)l=ms(l),t=gs(l,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}rl(Et),sl(Et,t)}function Vu(){rl(Et),rl(_a),rl(kt)}function Cn(l){l.memoizedState!==null&&sl(_e,l);var t=Et.current,u=gs(t,l.type);t!==u&&(sl(_a,l),sl(Et,u))}function De(l){_a.current===l&&(rl(Et),rl(_a)),_e.current===l&&(rl(_e),ge._currentValue=K)}var Zn=Object.prototype.hasOwnProperty,Vn=g.unstable_scheduleCallback,xn=g.unstable_cancelCallback,uv=g.unstable_shouldYield,av=g.unstable_requestPaint,Tt=g.unstable_now,ev=g.unstable_getCurrentPriorityLevel,af=g.unstable_ImmediatePriority,ef=g.unstable_UserBlockingPriority,Me=g.unstable_NormalPriority,nv=g.unstable_LowPriority,nf=g.unstable_IdlePriority,cv=g.log,iv=g.unstable_setDisableYieldValue,Oa=null,Kl=null;function fv(l){if(Kl&&typeof Kl.onCommitFiberRoot=="function")try{Kl.onCommitFiberRoot(Oa,l,void 0,(l.current.flags&128)===128)}catch{}}function Ft(l){if(typeof cv=="function"&&iv(l),Kl&&typeof Kl.setStrictMode=="function")try{Kl.setStrictMode(Oa,l)}catch{}}var Jl=Math.clz32?Math.clz32:dv,sv=Math.log,vv=Math.LN2;function dv(l){return l>>>=0,l===0?32:31-(sv(l)/vv|0)|0}var Ue=128,Re=4194304;function Eu(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function He(l,t){var u=l.pendingLanes;if(u===0)return 0;var a=0,e=l.suspendedLanes,n=l.pingedLanes,c=l.warmLanes;l=l.finishedLanes!==0;var i=u&134217727;return i!==0?(u=i&~e,u!==0?a=Eu(u):(n&=i,n!==0?a=Eu(n):l||(c=i&~c,c!==0&&(a=Eu(c))))):(i=u&~e,i!==0?a=Eu(i):n!==0?a=Eu(n):l||(c=u&~c,c!==0&&(a=Eu(c)))),a===0?0:t!==0&&t!==a&&!(t&e)&&(e=a&-a,c=t&-t,e>=c||e===32&&(c&4194176)!==0)?t:a}function Da(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function yv(l,t){switch(l){case 1:case 2:case 4:case 8:return t+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function cf(){var l=Ue;return Ue<<=1,!(Ue&4194176)&&(Ue=128),l}function ff(){var l=Re;return Re<<=1,!(Re&62914560)&&(Re=4194304),l}function Ln(l){for(var t=[],u=0;31>u;u++)t.push(l);return t}function Ma(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function ov(l,t,u,a,e,n){var c=l.pendingLanes;l.pendingLanes=u,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=u,l.entangledLanes&=u,l.errorRecoveryDisabledLanes&=u,l.shellSuspendCounter=0;var i=l.entanglements,f=l.expirationTimes,d=l.hiddenUpdates;for(u=c&~u;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Sv=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),gf={},Sf={};function rv(l){return Zn.call(Sf,l)?!0:Zn.call(gf,l)?!1:Sv.test(l)?Sf[l]=!0:(gf[l]=!0,!1)}function qe(l,t,u){if(rv(t))if(u===null)l.removeAttribute(t);else{switch(typeof u){case"undefined":case"function":case"symbol":l.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){l.removeAttribute(t);return}}l.setAttribute(t,""+u)}}function Ne(l,t,u){if(u===null)l.removeAttribute(t);else{switch(typeof u){case"undefined":case"function":case"symbol":case"boolean":l.removeAttribute(t);return}l.setAttribute(t,""+u)}}function qt(l,t,u,a){if(a===null)l.removeAttribute(u);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":l.removeAttribute(u);return}l.setAttributeNS(t,u,""+a)}}function lt(l){switch(typeof l){case"bigint":case"boolean":case"number":case"string":case"undefined":return l;case"object":return l;default:return""}}function rf(l){var t=l.type;return(l=l.nodeName)&&l.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function bv(l){var t=rf(l)?"checked":"value",u=Object.getOwnPropertyDescriptor(l.constructor.prototype,t),a=""+l[t];if(!l.hasOwnProperty(t)&&typeof u<"u"&&typeof u.get=="function"&&typeof u.set=="function"){var e=u.get,n=u.set;return Object.defineProperty(l,t,{configurable:!0,get:function(){return e.call(this)},set:function(c){a=""+c,n.call(this,c)}}),Object.defineProperty(l,t,{enumerable:u.enumerable}),{getValue:function(){return a},setValue:function(c){a=""+c},stopTracking:function(){l._valueTracker=null,delete l[t]}}}}function pe(l){l._valueTracker||(l._valueTracker=bv(l))}function bf(l){if(!l)return!1;var t=l._valueTracker;if(!t)return!0;var u=t.getValue(),a="";return l&&(a=rf(l)?l.checked?"true":"false":l.value),l=a,l!==u?(t.setValue(l),!0):!1}function Ye(l){if(l=l||(typeof document<"u"?document:void 0),typeof l>"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Ev=/[\n"\\]/g;function tt(l){return l.replace(Ev,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function wn(l,t,u,a,e,n,c,i){l.name="",c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.type=c:l.removeAttribute("type"),t!=null?c==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+lt(t)):l.value!==""+lt(t)&&(l.value=""+lt(t)):c!=="submit"&&c!=="reset"||l.removeAttribute("value"),t!=null?Wn(l,c,lt(t)):u!=null?Wn(l,c,lt(u)):a!=null&&l.removeAttribute("value"),e==null&&n!=null&&(l.defaultChecked=!!n),e!=null&&(l.checked=e&&typeof e!="function"&&typeof e!="symbol"),i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.name=""+lt(i):l.removeAttribute("name")}function Ef(l,t,u,a,e,n,c,i){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||u!=null){if(!(n!=="submit"&&n!=="reset"||t!=null))return;u=u!=null?""+lt(u):"",t=t!=null?""+lt(t):u,i||t===l.value||(l.value=t),l.defaultValue=t}a=a??e,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=i?l.checked:!!a,l.defaultChecked=!!a,c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(l.name=c)}function Wn(l,t,u){t==="number"&&Ye(l.ownerDocument)===l||l.defaultValue===""+u||(l.defaultValue=""+u)}function wu(l,t,u,a){if(l=l.options,t){t={};for(var e=0;e=Ya),pf=" ",Yf=!1;function Bf(l,t){switch(l){case"keyup":return Wv.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gf(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Fu=!1;function kv(l,t){switch(l){case"compositionend":return Gf(t);case"keypress":return t.which!==32?null:(Yf=!0,pf);case"textInput":return l=t.data,l===pf&&Yf?null:l;default:return null}}function Fv(l,t){if(Fu)return l==="compositionend"||!nc&&Bf(l,t)?(l=Mf(),Ge=lc=It=null,Fu=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:u,offset:t-l};l=a}l:{for(;u;){if(u.nextSibling){u=u.nextSibling;break l}u=u.parentNode}u=void 0}u=Lf(u)}}function Jf(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?Jf(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function wf(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=Ye(l.document);t instanceof l.HTMLIFrameElement;){try{var u=typeof t.contentWindow.location.href=="string"}catch{u=!1}if(u)l=t.contentWindow;else break;t=Ye(l.document)}return t}function fc(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}function nd(l,t){var u=wf(t);t=l.focusedElem;var a=l.selectionRange;if(u!==t&&t&&t.ownerDocument&&Jf(t.ownerDocument.documentElement,t)){if(a!==null&&fc(t)){if(l=a.start,u=a.end,u===void 0&&(u=l),"selectionStart"in t)t.selectionStart=l,t.selectionEnd=Math.min(u,t.value.length);else if(u=(l=t.ownerDocument||document)&&l.defaultView||window,u.getSelection){u=u.getSelection();var e=t.textContent.length,n=Math.min(a.start,e);a=a.end===void 0?n:Math.min(a.end,e),!u.extend&&n>a&&(e=a,a=n,n=e),e=Kf(t,n);var c=Kf(t,a);e&&c&&(u.rangeCount!==1||u.anchorNode!==e.node||u.anchorOffset!==e.offset||u.focusNode!==c.node||u.focusOffset!==c.offset)&&(l=l.createRange(),l.setStart(e.node,e.offset),u.removeAllRanges(),n>a?(u.addRange(l),u.extend(c.node,c.offset)):(l.setEnd(c.node,c.offset),u.addRange(l)))}}for(l=[],u=t;u=u.parentNode;)u.nodeType===1&&l.push({element:u,left:u.scrollLeft,top:u.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,Pu=null,sc=null,ja=null,vc=!1;function Wf(l,t,u){var a=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;vc||Pu==null||Pu!==Ye(a)||(a=Pu,"selectionStart"in a&&fc(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),ja&&Xa(ja,a)||(ja=a,a=_n(sc,"onSelect"),0>=c,e-=c,Nt=1<<32-Jl(t)+e|u<H?(Ml=U,U=null):Ml=U.sibling;var W=m(y,U,h[H],b);if(W===null){U===null&&(U=Ml);break}l&&U&&W.alternate===null&&t(y,U),v=n(W,v,H),Z===null?O=W:Z.sibling=W,Z=W,U=Ml}if(H===h.length)return u(y,U),w&&Mu(y,H),O;if(U===null){for(;HH?(Ml=U,U=null):Ml=U.sibling;var bu=m(y,U,W.value,b);if(bu===null){U===null&&(U=Ml);break}l&&U&&bu.alternate===null&&t(y,U),v=n(bu,v,H),Z===null?O=bu:Z.sibling=bu,Z=bu,U=Ml}if(W.done)return u(y,U),w&&Mu(y,H),O;if(U===null){for(;!W.done;H++,W=h.next())W=E(y,W.value,b),W!==null&&(v=n(W,v,H),Z===null?O=W:Z.sibling=W,Z=W);return w&&Mu(y,H),O}for(U=a(U);!W.done;H++,W=h.next())W=S(U,y,H,W.value,b),W!==null&&(l&&W.alternate!==null&&U.delete(W.key===null?H:W.key),v=n(W,v,H),Z===null?O=W:Z.sibling=W,Z=W);return l&&U.forEach(function(zy){return t(y,zy)}),w&&Mu(y,H),O}function ml(y,v,h,b){if(typeof h=="object"&&h!==null&&h.type===M&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case ul:l:{for(var O=h.key;v!==null;){if(v.key===O){if(O=h.type,O===M){if(v.tag===7){u(y,v.sibling),b=e(v,h.props.children),b.return=y,y=b;break l}}else if(v.elementType===O||typeof O=="object"&&O!==null&&O.$$typeof===Yl&&d0(O)===v.type){u(y,v.sibling),b=e(v,h.props),Ka(b,h),b.return=y,y=b;break l}u(y,v);break}else t(y,v);v=v.sibling}h.type===M?(b=ju(h.props.children,y.mode,b,h.key),b.return=y,y=b):(b=hn(h.type,h.key,h.props,null,y.mode,b),Ka(b,h),b.return=y,y=b)}return c(y);case il:l:{for(O=h.key;v!==null;){if(v.key===O)if(v.tag===4&&v.stateNode.containerInfo===h.containerInfo&&v.stateNode.implementation===h.implementation){u(y,v.sibling),b=e(v,h.children||[]),b.return=y,y=b;break l}else{u(y,v);break}else t(y,v);v=v.sibling}b=yi(h,y.mode,b),b.return=y,y=b}return c(y);case Yl:return O=h._init,h=O(h._payload),ml(y,v,h,b)}if(R(h))return D(y,v,h,b);if(Ql(h)){if(O=Ql(h),typeof O!="function")throw Error(o(150));return h=O.call(h),G(y,v,h,b)}if(typeof h.then=="function")return ml(y,v,We(h),b);if(h.$$typeof===Sl)return ml(y,v,dn(y,h),b);$e(y,h)}return typeof h=="string"&&h!==""||typeof h=="number"||typeof h=="bigint"?(h=""+h,v!==null&&v.tag===6?(u(y,v.sibling),b=e(v,h),b.return=y,y=b):(u(y,v),b=di(h,y.mode,b),b.return=y,y=b),c(y)):u(y,v)}return function(y,v,h,b){try{La=0;var O=ml(y,v,h,b);return ea=null,O}catch(U){if(U===Va)throw U;var Z=st(29,U,null,y.mode);return Z.lanes=b,Z.return=y,Z}finally{}}}var Ru=y0(!0),o0=y0(!1),na=P(null),ke=P(0);function h0(l,t){l=Lt,sl(ke,l),sl(na,t),Lt=l|t.baseLanes}function rc(){sl(ke,Lt),sl(na,na.current)}function bc(){Lt=ke.current,rl(na),rl(ke)}var ct=P(null),zt=null;function tu(l){var t=l.alternate;sl(Al,Al.current&1),sl(ct,l),zt===null&&(t===null||na.current!==null||t.memoizedState!==null)&&(zt=l)}function m0(l){if(l.tag===22){if(sl(Al,Al.current),sl(ct,l),zt===null){var t=l.alternate;t!==null&&t.memoizedState!==null&&(zt=l)}}else uu()}function uu(){sl(Al,Al.current),sl(ct,ct.current)}function Yt(l){rl(ct),zt===l&&(zt=null),rl(Al)}var Al=P(0);function Fe(l){for(var t=l;t!==null;){if(t.tag===13){var u=t.memoizedState;if(u!==null&&(u=u.dehydrated,u===null||u.data==="$?"||u.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===l)break;for(;t.sibling===null;){if(t.return===null||t.return===l)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var vd=typeof AbortController<"u"?AbortController:function(){var l=[],t=this.signal={aborted:!1,addEventListener:function(u,a){l.push(a)}};this.abort=function(){t.aborted=!0,l.forEach(function(u){return u()})}},dd=g.unstable_scheduleCallback,yd=g.unstable_NormalPriority,zl={$$typeof:Sl,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ec(){return{controller:new vd,data:new Map,refCount:0}}function Ja(l){l.refCount--,l.refCount===0&&dd(yd,function(){l.controller.abort()})}var wa=null,Tc=0,ca=0,ia=null;function od(l,t){if(wa===null){var u=wa=[];Tc=0,ca=Mi(),ia={status:"pending",value:void 0,then:function(a){u.push(a)}}}return Tc++,t.then(g0,g0),t}function g0(){if(--Tc===0&&wa!==null){ia!==null&&(ia.status="fulfilled");var l=wa;wa=null,ca=0,ia=null;for(var t=0;tn?n:8;var c=N.T,i={};N.T=i,jc(l,!1,t,u);try{var f=e(),d=N.S;if(d!==null&&d(i,f),f!==null&&typeof f=="object"&&typeof f.then=="function"){var r=hd(f,a);ka(l,t,r,Fl(l))}else ka(l,t,a,Fl(l))}catch(E){ka(l,t,{then:function(){},status:"rejected",reason:E},Fl())}finally{_.p=n,N.T=c}}function bd(){}function Gc(l,t,u,a){if(l.tag!==5)throw Error(o(476));var e=w0(l).queue;J0(l,e,t,K,u===null?bd:function(){return W0(l),u(a)})}function w0(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:K,baseState:K,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Bt,lastRenderedState:K},next:null};var u={};return t.next={memoizedState:u,baseState:u,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Bt,lastRenderedState:u},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function W0(l){var t=w0(l).next.queue;ka(l,t,{},Fl())}function Xc(){return Nl(ge)}function $0(){return El().memoizedState}function k0(){return El().memoizedState}function Ed(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var u=Fl();l=iu(u);var a=fu(t,l,u);a!==null&&(Xl(a,t,u),Ia(a,t,u)),t={cache:Ec()},l.payload=t;return}t=t.return}}function Td(l,t,u){var a=Fl();u={lane:a,revertLane:0,action:u,hasEagerState:!1,eagerState:null,next:null},cn(l)?P0(t,u):(u=oc(l,t,u,a),u!==null&&(Xl(u,l,a),I0(u,t,a)))}function F0(l,t,u){var a=Fl();ka(l,t,u,a)}function ka(l,t,u,a){var e={lane:a,revertLane:0,action:u,hasEagerState:!1,eagerState:null,next:null};if(cn(l))P0(t,e);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var c=t.lastRenderedState,i=n(c,u);if(e.hasEagerState=!0,e.eagerState=i,wl(i,c))return xe(l,t,e,0),el===null&&Ve(),!1}catch{}finally{}if(u=oc(l,t,e,a),u!==null)return Xl(u,l,a),I0(u,t,a),!0}return!1}function jc(l,t,u,a){if(a={lane:2,revertLane:Mi(),action:a,hasEagerState:!1,eagerState:null,next:null},cn(l)){if(t)throw Error(o(479))}else t=oc(l,u,a,2),t!==null&&Xl(t,l,2)}function cn(l){var t=l.alternate;return l===C||t!==null&&t===C}function P0(l,t){fa=Ie=!0;var u=l.pending;u===null?t.next=t:(t.next=u.next,u.next=t),l.pending=t}function I0(l,t,u){if(u&4194176){var a=t.lanes;a&=l.pendingLanes,u|=a,t.lanes=u,vf(l,u)}}var _t={readContext:Nl,use:un,useCallback:gl,useContext:gl,useEffect:gl,useImperativeHandle:gl,useLayoutEffect:gl,useInsertionEffect:gl,useMemo:gl,useReducer:gl,useRef:gl,useState:gl,useDebugValue:gl,useDeferredValue:gl,useTransition:gl,useSyncExternalStore:gl,useId:gl};_t.useCacheRefresh=gl,_t.useMemoCache=gl,_t.useHostTransitionStatus=gl,_t.useFormState=gl,_t.useActionState=gl,_t.useOptimistic=gl;var Nu={readContext:Nl,use:un,useCallback:function(l,t){return xl().memoizedState=[l,t===void 0?null:t],l},useContext:Nl,useEffect:j0,useImperativeHandle:function(l,t,u){u=u!=null?u.concat([l]):null,en(4194308,4,Z0.bind(null,t,l),u)},useLayoutEffect:function(l,t){return en(4194308,4,l,t)},useInsertionEffect:function(l,t){en(4,2,l,t)},useMemo:function(l,t){var u=xl();t=t===void 0?null:t;var a=l();if(qu){Ft(!0);try{l()}finally{Ft(!1)}}return u.memoizedState=[a,t],a},useReducer:function(l,t,u){var a=xl();if(u!==void 0){var e=u(t);if(qu){Ft(!0);try{u(t)}finally{Ft(!1)}}}else e=t;return a.memoizedState=a.baseState=e,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:e},a.queue=l,l=l.dispatch=Td.bind(null,C,l),[a.memoizedState,l]},useRef:function(l){var t=xl();return l={current:l},t.memoizedState=l},useState:function(l){l=qc(l);var t=l.queue,u=F0.bind(null,C,t);return t.dispatch=u,[l.memoizedState,u]},useDebugValue:Yc,useDeferredValue:function(l,t){var u=xl();return Bc(u,l,t)},useTransition:function(){var l=qc(!1);return l=J0.bind(null,C,l.queue,!0,!1),xl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,u){var a=C,e=xl();if(w){if(u===void 0)throw Error(o(407));u=u()}else{if(u=t(),el===null)throw Error(o(349));J&60||A0(a,t,u)}e.memoizedState=u;var n={value:u,getSnapshot:t};return e.queue=n,j0(_0.bind(null,a,n,l),[l]),a.flags|=2048,va(9,z0.bind(null,a,n,u,t),{destroy:void 0},null),u},useId:function(){var l=xl(),t=el.identifierPrefix;if(w){var u=pt,a=Nt;u=(a&~(1<<32-Jl(a)-1)).toString(32)+u,t=":"+t+"R"+u,u=ln++,0 title"))),Hl(n,a,u),n[ql]=l,_l(n),a=n;break l;case"link":var c=Ds("link","href",e).get(a+(u.href||""));if(c){for(var i=0;i<\/script>",l=l.removeChild(l.firstChild);break;case"select":l=typeof a.is=="string"?e.createElement("select",{is:a.is}):e.createElement("select"),a.multiple?l.multiple=!0:a.size&&(l.size=a.size);break;default:l=typeof a.is=="string"?e.createElement(u,{is:a.is}):e.createElement(u)}}l[ql]=t,l[Zl]=a;l:for(e=t.child;e!==null;){if(e.tag===5||e.tag===6)l.appendChild(e.stateNode);else if(e.tag!==4&&e.tag!==27&&e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break l;for(;e.sibling===null;){if(e.return===null||e.return===t)break l;e=e.return}e.sibling.return=e.return,e=e.sibling}t.stateNode=l;l:switch(Hl(l,u,a),u){case"button":case"input":case"select":case"textarea":l=!!a.autoFocus;break l;case"img":l=!0;break l;default:l=!1}l&&Vt(t)}}return vl(t),t.flags&=-16777217,null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==a&&Vt(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(o(166));if(l=kt.current,Qa(t)){if(l=t.stateNode,u=t.memoizedProps,a=null,e=Gl,e!==null)switch(e.tag){case 27:case 5:a=e.memoizedProps}l[ql]=t,l=!!(l.nodeValue===u||a!==null&&a.suppressHydrationWarning===!0||hs(l.nodeValue,u)),l||Uu(t)}else l=Dn(l).createTextNode(a),l[ql]=t,t.stateNode=l}return vl(t),null;case 13:if(a=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(e=Qa(t),a!==null&&a.dehydrated!==null){if(l===null){if(!e)throw Error(o(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(317));e[ql]=t}else Ca(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;vl(t),e=!1}else ht!==null&&(Ei(ht),ht=null),e=!0;if(!e)return t.flags&256?(Yt(t),t):(Yt(t),null)}if(Yt(t),t.flags&128)return t.lanes=u,t;if(u=a!==null,l=l!==null&&l.memoizedState!==null,u){a=t.child,e=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(e=a.alternate.memoizedState.cachePool.pool);var n=null;a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(n=a.memoizedState.cachePool.pool),n!==e&&(a.flags|=2048)}return u!==l&&u&&(t.child.flags|=8192),mn(t,t.updateQueue),vl(t),null;case 4:return Vu(),l===null&&qi(t.stateNode.containerInfo),vl(t),null;case 10:return jt(t.type),vl(t),null;case 19:if(rl(Al),e=t.memoizedState,e===null)return vl(t),null;if(a=(t.flags&128)!==0,n=e.rendering,n===null)if(a)ce(e,!1);else{if(hl!==0||l!==null&&l.flags&128)for(l=t.child;l!==null;){if(n=Fe(l),n!==null){for(t.flags|=128,ce(e,!1),l=n.updateQueue,t.updateQueue=l,mn(t,l),t.subtreeFlags=0,l=u,u=t.child;u!==null;)V1(u,l),u=u.sibling;return sl(Al,Al.current&1|2),t.child}l=l.sibling}e.tail!==null&&Tt()>gn&&(t.flags|=128,a=!0,ce(e,!1),t.lanes=4194304)}else{if(!a)if(l=Fe(n),l!==null){if(t.flags|=128,a=!0,l=l.updateQueue,t.updateQueue=l,mn(t,l),ce(e,!0),e.tail===null&&e.tailMode==="hidden"&&!n.alternate&&!w)return vl(t),null}else 2*Tt()-e.renderingStartTime>gn&&u!==536870912&&(t.flags|=128,a=!0,ce(e,!1),t.lanes=4194304);e.isBackwards?(n.sibling=t.child,t.child=n):(l=e.last,l!==null?l.sibling=n:t.child=n,e.last=n)}return e.tail!==null?(t=e.tail,e.rendering=t,e.tail=t.sibling,e.renderingStartTime=Tt(),t.sibling=null,l=Al.current,sl(Al,a?l&1|2:l&1),t):(vl(t),null);case 22:case 23:return Yt(t),bc(),a=t.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?u&536870912&&!(t.flags&128)&&(vl(t),t.subtreeFlags&6&&(t.flags|=8192)):vl(t),u=t.updateQueue,u!==null&&mn(t,u.retryQueue),u=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(u=l.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==u&&(t.flags|=2048),l!==null&&rl(Hu),null;case 24:return u=null,l!==null&&(u=l.memoizedState.cache),t.memoizedState.cache!==u&&(t.flags|=2048),jt(zl),vl(t),null;case 25:return null}throw Error(o(156,t.tag))}function Ud(l,t){switch(mc(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return jt(zl),Vu(),l=t.flags,l&65536&&!(l&128)?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return De(t),null;case 13:if(Yt(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Ca()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return rl(Al),null;case 4:return Vu(),null;case 10:return jt(t.type),null;case 22:case 23:return Yt(t),bc(),l!==null&&rl(Hu),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return jt(zl),null;case 25:return null;default:return null}}function K1(l,t){switch(mc(t),t.tag){case 3:jt(zl),Vu();break;case 26:case 27:case 5:De(t);break;case 4:Vu();break;case 13:Yt(t);break;case 19:rl(Al);break;case 10:jt(t.type);break;case 22:case 23:Yt(t),bc(),l!==null&&rl(Hu);break;case 24:jt(zl)}}var Rd={getCacheForType:function(l){var t=Nl(zl),u=t.data.get(l);return u===void 0&&(u=l(),t.data.set(l,u)),u}},Hd=typeof WeakMap=="function"?WeakMap:Map,dl=0,el=null,x=null,J=0,nl=0,kl=null,xt=!1,ha=!1,oi=!1,Lt=0,hl=0,ou=0,Qu=0,hi=0,vt=0,ma=0,ie=null,Ot=null,mi=!1,gi=0,gn=1/0,Sn=null,hu=null,rn=!1,Cu=null,fe=0,Si=0,ri=null,se=0,bi=null;function Fl(){if(dl&2&&J!==0)return J&-J;if(N.T!==null){var l=ca;return l!==0?l:Mi()}return yf()}function J1(){vt===0&&(vt=!(J&536870912)||w?cf():536870912);var l=ct.current;return l!==null&&(l.flags|=32),vt}function Xl(l,t,u){(l===el&&nl===2||l.cancelPendingCommit!==null)&&(ga(l,0),Kt(l,J,vt,!1)),Ma(l,u),(!(dl&2)||l!==el)&&(l===el&&(!(dl&2)&&(Qu|=u),hl===4&&Kt(l,J,vt,!1)),Dt(l))}function w1(l,t,u){if(dl&6)throw Error(o(327));var a=!u&&(t&60)===0&&(t&l.expiredLanes)===0||Da(l,t),e=a?pd(l,t):zi(l,t,!0),n=a;do{if(e===0){ha&&!a&&Kt(l,t,0,!1);break}else if(e===6)Kt(l,t,0,!xt);else{if(u=l.current.alternate,n&&!qd(u)){e=zi(l,t,!1),n=!1;continue}if(e===2){if(n=t,l.errorRecoveryDisabledLanes&n)var c=0;else c=l.pendingLanes&-536870913,c=c!==0?c:c&536870912?536870912:0;if(c!==0){t=c;l:{var i=l;e=ie;var f=i.current.memoizedState.isDehydrated;if(f&&(ga(i,c).flags|=256),c=zi(i,c,!1),c!==2){if(oi&&!f){i.errorRecoveryDisabledLanes|=n,Qu|=n,e=4;break l}n=Ot,Ot=e,n!==null&&Ei(n)}e=c}if(n=!1,e!==2)continue}}if(e===1){ga(l,0),Kt(l,t,0,!0);break}l:{switch(a=l,e){case 0:case 1:throw Error(o(345));case 4:if((t&4194176)===t){Kt(a,t,vt,!xt);break l}break;case 2:Ot=null;break;case 3:case 5:break;default:throw Error(o(329))}if(a.finishedWork=u,a.finishedLanes=t,(t&62914560)===t&&(n=gi+300-Tt(),10u?32:u,N.T=null,Cu===null)var n=!1;else{u=ri,ri=null;var c=Cu,i=fe;if(Cu=null,fe=0,dl&6)throw Error(o(331));var f=dl;if(dl|=4,C1(c.current),X1(c,c.current,i,u),dl=f,ve(0,!1),Kl&&typeof Kl.onPostCommitFiberRoot=="function")try{Kl.onPostCommitFiberRoot(Oa,c)}catch{}n=!0}return n}finally{_.p=e,N.T=a,us(l,t)}}return!1}function as(l,t,u){t=at(u,t),t=Zc(l.stateNode,t,2),l=fu(l,t,2),l!==null&&(Ma(l,2),Dt(l))}function tl(l,t,u){if(l.tag===3)as(l,l,u);else for(;t!==null;){if(t.tag===3){as(t,l,u);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(hu===null||!hu.has(a))){l=at(u,l),u=c1(2),a=fu(t,u,2),a!==null&&(i1(u,a,t,l),Ma(a,2),Dt(a));break}}t=t.return}}function _i(l,t,u){var a=l.pingCache;if(a===null){a=l.pingCache=new Hd;var e=new Set;a.set(t,e)}else e=a.get(t),e===void 0&&(e=new Set,a.set(t,e));e.has(u)||(oi=!0,e.add(u),l=Gd.bind(null,l,t,u),t.then(l,l))}function Gd(l,t,u){var a=l.pingCache;a!==null&&a.delete(t),l.pingedLanes|=l.suspendedLanes&u,l.warmLanes&=~u,el===l&&(J&u)===u&&(hl===4||hl===3&&(J&62914560)===J&&300>Tt()-gi?!(dl&2)&&ga(l,0):hi|=u,ma===J&&(ma=0)),Dt(l)}function es(l,t){t===0&&(t=ff()),l=lu(l,t),l!==null&&(Ma(l,t),Dt(l))}function Xd(l){var t=l.memoizedState,u=0;t!==null&&(u=t.retryLane),es(l,u)}function jd(l,t){var u=0;switch(l.tag){case 13:var a=l.stateNode,e=l.memoizedState;e!==null&&(u=e.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(o(314))}a!==null&&a.delete(t),es(l,u)}function Qd(l,t){return Vn(l,t)}var Tn=null,ba=null,Oi=!1,An=!1,Di=!1,Zu=0;function Dt(l){l!==ba&&l.next===null&&(ba===null?Tn=ba=l:ba=ba.next=l),An=!0,Oi||(Oi=!0,Zd(Cd))}function ve(l,t){if(!Di&&An){Di=!0;do for(var u=!1,a=Tn;a!==null;){if(l!==0){var e=a.pendingLanes;if(e===0)var n=0;else{var c=a.suspendedLanes,i=a.pingedLanes;n=(1<<31-Jl(42|l)+1)-1,n&=e&~(c&~i),n=n&201326677?n&201326677|1:n?n|2:0}n!==0&&(u=!0,is(a,n))}else n=J,n=He(a,a===el?n:0),!(n&3)||Da(a,n)||(u=!0,is(a,n));a=a.next}while(u);Di=!1}}function Cd(){An=Oi=!1;var l=0;Zu!==0&&($d()&&(l=Zu),Zu=0);for(var t=Tt(),u=null,a=Tn;a!==null;){var e=a.next,n=ns(a,t);n===0?(a.next=null,u===null?Tn=e:u.next=e,e===null&&(ba=u)):(u=a,(l!==0||n&3)&&(An=!0)),a=e}ve(l)}function ns(l,t){for(var u=l.suspendedLanes,a=l.pingedLanes,e=l.expirationTimes,n=l.pendingLanes&-62914561;0"u"?null:document;function As(l,t,u){var a=Ta;if(a&&typeof t=="string"&&t){var e=tt(t);e='link[rel="'+l+'"][href="'+e+'"]',typeof u=="string"&&(e+='[crossorigin="'+u+'"]'),Ts.has(e)||(Ts.add(e),l={rel:l,crossOrigin:u,href:t},a.querySelector(e)===null&&(t=a.createElement("link"),Hl(t,"link",l),_l(t),a.head.appendChild(t)))}}function ay(l){Jt.D(l),As("dns-prefetch",l,null)}function ey(l,t){Jt.C(l,t),As("preconnect",l,t)}function ny(l,t,u){Jt.L(l,t,u);var a=Ta;if(a&&l&&t){var e='link[rel="preload"][as="'+tt(t)+'"]';t==="image"&&u&&u.imageSrcSet?(e+='[imagesrcset="'+tt(u.imageSrcSet)+'"]',typeof u.imageSizes=="string"&&(e+='[imagesizes="'+tt(u.imageSizes)+'"]')):e+='[href="'+tt(l)+'"]';var n=e;switch(t){case"style":n=Aa(l);break;case"script":n=za(l)}dt.has(n)||(l=F({rel:"preload",href:t==="image"&&u&&u.imageSrcSet?void 0:l,as:t},u),dt.set(n,l),a.querySelector(e)!==null||t==="style"&&a.querySelector(oe(n))||t==="script"&&a.querySelector(he(n))||(t=a.createElement("link"),Hl(t,"link",l),_l(t),a.head.appendChild(t)))}}function cy(l,t){Jt.m(l,t);var u=Ta;if(u&&l){var a=t&&typeof t.as=="string"?t.as:"script",e='link[rel="modulepreload"][as="'+tt(a)+'"][href="'+tt(l)+'"]',n=e;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=za(l)}if(!dt.has(n)&&(l=F({rel:"modulepreload",href:l},t),dt.set(n,l),u.querySelector(e)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(u.querySelector(he(n)))return}a=u.createElement("link"),Hl(a,"link",l),_l(a),u.head.appendChild(a)}}}function iy(l,t,u){Jt.S(l,t,u);var a=Ta;if(a&&l){var e=Ku(a).hoistableStyles,n=Aa(l);t=t||"default";var c=e.get(n);if(!c){var i={loading:0,preload:null};if(c=a.querySelector(oe(n)))i.loading=5;else{l=F({rel:"stylesheet",href:l,"data-precedence":t},u),(u=dt.get(n))&&Ci(l,u);var f=c=a.createElement("link");_l(f),Hl(f,"link",l),f._p=new Promise(function(d,r){f.onload=d,f.onerror=r}),f.addEventListener("load",function(){i.loading|=1}),f.addEventListener("error",function(){i.loading|=2}),i.loading|=4,Un(c,t,a)}c={type:"stylesheet",instance:c,count:1,state:i},e.set(n,c)}}}function fy(l,t){Jt.X(l,t);var u=Ta;if(u&&l){var a=Ku(u).hoistableScripts,e=za(l),n=a.get(e);n||(n=u.querySelector(he(e)),n||(l=F({src:l,async:!0},t),(t=dt.get(e))&&Zi(l,t),n=u.createElement("script"),_l(n),Hl(n,"link",l),u.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(e,n))}}function sy(l,t){Jt.M(l,t);var u=Ta;if(u&&l){var a=Ku(u).hoistableScripts,e=za(l),n=a.get(e);n||(n=u.querySelector(he(e)),n||(l=F({src:l,async:!0,type:"module"},t),(t=dt.get(e))&&Zi(l,t),n=u.createElement("script"),_l(n),Hl(n,"link",l),u.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(e,n))}}function zs(l,t,u,a){var e=(e=kt.current)?Mn(e):null;if(!e)throw Error(o(446));switch(l){case"meta":case"title":return null;case"style":return typeof u.precedence=="string"&&typeof u.href=="string"?(t=Aa(u.href),u=Ku(e).hoistableStyles,a=u.get(t),a||(a={type:"style",instance:null,count:0,state:null},u.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(u.rel==="stylesheet"&&typeof u.href=="string"&&typeof u.precedence=="string"){l=Aa(u.href);var n=Ku(e).hoistableStyles,c=n.get(l);if(c||(e=e.ownerDocument||e,c={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,c),(n=e.querySelector(oe(l)))&&!n._p&&(c.instance=n,c.state.loading=5),dt.has(l)||(u={rel:"preload",as:"style",href:u.href,crossOrigin:u.crossOrigin,integrity:u.integrity,media:u.media,hrefLang:u.hrefLang,referrerPolicy:u.referrerPolicy},dt.set(l,u),n||vy(e,l,u,c.state))),t&&a===null)throw Error(o(528,""));return c}if(t&&a!==null)throw Error(o(529,""));return null;case"script":return t=u.async,u=u.src,typeof u=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=za(u),u=Ku(e).hoistableScripts,a=u.get(t),a||(a={type:"script",instance:null,count:0,state:null},u.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,l))}}function Aa(l){return'href="'+tt(l)+'"'}function oe(l){return'link[rel="stylesheet"]['+l+"]"}function _s(l){return F({},l,{"data-precedence":l.precedence,precedence:null})}function vy(l,t,u,a){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=l.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Hl(t,"link",u),_l(t),l.head.appendChild(t))}function za(l){return'[src="'+tt(l)+'"]'}function he(l){return"script[async]"+l}function Os(l,t,u){if(t.count++,t.instance===null)switch(t.type){case"style":var a=l.querySelector('style[data-href~="'+tt(u.href)+'"]');if(a)return t.instance=a,_l(a),a;var e=F({},u,{"data-href":u.href,"data-precedence":u.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement("style"),_l(a),Hl(a,"style",e),Un(a,u.precedence,l),t.instance=a;case"stylesheet":e=Aa(u.href);var n=l.querySelector(oe(e));if(n)return t.state.loading|=4,t.instance=n,_l(n),n;a=_s(u),(e=dt.get(e))&&Ci(a,e),n=(l.ownerDocument||l).createElement("link"),_l(n);var c=n;return c._p=new Promise(function(i,f){c.onload=i,c.onerror=f}),Hl(n,"link",a),t.state.loading|=4,Un(n,u.precedence,l),t.instance=n;case"script":return n=za(u.src),(e=l.querySelector(he(n)))?(t.instance=e,_l(e),e):(a=u,(e=dt.get(n))&&(a=F({},u),Zi(a,e)),l=l.ownerDocument||l,e=l.createElement("script"),_l(e),Hl(e,"link",a),l.head.appendChild(e),t.instance=e);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&!(t.state.loading&4)&&(a=t.instance,t.state.loading|=4,Un(a,u.precedence,l));return t.instance}function Un(l,t,u){for(var a=u.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),e=a.length?a[a.length-1]:null,n=e,c=0;c title"):null)}function dy(l,t,u){if(u===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return l=t.disabled,typeof t.precedence=="string"&&l==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Us(l){return!(l.type==="stylesheet"&&!(l.state.loading&3))}var me=null;function yy(){}function oy(l,t,u){if(me===null)throw Error(o(475));var a=me;if(t.type==="stylesheet"&&(typeof u.media!="string"||matchMedia(u.media).matches!==!1)&&!(t.state.loading&4)){if(t.instance===null){var e=Aa(u.href),n=l.querySelector(oe(e));if(n){l=n._p,l!==null&&typeof l=="object"&&typeof l.then=="function"&&(a.count++,a=Hn.bind(a),l.then(a,a)),t.state.loading|=4,t.instance=n,_l(n);return}n=l.ownerDocument||l,u=_s(u),(e=dt.get(e))&&Ci(u,e),n=n.createElement("link"),_l(n);var c=n;c._p=new Promise(function(i,f){c.onload=i,c.onerror=f}),Hl(n,"link",u),t.instance=n}a.stylesheets===null&&(a.stylesheets=new Map),a.stylesheets.set(t,l),(l=t.state.preload)&&!(t.state.loading&3)&&(a.count++,t=Hn.bind(a),l.addEventListener("load",t),l.addEventListener("error",t))}}function hy(){if(me===null)throw Error(o(475));var l=me;return l.stylesheets&&l.count===0&&Vi(l,l.stylesheets),0"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(g)}catch(B){console.error(B)}}return g(),ki.exports=qy(),ki.exports}var py=Ny();const Ws=lv(py);function Yy(g){return g instanceof Function||typeof g=="function"}const By=["Head","bodyAttributes","htmlAttributes"];function Gy(g,B){return g.includes(B)}function $s(g,B){var yl;const q=(yl=B._configFromHook)==null?void 0:yl[g],o=B.config[g],V=ul=>Yy(ul)?ul(B):ul;return Gy(By,g)?[...(o??[]).map(V),...q??[]]:q!==void 0?q:V(o)}function Xy(g,B){const q=globalThis[ks]=globalThis[ks]||{};return q[g]=q[g]||B}const ks="_vike_react",tv=Xy("PageContextProvider.ts",{reactContext:St.createContext(void 0)});function jy({pageContext:g,children:B}){const{reactContext:q}=tv;return St.createElement(q.Provider,{value:g},B)}function Qy(){const{reactContext:g}=tv;return Qn.useContext(g)}function Cy(g){const{Page:B,config:{Loading:q}}=g;let o=B?St.createElement(B,null):null;const V=il=>q!=null&&q.layout?St.createElement(Qn.Suspense,{fallback:St.createElement(q.layout,null)},o):il;o=V(o),[...g.config.Layout||[],...g.config.Wrapper||[]].forEach(il=>{o=St.createElement(il,null,o),o=V(o)}),o=St.createElement(jy,{pageContext:g},o);let yl,ul=new Promise(il=>yl=il);return o=St.createElement(Zy,{renderPromiseResolve:yl},o),g.config.reactStrictMode!==!1&&(o=St.createElement(St.StrictMode,null,o)),{page:o,renderPromise:ul}}function Zy({children:g,renderPromiseResolve:B}){return Qn.useEffect(B),g}async function Fs(g,B){if(!g)return[];const q=g.map(V=>typeof V=="function"?(_y(B),V(B)):V);return await Promise.all(q)}function Vy(g,B){g!==void 0&&(document.title=g||""),B!==void 0&&(document.documentElement.lang=B||"en")}let Ae;const lo=async g=>{g._headAlreadySet=g.isHydration,await Fs(g.config.onBeforeRenderClient,g);const{page:B,renderPromise:q}=Cy(g);g.page=B;const o=(yl,ul)=>{},V=document.getElementById("root");g.isHydration&&V.innerHTML!==""?Ae=Ws.hydrateRoot(V,B,{onUncaughtError:o}):(Ae||(Ae=Ws.createRoot(V,{onUncaughtError:o})),Ae.render(B)),g.root=Ae,await q,g.isHydration||(g._headAlreadySet=!0,xy(g)),await Fs(g.config.onAfterRenderClient,g)};function xy(g){const B=$s("title",g),q=$s("lang",g);Vy(B,q)}var lf={exports:{}},ze={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ps;function Ly(){if(Ps)return ze;Ps=1;var g=Symbol.for("react.transitional.element"),B=Symbol.for("react.fragment");function q(o,V,yl){var ul=null;if(yl!==void 0&&(ul=""+yl),V.key!==void 0&&(ul=""+V.key),"key"in V){yl={};for(var il in V)il!=="key"&&(yl[il]=V[il])}else yl=V;return V=yl.ref,{$$typeof:g,type:o,key:ul,ref:V!==void 0?V:null,props:yl}}return ze.Fragment=B,ze.jsx=q,ze.jsxs=q,ze}var Is;function Ky(){return Is||(Is=1,lf.exports=Ly()),lf.exports}var rt=Ky();function tf({href:g,children:B}){const q=Qy(),{urlPathname:o}=q,V=g==="/"?o===g:o.startsWith(g);return rt.jsx("a",{href:g,className:V?"is-active":void 0,children:B})}function to({children:g}){return rt.jsxs("div",{style:{display:"flex",flexDirection:"column",maxWidth:900,margin:"auto"},children:[rt.jsx("h1",{style:{textAlign:"center",margin:"20px 0",padding:"10px"},children:"Website by fretchen"}),rt.jsxs(Jy,{children:[rt.jsx(tf,{href:"/",children:"Welcome"}),rt.jsx(tf,{href:"/blog",children:"Blog"}),rt.jsx(tf,{href:"/amo",children:"AMO"}),""]}),rt.jsx(wy,{children:g})]})}function Jy({children:g}){return rt.jsx("div",{id:"Appbar",style:{padding:"10px 20px",width:"100%",display:"flex",flexDirection:"row",gap:"20px",borderBottom:"2px solid #eee",alignItems:"center"},children:g})}function wy({children:g}){return rt.jsx("div",{id:"page-container",children:rt.jsx("div",{id:"page-content",style:{padding:20,paddingBottom:50,minHeight:"100vh"},children:g})})}const Wy=async()=>{var g;console.log("Page transition end"),(g=document.querySelector("body"))==null||g.classList.remove("page-is-transitioning")},uo=Object.freeze(Object.defineProperty({__proto__:null,onPageTransitionEnd:Wy},Symbol.toStringTag,{value:"Module"})),$y=async()=>{var g;console.log("Page transition start"),(g=document.querySelector("body"))==null||g.classList.add("page-is-transitioning")},ao=Object.freeze(Object.defineProperty({__proto__:null,onPageTransitionStart:$y},Symbol.toStringTag,{value:"Module"}));export{to as L,uo as a,ao as b,tf as c,lv as g,Iy as i,rt as j,lo as o,Qn as r,Qy as u}; diff --git a/assets/chunks/chunk-ghC-DV5X.js b/assets/chunks/chunk-ghC-DV5X.js new file mode 100644 index 0000000..e1703c9 --- /dev/null +++ b/assets/chunks/chunk-ghC-DV5X.js @@ -0,0 +1,295 @@ +import{g as os,j as At,r as di}from"./chunk-DjXTsExv.js";/* empty css */import{_ as dc}from"./chunk-D7HrI6pR.js";function fi(e){const t=[],r=String(e||"");let n=r.indexOf(","),a=0,i=!1;for(;!i;){n===-1&&(n=r.length,i=!0);const u=r.slice(a,n).trim();(u||!i)&&t.push(u),a=n+1,n=r.indexOf(",",a)}return t}function cs(e,t){const r={};return(e[e.length-1]===""?[...e,""]:e).join((r.padRight?" ":"")+","+(r.padLeft===!1?"":" ")).trim()}const fc=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,mc=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,pc={};function mi(e,t){return(pc.jsx?mc:fc).test(e)}const gc=/[ \t\n\f\r]/g;function bc(e){return typeof e=="object"?e.type==="text"?pi(e.value):!1:pi(e)}function pi(e){return e.replace(gc,"")===""}class cn{constructor(t,r,n){this.property=t,this.normal=r,n&&(this.space=n)}}cn.prototype.property={};cn.prototype.normal={};cn.prototype.space=null;function hs(e,t){const r={},n={};let a=-1;for(;++a4&&r.slice(0,4)==="data"&&vc.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(bi,kc);n="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!bi.test(i)){let u=i.replace(Ac,Sc);u.charAt(0)!=="-"&&(u="-"+u),t="data"+u}}a=va}return new a(n,t)}function Sc(e){return"-"+e.toLowerCase()}function kc(e){return e.charAt(1).toUpperCase()}const wc={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},hn=hs([ms,fs,bs,Es,yc],"html"),rr=hs([ms,fs,bs,Es,xc],"svg");function Ei(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function Ts(e){return e.join(" ").trim()}var qr={},b0,Ti;function Cc(){if(Ti)return b0;Ti=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,r=/^\s*/,n=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,a=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,s=/^\s+|\s+$/g,l=` +`,c="/",f="*",d="",b="comment",p="declaration";b0=function(A,D){if(typeof A!="string")throw new TypeError("First argument must be a string");if(!A)return[];D=D||{};var C=1,I=1;function R(re){var K=re.match(t);K&&(C+=K.length);var ae=re.lastIndexOf(l);I=~ae?re.length-ae:I+re.length}function W(){var re={line:C,column:I};return function(K){return K.position=new Y(re),ie(),K}}function Y(re){this.start=re,this.end={line:C,column:I},this.source=D.source}Y.prototype.content=A;function M(re){var K=new Error(D.source+":"+C+":"+I+": "+re);if(K.reason=re,K.filename=D.source,K.line=C,K.column=I,K.source=A,!D.silent)throw K}function Q(re){var K=re.exec(A);if(K){var ae=K[0];return R(ae),A=A.slice(ae.length),K}}function ie(){Q(r)}function J(re){var K;for(re=re||[];K=P();)K!==!1&&re.push(K);return re}function P(){var re=W();if(!(c!=A.charAt(0)||f!=A.charAt(1))){for(var K=2;d!=A.charAt(K)&&(f!=A.charAt(K)||c!=A.charAt(K+1));)++K;if(K+=2,d===A.charAt(K-1))return M("End of comment missing");var ae=A.slice(2,K-2);return I+=2,R(ae),A=A.slice(K),I+=2,re({type:b,comment:ae})}}function Z(){var re=W(),K=Q(n);if(K){if(P(),!Q(a))return M("property missing ':'");var ae=Q(i),Ee=re({type:p,property:y(K[0].replace(e,d)),value:ae?y(ae[0].replace(e,d)):d});return Q(u),Ee}}function $(){var re=[];J(re);for(var K;K=Z();)K!==!1&&(re.push(K),J(re));return re}return ie(),$()};function y(A){return A?A.replace(s,d):d}return b0}var yi;function _c(){if(yi)return qr;yi=1;var e=qr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(qr,"__esModule",{value:!0}),qr.default=r;var t=e(Cc());function r(n,a){var i=null;if(!n||typeof n!="string")return i;var u=(0,t.default)(n),s=typeof a=="function";return u.forEach(function(l){if(l.type==="declaration"){var c=l.property,f=l.value;s?a(c,f,l):f&&(i=i||{},i[c]=f)}}),i}return qr}var Ic=_c();const xi=os(Ic),Nc=xi.default||xi,Jn=ys("end"),It=ys("start");function ys(e){return t;function t(r){const n=r&&r.position&&r.position[e]||{};if(typeof n.line=="number"&&n.line>0&&typeof n.column=="number"&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset=="number"&&n.offset>-1?n.offset:void 0}}}function Dc(e){const t=It(e),r=Jn(e);if(t&&r)return{start:t,end:r}}function Qr(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?vi(e.position):"start"in e||"end"in e?vi(e):"line"in e||"column"in e?J0(e):""}function J0(e){return Ai(e&&e.line)+":"+Ai(e&&e.column)}function vi(e){return J0(e&&e.start)+"-"+J0(e&&e.end)}function Ai(e){return e&&typeof e=="number"?e:1}class qe extends Error{constructor(t,r,n){super(),typeof r=="string"&&(n=r,r=void 0);let a="",i={},u=!1;if(r&&("line"in r&&"column"in r?i={place:r}:"start"in r&&"end"in r?i={place:r}:"type"in r?i={ancestors:[r],place:r.position}:i={...r}),typeof t=="string"?a=t:!i.cause&&t&&(u=!0,a=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof n=="string"){const l=n.indexOf(":");l===-1?i.ruleId=n:(i.source=n.slice(0,l),i.ruleId=n.slice(l+1))}if(!i.place&&i.ancestors&&i.ancestors){const l=i.ancestors[i.ancestors.length-1];l&&(i.place=l.position)}const s=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=s?s.column:void 0,this.fatal=void 0,this.file,this.message=a,this.line=s?s.line:void 0,this.name=Qr(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=u&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual,this.expected,this.note,this.url}}qe.prototype.file="";qe.prototype.name="";qe.prototype.reason="";qe.prototype.message="";qe.prototype.stack="";qe.prototype.column=void 0;qe.prototype.line=void 0;qe.prototype.ancestors=void 0;qe.prototype.cause=void 0;qe.prototype.fatal=void 0;qe.prototype.place=void 0;qe.prototype.ruleId=void 0;qe.prototype.source=void 0;const Aa={}.hasOwnProperty,Oc=new Map,Lc=/[A-Z]/g,Mc=/-([a-z])/g,Rc=new Set(["table","tbody","thead","tfoot","tr"]),Pc=new Set(["td","th"]),xs="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Bc(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const r=t.filePath||void 0;let n;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");n=Gc(r,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");n=Vc(r,t.jsx,t.jsxs)}const a={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:n,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:r,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?rr:hn,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=vs(a,e,void 0);return i&&typeof i!="string"?i:a.create(e,a.Fragment,{children:i||void 0},void 0)}function vs(e,t,r){if(t.type==="element")return Fc(e,t,r);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Hc(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return Uc(e,t,r);if(t.type==="mdxjsEsm")return zc(e,t);if(t.type==="root")return qc(e,t,r);if(t.type==="text")return Yc(e,t)}function Fc(e,t,r){const n=e.schema;let a=n;t.tagName.toLowerCase()==="svg"&&n.space==="html"&&(a=rr,e.schema=a),e.ancestors.push(t);const i=Ss(e,t.tagName,!1),u=Wc(e,t);let s=ka(e,t);return Rc.has(t.tagName)&&(s=s.filter(function(l){return typeof l=="string"?!bc(l):!0})),As(e,u,i,t),Sa(u,s),e.ancestors.pop(),e.schema=n,e.create(t,i,u,r)}function Hc(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}an(e,t.position)}function zc(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);an(e,t.position)}function Uc(e,t,r){const n=e.schema;let a=n;t.name==="svg"&&n.space==="html"&&(a=rr,e.schema=a),e.ancestors.push(t);const i=t.name===null?e.Fragment:Ss(e,t.name,!0),u=Xc(e,t),s=ka(e,t);return As(e,u,i,t),Sa(u,s),e.ancestors.pop(),e.schema=n,e.create(t,i,u,r)}function qc(e,t,r){const n={};return Sa(n,ka(e,t)),e.create(t,e.Fragment,n,r)}function Yc(e,t){return t.value}function As(e,t,r,n){typeof r!="string"&&r!==e.Fragment&&e.passNode&&(t.node=n)}function Sa(e,t){if(t.length>0){const r=t.length>1?t:t[0];r&&(e.children=r)}}function Vc(e,t,r){return n;function n(a,i,u,s){const c=Array.isArray(u.children)?r:t;return s?c(i,u,s):c(i,u)}}function Gc(e,t){return r;function r(n,a,i,u){const s=Array.isArray(i.children),l=It(n);return t(a,i,u,s,{columnNumber:l?l.column-1:void 0,fileName:e,lineNumber:l?l.line:void 0},void 0)}}function Wc(e,t){const r={};let n,a;for(a in t.properties)if(a!=="children"&&Aa.call(t.properties,a)){const i=jc(e,a,t.properties[a]);if(i){const[u,s]=i;e.tableCellAlignToStyle&&u==="align"&&typeof s=="string"&&Pc.has(t.tagName)?n=s:r[u]=s}}if(n){const i=r.style||(r.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=n}return r}function Xc(e,t){const r={};for(const n of t.attributes)if(n.type==="mdxJsxExpressionAttribute")if(n.data&&n.data.estree&&e.evaluater){const i=n.data.estree.body[0];i.type;const u=i.expression;u.type;const s=u.properties[0];s.type,Object.assign(r,e.evaluater.evaluateExpression(s.argument))}else an(e,t.position);else{const a=n.name;let i;if(n.value&&typeof n.value=="object")if(n.value.data&&n.value.data.estree&&e.evaluater){const s=n.value.data.estree.body[0];s.type,i=e.evaluater.evaluateExpression(s.expression)}else an(e,t.position);else i=n.value===null?!0:n.value;r[a]=i}return r}function ka(e,t){const r=[];let n=-1;const a=e.passKeys?new Map:Oc;for(;++na?0:a+t:t=t>a?a:t,r=r>0?r:0,n.length<1e4)u=Array.from(n),u.unshift(t,r),e.splice(...u);else for(r&&e.splice(t,r);i0?(ut(e,e.length,0,t),e):t}const wi={}.hasOwnProperty;function ws(e){const t={};let r=-1;for(;++r13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)===65535||(r&65535)===65534||r>1114111?"�":String.fromCodePoint(r)}function yt(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Xe=nr(/[A-Za-z]/),Ue=nr(/[\dA-Za-z]/),a1=nr(/[#-'*+\--9=?A-Z^-~]/);function Hn(e){return e!==null&&(e<32||e===127)}const Z0=nr(/\d/),i1=nr(/[\dA-Fa-f]/),u1=nr(/[!-/:-@[-`{-~]/);function ne(e){return e!==null&&e<-2}function ye(e){return e!==null&&(e<0||e===32)}function pe(e){return e===-2||e===-1||e===32}const Zn=nr(new RegExp("\\p{P}|\\p{S}","u")),hr=nr(/\s/);function nr(e){return t;function t(r){return r!==null&&r>-1&&e.test(String.fromCharCode(r))}}function Dr(e){const t=[];let r=-1,n=0,a=0;for(;++r55295&&i<57344){const s=e.charCodeAt(r+1);i<56320&&s>56319&&s<57344?(u=String.fromCharCode(i,s),a=1):u="�"}else u=String.fromCharCode(i);u&&(t.push(e.slice(n,r),encodeURIComponent(u)),n=r+a+1,u=""),a&&(r+=a,a=0)}return t.join("")+e.slice(n)}function me(e,t,r,n){const a=n?n-1:Number.POSITIVE_INFINITY;let i=0;return u;function u(l){return pe(l)?(e.enter(r),s(l)):t(l)}function s(l){return pe(l)&&i++u))return;const Q=t.events.length;let ie=Q,J,P;for(;ie--;)if(t.events[ie][0]==="exit"&&t.events[ie][1].type==="chunkFlow"){if(J){P=t.events[ie][1].end;break}J=!0}for(C(n),M=Q;MR;){const Y=r[W];t.containerState=Y[1],Y[0].exit.call(t,e)}r.length=R}function I(){a.write([null]),i=void 0,a=void 0,t.containerState._closeFlow=void 0}}function h1(e,t,r){return me(e,e.attempt(this.parser.constructs.document,t,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function wr(e){if(e===null||ye(e)||hr(e))return 1;if(Zn(e))return 2}function e0(e,t,r){const n=[];let a=-1;for(;++a1&&e[r][1].end.offset-e[r][1].start.offset>1?2:1;const d={...e[n][1].end},b={...e[r][1].start};_i(d,-l),_i(b,l),u={type:l>1?"strongSequence":"emphasisSequence",start:d,end:{...e[n][1].end}},s={type:l>1?"strongSequence":"emphasisSequence",start:{...e[r][1].start},end:b},i={type:l>1?"strongText":"emphasisText",start:{...e[n][1].end},end:{...e[r][1].start}},a={type:l>1?"strong":"emphasis",start:{...u.start},end:{...s.end}},e[n][1].end={...u.start},e[r][1].start={...s.end},c=[],e[n][1].end.offset-e[n][1].start.offset&&(c=ot(c,[["enter",e[n][1],t],["exit",e[n][1],t]])),c=ot(c,[["enter",a,t],["enter",u,t],["exit",u,t],["enter",i,t]]),c=ot(c,e0(t.parser.constructs.insideSpan.null,e.slice(n+1,r),t)),c=ot(c,[["exit",i,t],["enter",s,t],["exit",s,t],["exit",a,t]]),e[r][1].end.offset-e[r][1].start.offset?(f=2,c=ot(c,[["enter",e[r][1],t],["exit",e[r][1],t]])):f=0,ut(e,n-1,r-n+3,c),r=n+c.length-f-2;break}}for(r=-1;++r0&&pe(M)?me(e,I,"linePrefix",i+1)(M):I(M)}function I(M){return M===null||ne(M)?e.check(Ii,A,W)(M):(e.enter("codeFlowValue"),R(M))}function R(M){return M===null||ne(M)?(e.exit("codeFlowValue"),I(M)):(e.consume(M),R)}function W(M){return e.exit("codeFenced"),t(M)}function Y(M,Q,ie){let J=0;return P;function P(ae){return M.enter("lineEnding"),M.consume(ae),M.exit("lineEnding"),Z}function Z(ae){return M.enter("codeFencedFence"),pe(ae)?me(M,$,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(ae):$(ae)}function $(ae){return ae===s?(M.enter("codeFencedFenceSequence"),re(ae)):ie(ae)}function re(ae){return ae===s?(J++,M.consume(ae),re):J>=u?(M.exit("codeFencedFenceSequence"),pe(ae)?me(M,K,"whitespace")(ae):K(ae)):ie(ae)}function K(ae){return ae===null||ne(ae)?(M.exit("codeFencedFence"),Q(ae)):ie(ae)}}}function A1(e,t,r){const n=this;return a;function a(u){return u===null?r(u):(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),i)}function i(u){return n.parser.lazy[n.now().line]?r(u):t(u)}}const T0={name:"codeIndented",tokenize:k1},S1={partial:!0,tokenize:w1};function k1(e,t,r){const n=this;return a;function a(c){return e.enter("codeIndented"),me(e,i,"linePrefix",5)(c)}function i(c){const f=n.events[n.events.length-1];return f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?u(c):r(c)}function u(c){return c===null?l(c):ne(c)?e.attempt(S1,u,l)(c):(e.enter("codeFlowValue"),s(c))}function s(c){return c===null||ne(c)?(e.exit("codeFlowValue"),u(c)):(e.consume(c),s)}function l(c){return e.exit("codeIndented"),t(c)}}function w1(e,t,r){const n=this;return a;function a(u){return n.parser.lazy[n.now().line]?r(u):ne(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),a):me(e,i,"linePrefix",5)(u)}function i(u){const s=n.events[n.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(u):ne(u)?a(u):r(u)}}const C1={name:"codeText",previous:I1,resolve:_1,tokenize:N1};function _1(e){let t=e.length-4,r=3,n,a;if((e[r][1].type==="lineEnding"||e[r][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(n=r;++n=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(t,r,n){const a=r||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-a,Number.POSITIVE_INFINITY);return n&&Yr(this.left,n),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Yr(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Yr(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(u):e.interrupt(n.parser.constructs.flow,r,t)(u)}}function Os(e,t,r,n,a,i,u,s,l){const c=l||Number.POSITIVE_INFINITY;let f=0;return d;function d(C){return C===60?(e.enter(n),e.enter(a),e.enter(i),e.consume(C),e.exit(i),b):C===null||C===32||C===41||Hn(C)?r(C):(e.enter(n),e.enter(u),e.enter(s),e.enter("chunkString",{contentType:"string"}),A(C))}function b(C){return C===62?(e.enter(i),e.consume(C),e.exit(i),e.exit(a),e.exit(n),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),p(C))}function p(C){return C===62?(e.exit("chunkString"),e.exit(s),b(C)):C===null||C===60||ne(C)?r(C):(e.consume(C),C===92?y:p)}function y(C){return C===60||C===62||C===92?(e.consume(C),p):p(C)}function A(C){return!f&&(C===null||C===41||ye(C))?(e.exit("chunkString"),e.exit(s),e.exit(u),e.exit(n),t(C)):f999||p===null||p===91||p===93&&!l||p===94&&!s&&"_hiddenFootnoteSupport"in u.parser.constructs?r(p):p===93?(e.exit(i),e.enter(a),e.consume(p),e.exit(a),e.exit(n),t):ne(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===null||p===91||p===93||ne(p)||s++>999?(e.exit("chunkString"),f(p)):(e.consume(p),l||(l=!pe(p)),p===92?b:d)}function b(p){return p===91||p===92||p===93?(e.consume(p),s++,d):d(p)}}function Ms(e,t,r,n,a,i){let u;return s;function s(b){return b===34||b===39||b===40?(e.enter(n),e.enter(a),e.consume(b),e.exit(a),u=b===40?41:b,l):r(b)}function l(b){return b===u?(e.enter(a),e.consume(b),e.exit(a),e.exit(n),t):(e.enter(i),c(b))}function c(b){return b===u?(e.exit(i),l(u)):b===null?r(b):ne(b)?(e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),me(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),f(b))}function f(b){return b===u||b===null||ne(b)?(e.exit("chunkString"),c(b)):(e.consume(b),b===92?d:f)}function d(b){return b===u||b===92?(e.consume(b),f):f(b)}}function $r(e,t){let r;return n;function n(a){return ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),r=!0,n):pe(a)?me(e,n,r?"linePrefix":"lineSuffix")(a):t(a)}}const F1={name:"definition",tokenize:z1},H1={partial:!0,tokenize:U1};function z1(e,t,r){const n=this;let a;return i;function i(p){return e.enter("definition"),u(p)}function u(p){return Ls.call(n,e,s,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function s(p){return a=yt(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),l):r(p)}function l(p){return ye(p)?$r(e,c)(p):c(p)}function c(p){return Os(e,f,r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function f(p){return e.attempt(H1,d,d)(p)}function d(p){return pe(p)?me(e,b,"whitespace")(p):b(p)}function b(p){return p===null||ne(p)?(e.exit("definition"),n.parser.defined.push(a),t(p)):r(p)}}function U1(e,t,r){return n;function n(s){return ye(s)?$r(e,a)(s):r(s)}function a(s){return Ms(e,i,r,"definitionTitle","definitionTitleMarker","definitionTitleString")(s)}function i(s){return pe(s)?me(e,u,"whitespace")(s):u(s)}function u(s){return s===null||ne(s)?t(s):r(s)}}const q1={name:"hardBreakEscape",tokenize:Y1};function Y1(e,t,r){return n;function n(i){return e.enter("hardBreakEscape"),e.consume(i),a}function a(i){return ne(i)?(e.exit("hardBreakEscape"),t(i)):r(i)}}const V1={name:"headingAtx",resolve:G1,tokenize:W1};function G1(e,t){let r=e.length-2,n=3,a,i;return e[n][1].type==="whitespace"&&(n+=2),r-2>n&&e[r][1].type==="whitespace"&&(r-=2),e[r][1].type==="atxHeadingSequence"&&(n===r-1||r-4>n&&e[r-2][1].type==="whitespace")&&(r-=n+1===r?2:4),r>n&&(a={type:"atxHeadingText",start:e[n][1].start,end:e[r][1].end},i={type:"chunkText",start:e[n][1].start,end:e[r][1].end,contentType:"text"},ut(e,n,r-n+1,[["enter",a,t],["enter",i,t],["exit",i,t],["exit",a,t]])),e}function W1(e,t,r){let n=0;return a;function a(f){return e.enter("atxHeading"),i(f)}function i(f){return e.enter("atxHeadingSequence"),u(f)}function u(f){return f===35&&n++<6?(e.consume(f),u):f===null||ye(f)?(e.exit("atxHeadingSequence"),s(f)):r(f)}function s(f){return f===35?(e.enter("atxHeadingSequence"),l(f)):f===null||ne(f)?(e.exit("atxHeading"),t(f)):pe(f)?me(e,s,"whitespace")(f):(e.enter("atxHeadingText"),c(f))}function l(f){return f===35?(e.consume(f),l):(e.exit("atxHeadingSequence"),s(f))}function c(f){return f===null||f===35||ye(f)?(e.exit("atxHeadingText"),s(f)):(e.consume(f),c)}}const X1=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Di=["pre","script","style","textarea"],j1={concrete:!0,name:"htmlFlow",resolveTo:K1,tokenize:J1},Q1={partial:!0,tokenize:eh},$1={partial:!0,tokenize:Z1};function K1(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function J1(e,t,r){const n=this;let a,i,u,s,l;return c;function c(_){return f(_)}function f(_){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(_),d}function d(_){return _===33?(e.consume(_),b):_===47?(e.consume(_),i=!0,A):_===63?(e.consume(_),a=3,n.interrupt?t:w):Xe(_)?(e.consume(_),u=String.fromCharCode(_),D):r(_)}function b(_){return _===45?(e.consume(_),a=2,p):_===91?(e.consume(_),a=5,s=0,y):Xe(_)?(e.consume(_),a=4,n.interrupt?t:w):r(_)}function p(_){return _===45?(e.consume(_),n.interrupt?t:w):r(_)}function y(_){const Ve="CDATA[";return _===Ve.charCodeAt(s++)?(e.consume(_),s===Ve.length?n.interrupt?t:$:y):r(_)}function A(_){return Xe(_)?(e.consume(_),u=String.fromCharCode(_),D):r(_)}function D(_){if(_===null||_===47||_===62||ye(_)){const Ve=_===47,$e=u.toLowerCase();return!Ve&&!i&&Di.includes($e)?(a=1,n.interrupt?t(_):$(_)):X1.includes(u.toLowerCase())?(a=6,Ve?(e.consume(_),C):n.interrupt?t(_):$(_)):(a=7,n.interrupt&&!n.parser.lazy[n.now().line]?r(_):i?I(_):R(_))}return _===45||Ue(_)?(e.consume(_),u+=String.fromCharCode(_),D):r(_)}function C(_){return _===62?(e.consume(_),n.interrupt?t:$):r(_)}function I(_){return pe(_)?(e.consume(_),I):P(_)}function R(_){return _===47?(e.consume(_),P):_===58||_===95||Xe(_)?(e.consume(_),W):pe(_)?(e.consume(_),R):P(_)}function W(_){return _===45||_===46||_===58||_===95||Ue(_)?(e.consume(_),W):Y(_)}function Y(_){return _===61?(e.consume(_),M):pe(_)?(e.consume(_),Y):R(_)}function M(_){return _===null||_===60||_===61||_===62||_===96?r(_):_===34||_===39?(e.consume(_),l=_,Q):pe(_)?(e.consume(_),M):ie(_)}function Q(_){return _===l?(e.consume(_),l=null,J):_===null||ne(_)?r(_):(e.consume(_),Q)}function ie(_){return _===null||_===34||_===39||_===47||_===60||_===61||_===62||_===96||ye(_)?Y(_):(e.consume(_),ie)}function J(_){return _===47||_===62||pe(_)?R(_):r(_)}function P(_){return _===62?(e.consume(_),Z):r(_)}function Z(_){return _===null||ne(_)?$(_):pe(_)?(e.consume(_),Z):r(_)}function $(_){return _===45&&a===2?(e.consume(_),Ee):_===60&&a===1?(e.consume(_),Se):_===62&&a===4?(e.consume(_),Le):_===63&&a===3?(e.consume(_),w):_===93&&a===5?(e.consume(_),tt):ne(_)&&(a===6||a===7)?(e.exit("htmlFlowData"),e.check(Q1,Ie,re)(_)):_===null||ne(_)?(e.exit("htmlFlowData"),re(_)):(e.consume(_),$)}function re(_){return e.check($1,K,Ie)(_)}function K(_){return e.enter("lineEnding"),e.consume(_),e.exit("lineEnding"),ae}function ae(_){return _===null||ne(_)?re(_):(e.enter("htmlFlowData"),$(_))}function Ee(_){return _===45?(e.consume(_),w):$(_)}function Se(_){return _===47?(e.consume(_),u="",Fe):$(_)}function Fe(_){if(_===62){const Ve=u.toLowerCase();return Di.includes(Ve)?(e.consume(_),Le):$(_)}return Xe(_)&&u.length<8?(e.consume(_),u+=String.fromCharCode(_),Fe):$(_)}function tt(_){return _===93?(e.consume(_),w):$(_)}function w(_){return _===62?(e.consume(_),Le):_===45&&a===2?(e.consume(_),w):$(_)}function Le(_){return _===null||ne(_)?(e.exit("htmlFlowData"),Ie(_)):(e.consume(_),Le)}function Ie(_){return e.exit("htmlFlow"),t(_)}}function Z1(e,t,r){const n=this;return a;function a(u){return ne(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),i):r(u)}function i(u){return n.parser.lazy[n.now().line]?r(u):t(u)}}function eh(e,t,r){return n;function n(a){return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),e.attempt(dn,t,r)}}const th={name:"htmlText",tokenize:rh};function rh(e,t,r){const n=this;let a,i,u;return s;function s(w){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(w),l}function l(w){return w===33?(e.consume(w),c):w===47?(e.consume(w),Y):w===63?(e.consume(w),R):Xe(w)?(e.consume(w),ie):r(w)}function c(w){return w===45?(e.consume(w),f):w===91?(e.consume(w),i=0,y):Xe(w)?(e.consume(w),I):r(w)}function f(w){return w===45?(e.consume(w),p):r(w)}function d(w){return w===null?r(w):w===45?(e.consume(w),b):ne(w)?(u=d,Se(w)):(e.consume(w),d)}function b(w){return w===45?(e.consume(w),p):d(w)}function p(w){return w===62?Ee(w):w===45?b(w):d(w)}function y(w){const Le="CDATA[";return w===Le.charCodeAt(i++)?(e.consume(w),i===Le.length?A:y):r(w)}function A(w){return w===null?r(w):w===93?(e.consume(w),D):ne(w)?(u=A,Se(w)):(e.consume(w),A)}function D(w){return w===93?(e.consume(w),C):A(w)}function C(w){return w===62?Ee(w):w===93?(e.consume(w),C):A(w)}function I(w){return w===null||w===62?Ee(w):ne(w)?(u=I,Se(w)):(e.consume(w),I)}function R(w){return w===null?r(w):w===63?(e.consume(w),W):ne(w)?(u=R,Se(w)):(e.consume(w),R)}function W(w){return w===62?Ee(w):R(w)}function Y(w){return Xe(w)?(e.consume(w),M):r(w)}function M(w){return w===45||Ue(w)?(e.consume(w),M):Q(w)}function Q(w){return ne(w)?(u=Q,Se(w)):pe(w)?(e.consume(w),Q):Ee(w)}function ie(w){return w===45||Ue(w)?(e.consume(w),ie):w===47||w===62||ye(w)?J(w):r(w)}function J(w){return w===47?(e.consume(w),Ee):w===58||w===95||Xe(w)?(e.consume(w),P):ne(w)?(u=J,Se(w)):pe(w)?(e.consume(w),J):Ee(w)}function P(w){return w===45||w===46||w===58||w===95||Ue(w)?(e.consume(w),P):Z(w)}function Z(w){return w===61?(e.consume(w),$):ne(w)?(u=Z,Se(w)):pe(w)?(e.consume(w),Z):J(w)}function $(w){return w===null||w===60||w===61||w===62||w===96?r(w):w===34||w===39?(e.consume(w),a=w,re):ne(w)?(u=$,Se(w)):pe(w)?(e.consume(w),$):(e.consume(w),K)}function re(w){return w===a?(e.consume(w),a=void 0,ae):w===null?r(w):ne(w)?(u=re,Se(w)):(e.consume(w),re)}function K(w){return w===null||w===34||w===39||w===60||w===61||w===96?r(w):w===47||w===62||ye(w)?J(w):(e.consume(w),K)}function ae(w){return w===47||w===62||ye(w)?J(w):r(w)}function Ee(w){return w===62?(e.consume(w),e.exit("htmlTextData"),e.exit("htmlText"),t):r(w)}function Se(w){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(w),e.exit("lineEnding"),Fe}function Fe(w){return pe(w)?me(e,tt,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(w):tt(w)}function tt(w){return e.enter("htmlTextData"),u(w)}}const _a={name:"labelEnd",resolveAll:uh,resolveTo:sh,tokenize:lh},nh={tokenize:oh},ah={tokenize:ch},ih={tokenize:hh};function uh(e){let t=-1;const r=[];for(;++t=3&&(c===null||ne(c))?(e.exit("thematicBreak"),t(c)):r(c)}function l(c){return c===a?(e.consume(c),n++,l):(e.exit("thematicBreakSequence"),pe(c)?me(e,s,"whitespace")(c):s(c))}}const Je={continuation:{tokenize:xh},exit:Ah,name:"list",tokenize:yh},Eh={partial:!0,tokenize:Sh},Th={partial:!0,tokenize:vh};function yh(e,t,r){const n=this,a=n.events[n.events.length-1];let i=a&&a[1].type==="linePrefix"?a[2].sliceSerialize(a[1],!0).length:0,u=0;return s;function s(p){const y=n.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(y==="listUnordered"?!n.containerState.marker||p===n.containerState.marker:Z0(p)){if(n.containerState.type||(n.containerState.type=y,e.enter(y,{_container:!0})),y==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(Mn,r,c)(p):c(p);if(!n.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(p)}return r(p)}function l(p){return Z0(p)&&++u<10?(e.consume(p),l):(!n.interrupt||u<2)&&(n.containerState.marker?p===n.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):r(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),n.containerState.marker=n.containerState.marker||p,e.check(dn,n.interrupt?r:f,e.attempt(Eh,b,d))}function f(p){return n.containerState.initialBlankLine=!0,i++,b(p)}function d(p){return pe(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),b):r(p)}function b(p){return n.containerState.size=i+n.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function xh(e,t,r){const n=this;return n.containerState._closeFlow=void 0,e.check(dn,a,i);function a(s){return n.containerState.furtherBlankLines=n.containerState.furtherBlankLines||n.containerState.initialBlankLine,me(e,t,"listItemIndent",n.containerState.size+1)(s)}function i(s){return n.containerState.furtherBlankLines||!pe(s)?(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,u(s)):(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,e.attempt(Th,t,u)(s))}function u(s){return n.containerState._closeFlow=!0,n.interrupt=void 0,me(e,e.attempt(Je,t,r),"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s)}}function vh(e,t,r){const n=this;return me(e,a,"listItemIndent",n.containerState.size+1);function a(i){const u=n.events[n.events.length-1];return u&&u[1].type==="listItemIndent"&&u[2].sliceSerialize(u[1],!0).length===n.containerState.size?t(i):r(i)}}function Ah(e){e.exit(this.containerState.type)}function Sh(e,t,r){const n=this;return me(e,a,"listItemPrefixWhitespace",n.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function a(i){const u=n.events[n.events.length-1];return!pe(i)&&u&&u[1].type==="listItemPrefixWhitespace"?t(i):r(i)}}const Oi={name:"setextUnderline",resolveTo:kh,tokenize:wh};function kh(e,t){let r=e.length,n,a,i;for(;r--;)if(e[r][0]==="enter"){if(e[r][1].type==="content"){n=r;break}e[r][1].type==="paragraph"&&(a=r)}else e[r][1].type==="content"&&e.splice(r,1),!i&&e[r][1].type==="definition"&&(i=r);const u={type:"setextHeading",start:{...e[a][1].start},end:{...e[e.length-1][1].end}};return e[a][1].type="setextHeadingText",i?(e.splice(a,0,["enter",u,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end={...e[i][1].end}):e[n][1]=u,e.push(["exit",u,t]),e}function wh(e,t,r){const n=this;let a;return i;function i(c){let f=n.events.length,d;for(;f--;)if(n.events[f][1].type!=="lineEnding"&&n.events[f][1].type!=="linePrefix"&&n.events[f][1].type!=="content"){d=n.events[f][1].type==="paragraph";break}return!n.parser.lazy[n.now().line]&&(n.interrupt||d)?(e.enter("setextHeadingLine"),a=c,u(c)):r(c)}function u(c){return e.enter("setextHeadingLineSequence"),s(c)}function s(c){return c===a?(e.consume(c),s):(e.exit("setextHeadingLineSequence"),pe(c)?me(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||ne(c)?(e.exit("setextHeadingLine"),t(c)):r(c)}}const Ch={tokenize:_h};function _h(e){const t=this,r=e.attempt(dn,n,e.attempt(this.parser.constructs.flowInitial,a,me(e,e.attempt(this.parser.constructs.flow,a,e.attempt(L1,a)),"linePrefix")));return r;function n(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,r}function a(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,r}}const Ih={resolveAll:Ps()},Nh=Rs("string"),Dh=Rs("text");function Rs(e){return{resolveAll:Ps(e==="text"?Oh:void 0),tokenize:t};function t(r){const n=this,a=this.parser.constructs[e],i=r.attempt(a,u,s);return u;function u(f){return c(f)?i(f):s(f)}function s(f){if(f===null){r.consume(f);return}return r.enter("data"),r.consume(f),l}function l(f){return c(f)?(r.exit("data"),i(f)):(r.consume(f),l)}function c(f){if(f===null)return!0;const d=a[f];let b=-1;if(d)for(;++b-1){const s=u[0];typeof s=="string"?u[0]=s.slice(n):u.shift()}i>0&&u.push(e[a].slice(0,i))}return u}function Gh(e,t){let r=-1;const n=[];let a;for(;++r0){const Et=ce.tokenStack[ce.tokenStack.length-1];(Et[1]||Mi).call(ce,void 0,Et[0])}for(j.position={start:Wt(F.length>0?F[0][1].start:{line:1,column:1,offset:0}),end:Wt(F.length>0?F[F.length-2][1].end:{line:1,column:1,offset:0})},Te=-1;++Te1?"-"+s:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(u)}]};e.patch(t,l);const c={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(t,c),e.applyData(t,c)}function ld(e,t){const r={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function od(e,t){if(e.options.allowDangerousHtml){const r={type:"raw",value:t.value};return e.patch(t,r),e.applyData(t,r)}}function Hs(e,t){const r=t.referenceType;let n="]";if(r==="collapsed"?n+="[]":r==="full"&&(n+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+n}];const a=e.all(t),i=a[0];i&&i.type==="text"?i.value="["+i.value:a.unshift({type:"text",value:"["});const u=a[a.length-1];return u&&u.type==="text"?u.value+=n:a.push({type:"text",value:n}),a}function cd(e,t){const r=String(t.identifier).toUpperCase(),n=e.definitionById.get(r);if(!n)return Hs(e,t);const a={src:Dr(n.url||""),alt:t.alt};n.title!==null&&n.title!==void 0&&(a.title=n.title);const i={type:"element",tagName:"img",properties:a,children:[]};return e.patch(t,i),e.applyData(t,i)}function hd(e,t){const r={src:Dr(t.url)};t.alt!==null&&t.alt!==void 0&&(r.alt=t.alt),t.title!==null&&t.title!==void 0&&(r.title=t.title);const n={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,n),e.applyData(t,n)}function dd(e,t){const r={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,r);const n={type:"element",tagName:"code",properties:{},children:[r]};return e.patch(t,n),e.applyData(t,n)}function fd(e,t){const r=String(t.identifier).toUpperCase(),n=e.definitionById.get(r);if(!n)return Hs(e,t);const a={href:Dr(n.url||"")};n.title!==null&&n.title!==void 0&&(a.title=n.title);const i={type:"element",tagName:"a",properties:a,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function md(e,t){const r={href:Dr(t.url)};t.title!==null&&t.title!==void 0&&(r.title=t.title);const n={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function pd(e,t,r){const n=e.all(t),a=r?gd(r):zs(t),i={},u=[];if(typeof t.checked=="boolean"){const f=n[0];let d;f&&f.type==="element"&&f.tagName==="p"?d=f:(d={type:"element",tagName:"p",properties:{},children:[]},n.unshift(d)),d.children.length>0&&d.children.unshift({type:"text",value:" "}),d.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let s=-1;for(;++s1}function bd(e,t){const r={},n=e.all(t);let a=-1;for(typeof t.start=="number"&&t.start!==1&&(r.start=t.start);++a0){const u={type:"element",tagName:"tbody",properties:{},children:e.wrap(r,!0)},s=It(t.children[1]),l=Jn(t.children[t.children.length-1]);s&&l&&(u.position={start:s,end:l}),a.push(u)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(a,!0)};return e.patch(t,i),e.applyData(t,i)}function vd(e,t,r){const n=r?r.children:void 0,i=(n?n.indexOf(t):1)===0?"th":"td",u=r&&r.type==="table"?r.align:void 0,s=u?u.length:t.children.length;let l=-1;const c=[];for(;++l0,!0),n[0]),a=n.index+n[0].length,n=r.exec(t);return i.push(Bi(t.slice(a),a>0,!1)),i.join("")}function Bi(e,t,r){let n=0,a=e.length;if(t){let i=e.codePointAt(n);for(;i===Ri||i===Pi;)n++,i=e.codePointAt(n)}if(r){let i=e.codePointAt(a-1);for(;i===Ri||i===Pi;)a--,i=e.codePointAt(a-1)}return a>n?e.slice(n,a):""}function kd(e,t){const r={type:"text",value:Sd(String(t.value))};return e.patch(t,r),e.applyData(t,r)}function wd(e,t){const r={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,r),e.applyData(t,r)}const Cd={blockquote:rd,break:nd,code:ad,delete:id,emphasis:ud,footnoteReference:sd,heading:ld,html:od,imageReference:cd,image:hd,inlineCode:dd,linkReference:fd,link:md,listItem:pd,list:bd,paragraph:Ed,root:Td,strong:yd,table:xd,tableCell:Ad,tableRow:vd,text:kd,thematicBreak:wd,toml:yn,yaml:yn,definition:yn,footnoteDefinition:yn};function yn(){}const Us=-1,t0=0,zn=1,Un=2,Ia=3,Na=4,Da=5,Oa=6,qs=7,Ys=8,Fi=typeof self=="object"?self:globalThis,_d=(e,t)=>{const r=(a,i)=>(e.set(i,a),a),n=a=>{if(e.has(a))return e.get(a);const[i,u]=t[a];switch(i){case t0:case Us:return r(u,a);case zn:{const s=r([],a);for(const l of u)s.push(n(l));return s}case Un:{const s=r({},a);for(const[l,c]of u)s[n(l)]=n(c);return s}case Ia:return r(new Date(u),a);case Na:{const{source:s,flags:l}=u;return r(new RegExp(s,l),a)}case Da:{const s=r(new Map,a);for(const[l,c]of u)s.set(n(l),n(c));return s}case Oa:{const s=r(new Set,a);for(const l of u)s.add(n(l));return s}case qs:{const{name:s,message:l}=u;return r(new Fi[s](l),a)}case Ys:return r(BigInt(u),a);case"BigInt":return r(Object(BigInt(u)),a)}return r(new Fi[i](u),a)};return n},Hi=e=>_d(new Map,e)(0),yr="",{toString:Id}={},{keys:Nd}=Object,Vr=e=>{const t=typeof e;if(t!=="object"||!e)return[t0,t];const r=Id.call(e).slice(8,-1);switch(r){case"Array":return[zn,yr];case"Object":return[Un,yr];case"Date":return[Ia,yr];case"RegExp":return[Na,yr];case"Map":return[Da,yr];case"Set":return[Oa,yr]}return r.includes("Array")?[zn,r]:r.includes("Error")?[qs,r]:[Un,r]},xn=([e,t])=>e===t0&&(t==="function"||t==="symbol"),Dd=(e,t,r,n)=>{const a=(u,s)=>{const l=n.push(u)-1;return r.set(s,l),l},i=u=>{if(r.has(u))return r.get(u);let[s,l]=Vr(u);switch(s){case t0:{let f=u;switch(l){case"bigint":s=Ys,f=u.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+l);f=null;break;case"undefined":return a([Us],u)}return a([s,f],u)}case zn:{if(l)return a([l,[...u]],u);const f=[],d=a([s,f],u);for(const b of u)f.push(i(b));return d}case Un:{if(l)switch(l){case"BigInt":return a([l,u.toString()],u);case"Boolean":case"Number":case"String":return a([l,u.valueOf()],u)}if(t&&"toJSON"in u)return i(u.toJSON());const f=[],d=a([s,f],u);for(const b of Nd(u))(e||!xn(Vr(u[b])))&&f.push([i(b),i(u[b])]);return d}case Ia:return a([s,u.toISOString()],u);case Na:{const{source:f,flags:d}=u;return a([s,{source:f,flags:d}],u)}case Da:{const f=[],d=a([s,f],u);for(const[b,p]of u)(e||!(xn(Vr(b))||xn(Vr(p))))&&f.push([i(b),i(p)]);return d}case Oa:{const f=[],d=a([s,f],u);for(const b of u)(e||!xn(Vr(b)))&&f.push(i(b));return d}}const{message:c}=u;return a([s,{name:l,message:c}],u)};return i},zi=(e,{json:t,lossy:r}={})=>{const n=[];return Dd(!(t||r),!!t,new Map,n)(e),n},Cr=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Hi(zi(e,t)):structuredClone(e):(e,t)=>Hi(zi(e,t));function Od(e,t){const r=[{type:"text",value:"↩"}];return t>1&&r.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),r}function Ld(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function Md(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=e.options.footnoteBackContent||Od,n=e.options.footnoteBackLabel||Ld,a=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",u=e.options.footnoteLabelProperties||{className:["sr-only"]},s=[];let l=-1;for(;++l0&&y.push({type:"text",value:" "});let I=typeof r=="string"?r:r(l,p);typeof I=="string"&&(I={type:"text",value:I}),y.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+b+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof n=="string"?n:n(l,p),className:["data-footnote-backref"]},children:Array.isArray(I)?I:[I]})}const D=f[f.length-1];if(D&&D.type==="element"&&D.tagName==="p"){const I=D.children[D.children.length-1];I&&I.type==="text"?I.value+=" ":D.children.push({type:"text",value:" "}),D.children.push(...y)}else f.push(...y);const C={type:"element",tagName:"li",properties:{id:t+"fn-"+b},children:e.wrap(f,!0)};e.patch(c,C),s.push(C)}if(s.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Cr(u),id:"footnote-label"},children:[{type:"text",value:a}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(s,!0)},{type:"text",value:` +`}]}}const fn=function(e){if(e==null)return Fd;if(typeof e=="function")return r0(e);if(typeof e=="object")return Array.isArray(e)?Rd(e):Pd(e);if(typeof e=="string")return Bd(e);throw new Error("Expected function, string, or object as test")};function Rd(e){const t=[];let r=-1;for(;++r":""))+")"})}return b;function b(){let p=Vs,y,A,D;if((!t||i(l,c,f[f.length-1]||void 0))&&(p=Ud(r(l,f)),p[0]===ta))return p;if("children"in l&&l.children){const C=l;if(C.children&&p[0]!==Gs)for(A=(n?C.children.length:-1)+u,D=f.concat(C);A>-1&&A0&&r.push({type:"text",value:` +`}),r}function Ui(e){let t=0,r=e.charCodeAt(t);for(;r===9||r===32;)t++,r=e.charCodeAt(t);return e.slice(t)}function qi(e,t){const r=Yd(e,t),n=r.one(e,void 0),a=Md(r),i=Array.isArray(n)?{type:"root",children:n}:n||{type:"root",children:[]};return a&&i.children.push({type:"text",value:` +`},a),i}function jd(e,t){return e&&"run"in e?async function(r,n){const a=qi(r,{file:n,...t});await e.run(a,n)}:function(r,n){return qi(r,{file:n,...e||t})}}function Yi(e){if(e)throw e}var x0,Vi;function Qd(){if(Vi)return x0;Vi=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=function(c){return typeof Array.isArray=="function"?Array.isArray(c):t.call(c)==="[object Array]"},i=function(c){if(!c||t.call(c)!=="[object Object]")return!1;var f=e.call(c,"constructor"),d=c.constructor&&c.constructor.prototype&&e.call(c.constructor.prototype,"isPrototypeOf");if(c.constructor&&!f&&!d)return!1;var b;for(b in c);return typeof b>"u"||e.call(c,b)},u=function(c,f){r&&f.name==="__proto__"?r(c,f.name,{enumerable:!0,configurable:!0,value:f.newValue,writable:!0}):c[f.name]=f.newValue},s=function(c,f){if(f==="__proto__")if(e.call(c,f)){if(n)return n(c,f).value}else return;return c[f]};return x0=function l(){var c,f,d,b,p,y,A=arguments[0],D=1,C=arguments.length,I=!1;for(typeof A=="boolean"&&(I=A,A=arguments[1]||{},D=2),(A==null||typeof A!="object"&&typeof A!="function")&&(A={});Du.length;let l;s&&u.push(a);try{l=e.apply(this,u)}catch(c){const f=c;if(s&&r)throw f;return a(f)}s||(l&&l.then&&typeof l.then=="function"?l.then(i,a):l instanceof Error?a(l):i(l))}function a(u,...s){r||(r=!0,t(u,...s))}function i(u){a(null,u)}}const vt={basename:Zd,dirname:ef,extname:tf,join:rf,sep:"/"};function Zd(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');mn(e);let r=0,n=-1,a=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;a--;)if(e.codePointAt(a)===47){if(i){r=a+1;break}}else n<0&&(i=!0,n=a+1);return n<0?"":e.slice(r,n)}if(t===e)return"";let u=-1,s=t.length-1;for(;a--;)if(e.codePointAt(a)===47){if(i){r=a+1;break}}else u<0&&(i=!0,u=a+1),s>-1&&(e.codePointAt(a)===t.codePointAt(s--)?s<0&&(n=a):(s=-1,n=u));return r===n?n=u:n<0&&(n=e.length),e.slice(r,n)}function ef(e){if(mn(e),e.length===0)return".";let t=-1,r=e.length,n;for(;--r;)if(e.codePointAt(r)===47){if(n){t=r;break}}else n||(n=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function tf(e){mn(e);let t=e.length,r=-1,n=0,a=-1,i=0,u;for(;t--;){const s=e.codePointAt(t);if(s===47){if(u){n=t+1;break}continue}r<0&&(u=!0,r=t+1),s===46?a<0?a=t:i!==1&&(i=1):a>-1&&(i=-1)}return a<0||r<0||i===0||i===1&&a===r-1&&a===n+1?"":e.slice(a,r)}function rf(...e){let t=-1,r;for(;++t0&&e.codePointAt(e.length-1)===47&&(r+="/"),t?"/"+r:r}function af(e,t){let r="",n=0,a=-1,i=0,u=-1,s,l;for(;++u<=e.length;){if(u2){if(l=r.lastIndexOf("/"),l!==r.length-1){l<0?(r="",n=0):(r=r.slice(0,l),n=r.length-1-r.lastIndexOf("/")),a=u,i=0;continue}}else if(r.length>0){r="",n=0,a=u,i=0;continue}}t&&(r=r.length>0?r+"/..":"..",n=2)}else r.length>0?r+="/"+e.slice(a+1,u):r=e.slice(a+1,u),n=u-a-1;a=u,i=0}else s===46&&i>-1?i++:i=-1}return r}function mn(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const uf={cwd:sf};function sf(){return"/"}function aa(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function lf(e){if(typeof e=="string")e=new URL(e);else if(!aa(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return of(e)}function of(e){if(e.hostname!==""){const n=new TypeError('File URL host must be "localhost" or empty on darwin');throw n.code="ERR_INVALID_FILE_URL_HOST",n}const t=e.pathname;let r=-1;for(;++r0){let[p,...y]=f;const A=n[b][1];na(A)&&na(p)&&(p=v0(!0,A,p)),n[b]=[c,p,...y]}}}}const ff=new Ma().freeze();function w0(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function C0(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function _0(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Wi(e){if(!na(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Xi(e,t,r){if(!r)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function vn(e){return mf(e)?e:new Ws(e)}function mf(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function pf(e){return typeof e=="string"||gf(e)}function gf(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const bf="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",ji=[],Qi={allowDangerousHtml:!0},Ef=/^(https?|ircs?|mailto|xmpp)$/i,Tf=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function yf(e){const t=e.allowedElements,r=e.allowElement,n=e.children||"",a=e.className,i=e.components,u=e.disallowedElements,s=e.rehypePlugins||ji,l=e.remarkPlugins||ji,c=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Qi}:Qi,f=e.skipHtml,d=e.unwrapDisallowed,b=e.urlTransform||xf,p=ff().use(td).use(l).use(jd,c).use(s),y=new Ws;typeof n=="string"&&(y.value=n);for(const I of Tf)Object.hasOwn(e,I.from)&&(""+I.from+(I.to?"use `"+I.to+"` instead":"remove it")+bf+I.id,void 0);const A=p.parse(y);let D=p.runSync(A,y);return a&&(D={type:"element",tagName:"div",properties:{className:a},children:D.type==="root"?D.children:[D]}),n0(D,C),Bc(D,{Fragment:At.Fragment,components:i,ignoreInvalidStyle:!0,jsx:At.jsx,jsxs:At.jsxs,passKeys:!0,passNode:!0});function C(I,R,W){if(I.type==="raw"&&W&&typeof R=="number")return f?W.children.splice(R,1):W.children[R]={type:"text",value:I.value},R;if(I.type==="element"){let Y;for(Y in E0)if(Object.hasOwn(E0,Y)&&Object.hasOwn(I.properties,Y)){const M=I.properties[Y],Q=E0[Y];(Q===null||Q.includes(I.tagName))&&(I.properties[Y]=b(String(M||""),Y,I))}}if(I.type==="element"){let Y=t?!t.includes(I.tagName):u?u.includes(I.tagName):!1;if(!Y&&r&&typeof R=="number"&&(Y=!r(I,R,W)),Y&&W&&typeof R=="number")return d&&I.children?W.children.splice(R,1,...I.children):W.children.splice(R,1),R}}}function xf(e){const t=e.indexOf(":"),r=e.indexOf("?"),n=e.indexOf("#"),a=e.indexOf("/");return t<0||a>-1&&t>a||r>-1&&t>r||n>-1&&t>n||Ef.test(e.slice(0,t))?e:""}function Xs(e,t){const r=String(e);let n=r.indexOf(t),a=n,i=0,u=0;if(typeof t!="string")throw new TypeError("Expected substring");for(;n!==-1;)n===a?++i>u&&(u=i):i=1,a=n+t.length,n=r.indexOf(t,a);return u}function vf(){return{enter:{mathFlow:e,mathFlowFenceMeta:t,mathText:i},exit:{mathFlow:a,mathFlowFence:n,mathFlowFenceMeta:r,mathFlowValue:s,mathText:u,mathTextData:s}};function e(l){const c={type:"element",tagName:"code",properties:{className:["language-math","math-display"]},children:[]};this.enter({type:"math",meta:null,value:"",data:{hName:"pre",hChildren:[c]}},l)}function t(){this.buffer()}function r(){const l=this.resume(),c=this.stack[this.stack.length-1];c.type,c.meta=l}function n(){this.data.mathFlowInside||(this.buffer(),this.data.mathFlowInside=!0)}function a(l){const c=this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),f=this.stack[this.stack.length-1];f.type,this.exit(l),f.value=c;const d=f.data.hChildren[0];d.type,d.tagName,d.children.push({type:"text",value:c}),this.data.mathFlowInside=void 0}function i(l){this.enter({type:"inlineMath",value:"",data:{hName:"code",hProperties:{className:["language-math","math-inline"]},hChildren:[]}},l),this.buffer()}function u(l){const c=this.resume(),f=this.stack[this.stack.length-1];f.type,this.exit(l),f.value=c,f.data.hChildren.push({type:"text",value:c})}function s(l){this.config.enter.data.call(this,l),this.config.exit.data.call(this,l)}}function Af(e){let t=(e||{}).singleDollarTextMath;return t==null&&(t=!0),n.peek=a,{unsafe:[{character:"\r",inConstruct:"mathFlowMeta"},{character:` +`,inConstruct:"mathFlowMeta"},{character:"$",after:t?void 0:"\\$",inConstruct:"phrasing"},{character:"$",inConstruct:"mathFlowMeta"},{atBreak:!0,character:"$",after:"\\$"}],handlers:{math:r,inlineMath:n}};function r(i,u,s,l){const c=i.value||"",f=s.createTracker(l),d="$".repeat(Math.max(Xs(c,"$")+1,2)),b=s.enter("mathFlow");let p=f.move(d);if(i.meta){const y=s.enter("mathFlowMeta");p+=f.move(s.safe(i.meta,{after:` +`,before:p,encode:["$"],...f.current()})),y()}return p+=f.move(` +`),c&&(p+=f.move(c+` +`)),p+=f.move(d),b(),p}function n(i,u,s){let l=i.value||"",c=1;for(t||c++;new RegExp("(^|[^$])"+"\\$".repeat(c)+"([^$]|$)").test(l);)c++;const f="$".repeat(c);/[^ \r\n]/.test(l)&&(/^[ \r\n]/.test(l)&&/[ \r\n]$/.test(l)||/^\$|\$$/.test(l))&&(l=" "+l+" ");let d=-1;for(;++d15?c="…"+s.slice(a-15,a):c=s.slice(0,a);var f;i+15":">","<":"<",'"':""","'":"'"},Pf=/[&><"']/g;function Bf(e){return String(e).replace(Pf,t=>Rf[t])}var js=function e(t){return t.type==="ordgroup"||t.type==="color"?t.body.length===1?e(t.body[0]):t:t.type==="font"?e(t.body):t},Ff=function(t){var r=js(t);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},Hf=function(t){if(!t)throw new Error("Expected non-null, but got "+String(t));return t},zf=function(t){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(t);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},ue={contains:Df,deflt:Of,escape:Bf,hyphenate:Mf,getBaseElem:js,isCharacterBox:Ff,protocolFromUrl:zf},Rn={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>e==="Infinity"?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function Uf(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class Ra{constructor(t){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,t=t||{};for(var r in Rn)if(Rn.hasOwnProperty(r)){var n=Rn[r];this[r]=t[r]!==void 0?n.processor?n.processor(t[r]):t[r]:Uf(n)}}reportNonstrict(t,r,n){var a=this.strict;if(typeof a=="function"&&(a=a(t,r,n)),!(!a||a==="ignore")){if(a===!0||a==="error")throw new V("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+t+"]"),n);a==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+r+" ["+t+"]"))}}useStrictBehavior(t,r,n){var a=this.strict;if(typeof a=="function")try{a=a(t,r,n)}catch{a="error"}return!a||a==="ignore"?!1:a===!0||a==="error"?!0:a==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+r+" ["+t+"]")),!1)}isTrusted(t){if(t.url&&!t.protocol){var r=ue.protocolFromUrl(t.url);if(r==null)return!1;t.protocol=r}var n=typeof this.trust=="function"?this.trust(t):this.trust;return!!n}}class Xt{constructor(t,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=r,this.cramped=n}sup(){return St[qf[this.id]]}sub(){return St[Yf[this.id]]}fracNum(){return St[Vf[this.id]]}fracDen(){return St[Gf[this.id]]}cramp(){return St[Wf[this.id]]}text(){return St[Xf[this.id]]}isTight(){return this.size>=2}}var Pa=0,qn=1,kr=2,Ht=3,un=4,ht=5,_r=6,je=7,St=[new Xt(Pa,0,!1),new Xt(qn,0,!0),new Xt(kr,1,!1),new Xt(Ht,1,!0),new Xt(un,2,!1),new Xt(ht,2,!0),new Xt(_r,3,!1),new Xt(je,3,!0)],qf=[un,ht,un,ht,_r,je,_r,je],Yf=[ht,ht,ht,ht,je,je,je,je],Vf=[kr,Ht,un,ht,_r,je,_r,je],Gf=[Ht,Ht,ht,ht,je,je,je,je],Wf=[qn,qn,Ht,Ht,ht,ht,je,je],Xf=[Pa,qn,kr,Ht,kr,Ht,kr,Ht],le={DISPLAY:St[Pa],TEXT:St[kr],SCRIPT:St[un],SCRIPTSCRIPT:St[_r]},ia=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function jf(e){for(var t=0;t=a[0]&&e<=a[1])return r.name}return null}var Pn=[];ia.forEach(e=>e.blocks.forEach(t=>Pn.push(...t)));function Qs(e){for(var t=0;t=Pn[t]&&e<=Pn[t+1])return!0;return!1}var xr=80,Qf=function(t,r){return"M95,"+(622+t+r)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+t/2.075+" -"+t+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+t)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+t)+" "+r+"h400000v"+(40+t)+"h-400000z"},$f=function(t,r){return"M263,"+(601+t+r)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+t/2.084+" -"+t+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+t)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+t)+" "+r+"h400000v"+(40+t)+"h-400000z"},Kf=function(t,r){return"M983 "+(10+t+r)+` +l`+t/3.13+" -"+t+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+t)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+t)+" "+r+"h400000v"+(40+t)+"h-400000z"},Jf=function(t,r){return"M424,"+(2398+t+r)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+t/4.223+" -"+t+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+t)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+t)+" "+r+` +h400000v`+(40+t)+"h-400000z"},Zf=function(t,r){return"M473,"+(2713+t+r)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+t/5.298+" -"+t+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+t)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+t)+" "+r+"h400000v"+(40+t)+"H1017.7z"},em=function(t){var r=t/2;return"M400000 "+t+" H0 L"+r+" 0 l65 45 L145 "+(t-80)+" H400000z"},tm=function(t,r,n){var a=n-54-r-t;return"M702 "+(t+r)+"H400000"+(40+t)+` +H742v`+a+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+r+"H400000v"+(40+t)+"H742z"},rm=function(t,r,n){r=1e3*r;var a="";switch(t){case"sqrtMain":a=Qf(r,xr);break;case"sqrtSize1":a=$f(r,xr);break;case"sqrtSize2":a=Kf(r,xr);break;case"sqrtSize3":a=Jf(r,xr);break;case"sqrtSize4":a=Zf(r,xr);break;case"sqrtTall":a=tm(r,xr,n)}return a},nm=function(t,r){switch(t){case"⎜":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"∣":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"∥":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"⎟":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"⎢":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"⎥":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"⎪":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"⏐":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"‖":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},Ki={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},am=function(t,r){switch(t){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z +M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z +M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z +M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class pn{constructor(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(t){return ue.contains(this.classes,t)}toNode(){for(var t=document.createDocumentFragment(),r=0;rr.toText();return this.children.map(t).join("")}}var wt={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},An={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Ji={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function im(e,t){wt[e]=t}function Ba(e,t,r){if(!wt[t])throw new Error("Font metrics not found for font: "+t+".");var n=e.charCodeAt(0),a=wt[t][n];if(!a&&e[0]in Ji&&(n=Ji[e[0]].charCodeAt(0),a=wt[t][n]),!a&&r==="text"&&Qs(n)&&(a=wt[t][77]),a)return{depth:a[0],height:a[1],italic:a[2],skew:a[3],width:a[4]}}var I0={};function um(e){var t;if(e>=5?t=0:e>=3?t=1:t=2,!I0[t]){var r=I0[t]={cssEmPerMu:An.quad[t]/18};for(var n in An)An.hasOwnProperty(n)&&(r[n]=An[n][t])}return I0[t]}var sm=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Zi=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],eu=function(t,r){return r.size<2?t:sm[t-1][r.size-1]};class Bt{constructor(t){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=t.style,this.color=t.color,this.size=t.size||Bt.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.font=t.font||"",this.fontFamily=t.fontFamily||"",this.fontWeight=t.fontWeight||"",this.fontShape=t.fontShape||"",this.sizeMultiplier=Zi[this.size-1],this.maxSize=t.maxSize,this.minRuleThickness=t.minRuleThickness,this._fontMetrics=void 0}extend(t){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);return new Bt(r)}havingStyle(t){return this.style===t?this:this.extend({style:t,size:eu(this.textSize,t)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(t){return this.size===t&&this.textSize===t?this:this.extend({style:this.style.text(),size:t,textSize:t,sizeMultiplier:Zi[t-1]})}havingBaseStyle(t){t=t||this.style.text();var r=eu(Bt.BASESIZE,t);return this.size===r&&this.textSize===Bt.BASESIZE&&this.style===t?this:this.extend({style:t,size:r})}havingBaseSizing(){var t;switch(this.style.id){case 4:case 5:t=3;break;case 6:case 7:t=1;break;default:t=6}return this.extend({style:this.style.text(),size:t})}withColor(t){return this.extend({color:t})}withPhantom(){return this.extend({phantom:!0})}withFont(t){return this.extend({font:t})}withTextFontFamily(t){return this.extend({fontFamily:t,font:""})}withTextFontWeight(t){return this.extend({fontWeight:t,font:""})}withTextFontShape(t){return this.extend({fontShape:t,font:""})}sizingClasses(t){return t.size!==this.size?["sizing","reset-size"+t.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==Bt.BASESIZE?["sizing","reset-size"+this.size,"size"+Bt.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=um(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}Bt.BASESIZE=6;var ua={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},lm={ex:!0,em:!0,mu:!0},$s=function(t){return typeof t!="string"&&(t=t.unit),t in ua||t in lm||t==="ex"},_e=function(t,r){var n;if(t.unit in ua)n=ua[t.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(t.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var a;if(r.style.isTight()?a=r.havingStyle(r.style.text()):a=r,t.unit==="ex")n=a.fontMetrics().xHeight;else if(t.unit==="em")n=a.fontMetrics().quad;else throw new V("Invalid unit: '"+t.unit+"'");a!==r&&(n*=a.sizeMultiplier/r.sizeMultiplier)}return Math.min(t.number*n,r.maxSize)},X=function(t){return+t.toFixed(4)+"em"},Zt=function(t){return t.filter(r=>r).join(" ")},Ks=function(t,r,n){if(this.classes=t||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var a=r.getColor();a&&(this.style.color=a)}},Js=function(t){var r=document.createElement(t);r.className=Zt(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var a in this.attributes)this.attributes.hasOwnProperty(a)&&r.setAttribute(a,this.attributes[a]);for(var i=0;i",r};class gn{constructor(t,r,n,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,Ks.call(this,t,n,a),this.children=r||[]}setAttribute(t,r){this.attributes[t]=r}hasClass(t){return ue.contains(this.classes,t)}toNode(){return Js.call(this,"span")}toMarkup(){return Zs.call(this,"span")}}class Fa{constructor(t,r,n,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,Ks.call(this,r,a),this.children=n||[],this.setAttribute("href",t)}setAttribute(t,r){this.attributes[t]=r}hasClass(t){return ue.contains(this.classes,t)}toNode(){return Js.call(this,"a")}toMarkup(){return Zs.call(this,"a")}}class om{constructor(t,r,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=t,this.classes=["mord"],this.style=n}hasClass(t){return ue.contains(this.classes,t)}toNode(){var t=document.createElement("img");t.src=this.src,t.alt=this.alt,t.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);return t}toMarkup(){var t=''+ue.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=X(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=Zt(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(t),r):t}toMarkup(){var t=!1,r="0&&(n+="margin-right:"+this.italic+"em;");for(var a in this.style)this.style.hasOwnProperty(a)&&(n+=ue.hyphenate(a)+":"+this.style[a]+";");n&&(t=!0,r+=' style="'+ue.escape(n)+'"');var i=ue.escape(this.text);return t?(r+=">",r+=i,r+="",r):i}}class Ut{constructor(t,r){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=r||{}}toNode(){var t="http://www.w3.org/2000/svg",r=document.createElementNS(t,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var a=0;a':''}}class sa{constructor(t){this.attributes=void 0,this.attributes=t||{}}toNode(){var t="http://www.w3.org/2000/svg",r=document.createElementNS(t,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var t=" but got "+String(e)+".")}var dm={bin:1,close:1,inner:1,open:1,punct:1,rel:1},fm={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},Ae={math:{},text:{}};function h(e,t,r,n,a,i){Ae[e][a]={font:t,group:r,replace:n},i&&n&&(Ae[e][n]=Ae[e][a])}var m="math",H="text",g="main",v="ams",we="accent-token",te="bin",Qe="close",Or="inner",se="mathord",Pe="op-token",st="open",a0="punct",S="rel",Vt="spacing",N="textord";h(m,g,S,"≡","\\equiv",!0);h(m,g,S,"≺","\\prec",!0);h(m,g,S,"≻","\\succ",!0);h(m,g,S,"∼","\\sim",!0);h(m,g,S,"⊥","\\perp");h(m,g,S,"⪯","\\preceq",!0);h(m,g,S,"⪰","\\succeq",!0);h(m,g,S,"≃","\\simeq",!0);h(m,g,S,"∣","\\mid",!0);h(m,g,S,"≪","\\ll",!0);h(m,g,S,"≫","\\gg",!0);h(m,g,S,"≍","\\asymp",!0);h(m,g,S,"∥","\\parallel");h(m,g,S,"⋈","\\bowtie",!0);h(m,g,S,"⌣","\\smile",!0);h(m,g,S,"⊑","\\sqsubseteq",!0);h(m,g,S,"⊒","\\sqsupseteq",!0);h(m,g,S,"≐","\\doteq",!0);h(m,g,S,"⌢","\\frown",!0);h(m,g,S,"∋","\\ni",!0);h(m,g,S,"∝","\\propto",!0);h(m,g,S,"⊢","\\vdash",!0);h(m,g,S,"⊣","\\dashv",!0);h(m,g,S,"∋","\\owns");h(m,g,a0,".","\\ldotp");h(m,g,a0,"⋅","\\cdotp");h(m,g,N,"#","\\#");h(H,g,N,"#","\\#");h(m,g,N,"&","\\&");h(H,g,N,"&","\\&");h(m,g,N,"ℵ","\\aleph",!0);h(m,g,N,"∀","\\forall",!0);h(m,g,N,"ℏ","\\hbar",!0);h(m,g,N,"∃","\\exists",!0);h(m,g,N,"∇","\\nabla",!0);h(m,g,N,"♭","\\flat",!0);h(m,g,N,"ℓ","\\ell",!0);h(m,g,N,"♮","\\natural",!0);h(m,g,N,"♣","\\clubsuit",!0);h(m,g,N,"℘","\\wp",!0);h(m,g,N,"♯","\\sharp",!0);h(m,g,N,"♢","\\diamondsuit",!0);h(m,g,N,"ℜ","\\Re",!0);h(m,g,N,"♡","\\heartsuit",!0);h(m,g,N,"ℑ","\\Im",!0);h(m,g,N,"♠","\\spadesuit",!0);h(m,g,N,"§","\\S",!0);h(H,g,N,"§","\\S");h(m,g,N,"¶","\\P",!0);h(H,g,N,"¶","\\P");h(m,g,N,"†","\\dag");h(H,g,N,"†","\\dag");h(H,g,N,"†","\\textdagger");h(m,g,N,"‡","\\ddag");h(H,g,N,"‡","\\ddag");h(H,g,N,"‡","\\textdaggerdbl");h(m,g,Qe,"⎱","\\rmoustache",!0);h(m,g,st,"⎰","\\lmoustache",!0);h(m,g,Qe,"⟯","\\rgroup",!0);h(m,g,st,"⟮","\\lgroup",!0);h(m,g,te,"∓","\\mp",!0);h(m,g,te,"⊖","\\ominus",!0);h(m,g,te,"⊎","\\uplus",!0);h(m,g,te,"⊓","\\sqcap",!0);h(m,g,te,"∗","\\ast");h(m,g,te,"⊔","\\sqcup",!0);h(m,g,te,"◯","\\bigcirc",!0);h(m,g,te,"∙","\\bullet",!0);h(m,g,te,"‡","\\ddagger");h(m,g,te,"≀","\\wr",!0);h(m,g,te,"⨿","\\amalg");h(m,g,te,"&","\\And");h(m,g,S,"⟵","\\longleftarrow",!0);h(m,g,S,"⇐","\\Leftarrow",!0);h(m,g,S,"⟸","\\Longleftarrow",!0);h(m,g,S,"⟶","\\longrightarrow",!0);h(m,g,S,"⇒","\\Rightarrow",!0);h(m,g,S,"⟹","\\Longrightarrow",!0);h(m,g,S,"↔","\\leftrightarrow",!0);h(m,g,S,"⟷","\\longleftrightarrow",!0);h(m,g,S,"⇔","\\Leftrightarrow",!0);h(m,g,S,"⟺","\\Longleftrightarrow",!0);h(m,g,S,"↦","\\mapsto",!0);h(m,g,S,"⟼","\\longmapsto",!0);h(m,g,S,"↗","\\nearrow",!0);h(m,g,S,"↩","\\hookleftarrow",!0);h(m,g,S,"↪","\\hookrightarrow",!0);h(m,g,S,"↘","\\searrow",!0);h(m,g,S,"↼","\\leftharpoonup",!0);h(m,g,S,"⇀","\\rightharpoonup",!0);h(m,g,S,"↙","\\swarrow",!0);h(m,g,S,"↽","\\leftharpoondown",!0);h(m,g,S,"⇁","\\rightharpoondown",!0);h(m,g,S,"↖","\\nwarrow",!0);h(m,g,S,"⇌","\\rightleftharpoons",!0);h(m,v,S,"≮","\\nless",!0);h(m,v,S,"","\\@nleqslant");h(m,v,S,"","\\@nleqq");h(m,v,S,"⪇","\\lneq",!0);h(m,v,S,"≨","\\lneqq",!0);h(m,v,S,"","\\@lvertneqq");h(m,v,S,"⋦","\\lnsim",!0);h(m,v,S,"⪉","\\lnapprox",!0);h(m,v,S,"⊀","\\nprec",!0);h(m,v,S,"⋠","\\npreceq",!0);h(m,v,S,"⋨","\\precnsim",!0);h(m,v,S,"⪹","\\precnapprox",!0);h(m,v,S,"≁","\\nsim",!0);h(m,v,S,"","\\@nshortmid");h(m,v,S,"∤","\\nmid",!0);h(m,v,S,"⊬","\\nvdash",!0);h(m,v,S,"⊭","\\nvDash",!0);h(m,v,S,"⋪","\\ntriangleleft");h(m,v,S,"⋬","\\ntrianglelefteq",!0);h(m,v,S,"⊊","\\subsetneq",!0);h(m,v,S,"","\\@varsubsetneq");h(m,v,S,"⫋","\\subsetneqq",!0);h(m,v,S,"","\\@varsubsetneqq");h(m,v,S,"≯","\\ngtr",!0);h(m,v,S,"","\\@ngeqslant");h(m,v,S,"","\\@ngeqq");h(m,v,S,"⪈","\\gneq",!0);h(m,v,S,"≩","\\gneqq",!0);h(m,v,S,"","\\@gvertneqq");h(m,v,S,"⋧","\\gnsim",!0);h(m,v,S,"⪊","\\gnapprox",!0);h(m,v,S,"⊁","\\nsucc",!0);h(m,v,S,"⋡","\\nsucceq",!0);h(m,v,S,"⋩","\\succnsim",!0);h(m,v,S,"⪺","\\succnapprox",!0);h(m,v,S,"≆","\\ncong",!0);h(m,v,S,"","\\@nshortparallel");h(m,v,S,"∦","\\nparallel",!0);h(m,v,S,"⊯","\\nVDash",!0);h(m,v,S,"⋫","\\ntriangleright");h(m,v,S,"⋭","\\ntrianglerighteq",!0);h(m,v,S,"","\\@nsupseteqq");h(m,v,S,"⊋","\\supsetneq",!0);h(m,v,S,"","\\@varsupsetneq");h(m,v,S,"⫌","\\supsetneqq",!0);h(m,v,S,"","\\@varsupsetneqq");h(m,v,S,"⊮","\\nVdash",!0);h(m,v,S,"⪵","\\precneqq",!0);h(m,v,S,"⪶","\\succneqq",!0);h(m,v,S,"","\\@nsubseteqq");h(m,v,te,"⊴","\\unlhd");h(m,v,te,"⊵","\\unrhd");h(m,v,S,"↚","\\nleftarrow",!0);h(m,v,S,"↛","\\nrightarrow",!0);h(m,v,S,"⇍","\\nLeftarrow",!0);h(m,v,S,"⇏","\\nRightarrow",!0);h(m,v,S,"↮","\\nleftrightarrow",!0);h(m,v,S,"⇎","\\nLeftrightarrow",!0);h(m,v,S,"△","\\vartriangle");h(m,v,N,"ℏ","\\hslash");h(m,v,N,"▽","\\triangledown");h(m,v,N,"◊","\\lozenge");h(m,v,N,"Ⓢ","\\circledS");h(m,v,N,"®","\\circledR");h(H,v,N,"®","\\circledR");h(m,v,N,"∡","\\measuredangle",!0);h(m,v,N,"∄","\\nexists");h(m,v,N,"℧","\\mho");h(m,v,N,"Ⅎ","\\Finv",!0);h(m,v,N,"⅁","\\Game",!0);h(m,v,N,"‵","\\backprime");h(m,v,N,"▲","\\blacktriangle");h(m,v,N,"▼","\\blacktriangledown");h(m,v,N,"■","\\blacksquare");h(m,v,N,"⧫","\\blacklozenge");h(m,v,N,"★","\\bigstar");h(m,v,N,"∢","\\sphericalangle",!0);h(m,v,N,"∁","\\complement",!0);h(m,v,N,"ð","\\eth",!0);h(H,g,N,"ð","ð");h(m,v,N,"╱","\\diagup");h(m,v,N,"╲","\\diagdown");h(m,v,N,"□","\\square");h(m,v,N,"□","\\Box");h(m,v,N,"◊","\\Diamond");h(m,v,N,"¥","\\yen",!0);h(H,v,N,"¥","\\yen",!0);h(m,v,N,"✓","\\checkmark",!0);h(H,v,N,"✓","\\checkmark");h(m,v,N,"ℶ","\\beth",!0);h(m,v,N,"ℸ","\\daleth",!0);h(m,v,N,"ℷ","\\gimel",!0);h(m,v,N,"ϝ","\\digamma",!0);h(m,v,N,"ϰ","\\varkappa");h(m,v,st,"┌","\\@ulcorner",!0);h(m,v,Qe,"┐","\\@urcorner",!0);h(m,v,st,"└","\\@llcorner",!0);h(m,v,Qe,"┘","\\@lrcorner",!0);h(m,v,S,"≦","\\leqq",!0);h(m,v,S,"⩽","\\leqslant",!0);h(m,v,S,"⪕","\\eqslantless",!0);h(m,v,S,"≲","\\lesssim",!0);h(m,v,S,"⪅","\\lessapprox",!0);h(m,v,S,"≊","\\approxeq",!0);h(m,v,te,"⋖","\\lessdot");h(m,v,S,"⋘","\\lll",!0);h(m,v,S,"≶","\\lessgtr",!0);h(m,v,S,"⋚","\\lesseqgtr",!0);h(m,v,S,"⪋","\\lesseqqgtr",!0);h(m,v,S,"≑","\\doteqdot");h(m,v,S,"≓","\\risingdotseq",!0);h(m,v,S,"≒","\\fallingdotseq",!0);h(m,v,S,"∽","\\backsim",!0);h(m,v,S,"⋍","\\backsimeq",!0);h(m,v,S,"⫅","\\subseteqq",!0);h(m,v,S,"⋐","\\Subset",!0);h(m,v,S,"⊏","\\sqsubset",!0);h(m,v,S,"≼","\\preccurlyeq",!0);h(m,v,S,"⋞","\\curlyeqprec",!0);h(m,v,S,"≾","\\precsim",!0);h(m,v,S,"⪷","\\precapprox",!0);h(m,v,S,"⊲","\\vartriangleleft");h(m,v,S,"⊴","\\trianglelefteq");h(m,v,S,"⊨","\\vDash",!0);h(m,v,S,"⊪","\\Vvdash",!0);h(m,v,S,"⌣","\\smallsmile");h(m,v,S,"⌢","\\smallfrown");h(m,v,S,"≏","\\bumpeq",!0);h(m,v,S,"≎","\\Bumpeq",!0);h(m,v,S,"≧","\\geqq",!0);h(m,v,S,"⩾","\\geqslant",!0);h(m,v,S,"⪖","\\eqslantgtr",!0);h(m,v,S,"≳","\\gtrsim",!0);h(m,v,S,"⪆","\\gtrapprox",!0);h(m,v,te,"⋗","\\gtrdot");h(m,v,S,"⋙","\\ggg",!0);h(m,v,S,"≷","\\gtrless",!0);h(m,v,S,"⋛","\\gtreqless",!0);h(m,v,S,"⪌","\\gtreqqless",!0);h(m,v,S,"≖","\\eqcirc",!0);h(m,v,S,"≗","\\circeq",!0);h(m,v,S,"≜","\\triangleq",!0);h(m,v,S,"∼","\\thicksim");h(m,v,S,"≈","\\thickapprox");h(m,v,S,"⫆","\\supseteqq",!0);h(m,v,S,"⋑","\\Supset",!0);h(m,v,S,"⊐","\\sqsupset",!0);h(m,v,S,"≽","\\succcurlyeq",!0);h(m,v,S,"⋟","\\curlyeqsucc",!0);h(m,v,S,"≿","\\succsim",!0);h(m,v,S,"⪸","\\succapprox",!0);h(m,v,S,"⊳","\\vartriangleright");h(m,v,S,"⊵","\\trianglerighteq");h(m,v,S,"⊩","\\Vdash",!0);h(m,v,S,"∣","\\shortmid");h(m,v,S,"∥","\\shortparallel");h(m,v,S,"≬","\\between",!0);h(m,v,S,"⋔","\\pitchfork",!0);h(m,v,S,"∝","\\varpropto");h(m,v,S,"◀","\\blacktriangleleft");h(m,v,S,"∴","\\therefore",!0);h(m,v,S,"∍","\\backepsilon");h(m,v,S,"▶","\\blacktriangleright");h(m,v,S,"∵","\\because",!0);h(m,v,S,"⋘","\\llless");h(m,v,S,"⋙","\\gggtr");h(m,v,te,"⊲","\\lhd");h(m,v,te,"⊳","\\rhd");h(m,v,S,"≂","\\eqsim",!0);h(m,g,S,"⋈","\\Join");h(m,v,S,"≑","\\Doteq",!0);h(m,v,te,"∔","\\dotplus",!0);h(m,v,te,"∖","\\smallsetminus");h(m,v,te,"⋒","\\Cap",!0);h(m,v,te,"⋓","\\Cup",!0);h(m,v,te,"⩞","\\doublebarwedge",!0);h(m,v,te,"⊟","\\boxminus",!0);h(m,v,te,"⊞","\\boxplus",!0);h(m,v,te,"⋇","\\divideontimes",!0);h(m,v,te,"⋉","\\ltimes",!0);h(m,v,te,"⋊","\\rtimes",!0);h(m,v,te,"⋋","\\leftthreetimes",!0);h(m,v,te,"⋌","\\rightthreetimes",!0);h(m,v,te,"⋏","\\curlywedge",!0);h(m,v,te,"⋎","\\curlyvee",!0);h(m,v,te,"⊝","\\circleddash",!0);h(m,v,te,"⊛","\\circledast",!0);h(m,v,te,"⋅","\\centerdot");h(m,v,te,"⊺","\\intercal",!0);h(m,v,te,"⋒","\\doublecap");h(m,v,te,"⋓","\\doublecup");h(m,v,te,"⊠","\\boxtimes",!0);h(m,v,S,"⇢","\\dashrightarrow",!0);h(m,v,S,"⇠","\\dashleftarrow",!0);h(m,v,S,"⇇","\\leftleftarrows",!0);h(m,v,S,"⇆","\\leftrightarrows",!0);h(m,v,S,"⇚","\\Lleftarrow",!0);h(m,v,S,"↞","\\twoheadleftarrow",!0);h(m,v,S,"↢","\\leftarrowtail",!0);h(m,v,S,"↫","\\looparrowleft",!0);h(m,v,S,"⇋","\\leftrightharpoons",!0);h(m,v,S,"↶","\\curvearrowleft",!0);h(m,v,S,"↺","\\circlearrowleft",!0);h(m,v,S,"↰","\\Lsh",!0);h(m,v,S,"⇈","\\upuparrows",!0);h(m,v,S,"↿","\\upharpoonleft",!0);h(m,v,S,"⇃","\\downharpoonleft",!0);h(m,g,S,"⊶","\\origof",!0);h(m,g,S,"⊷","\\imageof",!0);h(m,v,S,"⊸","\\multimap",!0);h(m,v,S,"↭","\\leftrightsquigarrow",!0);h(m,v,S,"⇉","\\rightrightarrows",!0);h(m,v,S,"⇄","\\rightleftarrows",!0);h(m,v,S,"↠","\\twoheadrightarrow",!0);h(m,v,S,"↣","\\rightarrowtail",!0);h(m,v,S,"↬","\\looparrowright",!0);h(m,v,S,"↷","\\curvearrowright",!0);h(m,v,S,"↻","\\circlearrowright",!0);h(m,v,S,"↱","\\Rsh",!0);h(m,v,S,"⇊","\\downdownarrows",!0);h(m,v,S,"↾","\\upharpoonright",!0);h(m,v,S,"⇂","\\downharpoonright",!0);h(m,v,S,"⇝","\\rightsquigarrow",!0);h(m,v,S,"⇝","\\leadsto");h(m,v,S,"⇛","\\Rrightarrow",!0);h(m,v,S,"↾","\\restriction");h(m,g,N,"‘","`");h(m,g,N,"$","\\$");h(H,g,N,"$","\\$");h(H,g,N,"$","\\textdollar");h(m,g,N,"%","\\%");h(H,g,N,"%","\\%");h(m,g,N,"_","\\_");h(H,g,N,"_","\\_");h(H,g,N,"_","\\textunderscore");h(m,g,N,"∠","\\angle",!0);h(m,g,N,"∞","\\infty",!0);h(m,g,N,"′","\\prime");h(m,g,N,"△","\\triangle");h(m,g,N,"Γ","\\Gamma",!0);h(m,g,N,"Δ","\\Delta",!0);h(m,g,N,"Θ","\\Theta",!0);h(m,g,N,"Λ","\\Lambda",!0);h(m,g,N,"Ξ","\\Xi",!0);h(m,g,N,"Π","\\Pi",!0);h(m,g,N,"Σ","\\Sigma",!0);h(m,g,N,"Υ","\\Upsilon",!0);h(m,g,N,"Φ","\\Phi",!0);h(m,g,N,"Ψ","\\Psi",!0);h(m,g,N,"Ω","\\Omega",!0);h(m,g,N,"A","Α");h(m,g,N,"B","Β");h(m,g,N,"E","Ε");h(m,g,N,"Z","Ζ");h(m,g,N,"H","Η");h(m,g,N,"I","Ι");h(m,g,N,"K","Κ");h(m,g,N,"M","Μ");h(m,g,N,"N","Ν");h(m,g,N,"O","Ο");h(m,g,N,"P","Ρ");h(m,g,N,"T","Τ");h(m,g,N,"X","Χ");h(m,g,N,"¬","\\neg",!0);h(m,g,N,"¬","\\lnot");h(m,g,N,"⊤","\\top");h(m,g,N,"⊥","\\bot");h(m,g,N,"∅","\\emptyset");h(m,v,N,"∅","\\varnothing");h(m,g,se,"α","\\alpha",!0);h(m,g,se,"β","\\beta",!0);h(m,g,se,"γ","\\gamma",!0);h(m,g,se,"δ","\\delta",!0);h(m,g,se,"ϵ","\\epsilon",!0);h(m,g,se,"ζ","\\zeta",!0);h(m,g,se,"η","\\eta",!0);h(m,g,se,"θ","\\theta",!0);h(m,g,se,"ι","\\iota",!0);h(m,g,se,"κ","\\kappa",!0);h(m,g,se,"λ","\\lambda",!0);h(m,g,se,"μ","\\mu",!0);h(m,g,se,"ν","\\nu",!0);h(m,g,se,"ξ","\\xi",!0);h(m,g,se,"ο","\\omicron",!0);h(m,g,se,"π","\\pi",!0);h(m,g,se,"ρ","\\rho",!0);h(m,g,se,"σ","\\sigma",!0);h(m,g,se,"τ","\\tau",!0);h(m,g,se,"υ","\\upsilon",!0);h(m,g,se,"ϕ","\\phi",!0);h(m,g,se,"χ","\\chi",!0);h(m,g,se,"ψ","\\psi",!0);h(m,g,se,"ω","\\omega",!0);h(m,g,se,"ε","\\varepsilon",!0);h(m,g,se,"ϑ","\\vartheta",!0);h(m,g,se,"ϖ","\\varpi",!0);h(m,g,se,"ϱ","\\varrho",!0);h(m,g,se,"ς","\\varsigma",!0);h(m,g,se,"φ","\\varphi",!0);h(m,g,te,"∗","*",!0);h(m,g,te,"+","+");h(m,g,te,"−","-",!0);h(m,g,te,"⋅","\\cdot",!0);h(m,g,te,"∘","\\circ",!0);h(m,g,te,"÷","\\div",!0);h(m,g,te,"±","\\pm",!0);h(m,g,te,"×","\\times",!0);h(m,g,te,"∩","\\cap",!0);h(m,g,te,"∪","\\cup",!0);h(m,g,te,"∖","\\setminus",!0);h(m,g,te,"∧","\\land");h(m,g,te,"∨","\\lor");h(m,g,te,"∧","\\wedge",!0);h(m,g,te,"∨","\\vee",!0);h(m,g,N,"√","\\surd");h(m,g,st,"⟨","\\langle",!0);h(m,g,st,"∣","\\lvert");h(m,g,st,"∥","\\lVert");h(m,g,Qe,"?","?");h(m,g,Qe,"!","!");h(m,g,Qe,"⟩","\\rangle",!0);h(m,g,Qe,"∣","\\rvert");h(m,g,Qe,"∥","\\rVert");h(m,g,S,"=","=");h(m,g,S,":",":");h(m,g,S,"≈","\\approx",!0);h(m,g,S,"≅","\\cong",!0);h(m,g,S,"≥","\\ge");h(m,g,S,"≥","\\geq",!0);h(m,g,S,"←","\\gets");h(m,g,S,">","\\gt",!0);h(m,g,S,"∈","\\in",!0);h(m,g,S,"","\\@not");h(m,g,S,"⊂","\\subset",!0);h(m,g,S,"⊃","\\supset",!0);h(m,g,S,"⊆","\\subseteq",!0);h(m,g,S,"⊇","\\supseteq",!0);h(m,v,S,"⊈","\\nsubseteq",!0);h(m,v,S,"⊉","\\nsupseteq",!0);h(m,g,S,"⊨","\\models");h(m,g,S,"←","\\leftarrow",!0);h(m,g,S,"≤","\\le");h(m,g,S,"≤","\\leq",!0);h(m,g,S,"<","\\lt",!0);h(m,g,S,"→","\\rightarrow",!0);h(m,g,S,"→","\\to");h(m,v,S,"≱","\\ngeq",!0);h(m,v,S,"≰","\\nleq",!0);h(m,g,Vt," ","\\ ");h(m,g,Vt," ","\\space");h(m,g,Vt," ","\\nobreakspace");h(H,g,Vt," ","\\ ");h(H,g,Vt," "," ");h(H,g,Vt," ","\\space");h(H,g,Vt," ","\\nobreakspace");h(m,g,Vt,null,"\\nobreak");h(m,g,Vt,null,"\\allowbreak");h(m,g,a0,",",",");h(m,g,a0,";",";");h(m,v,te,"⊼","\\barwedge",!0);h(m,v,te,"⊻","\\veebar",!0);h(m,g,te,"⊙","\\odot",!0);h(m,g,te,"⊕","\\oplus",!0);h(m,g,te,"⊗","\\otimes",!0);h(m,g,N,"∂","\\partial",!0);h(m,g,te,"⊘","\\oslash",!0);h(m,v,te,"⊚","\\circledcirc",!0);h(m,v,te,"⊡","\\boxdot",!0);h(m,g,te,"△","\\bigtriangleup");h(m,g,te,"▽","\\bigtriangledown");h(m,g,te,"†","\\dagger");h(m,g,te,"⋄","\\diamond");h(m,g,te,"⋆","\\star");h(m,g,te,"◃","\\triangleleft");h(m,g,te,"▹","\\triangleright");h(m,g,st,"{","\\{");h(H,g,N,"{","\\{");h(H,g,N,"{","\\textbraceleft");h(m,g,Qe,"}","\\}");h(H,g,N,"}","\\}");h(H,g,N,"}","\\textbraceright");h(m,g,st,"{","\\lbrace");h(m,g,Qe,"}","\\rbrace");h(m,g,st,"[","\\lbrack",!0);h(H,g,N,"[","\\lbrack",!0);h(m,g,Qe,"]","\\rbrack",!0);h(H,g,N,"]","\\rbrack",!0);h(m,g,st,"(","\\lparen",!0);h(m,g,Qe,")","\\rparen",!0);h(H,g,N,"<","\\textless",!0);h(H,g,N,">","\\textgreater",!0);h(m,g,st,"⌊","\\lfloor",!0);h(m,g,Qe,"⌋","\\rfloor",!0);h(m,g,st,"⌈","\\lceil",!0);h(m,g,Qe,"⌉","\\rceil",!0);h(m,g,N,"\\","\\backslash");h(m,g,N,"∣","|");h(m,g,N,"∣","\\vert");h(H,g,N,"|","\\textbar",!0);h(m,g,N,"∥","\\|");h(m,g,N,"∥","\\Vert");h(H,g,N,"∥","\\textbardbl");h(H,g,N,"~","\\textasciitilde");h(H,g,N,"\\","\\textbackslash");h(H,g,N,"^","\\textasciicircum");h(m,g,S,"↑","\\uparrow",!0);h(m,g,S,"⇑","\\Uparrow",!0);h(m,g,S,"↓","\\downarrow",!0);h(m,g,S,"⇓","\\Downarrow",!0);h(m,g,S,"↕","\\updownarrow",!0);h(m,g,S,"⇕","\\Updownarrow",!0);h(m,g,Pe,"∐","\\coprod");h(m,g,Pe,"⋁","\\bigvee");h(m,g,Pe,"⋀","\\bigwedge");h(m,g,Pe,"⨄","\\biguplus");h(m,g,Pe,"⋂","\\bigcap");h(m,g,Pe,"⋃","\\bigcup");h(m,g,Pe,"∫","\\int");h(m,g,Pe,"∫","\\intop");h(m,g,Pe,"∬","\\iint");h(m,g,Pe,"∭","\\iiint");h(m,g,Pe,"∏","\\prod");h(m,g,Pe,"∑","\\sum");h(m,g,Pe,"⨂","\\bigotimes");h(m,g,Pe,"⨁","\\bigoplus");h(m,g,Pe,"⨀","\\bigodot");h(m,g,Pe,"∮","\\oint");h(m,g,Pe,"∯","\\oiint");h(m,g,Pe,"∰","\\oiiint");h(m,g,Pe,"⨆","\\bigsqcup");h(m,g,Pe,"∫","\\smallint");h(H,g,Or,"…","\\textellipsis");h(m,g,Or,"…","\\mathellipsis");h(H,g,Or,"…","\\ldots",!0);h(m,g,Or,"…","\\ldots",!0);h(m,g,Or,"⋯","\\@cdots",!0);h(m,g,Or,"⋱","\\ddots",!0);h(m,g,N,"⋮","\\varvdots");h(H,g,N,"⋮","\\varvdots");h(m,g,we,"ˊ","\\acute");h(m,g,we,"ˋ","\\grave");h(m,g,we,"¨","\\ddot");h(m,g,we,"~","\\tilde");h(m,g,we,"ˉ","\\bar");h(m,g,we,"˘","\\breve");h(m,g,we,"ˇ","\\check");h(m,g,we,"^","\\hat");h(m,g,we,"⃗","\\vec");h(m,g,we,"˙","\\dot");h(m,g,we,"˚","\\mathring");h(m,g,se,"","\\@imath");h(m,g,se,"","\\@jmath");h(m,g,N,"ı","ı");h(m,g,N,"ȷ","ȷ");h(H,g,N,"ı","\\i",!0);h(H,g,N,"ȷ","\\j",!0);h(H,g,N,"ß","\\ss",!0);h(H,g,N,"æ","\\ae",!0);h(H,g,N,"œ","\\oe",!0);h(H,g,N,"ø","\\o",!0);h(H,g,N,"Æ","\\AE",!0);h(H,g,N,"Œ","\\OE",!0);h(H,g,N,"Ø","\\O",!0);h(H,g,we,"ˊ","\\'");h(H,g,we,"ˋ","\\`");h(H,g,we,"ˆ","\\^");h(H,g,we,"˜","\\~");h(H,g,we,"ˉ","\\=");h(H,g,we,"˘","\\u");h(H,g,we,"˙","\\.");h(H,g,we,"¸","\\c");h(H,g,we,"˚","\\r");h(H,g,we,"ˇ","\\v");h(H,g,we,"¨",'\\"');h(H,g,we,"˝","\\H");h(H,g,we,"◯","\\textcircled");var el={"--":!0,"---":!0,"``":!0,"''":!0};h(H,g,N,"–","--",!0);h(H,g,N,"–","\\textendash");h(H,g,N,"—","---",!0);h(H,g,N,"—","\\textemdash");h(H,g,N,"‘","`",!0);h(H,g,N,"‘","\\textquoteleft");h(H,g,N,"’","'",!0);h(H,g,N,"’","\\textquoteright");h(H,g,N,"“","``",!0);h(H,g,N,"“","\\textquotedblleft");h(H,g,N,"”","''",!0);h(H,g,N,"”","\\textquotedblright");h(m,g,N,"°","\\degree",!0);h(H,g,N,"°","\\degree");h(H,g,N,"°","\\textdegree",!0);h(m,g,N,"£","\\pounds");h(m,g,N,"£","\\mathsterling",!0);h(H,g,N,"£","\\pounds");h(H,g,N,"£","\\textsterling",!0);h(m,v,N,"✠","\\maltese");h(H,v,N,"✠","\\maltese");var ru='0123456789/@."';for(var N0=0;N00)return Tt(i,c,a,r,u.concat(f));if(l){var d,b;if(l==="boldsymbol"){var p=gm(i,a,r,u,n);d=p.fontName,b=[p.fontClass]}else s?(d=nl[l].fontName,b=[l]):(d=Cn(l,r.fontWeight,r.fontShape),b=[l,r.fontWeight,r.fontShape]);if(i0(i,d,a).metrics)return Tt(i,d,a,r,u.concat(b));if(el.hasOwnProperty(i)&&d.slice(0,10)==="Typewriter"){for(var y=[],A=0;A{if(Zt(e.classes)!==Zt(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(e.classes.length===1){var r=e.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in e.style)if(e.style.hasOwnProperty(n)&&e.style[n]!==t.style[n])return!1;for(var a in t.style)if(t.style.hasOwnProperty(a)&&e.style[a]!==t.style[a])return!1;return!0},Tm=e=>{for(var t=0;tr&&(r=u.height),u.depth>n&&(n=u.depth),u.maxFontSize>a&&(a=u.maxFontSize)}t.height=r,t.depth=n,t.maxFontSize=a},Ze=function(t,r,n,a){var i=new gn(t,r,n,a);return Ha(i),i},tl=(e,t,r,n)=>new gn(e,t,r,n),ym=function(t,r,n){var a=Ze([t],[],r);return a.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),a.style.borderBottomWidth=X(a.height),a.maxFontSize=1,a},xm=function(t,r,n,a){var i=new Fa(t,r,n,a);return Ha(i),i},rl=function(t){var r=new pn(t);return Ha(r),r},vm=function(t,r){return t instanceof pn?Ze([],[t],r):t},Am=function(t){if(t.positionType==="individualShift"){for(var r=t.children,n=[r[0]],a=-r[0].shift-r[0].elem.depth,i=a,u=1;u{var r=Ze(["mspace"],[],t),n=_e(e,t);return r.style.marginRight=X(n),r},Cn=function(t,r,n){var a="";switch(t){case"amsrm":a="AMS";break;case"textrm":a="Main";break;case"textsf":a="SansSerif";break;case"texttt":a="Typewriter";break;default:a=t}var i;return r==="textbf"&&n==="textit"?i="BoldItalic":r==="textbf"?i="Bold":r==="textit"?i="Italic":i="Regular",a+"-"+i},nl={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},al={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},wm=function(t,r){var[n,a,i]=al[t],u=new er(n),s=new Ut([u],{width:X(a),height:X(i),style:"width:"+X(a),viewBox:"0 0 "+1e3*a+" "+1e3*i,preserveAspectRatio:"xMinYMin"}),l=tl(["overlay"],[s],r);return l.height=i,l.style.height=X(i),l.style.width=X(a),l},L={fontMap:nl,makeSymbol:Tt,mathsym:pm,makeSpan:Ze,makeSvgSpan:tl,makeLineSpan:ym,makeAnchor:xm,makeFragment:rl,wrapFragment:vm,makeVList:Sm,makeOrd:bm,makeGlue:km,staticSvg:wm,svgData:al,tryCombineChars:Tm},Ce={number:3,unit:"mu"},lr={number:4,unit:"mu"},Pt={number:5,unit:"mu"},Cm={mord:{mop:Ce,mbin:lr,mrel:Pt,minner:Ce},mop:{mord:Ce,mop:Ce,mrel:Pt,minner:Ce},mbin:{mord:lr,mop:lr,mopen:lr,minner:lr},mrel:{mord:Pt,mop:Pt,mopen:Pt,minner:Pt},mopen:{},mclose:{mop:Ce,mbin:lr,mrel:Pt,minner:Ce},mpunct:{mord:Ce,mop:Ce,mrel:Pt,mopen:Ce,mclose:Ce,mpunct:Ce,minner:Ce},minner:{mord:Ce,mop:Ce,mbin:lr,mrel:Pt,mopen:Ce,mpunct:Ce,minner:Ce}},_m={mord:{mop:Ce},mop:{mord:Ce,mop:Ce},mbin:{},mrel:{},mopen:{},mclose:{mop:Ce},mpunct:{},minner:{mop:Ce}},il={},Vn={},Gn={};function ee(e){for(var{type:t,names:r,props:n,handler:a,htmlBuilder:i,mathmlBuilder:u}=e,s={type:t,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:a},l=0;l{var D=A.classes[0],C=y.classes[0];D==="mbin"&&ue.contains(Nm,C)?A.classes[0]="mord":C==="mbin"&&ue.contains(Im,D)&&(y.classes[0]="mord")},{node:d},b,p),su(i,(y,A)=>{var D=oa(A),C=oa(y),I=D&&C?y.hasClass("mtight")?_m[D][C]:Cm[D][C]:null;if(I)return L.makeGlue(I,c)},{node:d},b,p),i},su=function e(t,r,n,a,i){a&&t.push(a);for(var u=0;ub=>{t.splice(d+1,0,b),u++})(u)}a&&t.pop()},ul=function(t){return t instanceof pn||t instanceof Fa||t instanceof gn&&t.hasClass("enclosing")?t:null},Lm=function e(t,r){var n=ul(t);if(n){var a=n.children;if(a.length){if(r==="right")return e(a[a.length-1],"right");if(r==="left")return e(a[0],"left")}}return t},oa=function(t,r){return t?(r&&(t=Lm(t,r)),Om[t.classes[0]]||null):null},sn=function(t,r){var n=["nulldelimiter"].concat(t.baseSizingClasses());return qt(r.concat(n))},be=function(t,r,n){if(!t)return qt();if(Vn[t.type]){var a=Vn[t.type](t,r);if(n&&r.size!==n.size){a=qt(r.sizingClasses(n),[a],r);var i=r.sizeMultiplier/n.sizeMultiplier;a.height*=i,a.depth*=i}return a}else throw new V("Got group of unknown type: '"+t.type+"'")};function _n(e,t){var r=qt(["base"],e,t),n=qt(["strut"]);return n.style.height=X(r.height+r.depth),r.depth&&(n.style.verticalAlign=X(-r.depth)),r.children.unshift(n),r}function ca(e,t){var r=null;e.length===1&&e[0].type==="tag"&&(r=e[0].tag,e=e[0].body);var n=Be(e,t,"root"),a;n.length===2&&n[1].hasClass("tag")&&(a=n.pop());for(var i=[],u=[],s=0;s0&&(i.push(_n(u,t)),u=[]),i.push(n[s]));u.length>0&&i.push(_n(u,t));var c;r?(c=_n(Be(r,t,!0)),c.classes=["tag"],i.push(c)):a&&i.push(a);var f=qt(["katex-html"],i);if(f.setAttribute("aria-hidden","true"),c){var d=c.children[0];d.style.height=X(f.height+f.depth),f.depth&&(d.style.verticalAlign=X(-f.depth))}return f}function sl(e){return new pn(e)}class it{constructor(t,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=t,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(t,r){this.attributes[t]=r}getAttribute(t){return this.attributes[t]}toNode(){var t=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&t.setAttribute(r,this.attributes[r]);this.classes.length>0&&(t.className=Zt(this.classes));for(var n=0;n0&&(t+=' class ="'+ue.escape(Zt(this.classes))+'"'),t+=">";for(var n=0;n",t}toText(){return this.children.map(t=>t.toText()).join("")}}class Ct{constructor(t){this.text=void 0,this.text=t}toNode(){return document.createTextNode(this.text)}toMarkup(){return ue.escape(this.toText())}toText(){return this.text}}class Mm{constructor(t){this.width=void 0,this.character=void 0,this.width=t,t>=.05555&&t<=.05556?this.character=" ":t>=.1666&&t<=.1667?this.character=" ":t>=.2222&&t<=.2223?this.character=" ":t>=.2777&&t<=.2778?this.character="  ":t>=-.05556&&t<=-.05555?this.character=" ⁣":t>=-.1667&&t<=-.1666?this.character=" ⁣":t>=-.2223&&t<=-.2222?this.character=" ⁣":t>=-.2778&&t<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var t=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return t.setAttribute("width",X(this.width)),t}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var q={MathNode:it,TextNode:Ct,SpaceNode:Mm,newDocumentFragment:sl},mt=function(t,r,n){return Ae[r][t]&&Ae[r][t].replace&&t.charCodeAt(0)!==55349&&!(el.hasOwnProperty(t)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(t=Ae[r][t].replace),new q.TextNode(t)},za=function(t){return t.length===1?t[0]:new q.MathNode("mrow",t)},Ua=function(t,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var a=t.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return t.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathsfit")return"sans-serif-italic";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var i=t.text;if(ue.contains(["\\imath","\\jmath"],i))return null;Ae[a][i]&&Ae[a][i].replace&&(i=Ae[a][i].replace);var u=L.fontMap[n].fontName;return Ba(i,u,a)?L.fontMap[n].variant:null};function M0(e){if(!e)return!1;if(e.type==="mi"&&e.children.length===1){var t=e.children[0];return t instanceof Ct&&t.text==="."}else if(e.type==="mo"&&e.children.length===1&&e.getAttribute("separator")==="true"&&e.getAttribute("lspace")==="0em"&&e.getAttribute("rspace")==="0em"){var r=e.children[0];return r instanceof Ct&&r.text===","}else return!1}var et=function(t,r,n){if(t.length===1){var a=xe(t[0],r);return n&&a instanceof it&&a.type==="mo"&&(a.setAttribute("lspace","0em"),a.setAttribute("rspace","0em")),[a]}for(var i=[],u,s=0;s=1&&(u.type==="mn"||M0(u))){var c=l.children[0];c instanceof it&&c.type==="mn"&&(c.children=[...u.children,...c.children],i.pop())}else if(u.type==="mi"&&u.children.length===1){var f=u.children[0];if(f instanceof Ct&&f.text==="̸"&&(l.type==="mo"||l.type==="mi"||l.type==="mn")){var d=l.children[0];d instanceof Ct&&d.text.length>0&&(d.text=d.text.slice(0,1)+"̸"+d.text.slice(1),i.pop())}}}i.push(l),u=l}return i},tr=function(t,r,n){return za(et(t,r,n))},xe=function(t,r){if(!t)return new q.MathNode("mrow");if(Gn[t.type]){var n=Gn[t.type](t,r);return n}else throw new V("Got group of unknown type: '"+t.type+"'")};function lu(e,t,r,n,a){var i=et(e,r),u;i.length===1&&i[0]instanceof it&&ue.contains(["mrow","mtable"],i[0].type)?u=i[0]:u=new q.MathNode("mrow",i);var s=new q.MathNode("annotation",[new q.TextNode(t)]);s.setAttribute("encoding","application/x-tex");var l=new q.MathNode("semantics",[u,s]),c=new q.MathNode("math",[l]);c.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&c.setAttribute("display","block");var f=a?"katex":"katex-mathml";return L.makeSpan([f],[c])}var ll=function(t){return new Bt({style:t.displayMode?le.DISPLAY:le.TEXT,maxSize:t.maxSize,minRuleThickness:t.minRuleThickness})},ol=function(t,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),t=L.makeSpan(n,[t])}return t},Rm=function(t,r,n){var a=ll(n),i;if(n.output==="mathml")return lu(t,r,a,n.displayMode,!0);if(n.output==="html"){var u=ca(t,a);i=L.makeSpan(["katex"],[u])}else{var s=lu(t,r,a,n.displayMode,!1),l=ca(t,a);i=L.makeSpan(["katex"],[s,l])}return ol(i,n)},Pm=function(t,r,n){var a=ll(n),i=ca(t,a),u=L.makeSpan(["katex"],[i]);return ol(u,n)},Bm={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},Fm=function(t){var r=new q.MathNode("mo",[new q.TextNode(Bm[t.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},Hm={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},zm=function(t){return t.type==="ordgroup"?t.body.length:1},Um=function(t,r){function n(){var s=4e5,l=t.label.slice(1);if(ue.contains(["widehat","widecheck","widetilde","utilde"],l)){var c=t,f=zm(c.base),d,b,p;if(f>5)l==="widehat"||l==="widecheck"?(d=420,s=2364,p=.42,b=l+"4"):(d=312,s=2340,p=.34,b="tilde4");else{var y=[1,1,2,2,3,3][f];l==="widehat"||l==="widecheck"?(s=[0,1062,2364,2364,2364][y],d=[0,239,300,360,420][y],p=[0,.24,.3,.3,.36,.42][y],b=l+y):(s=[0,600,1033,2339,2340][y],d=[0,260,286,306,312][y],p=[0,.26,.286,.3,.306,.34][y],b="tilde"+y)}var A=new er(b),D=new Ut([A],{width:"100%",height:X(p),viewBox:"0 0 "+s+" "+d,preserveAspectRatio:"none"});return{span:L.makeSvgSpan([],[D],r),minWidth:0,height:p}}else{var C=[],I=Hm[l],[R,W,Y]=I,M=Y/1e3,Q=R.length,ie,J;if(Q===1){var P=I[3];ie=["hide-tail"],J=[P]}else if(Q===2)ie=["halfarrow-left","halfarrow-right"],J=["xMinYMin","xMaxYMin"];else if(Q===3)ie=["brace-left","brace-center","brace-right"],J=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+Q+" children.");for(var Z=0;Z0&&(a.style.minWidth=X(i)),a},qm=function(t,r,n,a,i){var u,s=t.height+t.depth+n+a;if(/fbox|color|angl/.test(r)){if(u=L.makeSpan(["stretchy",r],[],i),r==="fbox"){var l=i.color&&i.getColor();l&&(u.style.borderColor=l)}}else{var c=[];/^[bx]cancel$/.test(r)&&c.push(new sa({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&c.push(new sa({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var f=new Ut(c,{width:"100%",height:X(s)});u=L.makeSvgSpan([],[f],i)}return u.height=s,u.style.height=X(s),u},Yt={encloseSpan:qm,mathMLnode:Fm,svgSpan:Um};function de(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function qa(e){var t=u0(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function u0(e){return e&&(e.type==="atom"||fm.hasOwnProperty(e.type))?e:null}var Ya=(e,t)=>{var r,n,a;e&&e.type==="supsub"?(n=de(e.base,"accent"),r=n.base,e.base=r,a=hm(be(e,t)),e.base=n):(n=de(e,"accent"),r=n.base);var i=be(r,t.havingCrampedStyle()),u=n.isShifty&&ue.isCharacterBox(r),s=0;if(u){var l=ue.getBaseElem(r),c=be(l,t.havingCrampedStyle());s=tu(c).skew}var f=n.label==="\\c",d=f?i.height+i.depth:Math.min(i.height,t.fontMetrics().xHeight),b;if(n.isStretchy)b=Yt.svgSpan(n,t),b=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:b,wrapperClasses:["svg-align"],wrapperStyle:s>0?{width:"calc(100% - "+X(2*s)+")",marginLeft:X(2*s)}:void 0}]},t);else{var p,y;n.label==="\\vec"?(p=L.staticSvg("vec",t),y=L.svgData.vec[1]):(p=L.makeOrd({mode:n.mode,text:n.label},t,"textord"),p=tu(p),p.italic=0,y=p.width,f&&(d+=p.depth)),b=L.makeSpan(["accent-body"],[p]);var A=n.label==="\\textcircled";A&&(b.classes.push("accent-full"),d=i.height);var D=s;A||(D-=y/2),b.style.left=X(D),n.label==="\\textcircled"&&(b.style.top=".2em"),b=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-d},{type:"elem",elem:b}]},t)}var C=L.makeSpan(["mord","accent"],[b],t);return a?(a.children[0]=C,a.height=Math.max(C.height,a.height),a.classes[0]="mord",a):C},cl=(e,t)=>{var r=e.isStretchy?Yt.mathMLnode(e.label):new q.MathNode("mo",[mt(e.label,e.mode)]),n=new q.MathNode("mover",[xe(e.base,t),r]);return n.setAttribute("accent","true"),n},Ym=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(e=>"\\"+e).join("|"));ee({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{var r=Wn(t[0]),n=!Ym.test(e.funcName),a=!n||e.funcName==="\\widehat"||e.funcName==="\\widetilde"||e.funcName==="\\widecheck";return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:n,isShifty:a,base:r}},htmlBuilder:Ya,mathmlBuilder:cl});ee({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(e,t)=>{var r=t[0],n=e.parser.mode;return n==="math"&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Ya,mathmlBuilder:cl});ee({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{var{parser:r,funcName:n}=e,a=t[0];return{type:"accentUnder",mode:r.mode,label:n,base:a}},htmlBuilder:(e,t)=>{var r=be(e.base,t),n=Yt.svgSpan(e,t),a=e.label==="\\utilde"?.12:0,i=L.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:a},{type:"elem",elem:r}]},t);return L.makeSpan(["mord","accentunder"],[i],t)},mathmlBuilder:(e,t)=>{var r=Yt.mathMLnode(e.label),n=new q.MathNode("munder",[xe(e.base,t),r]);return n.setAttribute("accentunder","true"),n}});var In=e=>{var t=new q.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};ee({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:n,funcName:a}=e;return{type:"xArrow",mode:n.mode,label:a,body:t[0],below:r[0]}},htmlBuilder(e,t){var r=t.style,n=t.havingStyle(r.sup()),a=L.wrapFragment(be(e.body,n,t),t),i=e.label.slice(0,2)==="\\x"?"x":"cd";a.classes.push(i+"-arrow-pad");var u;e.below&&(n=t.havingStyle(r.sub()),u=L.wrapFragment(be(e.below,n,t),t),u.classes.push(i+"-arrow-pad"));var s=Yt.svgSpan(e,t),l=-t.fontMetrics().axisHeight+.5*s.height,c=-t.fontMetrics().axisHeight-.5*s.height-.111;(a.depth>.25||e.label==="\\xleftequilibrium")&&(c-=a.depth);var f;if(u){var d=-t.fontMetrics().axisHeight+u.height+.5*s.height+.111;f=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:c},{type:"elem",elem:s,shift:l},{type:"elem",elem:u,shift:d}]},t)}else f=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:c},{type:"elem",elem:s,shift:l}]},t);return f.children[0].children[0].children[1].classes.push("svg-align"),L.makeSpan(["mrel","x-arrow"],[f],t)},mathmlBuilder(e,t){var r=Yt.mathMLnode(e.label);r.setAttribute("minsize",e.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(e.body){var a=In(xe(e.body,t));if(e.below){var i=In(xe(e.below,t));n=new q.MathNode("munderover",[r,i,a])}else n=new q.MathNode("mover",[r,a])}else if(e.below){var u=In(xe(e.below,t));n=new q.MathNode("munder",[r,u])}else n=In(),n=new q.MathNode("mover",[r,n]);return n}});var Vm=L.makeSpan;function hl(e,t){var r=Be(e.body,t,!0);return Vm([e.mclass],r,t)}function dl(e,t){var r,n=et(e.body,t);return e.mclass==="minner"?r=new q.MathNode("mpadded",n):e.mclass==="mord"?e.isCharacterBox?(r=n[0],r.type="mi"):r=new q.MathNode("mi",n):(e.isCharacterBox?(r=n[0],r.type="mo"):r=new q.MathNode("mo",n),e.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):e.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):e.mclass==="mopen"||e.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):e.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}ee({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){var{parser:r,funcName:n}=e,a=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:Oe(a),isCharacterBox:ue.isCharacterBox(a)}},htmlBuilder:hl,mathmlBuilder:dl});var s0=e=>{var t=e.type==="ordgroup"&&e.body.length?e.body[0]:e;return t.type==="atom"&&(t.family==="bin"||t.family==="rel")?"m"+t.family:"mord"};ee({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){var{parser:r}=e;return{type:"mclass",mode:r.mode,mclass:s0(t[0]),body:Oe(t[1]),isCharacterBox:ue.isCharacterBox(t[1])}}});ee({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var{parser:r,funcName:n}=e,a=t[1],i=t[0],u;n!=="\\stackrel"?u=s0(a):u="mrel";var s={type:"op",mode:a.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:Oe(a)},l={type:"supsub",mode:i.mode,base:s,sup:n==="\\underset"?null:i,sub:n==="\\underset"?i:null};return{type:"mclass",mode:r.mode,mclass:u,body:[l],isCharacterBox:ue.isCharacterBox(l)}},htmlBuilder:hl,mathmlBuilder:dl});ee({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"pmb",mode:r.mode,mclass:s0(t[0]),body:Oe(t[0])}},htmlBuilder(e,t){var r=Be(e.body,t,!0),n=L.makeSpan([e.mclass],r,t);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(e,t){var r=et(e.body,t),n=new q.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});var Gm={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},ou=()=>({type:"styling",body:[],mode:"math",style:"display"}),cu=e=>e.type==="textord"&&e.text==="@",Wm=(e,t)=>(e.type==="mathord"||e.type==="atom")&&e.text===t;function Xm(e,t,r){var n=Gm[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{var a=r.callFunction("\\\\cdleft",[t[0]],[]),i={type:"atom",text:n,mode:"math",family:"rel"},u=r.callFunction("\\Big",[i],[]),s=r.callFunction("\\\\cdright",[t[1]],[]),l={type:"ordgroup",mode:"math",body:[a,u,s]};return r.callFunction("\\\\cdparent",[l],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var c={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[c],[])}default:return{type:"textord",text:" ",mode:"math"}}}function jm(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if(r==="&"||r==="\\\\")e.consume();else if(r==="\\end"){t[t.length-1].length===0&&t.pop();break}else throw new V("Expected \\\\ or \\cr or \\end",e.nextToken)}for(var n=[],a=[n],i=0;i-1))if("<>AV".indexOf(c)>-1)for(var d=0;d<2;d++){for(var b=!0,p=l+1;pAV=|." after @',u[l]);var y=Xm(c,f,e),A={type:"styling",body:[y],mode:"math",style:"display"};n.push(A),s=ou()}i%2===0?n.push(s):n.shift(),n=[],a.push(n)}e.gullet.endGroup(),e.gullet.endGroup();var D=new Array(a[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:a,arraystretch:1,addJot:!0,rowGaps:[null],cols:D,colSeparationType:"CD",hLinesBeforeRow:new Array(a.length+1).fill([])}}ee({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:n}=e;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:t[0]}},htmlBuilder(e,t){var r=t.havingStyle(t.style.sup()),n=L.wrapFragment(be(e.label,r,t),t);return n.classes.push("cd-label-"+e.side),n.style.bottom=X(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(e,t){var r=new q.MathNode("mrow",[xe(e.label,t)]);return r=new q.MathNode("mpadded",[r]),r.setAttribute("width","0"),e.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new q.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});ee({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){var{parser:r}=e;return{type:"cdlabelparent",mode:r.mode,fragment:t[0]}},htmlBuilder(e,t){var r=L.wrapFragment(be(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(e,t){return new q.MathNode("mrow",[xe(e.fragment,t)])}});ee({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){for(var{parser:r}=e,n=de(t[0],"ordgroup"),a=n.body,i="",u=0;u=1114111)throw new V("\\@char with invalid code point "+i);return l<=65535?c=String.fromCharCode(l):(l-=65536,c=String.fromCharCode((l>>10)+55296,(l&1023)+56320)),{type:"textord",mode:r.mode,text:c}}});var fl=(e,t)=>{var r=Be(e.body,t.withColor(e.color),!1);return L.makeFragment(r)},ml=(e,t)=>{var r=et(e.body,t.withColor(e.color)),n=new q.MathNode("mstyle",r);return n.setAttribute("mathcolor",e.color),n};ee({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){var{parser:r}=e,n=de(t[0],"color-token").color,a=t[1];return{type:"color",mode:r.mode,color:n,body:Oe(a)}},htmlBuilder:fl,mathmlBuilder:ml});ee({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){var{parser:r,breakOnTokenText:n}=e,a=de(t[0],"color-token").color;r.gullet.macros.set("\\current@color",a);var i=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:a,body:i}},htmlBuilder:fl,mathmlBuilder:ml});ee({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,r){var{parser:n}=e,a=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,i=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:i,size:a&&de(a,"size").value}},htmlBuilder(e,t){var r=L.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=X(_e(e.size,t)))),r},mathmlBuilder(e,t){var r=new q.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",X(_e(e.size,t)))),r}});var ha={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},pl=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new V("Expected a control sequence",e);return t},Qm=e=>{var t=e.gullet.popToken();return t.text==="="&&(t=e.gullet.popToken(),t.text===" "&&(t=e.gullet.popToken())),t},gl=(e,t,r,n)=>{var a=e.gullet.macros.get(r.text);a==null&&(r.noexpand=!0,a={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,a,n)};ee({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t,funcName:r}=e;t.consumeSpaces();var n=t.fetch();if(ha[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=ha[n.text]),de(t.parseFunction(),"internal");throw new V("Invalid token after macro prefix",n)}});ee({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,n=t.gullet.popToken(),a=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(a))throw new V("Expected a control sequence",n);for(var i=0,u,s=[[]];t.gullet.future().text!=="{";)if(n=t.gullet.popToken(),n.text==="#"){if(t.gullet.future().text==="{"){u=t.gullet.future(),s[i].push("{");break}if(n=t.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new V('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==i+1)throw new V('Argument number "'+n.text+'" out of order');i++,s.push([])}else{if(n.text==="EOF")throw new V("Expected a macro definition");s[i].push(n.text)}var{tokens:l}=t.gullet.consumeArg();return u&&l.unshift(u),(r==="\\edef"||r==="\\xdef")&&(l=t.gullet.expandTokens(l),l.reverse()),t.gullet.macros.set(a,{tokens:l,numArgs:i,delimiters:s},r===ha[r]),{type:"internal",mode:t.mode}}});ee({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,n=pl(t.gullet.popToken());t.gullet.consumeSpaces();var a=Qm(t);return gl(t,n,a,r==="\\\\globallet"),{type:"internal",mode:t.mode}}});ee({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,n=pl(t.gullet.popToken()),a=t.gullet.popToken(),i=t.gullet.popToken();return gl(t,n,i,r==="\\\\globalfuture"),t.gullet.pushToken(i),t.gullet.pushToken(a),{type:"internal",mode:t.mode}}});var Xr=function(t,r,n){var a=Ae.math[t]&&Ae.math[t].replace,i=Ba(a||t,r,n);if(!i)throw new Error("Unsupported symbol "+t+" and font size "+r+".");return i},Va=function(t,r,n,a){var i=n.havingBaseStyle(r),u=L.makeSpan(a.concat(i.sizingClasses(n)),[t],n),s=i.sizeMultiplier/n.sizeMultiplier;return u.height*=s,u.depth*=s,u.maxFontSize=i.sizeMultiplier,u},bl=function(t,r,n){var a=r.havingBaseStyle(n),i=(1-r.sizeMultiplier/a.sizeMultiplier)*r.fontMetrics().axisHeight;t.classes.push("delimcenter"),t.style.top=X(i),t.height-=i,t.depth+=i},$m=function(t,r,n,a,i,u){var s=L.makeSymbol(t,"Main-Regular",i,a),l=Va(s,r,a,u);return n&&bl(l,a,r),l},Km=function(t,r,n,a){return L.makeSymbol(t,"Size"+r+"-Regular",n,a)},El=function(t,r,n,a,i,u){var s=Km(t,r,i,a),l=Va(L.makeSpan(["delimsizing","size"+r],[s],a),le.TEXT,a,u);return n&&bl(l,a,le.TEXT),l},R0=function(t,r,n){var a;r==="Size1-Regular"?a="delim-size1":a="delim-size4";var i=L.makeSpan(["delimsizinginner",a],[L.makeSpan([],[L.makeSymbol(t,r,n)])]);return{type:"elem",elem:i}},P0=function(t,r,n){var a=wt["Size4-Regular"][t.charCodeAt(0)]?wt["Size4-Regular"][t.charCodeAt(0)][4]:wt["Size1-Regular"][t.charCodeAt(0)][4],i=new er("inner",nm(t,Math.round(1e3*r))),u=new Ut([i],{width:X(a),height:X(r),style:"width:"+X(a),viewBox:"0 0 "+1e3*a+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),s=L.makeSvgSpan([],[u],n);return s.height=r,s.style.height=X(r),s.style.width=X(a),{type:"elem",elem:s}},da=.008,Nn={type:"kern",size:-1*da},Jm=["|","\\lvert","\\rvert","\\vert"],Zm=["\\|","\\lVert","\\rVert","\\Vert"],Tl=function(t,r,n,a,i,u){var s,l,c,f,d="",b=0;s=c=f=t,l=null;var p="Size1-Regular";t==="\\uparrow"?c=f="⏐":t==="\\Uparrow"?c=f="‖":t==="\\downarrow"?s=c="⏐":t==="\\Downarrow"?s=c="‖":t==="\\updownarrow"?(s="\\uparrow",c="⏐",f="\\downarrow"):t==="\\Updownarrow"?(s="\\Uparrow",c="‖",f="\\Downarrow"):ue.contains(Jm,t)?(c="∣",d="vert",b=333):ue.contains(Zm,t)?(c="∥",d="doublevert",b=556):t==="["||t==="\\lbrack"?(s="⎡",c="⎢",f="⎣",p="Size4-Regular",d="lbrack",b=667):t==="]"||t==="\\rbrack"?(s="⎤",c="⎥",f="⎦",p="Size4-Regular",d="rbrack",b=667):t==="\\lfloor"||t==="⌊"?(c=s="⎢",f="⎣",p="Size4-Regular",d="lfloor",b=667):t==="\\lceil"||t==="⌈"?(s="⎡",c=f="⎢",p="Size4-Regular",d="lceil",b=667):t==="\\rfloor"||t==="⌋"?(c=s="⎥",f="⎦",p="Size4-Regular",d="rfloor",b=667):t==="\\rceil"||t==="⌉"?(s="⎤",c=f="⎥",p="Size4-Regular",d="rceil",b=667):t==="("||t==="\\lparen"?(s="⎛",c="⎜",f="⎝",p="Size4-Regular",d="lparen",b=875):t===")"||t==="\\rparen"?(s="⎞",c="⎟",f="⎠",p="Size4-Regular",d="rparen",b=875):t==="\\{"||t==="\\lbrace"?(s="⎧",l="⎨",f="⎩",c="⎪",p="Size4-Regular"):t==="\\}"||t==="\\rbrace"?(s="⎫",l="⎬",f="⎭",c="⎪",p="Size4-Regular"):t==="\\lgroup"||t==="⟮"?(s="⎧",f="⎩",c="⎪",p="Size4-Regular"):t==="\\rgroup"||t==="⟯"?(s="⎫",f="⎭",c="⎪",p="Size4-Regular"):t==="\\lmoustache"||t==="⎰"?(s="⎧",f="⎭",c="⎪",p="Size4-Regular"):(t==="\\rmoustache"||t==="⎱")&&(s="⎫",f="⎩",c="⎪",p="Size4-Regular");var y=Xr(s,p,i),A=y.height+y.depth,D=Xr(c,p,i),C=D.height+D.depth,I=Xr(f,p,i),R=I.height+I.depth,W=0,Y=1;if(l!==null){var M=Xr(l,p,i);W=M.height+M.depth,Y=2}var Q=A+R+W,ie=Math.max(0,Math.ceil((r-Q)/(Y*C))),J=Q+ie*Y*C,P=a.fontMetrics().axisHeight;n&&(P*=a.sizeMultiplier);var Z=J/2-P,$=[];if(d.length>0){var re=J-A-R,K=Math.round(J*1e3),ae=am(d,Math.round(re*1e3)),Ee=new er(d,ae),Se=(b/1e3).toFixed(3)+"em",Fe=(K/1e3).toFixed(3)+"em",tt=new Ut([Ee],{width:Se,height:Fe,viewBox:"0 0 "+b+" "+K}),w=L.makeSvgSpan([],[tt],a);w.height=K/1e3,w.style.width=Se,w.style.height=Fe,$.push({type:"elem",elem:w})}else{if($.push(R0(f,p,i)),$.push(Nn),l===null){var Le=J-A-R+2*da;$.push(P0(c,Le,a))}else{var Ie=(J-A-R-W)/2+2*da;$.push(P0(c,Ie,a)),$.push(Nn),$.push(R0(l,p,i)),$.push(Nn),$.push(P0(c,Ie,a))}$.push(Nn),$.push(R0(s,p,i))}var _=a.havingBaseStyle(le.TEXT),Ve=L.makeVList({positionType:"bottom",positionData:Z,children:$},_);return Va(L.makeSpan(["delimsizing","mult"],[Ve],_),le.TEXT,a,u)},B0=80,F0=.08,H0=function(t,r,n,a,i){var u=rm(t,a,n),s=new er(t,u),l=new Ut([s],{width:"400em",height:X(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return L.makeSvgSpan(["hide-tail"],[l],i)},e4=function(t,r){var n=r.havingBaseSizing(),a=Al("\\surd",t*n.sizeMultiplier,vl,n),i=n.sizeMultiplier,u=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),s,l=0,c=0,f=0,d;return a.type==="small"?(f=1e3+1e3*u+B0,t<1?i=1:t<1.4&&(i=.7),l=(1+u+F0)/i,c=(1+u)/i,s=H0("sqrtMain",l,f,u,r),s.style.minWidth="0.853em",d=.833/i):a.type==="large"?(f=(1e3+B0)*Kr[a.size],c=(Kr[a.size]+u)/i,l=(Kr[a.size]+u+F0)/i,s=H0("sqrtSize"+a.size,l,f,u,r),s.style.minWidth="1.02em",d=1/i):(l=t+u+F0,c=t+u,f=Math.floor(1e3*t+u)+B0,s=H0("sqrtTall",l,f,u,r),s.style.minWidth="0.742em",d=1.056),s.height=c,s.style.height=X(l),{span:s,advanceWidth:d,ruleWidth:(r.fontMetrics().sqrtRuleThickness+u)*i}},yl=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],t4=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],xl=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Kr=[0,1.2,1.8,2.4,3],r4=function(t,r,n,a,i){if(t==="<"||t==="\\lt"||t==="⟨"?t="\\langle":(t===">"||t==="\\gt"||t==="⟩")&&(t="\\rangle"),ue.contains(yl,t)||ue.contains(xl,t))return El(t,r,!1,n,a,i);if(ue.contains(t4,t))return Tl(t,Kr[r],!1,n,a,i);throw new V("Illegal delimiter: '"+t+"'")},n4=[{type:"small",style:le.SCRIPTSCRIPT},{type:"small",style:le.SCRIPT},{type:"small",style:le.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],a4=[{type:"small",style:le.SCRIPTSCRIPT},{type:"small",style:le.SCRIPT},{type:"small",style:le.TEXT},{type:"stack"}],vl=[{type:"small",style:le.SCRIPTSCRIPT},{type:"small",style:le.SCRIPT},{type:"small",style:le.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],i4=function(t){if(t.type==="small")return"Main-Regular";if(t.type==="large")return"Size"+t.size+"-Regular";if(t.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+t.type+"' here.")},Al=function(t,r,n,a){for(var i=Math.min(2,3-a.style.size),u=i;ur)return n[u]}return n[n.length-1]},Sl=function(t,r,n,a,i,u){t==="<"||t==="\\lt"||t==="⟨"?t="\\langle":(t===">"||t==="\\gt"||t==="⟩")&&(t="\\rangle");var s;ue.contains(xl,t)?s=n4:ue.contains(yl,t)?s=vl:s=a4;var l=Al(t,r,s,a);return l.type==="small"?$m(t,l.style,n,a,i,u):l.type==="large"?El(t,l.size,n,a,i,u):Tl(t,r,n,a,i,u)},u4=function(t,r,n,a,i,u){var s=a.fontMetrics().axisHeight*a.sizeMultiplier,l=901,c=5/a.fontMetrics().ptPerEm,f=Math.max(r-s,n+s),d=Math.max(f/500*l,2*f-c);return Sl(t,d,!0,a,i,u)},zt={sqrtImage:e4,sizedDelim:r4,sizeToMaxHeight:Kr,customSizedDelim:Sl,leftRightDelim:u4},hu={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},s4=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function l0(e,t){var r=u0(e);if(r&&ue.contains(s4,r.text))return r;throw r?new V("Invalid delimiter '"+r.text+"' after '"+t.funcName+"'",e):new V("Invalid delimiter type '"+e.type+"'",e)}ee({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{var r=l0(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:hu[e.funcName].size,mclass:hu[e.funcName].mclass,delim:r.text}},htmlBuilder:(e,t)=>e.delim==="."?L.makeSpan([e.mclass]):zt.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{var t=[];e.delim!=="."&&t.push(mt(e.delim,e.mode));var r=new q.MathNode("mo",t);e.mclass==="mopen"||e.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=X(zt.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}});function du(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}ee({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var r=e.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new V("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:l0(t[0],e).text,color:r}}});ee({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var r=l0(t[0],e),n=e.parser;++n.leftrightDepth;var a=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var i=de(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:a,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:(e,t)=>{du(e);for(var r=Be(e.body,t,!0,["mopen","mclose"]),n=0,a=0,i=!1,u=0;u{du(e);var r=et(e.body,t);if(e.left!=="."){var n=new q.MathNode("mo",[mt(e.left,e.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(e.right!=="."){var a=new q.MathNode("mo",[mt(e.right,e.mode)]);a.setAttribute("fence","true"),e.rightColor&&a.setAttribute("mathcolor",e.rightColor),r.push(a)}return za(r)}});ee({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var r=l0(t[0],e);if(!e.parser.leftrightDepth)throw new V("\\middle without preceding \\left",r);return{type:"middle",mode:e.parser.mode,delim:r.text}},htmlBuilder:(e,t)=>{var r;if(e.delim===".")r=sn(t,[]);else{r=zt.sizedDelim(e.delim,1,t,e.mode,[]);var n={delim:e.delim,options:t};r.isMiddle=n}return r},mathmlBuilder:(e,t)=>{var r=e.delim==="\\vert"||e.delim==="|"?mt("|","text"):mt(e.delim,e.mode),n=new q.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n}});var Ga=(e,t)=>{var r=L.wrapFragment(be(e.body,t),t),n=e.label.slice(1),a=t.sizeMultiplier,i,u=0,s=ue.isCharacterBox(e.body);if(n==="sout")i=L.makeSpan(["stretchy","sout"]),i.height=t.fontMetrics().defaultRuleThickness/a,u=-.5*t.fontMetrics().xHeight;else if(n==="phase"){var l=_e({number:.6,unit:"pt"},t),c=_e({number:.35,unit:"ex"},t),f=t.havingBaseSizing();a=a/f.sizeMultiplier;var d=r.height+r.depth+l+c;r.style.paddingLeft=X(d/2+l);var b=Math.floor(1e3*d*a),p=em(b),y=new Ut([new er("phase",p)],{width:"400em",height:X(b/1e3),viewBox:"0 0 400000 "+b,preserveAspectRatio:"xMinYMin slice"});i=L.makeSvgSpan(["hide-tail"],[y],t),i.style.height=X(d),u=r.depth+l+c}else{/cancel/.test(n)?s||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var A=0,D=0,C=0;/box/.test(n)?(C=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),A=t.fontMetrics().fboxsep+(n==="colorbox"?0:C),D=A):n==="angl"?(C=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),A=4*C,D=Math.max(0,.25-r.depth)):(A=s?.2:0,D=A),i=Yt.encloseSpan(r,n,A,D,t),/fbox|boxed|fcolorbox/.test(n)?(i.style.borderStyle="solid",i.style.borderWidth=X(C)):n==="angl"&&C!==.049&&(i.style.borderTopWidth=X(C),i.style.borderRightWidth=X(C)),u=r.depth+D,e.backgroundColor&&(i.style.backgroundColor=e.backgroundColor,e.borderColor&&(i.style.borderColor=e.borderColor))}var I;if(e.backgroundColor)I=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:u},{type:"elem",elem:r,shift:0}]},t);else{var R=/cancel|phase/.test(n)?["svg-align"]:[];I=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:i,shift:u,wrapperClasses:R}]},t)}return/cancel/.test(n)&&(I.height=r.height,I.depth=r.depth),/cancel/.test(n)&&!s?L.makeSpan(["mord","cancel-lap"],[I],t):L.makeSpan(["mord"],[I],t)},Wa=(e,t)=>{var r=0,n=new q.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[xe(e.body,t)]);switch(e.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),e.label==="\\fcolorbox"){var a=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);n.setAttribute("style","border: "+a+"em solid "+String(e.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return e.backgroundColor&&n.setAttribute("mathbackground",e.backgroundColor),n};ee({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,r){var{parser:n,funcName:a}=e,i=de(t[0],"color-token").color,u=t[1];return{type:"enclose",mode:n.mode,label:a,backgroundColor:i,body:u}},htmlBuilder:Ga,mathmlBuilder:Wa});ee({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,r){var{parser:n,funcName:a}=e,i=de(t[0],"color-token").color,u=de(t[1],"color-token").color,s=t[2];return{type:"enclose",mode:n.mode,label:a,backgroundColor:u,borderColor:i,body:s}},htmlBuilder:Ga,mathmlBuilder:Wa});ee({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\fbox",body:t[0]}}});ee({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:n}=e,a=t[0];return{type:"enclose",mode:r.mode,label:n,body:a}},htmlBuilder:Ga,mathmlBuilder:Wa});ee({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\angl",body:t[0]}}});var kl={};function Nt(e){for(var{type:t,names:r,props:n,handler:a,htmlBuilder:i,mathmlBuilder:u}=e,s={type:t,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:a},l=0;l{var t=e.parser.settings;if(!t.displayMode)throw new V("{"+e.envName+"} can be used only in display mode.")};function Xa(e){if(e.indexOf("ed")===-1)return e.indexOf("*")===-1}function ar(e,t,r){var{hskipBeforeAndAfter:n,addJot:a,cols:i,arraystretch:u,colSeparationType:s,autoTag:l,singleRow:c,emptySingleRow:f,maxNumCols:d,leqno:b}=t;if(e.gullet.beginGroup(),c||e.gullet.macros.set("\\cr","\\\\\\relax"),!u){var p=e.gullet.expandMacroAsText("\\arraystretch");if(p==null)u=1;else if(u=parseFloat(p),!u||u<0)throw new V("Invalid \\arraystretch: "+p)}e.gullet.beginGroup();var y=[],A=[y],D=[],C=[],I=l!=null?[]:void 0;function R(){l&&e.gullet.macros.set("\\@eqnsw","1",!0)}function W(){I&&(e.gullet.macros.get("\\df@tag")?(I.push(e.subparse([new dt("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):I.push(!!l&&e.gullet.macros.get("\\@eqnsw")==="1"))}for(R(),C.push(fu(e));;){var Y=e.parseExpression(!1,c?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup(),Y={type:"ordgroup",mode:e.mode,body:Y},r&&(Y={type:"styling",mode:e.mode,style:r,body:[Y]}),y.push(Y);var M=e.fetch().text;if(M==="&"){if(d&&y.length===d){if(c||s)throw new V("Too many tab characters: &",e.nextToken);e.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}e.consume()}else if(M==="\\end"){W(),y.length===1&&Y.type==="styling"&&Y.body[0].body.length===0&&(A.length>1||!f)&&A.pop(),C.length0&&(R+=.25),c.push({pos:R,isDashed:Er[ir]})}for(W(u[0]),n=0;n0&&(Z+=I,QEr))for(n=0;n=s)){var lt=void 0;(a>0||t.hskipBeforeAndAfter)&&(lt=ue.deflt(Ie.pregap,b),lt!==0&&(ae=L.makeSpan(["arraycolsep"],[]),ae.style.width=X(lt),K.push(ae)));var Ge=[];for(n=0;n0){for(var m0=L.makeLineSpan("hline",r,f),p0=L.makeLineSpan("hdashline",r,f),Br=[{type:"elem",elem:l,shift:0}];c.length>0;){var Fr=c.pop(),Hr=Fr.pos-$;Fr.isDashed?Br.push({type:"elem",elem:p0,shift:Hr}):Br.push({type:"elem",elem:m0,shift:Hr})}l=L.makeVList({positionType:"individualShift",children:Br},r)}if(Se.length===0)return L.makeSpan(["mord"],[l],r);var br=L.makeVList({positionType:"individualShift",children:Se},r);return br=L.makeSpan(["tag"],[br],r),L.makeFragment([l,br])},l4={c:"center ",l:"left ",r:"right "},Ot=function(t,r){for(var n=[],a=new q.MathNode("mtd",[],["mtr-glue"]),i=new q.MathNode("mtd",[],["mml-eqn-num"]),u=0;u0){var y=t.cols,A="",D=!1,C=0,I=y.length;y[0].type==="separator"&&(b+="top ",C=1),y[y.length-1].type==="separator"&&(b+="bottom ",I-=1);for(var R=C;R0?"left ":"",b+=ie[ie.length-1].length>0?"right ":"";for(var J=1;J-1?"alignat":"align",i=t.envName==="split",u=ar(t.parser,{cols:n,addJot:!0,autoTag:i?void 0:Xa(t.envName),emptySingleRow:!0,colSeparationType:a,maxNumCols:i?2:void 0,leqno:t.parser.settings.leqno},"display"),s,l=0,c={type:"ordgroup",mode:t.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var f="",d=0;d0&&p&&(D=1),n[y]={type:"align",align:A,pregap:D,postgap:0}}return u.colSeparationType=p?"align":"alignat",u};Nt({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){var r=u0(t[0]),n=r?[t[0]]:de(t[0],"ordgroup").body,a=n.map(function(u){var s=qa(u),l=s.text;if("lcr".indexOf(l)!==-1)return{type:"align",align:l};if(l==="|")return{type:"separator",separator:"|"};if(l===":")return{type:"separator",separator:":"};throw new V("Unknown column alignment: "+l,u)}),i={cols:a,hskipBeforeAndAfter:!0,maxNumCols:a.length};return ar(e.parser,i,ja(e.envName))},htmlBuilder:Dt,mathmlBuilder:Ot});Nt({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(e.envName.charAt(e.envName.length-1)==="*"){var a=e.parser;if(a.consumeSpaces(),a.fetch().text==="["){if(a.consume(),a.consumeSpaces(),r=a.fetch().text,"lcr".indexOf(r)===-1)throw new V("Expected l or c or r",a.nextToken);a.consume(),a.consumeSpaces(),a.expect("]"),a.consume(),n.cols=[{type:"align",align:r}]}}var i=ar(e.parser,n,ja(e.envName)),u=Math.max(0,...i.body.map(s=>s.length));return i.cols=new Array(u).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[i],left:t[0],right:t[1],rightColor:void 0}:i},htmlBuilder:Dt,mathmlBuilder:Ot});Nt({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){var t={arraystretch:.5},r=ar(e.parser,t,"script");return r.colSeparationType="small",r},htmlBuilder:Dt,mathmlBuilder:Ot});Nt({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){var r=u0(t[0]),n=r?[t[0]]:de(t[0],"ordgroup").body,a=n.map(function(u){var s=qa(u),l=s.text;if("lc".indexOf(l)!==-1)return{type:"align",align:l};throw new V("Unknown column alignment: "+l,u)});if(a.length>1)throw new V("{subarray} can contain only one column");var i={cols:a,hskipBeforeAndAfter:!1,arraystretch:.5};if(i=ar(e.parser,i,"script"),i.body.length>0&&i.body[0].length>1)throw new V("{subarray} can contain only one column");return i},htmlBuilder:Dt,mathmlBuilder:Ot});Nt({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){var t={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=ar(e.parser,t,ja(e.envName));return{type:"leftright",mode:e.mode,body:[r],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Dt,mathmlBuilder:Ot});Nt({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Cl,htmlBuilder:Dt,mathmlBuilder:Ot});Nt({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){ue.contains(["gather","gather*"],e.envName)&&o0(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Xa(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return ar(e.parser,t,"display")},htmlBuilder:Dt,mathmlBuilder:Ot});Nt({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Cl,htmlBuilder:Dt,mathmlBuilder:Ot});Nt({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){o0(e);var t={autoTag:Xa(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return ar(e.parser,t,"display")},htmlBuilder:Dt,mathmlBuilder:Ot});Nt({type:"array",names:["CD"],props:{numArgs:0},handler(e){return o0(e),jm(e.parser)},htmlBuilder:Dt,mathmlBuilder:Ot});E("\\nonumber","\\gdef\\@eqnsw{0}");E("\\notag","\\nonumber");ee({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new V(e.funcName+" valid only within array environment")}});var mu=kl;ee({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(e,t){var{parser:r,funcName:n}=e,a=t[0];if(a.type!=="ordgroup")throw new V("Invalid environment name",a);for(var i="",u=0;u{var r=e.font,n=t.withFont(r);return be(e.body,n)},Il=(e,t)=>{var r=e.font,n=t.withFont(r);return xe(e.body,n)},pu={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};ee({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(e,t)=>{var{parser:r,funcName:n}=e,a=Wn(t[0]),i=n;return i in pu&&(i=pu[i]),{type:"font",mode:r.mode,font:i.slice(1),body:a}},htmlBuilder:_l,mathmlBuilder:Il});ee({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{var{parser:r}=e,n=t[0],a=ue.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:s0(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:a}}});ee({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{parser:r,funcName:n,breakOnTokenText:a}=e,{mode:i}=r,u=r.parseExpression(!0,a),s="math"+n.slice(1);return{type:"font",mode:i,font:s,body:{type:"ordgroup",mode:r.mode,body:u}}},htmlBuilder:_l,mathmlBuilder:Il});var Nl=(e,t)=>{var r=t;return e==="display"?r=r.id>=le.SCRIPT.id?r.text():le.DISPLAY:e==="text"&&r.size===le.DISPLAY.size?r=le.TEXT:e==="script"?r=le.SCRIPT:e==="scriptscript"&&(r=le.SCRIPTSCRIPT),r},Qa=(e,t)=>{var r=Nl(e.size,t.style),n=r.fracNum(),a=r.fracDen(),i;i=t.havingStyle(n);var u=be(e.numer,i,t);if(e.continued){var s=8.5/t.fontMetrics().ptPerEm,l=3.5/t.fontMetrics().ptPerEm;u.height=u.height0?y=3*b:y=7*b,A=t.fontMetrics().denom1):(d>0?(p=t.fontMetrics().num2,y=b):(p=t.fontMetrics().num3,y=3*b),A=t.fontMetrics().denom2);var D;if(f){var I=t.fontMetrics().axisHeight;p-u.depth-(I+.5*d){var r=new q.MathNode("mfrac",[xe(e.numer,t),xe(e.denom,t)]);if(!e.hasBarLine)r.setAttribute("linethickness","0px");else if(e.barSize){var n=_e(e.barSize,t);r.setAttribute("linethickness",X(n))}var a=Nl(e.size,t.style);if(a.size!==t.style.size){r=new q.MathNode("mstyle",[r]);var i=a.size===le.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",i),r.setAttribute("scriptlevel","0")}if(e.leftDelim!=null||e.rightDelim!=null){var u=[];if(e.leftDelim!=null){var s=new q.MathNode("mo",[new q.TextNode(e.leftDelim.replace("\\",""))]);s.setAttribute("fence","true"),u.push(s)}if(u.push(r),e.rightDelim!=null){var l=new q.MathNode("mo",[new q.TextNode(e.rightDelim.replace("\\",""))]);l.setAttribute("fence","true"),u.push(l)}return za(u)}return r};ee({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(e,t)=>{var{parser:r,funcName:n}=e,a=t[0],i=t[1],u,s=null,l=null,c="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":u=!0;break;case"\\\\atopfrac":u=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":u=!1,s="(",l=")";break;case"\\\\bracefrac":u=!1,s="\\{",l="\\}";break;case"\\\\brackfrac":u=!1,s="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":c="display";break;case"\\tfrac":case"\\tbinom":c="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:a,denom:i,hasBarLine:u,leftDelim:s,rightDelim:l,size:c,barSize:null}},htmlBuilder:Qa,mathmlBuilder:$a});ee({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(e,t)=>{var{parser:r,funcName:n}=e,a=t[0],i=t[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:a,denom:i,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});ee({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){var{parser:t,funcName:r,token:n}=e,a;switch(r){case"\\over":a="\\frac";break;case"\\choose":a="\\binom";break;case"\\atop":a="\\\\atopfrac";break;case"\\brace":a="\\\\bracefrac";break;case"\\brack":a="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:t.mode,replaceWith:a,token:n}}});var gu=["display","text","script","scriptscript"],bu=function(t){var r=null;return t.length>0&&(r=t,r=r==="."?null:r),r};ee({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){var{parser:r}=e,n=t[4],a=t[5],i=Wn(t[0]),u=i.type==="atom"&&i.family==="open"?bu(i.text):null,s=Wn(t[1]),l=s.type==="atom"&&s.family==="close"?bu(s.text):null,c=de(t[2],"size"),f,d=null;c.isBlank?f=!0:(d=c.value,f=d.number>0);var b="auto",p=t[3];if(p.type==="ordgroup"){if(p.body.length>0){var y=de(p.body[0],"textord");b=gu[Number(y.text)]}}else p=de(p,"textord"),b=gu[Number(p.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:a,continued:!1,hasBarLine:f,barSize:d,leftDelim:u,rightDelim:l,size:b}},htmlBuilder:Qa,mathmlBuilder:$a});ee({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){var{parser:r,funcName:n,token:a}=e;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:de(t[0],"size").value,token:a}}});ee({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(e,t)=>{var{parser:r,funcName:n}=e,a=t[0],i=Hf(de(t[1],"infix").size),u=t[2],s=i.number>0;return{type:"genfrac",mode:r.mode,numer:a,denom:u,continued:!1,hasBarLine:s,barSize:i,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:Qa,mathmlBuilder:$a});var Dl=(e,t)=>{var r=t.style,n,a;e.type==="supsub"?(n=e.sup?be(e.sup,t.havingStyle(r.sup()),t):be(e.sub,t.havingStyle(r.sub()),t),a=de(e.base,"horizBrace")):a=de(e,"horizBrace");var i=be(a.base,t.havingBaseStyle(le.DISPLAY)),u=Yt.svgSpan(a,t),s;if(a.isOver?(s=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:.1},{type:"elem",elem:u}]},t),s.children[0].children[0].children[1].classes.push("svg-align")):(s=L.makeVList({positionType:"bottom",positionData:i.depth+.1+u.height,children:[{type:"elem",elem:u},{type:"kern",size:.1},{type:"elem",elem:i}]},t),s.children[0].children[0].children[0].classes.push("svg-align")),n){var l=L.makeSpan(["mord",a.isOver?"mover":"munder"],[s],t);a.isOver?s=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:n}]},t):s=L.makeVList({positionType:"bottom",positionData:l.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}return L.makeSpan(["mord",a.isOver?"mover":"munder"],[s],t)},o4=(e,t)=>{var r=Yt.mathMLnode(e.label);return new q.MathNode(e.isOver?"mover":"munder",[xe(e.base,t),r])};ee({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:n}=e;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:t[0]}},htmlBuilder:Dl,mathmlBuilder:o4});ee({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,n=t[1],a=de(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:a})?{type:"href",mode:r.mode,href:a,body:Oe(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:(e,t)=>{var r=Be(e.body,t,!1);return L.makeAnchor(e.href,[],r,t)},mathmlBuilder:(e,t)=>{var r=tr(e.body,t);return r instanceof it||(r=new it("mrow",[r])),r.setAttribute("href",e.href),r}});ee({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,n=de(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var a=[],i=0;i{var{parser:r,funcName:n,token:a}=e,i=de(t[0],"raw").string,u=t[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var s,l={};switch(n){case"\\htmlClass":l.class=i,s={command:"\\htmlClass",class:i};break;case"\\htmlId":l.id=i,s={command:"\\htmlId",id:i};break;case"\\htmlStyle":l.style=i,s={command:"\\htmlStyle",style:i};break;case"\\htmlData":{for(var c=i.split(","),f=0;f{var r=Be(e.body,t,!1),n=["enclosing"];e.attributes.class&&n.push(...e.attributes.class.trim().split(/\s+/));var a=L.makeSpan(n,r,t);for(var i in e.attributes)i!=="class"&&e.attributes.hasOwnProperty(i)&&a.setAttribute(i,e.attributes[i]);return a},mathmlBuilder:(e,t)=>tr(e.body,t)});ee({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e;return{type:"htmlmathml",mode:r.mode,html:Oe(t[0]),mathml:Oe(t[1])}},htmlBuilder:(e,t)=>{var r=Be(e.html,t,!1);return L.makeFragment(r)},mathmlBuilder:(e,t)=>tr(e.mathml,t)});var z0=function(t){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(t))return{number:+t,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t);if(!r)throw new V("Invalid size: '"+t+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!$s(n))throw new V("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n};ee({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(e,t,r)=>{var{parser:n}=e,a={number:0,unit:"em"},i={number:.9,unit:"em"},u={number:0,unit:"em"},s="";if(r[0])for(var l=de(r[0],"raw").string,c=l.split(","),f=0;f{var r=_e(e.height,t),n=0;e.totalheight.number>0&&(n=_e(e.totalheight,t)-r);var a=0;e.width.number>0&&(a=_e(e.width,t));var i={height:X(r+n)};a>0&&(i.width=X(a)),n>0&&(i.verticalAlign=X(-n));var u=new om(e.src,e.alt,i);return u.height=r,u.depth=n,u},mathmlBuilder:(e,t)=>{var r=new q.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var n=_e(e.height,t),a=0;if(e.totalheight.number>0&&(a=_e(e.totalheight,t)-n,r.setAttribute("valign",X(-a))),r.setAttribute("height",X(n+a)),e.width.number>0){var i=_e(e.width,t);r.setAttribute("width",X(i))}return r.setAttribute("src",e.src),r}});ee({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:n}=e,a=de(t[0],"size");if(r.settings.strict){var i=n[1]==="m",u=a.value.unit==="mu";i?(u||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+a.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):u&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:a.value}},htmlBuilder(e,t){return L.makeGlue(e.dimension,t)},mathmlBuilder(e,t){var r=_e(e.dimension,t);return new q.SpaceNode(r)}});ee({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r,funcName:n}=e,a=t[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:a}},htmlBuilder:(e,t)=>{var r;e.alignment==="clap"?(r=L.makeSpan([],[be(e.body,t)]),r=L.makeSpan(["inner"],[r],t)):r=L.makeSpan(["inner"],[be(e.body,t)]);var n=L.makeSpan(["fix"],[]),a=L.makeSpan([e.alignment],[r,n],t),i=L.makeSpan(["strut"]);return i.style.height=X(a.height+a.depth),a.depth&&(i.style.verticalAlign=X(-a.depth)),a.children.unshift(i),a=L.makeSpan(["thinbox"],[a],t),L.makeSpan(["mord","vbox"],[a],t)},mathmlBuilder:(e,t)=>{var r=new q.MathNode("mpadded",[xe(e.body,t)]);if(e.alignment!=="rlap"){var n=e.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r}});ee({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){var{funcName:r,parser:n}=e,a=n.mode;n.switchMode("math");var i=r==="\\("?"\\)":"$",u=n.parseExpression(!1,i);return n.expect(i),n.switchMode(a),{type:"styling",mode:n.mode,style:"text",body:u}}});ee({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new V("Mismatched "+e.funcName)}});var Eu=(e,t)=>{switch(t.style.size){case le.DISPLAY.size:return e.display;case le.TEXT.size:return e.text;case le.SCRIPT.size:return e.script;case le.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};ee({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(e,t)=>{var{parser:r}=e;return{type:"mathchoice",mode:r.mode,display:Oe(t[0]),text:Oe(t[1]),script:Oe(t[2]),scriptscript:Oe(t[3])}},htmlBuilder:(e,t)=>{var r=Eu(e,t),n=Be(r,t,!1);return L.makeFragment(n)},mathmlBuilder:(e,t)=>{var r=Eu(e,t);return tr(r,t)}});var Ol=(e,t,r,n,a,i,u)=>{e=L.makeSpan([],[e]);var s=r&&ue.isCharacterBox(r),l,c;if(t){var f=be(t,n.havingStyle(a.sup()),n);c={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-f.depth)}}if(r){var d=be(r,n.havingStyle(a.sub()),n);l={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-d.height)}}var b;if(c&&l){var p=n.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+e.depth+u;b=L.makeVList({positionType:"bottom",positionData:p,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:X(-i)},{type:"kern",size:l.kern},{type:"elem",elem:e},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:X(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(l){var y=e.height-u;b=L.makeVList({positionType:"top",positionData:y,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:X(-i)},{type:"kern",size:l.kern},{type:"elem",elem:e}]},n)}else if(c){var A=e.depth+u;b=L.makeVList({positionType:"bottom",positionData:A,children:[{type:"elem",elem:e},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:X(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return e;var D=[b];if(l&&i!==0&&!s){var C=L.makeSpan(["mspace"],[],n);C.style.marginRight=X(i),D.unshift(C)}return L.makeSpan(["mop","op-limits"],D,n)},Ll=["\\smallint"],Lr=(e,t)=>{var r,n,a=!1,i;e.type==="supsub"?(r=e.sup,n=e.sub,i=de(e.base,"op"),a=!0):i=de(e,"op");var u=t.style,s=!1;u.size===le.DISPLAY.size&&i.symbol&&!ue.contains(Ll,i.name)&&(s=!0);var l;if(i.symbol){var c=s?"Size2-Regular":"Size1-Regular",f="";if((i.name==="\\oiint"||i.name==="\\oiiint")&&(f=i.name.slice(1),i.name=f==="oiint"?"\\iint":"\\iiint"),l=L.makeSymbol(i.name,c,"math",t,["mop","op-symbol",s?"large-op":"small-op"]),f.length>0){var d=l.italic,b=L.staticSvg(f+"Size"+(s?"2":"1"),t);l=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:0},{type:"elem",elem:b,shift:s?.08:0}]},t),i.name="\\"+f,l.classes.unshift("mop"),l.italic=d}}else if(i.body){var p=Be(i.body,t,!0);p.length===1&&p[0]instanceof ft?(l=p[0],l.classes[0]="mop"):l=L.makeSpan(["mop"],p,t)}else{for(var y=[],A=1;A{var r;if(e.symbol)r=new it("mo",[mt(e.name,e.mode)]),ue.contains(Ll,e.name)&&r.setAttribute("largeop","false");else if(e.body)r=new it("mo",et(e.body,t));else{r=new it("mi",[new Ct(e.name.slice(1))]);var n=new it("mo",[mt("⁡","text")]);e.parentIsSupSub?r=new it("mrow",[r,n]):r=sl([r,n])}return r},c4={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};ee({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(e,t)=>{var{parser:r,funcName:n}=e,a=n;return a.length===1&&(a=c4[a]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:Lr,mathmlBuilder:bn});ee({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var{parser:r}=e,n=t[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Oe(n)}},htmlBuilder:Lr,mathmlBuilder:bn});var h4={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};ee({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:Lr,mathmlBuilder:bn});ee({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:Lr,mathmlBuilder:bn});ee({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e,n=r;return n.length===1&&(n=h4[n]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:Lr,mathmlBuilder:bn});var Ml=(e,t)=>{var r,n,a=!1,i;e.type==="supsub"?(r=e.sup,n=e.sub,i=de(e.base,"operatorname"),a=!0):i=de(e,"operatorname");var u;if(i.body.length>0){for(var s=i.body.map(d=>{var b=d.text;return typeof b=="string"?{type:"textord",mode:d.mode,text:b}:d}),l=Be(s,t.withFont("mathrm"),!0),c=0;c{for(var r=et(e.body,t.withFont("mathrm")),n=!0,a=0;af.toText()).join("");r=[new q.TextNode(s)]}var l=new q.MathNode("mi",r);l.setAttribute("mathvariant","normal");var c=new q.MathNode("mo",[mt("⁡","text")]);return e.parentIsSupSub?new q.MathNode("mrow",[l,c]):q.newDocumentFragment([l,c])};ee({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(e,t)=>{var{parser:r,funcName:n}=e,a=t[0];return{type:"operatorname",mode:r.mode,body:Oe(a),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:Ml,mathmlBuilder:d4});E("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");fr({type:"ordgroup",htmlBuilder(e,t){return e.semisimple?L.makeFragment(Be(e.body,t,!1)):L.makeSpan(["mord"],Be(e.body,t,!0),t)},mathmlBuilder(e,t){return tr(e.body,t,!0)}});ee({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){var{parser:r}=e,n=t[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(e,t){var r=be(e.body,t.havingCrampedStyle()),n=L.makeLineSpan("overline-line",t),a=t.fontMetrics().defaultRuleThickness,i=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*a},{type:"elem",elem:n},{type:"kern",size:a}]},t);return L.makeSpan(["mord","overline"],[i],t)},mathmlBuilder(e,t){var r=new q.MathNode("mo",[new q.TextNode("‾")]);r.setAttribute("stretchy","true");var n=new q.MathNode("mover",[xe(e.body,t),r]);return n.setAttribute("accent","true"),n}});ee({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,n=t[0];return{type:"phantom",mode:r.mode,body:Oe(n)}},htmlBuilder:(e,t)=>{var r=Be(e.body,t.withPhantom(),!1);return L.makeFragment(r)},mathmlBuilder:(e,t)=>{var r=et(e.body,t);return new q.MathNode("mphantom",r)}});ee({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,n=t[0];return{type:"hphantom",mode:r.mode,body:n}},htmlBuilder:(e,t)=>{var r=L.makeSpan([],[be(e.body,t.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n{var r=et(Oe(e.body),t),n=new q.MathNode("mphantom",r),a=new q.MathNode("mpadded",[n]);return a.setAttribute("height","0px"),a.setAttribute("depth","0px"),a}});ee({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,n=t[0];return{type:"vphantom",mode:r.mode,body:n}},htmlBuilder:(e,t)=>{var r=L.makeSpan(["inner"],[be(e.body,t.withPhantom())]),n=L.makeSpan(["fix"],[]);return L.makeSpan(["mord","rlap"],[r,n],t)},mathmlBuilder:(e,t)=>{var r=et(Oe(e.body),t),n=new q.MathNode("mphantom",r),a=new q.MathNode("mpadded",[n]);return a.setAttribute("width","0px"),a}});ee({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e,n=de(t[0],"size").value,a=t[1];return{type:"raisebox",mode:r.mode,dy:n,body:a}},htmlBuilder(e,t){var r=be(e.body,t),n=_e(e.dy,t);return L.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){var r=new q.MathNode("mpadded",[xe(e.body,t)]),n=e.dy.number+e.dy.unit;return r.setAttribute("voffset",n),r}});ee({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t}=e;return{type:"internal",mode:t.mode}}});ee({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(e,t,r){var{parser:n}=e,a=r[0],i=de(t[0],"size"),u=de(t[1],"size");return{type:"rule",mode:n.mode,shift:a&&de(a,"size").value,width:i.value,height:u.value}},htmlBuilder(e,t){var r=L.makeSpan(["mord","rule"],[],t),n=_e(e.width,t),a=_e(e.height,t),i=e.shift?_e(e.shift,t):0;return r.style.borderRightWidth=X(n),r.style.borderTopWidth=X(a),r.style.bottom=X(i),r.width=n,r.height=a+i,r.depth=-i,r.maxFontSize=a*1.125*t.sizeMultiplier,r},mathmlBuilder(e,t){var r=_e(e.width,t),n=_e(e.height,t),a=e.shift?_e(e.shift,t):0,i=t.color&&t.getColor()||"black",u=new q.MathNode("mspace");u.setAttribute("mathbackground",i),u.setAttribute("width",X(r)),u.setAttribute("height",X(n));var s=new q.MathNode("mpadded",[u]);return a>=0?s.setAttribute("height",X(a)):(s.setAttribute("height",X(a)),s.setAttribute("depth",X(-a))),s.setAttribute("voffset",X(a)),s}});function Rl(e,t,r){for(var n=Be(e,t,!1),a=t.sizeMultiplier/r.sizeMultiplier,i=0;i{var r=t.havingSize(e.size);return Rl(e.body,r,t)};ee({type:"sizing",names:Tu,props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{breakOnTokenText:r,funcName:n,parser:a}=e,i=a.parseExpression(!1,r);return{type:"sizing",mode:a.mode,size:Tu.indexOf(n)+1,body:i}},htmlBuilder:f4,mathmlBuilder:(e,t)=>{var r=t.havingSize(e.size),n=et(e.body,r),a=new q.MathNode("mstyle",n);return a.setAttribute("mathsize",X(r.sizeMultiplier)),a}});ee({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(e,t,r)=>{var{parser:n}=e,a=!1,i=!1,u=r[0]&&de(r[0],"ordgroup");if(u)for(var s="",l=0;l{var r=L.makeSpan([],[be(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return r;if(e.smashHeight&&(r.height=0,r.children))for(var n=0;n{var r=new q.MathNode("mpadded",[xe(e.body,t)]);return e.smashHeight&&r.setAttribute("height","0px"),e.smashDepth&&r.setAttribute("depth","0px"),r}});ee({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:n}=e,a=r[0],i=t[0];return{type:"sqrt",mode:n.mode,body:i,index:a}},htmlBuilder(e,t){var r=be(e.body,t.havingCrampedStyle());r.height===0&&(r.height=t.fontMetrics().xHeight),r=L.wrapFragment(r,t);var n=t.fontMetrics(),a=n.defaultRuleThickness,i=a;t.style.idr.height+r.depth+u&&(u=(u+d-r.height-r.depth)/2);var b=l.height-r.height-u-c;r.style.paddingLeft=X(f);var p=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+b)},{type:"elem",elem:l},{type:"kern",size:c}]},t);if(e.index){var y=t.havingStyle(le.SCRIPTSCRIPT),A=be(e.index,y,t),D=.6*(p.height-p.depth),C=L.makeVList({positionType:"shift",positionData:-D,children:[{type:"elem",elem:A}]},t),I=L.makeSpan(["root"],[C]);return L.makeSpan(["mord","sqrt"],[I,p],t)}else return L.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder(e,t){var{body:r,index:n}=e;return n?new q.MathNode("mroot",[xe(r,t),xe(n,t)]):new q.MathNode("msqrt",[xe(r,t)])}});var yu={display:le.DISPLAY,text:le.TEXT,script:le.SCRIPT,scriptscript:le.SCRIPTSCRIPT};ee({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){var{breakOnTokenText:r,funcName:n,parser:a}=e,i=a.parseExpression(!0,r),u=n.slice(1,n.length-5);return{type:"styling",mode:a.mode,style:u,body:i}},htmlBuilder(e,t){var r=yu[e.style],n=t.havingStyle(r).withFont("");return Rl(e.body,n,t)},mathmlBuilder(e,t){var r=yu[e.style],n=t.havingStyle(r),a=et(e.body,n),i=new q.MathNode("mstyle",a),u={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},s=u[e.style];return i.setAttribute("scriptlevel",s[0]),i.setAttribute("displaystyle",s[1]),i}});var m4=function(t,r){var n=t.base;if(n)if(n.type==="op"){var a=n.limits&&(r.style.size===le.DISPLAY.size||n.alwaysHandleSupSub);return a?Lr:null}else if(n.type==="operatorname"){var i=n.alwaysHandleSupSub&&(r.style.size===le.DISPLAY.size||n.limits);return i?Ml:null}else{if(n.type==="accent")return ue.isCharacterBox(n.base)?Ya:null;if(n.type==="horizBrace"){var u=!t.sub;return u===n.isOver?Dl:null}else return null}else return null};fr({type:"supsub",htmlBuilder(e,t){var r=m4(e,t);if(r)return r(e,t);var{base:n,sup:a,sub:i}=e,u=be(n,t),s,l,c=t.fontMetrics(),f=0,d=0,b=n&&ue.isCharacterBox(n);if(a){var p=t.havingStyle(t.style.sup());s=be(a,p,t),b||(f=u.height-p.fontMetrics().supDrop*p.sizeMultiplier/t.sizeMultiplier)}if(i){var y=t.havingStyle(t.style.sub());l=be(i,y,t),b||(d=u.depth+y.fontMetrics().subDrop*y.sizeMultiplier/t.sizeMultiplier)}var A;t.style===le.DISPLAY?A=c.sup1:t.style.cramped?A=c.sup3:A=c.sup2;var D=t.sizeMultiplier,C=X(.5/c.ptPerEm/D),I=null;if(l){var R=e.base&&e.base.type==="op"&&e.base.name&&(e.base.name==="\\oiint"||e.base.name==="\\oiiint");(u instanceof ft||R)&&(I=X(-u.italic))}var W;if(s&&l){f=Math.max(f,A,s.depth+.25*c.xHeight),d=Math.max(d,c.sub2);var Y=c.defaultRuleThickness,M=4*Y;if(f-s.depth-(l.height-d)0&&(f+=Q,d-=Q)}var ie=[{type:"elem",elem:l,shift:d,marginRight:C,marginLeft:I},{type:"elem",elem:s,shift:-f,marginRight:C}];W=L.makeVList({positionType:"individualShift",children:ie},t)}else if(l){d=Math.max(d,c.sub1,l.height-.8*c.xHeight);var J=[{type:"elem",elem:l,marginLeft:I,marginRight:C}];W=L.makeVList({positionType:"shift",positionData:d,children:J},t)}else if(s)f=Math.max(f,A,s.depth+.25*c.xHeight),W=L.makeVList({positionType:"shift",positionData:-f,children:[{type:"elem",elem:s,marginRight:C}]},t);else throw new Error("supsub must have either sup or sub.");var P=oa(u,"right")||"mord";return L.makeSpan([P],[u,L.makeSpan(["msupsub"],[W])],t)},mathmlBuilder(e,t){var r=!1,n,a;e.base&&e.base.type==="horizBrace"&&(a=!!e.sup,a===e.base.isOver&&(r=!0,n=e.base.isOver)),e.base&&(e.base.type==="op"||e.base.type==="operatorname")&&(e.base.parentIsSupSub=!0);var i=[xe(e.base,t)];e.sub&&i.push(xe(e.sub,t)),e.sup&&i.push(xe(e.sup,t));var u;if(r)u=n?"mover":"munder";else if(e.sub)if(e.sup){var c=e.base;c&&c.type==="op"&&c.limits&&t.style===le.DISPLAY||c&&c.type==="operatorname"&&c.alwaysHandleSupSub&&(t.style===le.DISPLAY||c.limits)?u="munderover":u="msubsup"}else{var l=e.base;l&&l.type==="op"&&l.limits&&(t.style===le.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||t.style===le.DISPLAY)?u="munder":u="msub"}else{var s=e.base;s&&s.type==="op"&&s.limits&&(t.style===le.DISPLAY||s.alwaysHandleSupSub)||s&&s.type==="operatorname"&&s.alwaysHandleSupSub&&(s.limits||t.style===le.DISPLAY)?u="mover":u="msup"}return new q.MathNode(u,i)}});fr({type:"atom",htmlBuilder(e,t){return L.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder(e,t){var r=new q.MathNode("mo",[mt(e.text,e.mode)]);if(e.family==="bin"){var n=Ua(e,t);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else e.family==="punct"?r.setAttribute("separator","true"):(e.family==="open"||e.family==="close")&&r.setAttribute("stretchy","false");return r}});var Pl={mi:"italic",mn:"normal",mtext:"normal"};fr({type:"mathord",htmlBuilder(e,t){return L.makeOrd(e,t,"mathord")},mathmlBuilder(e,t){var r=new q.MathNode("mi",[mt(e.text,e.mode,t)]),n=Ua(e,t)||"italic";return n!==Pl[r.type]&&r.setAttribute("mathvariant",n),r}});fr({type:"textord",htmlBuilder(e,t){return L.makeOrd(e,t,"textord")},mathmlBuilder(e,t){var r=mt(e.text,e.mode,t),n=Ua(e,t)||"normal",a;return e.mode==="text"?a=new q.MathNode("mtext",[r]):/[0-9]/.test(e.text)?a=new q.MathNode("mn",[r]):e.text==="\\prime"?a=new q.MathNode("mo",[r]):a=new q.MathNode("mi",[r]),n!==Pl[a.type]&&a.setAttribute("mathvariant",n),a}});var U0={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},q0={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};fr({type:"spacing",htmlBuilder(e,t){if(q0.hasOwnProperty(e.text)){var r=q0[e.text].className||"";if(e.mode==="text"){var n=L.makeOrd(e,t,"textord");return n.classes.push(r),n}else return L.makeSpan(["mspace",r],[L.mathsym(e.text,e.mode,t)],t)}else{if(U0.hasOwnProperty(e.text))return L.makeSpan(["mspace",U0[e.text]],[],t);throw new V('Unknown type of space "'+e.text+'"')}},mathmlBuilder(e,t){var r;if(q0.hasOwnProperty(e.text))r=new q.MathNode("mtext",[new q.TextNode(" ")]);else{if(U0.hasOwnProperty(e.text))return new q.MathNode("mspace");throw new V('Unknown type of space "'+e.text+'"')}return r}});var xu=()=>{var e=new q.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};fr({type:"tag",mathmlBuilder(e,t){var r=new q.MathNode("mtable",[new q.MathNode("mtr",[xu(),new q.MathNode("mtd",[tr(e.body,t)]),xu(),new q.MathNode("mtd",[tr(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});var vu={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Au={"\\textbf":"textbf","\\textmd":"textmd"},p4={"\\textit":"textit","\\textup":"textup"},Su=(e,t)=>{var r=e.font;if(r){if(vu[r])return t.withTextFontFamily(vu[r]);if(Au[r])return t.withTextFontWeight(Au[r]);if(r==="\\emph")return t.fontShape==="textit"?t.withTextFontShape("textup"):t.withTextFontShape("textit")}else return t;return t.withTextFontShape(p4[r])};ee({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:n}=e,a=t[0];return{type:"text",mode:r.mode,body:Oe(a),font:n}},htmlBuilder(e,t){var r=Su(e,t),n=Be(e.body,r,!0);return L.makeSpan(["mord","text"],n,r)},mathmlBuilder(e,t){var r=Su(e,t);return tr(e.body,r)}});ee({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"underline",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=be(e.body,t),n=L.makeLineSpan("underline-line",t),a=t.fontMetrics().defaultRuleThickness,i=L.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:a},{type:"elem",elem:n},{type:"kern",size:3*a},{type:"elem",elem:r}]},t);return L.makeSpan(["mord","underline"],[i],t)},mathmlBuilder(e,t){var r=new q.MathNode("mo",[new q.TextNode("‾")]);r.setAttribute("stretchy","true");var n=new q.MathNode("munder",[xe(e.body,t),r]);return n.setAttribute("accentunder","true"),n}});ee({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"vcenter",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=be(e.body,t),n=t.fontMetrics().axisHeight,a=.5*(r.height-n-(r.depth+n));return L.makeVList({positionType:"shift",positionData:a,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){return new q.MathNode("mpadded",[xe(e.body,t)],["vcenter"])}});ee({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,r){throw new V("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){for(var r=ku(e),n=[],a=t.havingStyle(t.style.text()),i=0;ie.body.replace(/ /g,e.star?"␣":" "),Kt=il,Bl=`[ \r + ]`,g4="\\\\[a-zA-Z@]+",b4="\\\\[^\uD800-\uDFFF]",E4="("+g4+")"+Bl+"*",T4=`\\\\( +|[ \r ]+ +?)[ \r ]*`,fa="[̀-ͯ]",y4=new RegExp(fa+"+$"),x4="("+Bl+"+)|"+(T4+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(fa+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(fa+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+E4)+("|"+b4+")");class wu{constructor(t,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=t,this.settings=r,this.tokenRegex=new RegExp(x4,"g"),this.catcodes={"%":14,"~":13}}setCatcode(t,r){this.catcodes[t]=r}lex(){var t=this.input,r=this.tokenRegex.lastIndex;if(r===t.length)return new dt("EOF",new at(this,r,r));var n=this.tokenRegex.exec(t);if(n===null||n.index!==r)throw new V("Unexpected character: '"+t[r]+"'",new dt(t[r],new at(this,r,r+1)));var a=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[a]===14){var i=t.indexOf(` +`,this.tokenRegex.lastIndex);return i===-1?(this.tokenRegex.lastIndex=t.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=i+1,this.lex()}return new dt(a,new at(this,r,this.tokenRegex.lastIndex))}}class v4{constructor(t,r){t===void 0&&(t={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=t,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new V("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var t=this.undefStack.pop();for(var r in t)t.hasOwnProperty(r)&&(t[r]==null?delete this.current[r]:this.current[r]=t[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(t){return this.current.hasOwnProperty(t)||this.builtins.hasOwnProperty(t)}get(t){return this.current.hasOwnProperty(t)?this.current[t]:this.builtins[t]}set(t,r,n){if(n===void 0&&(n=!1),n){for(var a=0;a0&&(this.undefStack[this.undefStack.length-1][t]=r)}else{var i=this.undefStack[this.undefStack.length-1];i&&!i.hasOwnProperty(t)&&(i[t]=this.current[t])}r==null?delete this.current[t]:this.current[t]=r}}var A4=wl;E("\\noexpand",function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}});E("\\expandafter",function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}});E("\\@firstoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[0],numArgs:0}});E("\\@secondoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[1],numArgs:0}});E("\\@ifnextchar",function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return t[0].length===1&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}});E("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");E("\\TextOrMath",function(e){var t=e.consumeArgs(2);return e.mode==="text"?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}});var Cu={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};E("\\char",function(e){var t=e.popToken(),r,n="";if(t.text==="'")r=8,t=e.popToken();else if(t.text==='"')r=16,t=e.popToken();else if(t.text==="`")if(t=e.popToken(),t.text[0]==="\\")n=t.text.charCodeAt(1);else{if(t.text==="EOF")throw new V("\\char` missing argument");n=t.text.charCodeAt(0)}else r=10;if(r){if(n=Cu[t.text],n==null||n>=r)throw new V("Invalid base-"+r+" digit "+t.text);for(var a;(a=Cu[e.future().text])!=null&&a{var n=e.consumeArg().tokens;if(n.length!==1)throw new V("\\newcommand's first argument must be a macro name");var a=n[0].text,i=e.isDefined(a);if(i&&!t)throw new V("\\newcommand{"+a+"} attempting to redefine "+(a+"; use \\renewcommand"));if(!i&&!r)throw new V("\\renewcommand{"+a+"} when command "+a+" does not yet exist; use \\newcommand");var u=0;if(n=e.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var s="",l=e.expandNextToken();l.text!=="]"&&l.text!=="EOF";)s+=l.text,l=e.expandNextToken();if(!s.match(/^\s*[0-9]+\s*$/))throw new V("Invalid number of arguments: "+s);u=parseInt(s),n=e.consumeArg().tokens}return e.macros.set(a,{tokens:n,numArgs:u}),""};E("\\newcommand",e=>Ka(e,!1,!0));E("\\renewcommand",e=>Ka(e,!0,!1));E("\\providecommand",e=>Ka(e,!0,!0));E("\\message",e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(r=>r.text).join("")),""});E("\\errmessage",e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(r=>r.text).join("")),""});E("\\show",e=>{var t=e.popToken(),r=t.text;return console.log(t,e.macros.get(r),Kt[r],Ae.math[r],Ae.text[r]),""});E("\\bgroup","{");E("\\egroup","}");E("~","\\nobreakspace");E("\\lq","`");E("\\rq","'");E("\\aa","\\r a");E("\\AA","\\r A");E("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");E("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");E("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");E("ℬ","\\mathscr{B}");E("ℰ","\\mathscr{E}");E("ℱ","\\mathscr{F}");E("ℋ","\\mathscr{H}");E("ℐ","\\mathscr{I}");E("ℒ","\\mathscr{L}");E("ℳ","\\mathscr{M}");E("ℛ","\\mathscr{R}");E("ℭ","\\mathfrak{C}");E("ℌ","\\mathfrak{H}");E("ℨ","\\mathfrak{Z}");E("\\Bbbk","\\Bbb{k}");E("·","\\cdotp");E("\\llap","\\mathllap{\\textrm{#1}}");E("\\rlap","\\mathrlap{\\textrm{#1}}");E("\\clap","\\mathclap{\\textrm{#1}}");E("\\mathstrut","\\vphantom{(}");E("\\underbar","\\underline{\\text{#1}}");E("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');E("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");E("\\ne","\\neq");E("≠","\\neq");E("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");E("∉","\\notin");E("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");E("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");E("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");E("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");E("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");E("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");E("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");E("⟂","\\perp");E("‼","\\mathclose{!\\mkern-0.8mu!}");E("∌","\\notni");E("⌜","\\ulcorner");E("⌝","\\urcorner");E("⌞","\\llcorner");E("⌟","\\lrcorner");E("©","\\copyright");E("®","\\textregistered");E("️","\\textregistered");E("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');E("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');E("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');E("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');E("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");E("⋮","\\vdots");E("\\varGamma","\\mathit{\\Gamma}");E("\\varDelta","\\mathit{\\Delta}");E("\\varTheta","\\mathit{\\Theta}");E("\\varLambda","\\mathit{\\Lambda}");E("\\varXi","\\mathit{\\Xi}");E("\\varPi","\\mathit{\\Pi}");E("\\varSigma","\\mathit{\\Sigma}");E("\\varUpsilon","\\mathit{\\Upsilon}");E("\\varPhi","\\mathit{\\Phi}");E("\\varPsi","\\mathit{\\Psi}");E("\\varOmega","\\mathit{\\Omega}");E("\\substack","\\begin{subarray}{c}#1\\end{subarray}");E("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");E("\\boxed","\\fbox{$\\displaystyle{#1}$}");E("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");E("\\implies","\\DOTSB\\;\\Longrightarrow\\;");E("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");E("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");E("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var _u={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};E("\\dots",function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in _u?t=_u[r]:(r.slice(0,4)==="\\not"||r in Ae.math&&ue.contains(["bin","rel"],Ae.math[r].group))&&(t="\\dotsb"),t});var Ja={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};E("\\dotso",function(e){var t=e.future().text;return t in Ja?"\\ldots\\,":"\\ldots"});E("\\dotsc",function(e){var t=e.future().text;return t in Ja&&t!==","?"\\ldots\\,":"\\ldots"});E("\\cdots",function(e){var t=e.future().text;return t in Ja?"\\@cdots\\,":"\\@cdots"});E("\\dotsb","\\cdots");E("\\dotsm","\\cdots");E("\\dotsi","\\!\\cdots");E("\\dotsx","\\ldots\\,");E("\\DOTSI","\\relax");E("\\DOTSB","\\relax");E("\\DOTSX","\\relax");E("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");E("\\,","\\tmspace+{3mu}{.1667em}");E("\\thinspace","\\,");E("\\>","\\mskip{4mu}");E("\\:","\\tmspace+{4mu}{.2222em}");E("\\medspace","\\:");E("\\;","\\tmspace+{5mu}{.2777em}");E("\\thickspace","\\;");E("\\!","\\tmspace-{3mu}{.1667em}");E("\\negthinspace","\\!");E("\\negmedspace","\\tmspace-{4mu}{.2222em}");E("\\negthickspace","\\tmspace-{5mu}{.277em}");E("\\enspace","\\kern.5em ");E("\\enskip","\\hskip.5em\\relax");E("\\quad","\\hskip1em\\relax");E("\\qquad","\\hskip2em\\relax");E("\\tag","\\@ifstar\\tag@literal\\tag@paren");E("\\tag@paren","\\tag@literal{({#1})}");E("\\tag@literal",e=>{if(e.macros.get("\\df@tag"))throw new V("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});E("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");E("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");E("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");E("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");E("\\newline","\\\\\\relax");E("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var Fl=X(wt["Main-Regular"][84][1]-.7*wt["Main-Regular"][65][1]);E("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+Fl+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");E("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+Fl+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");E("\\hspace","\\@ifstar\\@hspacer\\@hspace");E("\\@hspace","\\hskip #1\\relax");E("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");E("\\ordinarycolon",":");E("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");E("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');E("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');E("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');E("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');E("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');E("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');E("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');E("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');E("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');E("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');E("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');E("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');E("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');E("∷","\\dblcolon");E("∹","\\eqcolon");E("≔","\\coloneqq");E("≕","\\eqqcolon");E("⩴","\\Coloneqq");E("\\ratio","\\vcentcolon");E("\\coloncolon","\\dblcolon");E("\\colonequals","\\coloneqq");E("\\coloncolonequals","\\Coloneqq");E("\\equalscolon","\\eqqcolon");E("\\equalscoloncolon","\\Eqqcolon");E("\\colonminus","\\coloneq");E("\\coloncolonminus","\\Coloneq");E("\\minuscolon","\\eqcolon");E("\\minuscoloncolon","\\Eqcolon");E("\\coloncolonapprox","\\Colonapprox");E("\\coloncolonsim","\\Colonsim");E("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");E("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");E("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");E("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");E("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");E("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");E("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");E("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");E("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");E("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");E("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");E("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");E("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");E("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");E("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");E("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");E("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");E("\\nleqq","\\html@mathml{\\@nleqq}{≰}");E("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");E("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");E("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");E("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");E("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");E("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");E("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");E("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");E("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");E("\\imath","\\html@mathml{\\@imath}{ı}");E("\\jmath","\\html@mathml{\\@jmath}{ȷ}");E("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");E("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");E("⟦","\\llbracket");E("⟧","\\rrbracket");E("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");E("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");E("⦃","\\lBrace");E("⦄","\\rBrace");E("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");E("⦵","\\minuso");E("\\darr","\\downarrow");E("\\dArr","\\Downarrow");E("\\Darr","\\Downarrow");E("\\lang","\\langle");E("\\rang","\\rangle");E("\\uarr","\\uparrow");E("\\uArr","\\Uparrow");E("\\Uarr","\\Uparrow");E("\\N","\\mathbb{N}");E("\\R","\\mathbb{R}");E("\\Z","\\mathbb{Z}");E("\\alef","\\aleph");E("\\alefsym","\\aleph");E("\\Alpha","\\mathrm{A}");E("\\Beta","\\mathrm{B}");E("\\bull","\\bullet");E("\\Chi","\\mathrm{X}");E("\\clubs","\\clubsuit");E("\\cnums","\\mathbb{C}");E("\\Complex","\\mathbb{C}");E("\\Dagger","\\ddagger");E("\\diamonds","\\diamondsuit");E("\\empty","\\emptyset");E("\\Epsilon","\\mathrm{E}");E("\\Eta","\\mathrm{H}");E("\\exist","\\exists");E("\\harr","\\leftrightarrow");E("\\hArr","\\Leftrightarrow");E("\\Harr","\\Leftrightarrow");E("\\hearts","\\heartsuit");E("\\image","\\Im");E("\\infin","\\infty");E("\\Iota","\\mathrm{I}");E("\\isin","\\in");E("\\Kappa","\\mathrm{K}");E("\\larr","\\leftarrow");E("\\lArr","\\Leftarrow");E("\\Larr","\\Leftarrow");E("\\lrarr","\\leftrightarrow");E("\\lrArr","\\Leftrightarrow");E("\\Lrarr","\\Leftrightarrow");E("\\Mu","\\mathrm{M}");E("\\natnums","\\mathbb{N}");E("\\Nu","\\mathrm{N}");E("\\Omicron","\\mathrm{O}");E("\\plusmn","\\pm");E("\\rarr","\\rightarrow");E("\\rArr","\\Rightarrow");E("\\Rarr","\\Rightarrow");E("\\real","\\Re");E("\\reals","\\mathbb{R}");E("\\Reals","\\mathbb{R}");E("\\Rho","\\mathrm{P}");E("\\sdot","\\cdot");E("\\sect","\\S");E("\\spades","\\spadesuit");E("\\sub","\\subset");E("\\sube","\\subseteq");E("\\supe","\\supseteq");E("\\Tau","\\mathrm{T}");E("\\thetasym","\\vartheta");E("\\weierp","\\wp");E("\\Zeta","\\mathrm{Z}");E("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");E("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");E("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");E("\\bra","\\mathinner{\\langle{#1}|}");E("\\ket","\\mathinner{|{#1}\\rangle}");E("\\braket","\\mathinner{\\langle{#1}\\rangle}");E("\\Bra","\\left\\langle#1\\right|");E("\\Ket","\\left|#1\\right\\rangle");var Hl=e=>t=>{var r=t.consumeArg().tokens,n=t.consumeArg().tokens,a=t.consumeArg().tokens,i=t.consumeArg().tokens,u=t.macros.get("|"),s=t.macros.get("\\|");t.macros.beginGroup();var l=d=>b=>{e&&(b.macros.set("|",u),a.length&&b.macros.set("\\|",s));var p=d;if(!d&&a.length){var y=b.future();y.text==="|"&&(b.popToken(),p=!0)}return{tokens:p?a:n,numArgs:0}};t.macros.set("|",l(!1)),a.length&&t.macros.set("\\|",l(!0));var c=t.consumeArg().tokens,f=t.expandTokens([...i,...c,...r]);return t.macros.endGroup(),{tokens:f.reverse(),numArgs:0}};E("\\bra@ket",Hl(!1));E("\\bra@set",Hl(!0));E("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");E("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");E("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");E("\\angln","{\\angl n}");E("\\blue","\\textcolor{##6495ed}{#1}");E("\\orange","\\textcolor{##ffa500}{#1}");E("\\pink","\\textcolor{##ff00af}{#1}");E("\\red","\\textcolor{##df0030}{#1}");E("\\green","\\textcolor{##28ae7b}{#1}");E("\\gray","\\textcolor{gray}{#1}");E("\\purple","\\textcolor{##9d38bd}{#1}");E("\\blueA","\\textcolor{##ccfaff}{#1}");E("\\blueB","\\textcolor{##80f6ff}{#1}");E("\\blueC","\\textcolor{##63d9ea}{#1}");E("\\blueD","\\textcolor{##11accd}{#1}");E("\\blueE","\\textcolor{##0c7f99}{#1}");E("\\tealA","\\textcolor{##94fff5}{#1}");E("\\tealB","\\textcolor{##26edd5}{#1}");E("\\tealC","\\textcolor{##01d1c1}{#1}");E("\\tealD","\\textcolor{##01a995}{#1}");E("\\tealE","\\textcolor{##208170}{#1}");E("\\greenA","\\textcolor{##b6ffb0}{#1}");E("\\greenB","\\textcolor{##8af281}{#1}");E("\\greenC","\\textcolor{##74cf70}{#1}");E("\\greenD","\\textcolor{##1fab54}{#1}");E("\\greenE","\\textcolor{##0d923f}{#1}");E("\\goldA","\\textcolor{##ffd0a9}{#1}");E("\\goldB","\\textcolor{##ffbb71}{#1}");E("\\goldC","\\textcolor{##ff9c39}{#1}");E("\\goldD","\\textcolor{##e07d10}{#1}");E("\\goldE","\\textcolor{##a75a05}{#1}");E("\\redA","\\textcolor{##fca9a9}{#1}");E("\\redB","\\textcolor{##ff8482}{#1}");E("\\redC","\\textcolor{##f9685d}{#1}");E("\\redD","\\textcolor{##e84d39}{#1}");E("\\redE","\\textcolor{##bc2612}{#1}");E("\\maroonA","\\textcolor{##ffbde0}{#1}");E("\\maroonB","\\textcolor{##ff92c6}{#1}");E("\\maroonC","\\textcolor{##ed5fa6}{#1}");E("\\maroonD","\\textcolor{##ca337c}{#1}");E("\\maroonE","\\textcolor{##9e034e}{#1}");E("\\purpleA","\\textcolor{##ddd7ff}{#1}");E("\\purpleB","\\textcolor{##c6b9fc}{#1}");E("\\purpleC","\\textcolor{##aa87ff}{#1}");E("\\purpleD","\\textcolor{##7854ab}{#1}");E("\\purpleE","\\textcolor{##543b78}{#1}");E("\\mintA","\\textcolor{##f5f9e8}{#1}");E("\\mintB","\\textcolor{##edf2df}{#1}");E("\\mintC","\\textcolor{##e0e5cc}{#1}");E("\\grayA","\\textcolor{##f6f7f7}{#1}");E("\\grayB","\\textcolor{##f0f1f2}{#1}");E("\\grayC","\\textcolor{##e3e5e6}{#1}");E("\\grayD","\\textcolor{##d6d8da}{#1}");E("\\grayE","\\textcolor{##babec2}{#1}");E("\\grayF","\\textcolor{##888d93}{#1}");E("\\grayG","\\textcolor{##626569}{#1}");E("\\grayH","\\textcolor{##3b3e40}{#1}");E("\\grayI","\\textcolor{##21242c}{#1}");E("\\kaBlue","\\textcolor{##314453}{#1}");E("\\kaGreen","\\textcolor{##71B307}{#1}");var zl={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class S4{constructor(t,r,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(t),this.macros=new v4(A4,r.macros),this.mode=n,this.stack=[]}feed(t){this.lexer=new wu(t,this.settings)}switchMode(t){this.mode=t}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(t){this.stack.push(t)}pushTokens(t){this.stack.push(...t)}scanArgument(t){var r,n,a;if(t){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:a,end:n}=this.consumeArg(["]"])}else({tokens:a,start:r,end:n}=this.consumeArg());return this.pushToken(new dt("EOF",n.loc)),this.pushTokens(a),r.range(n,"")}consumeSpaces(){for(;;){var t=this.future();if(t.text===" ")this.stack.pop();else break}}consumeArg(t){var r=[],n=t&&t.length>0;n||this.consumeSpaces();var a=this.future(),i,u=0,s=0;do{if(i=this.popToken(),r.push(i),i.text==="{")++u;else if(i.text==="}"){if(--u,u===-1)throw new V("Extra }",i)}else if(i.text==="EOF")throw new V("Unexpected end of input in a macro argument, expected '"+(t&&n?t[s]:"}")+"'",i);if(t&&n)if((u===0||u===1&&t[s]==="{")&&i.text===t[s]){if(++s,s===t.length){r.splice(-s,s);break}}else s=0}while(u!==0||n);return a.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:a,end:i}}consumeArgs(t,r){if(r){if(r.length!==t+1)throw new V("The length of delimiters doesn't match the number of args!");for(var n=r[0],a=0;athis.settings.maxExpand)throw new V("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(t){var r=this.popToken(),n=r.text,a=r.noexpand?null:this._getExpansion(n);if(a==null||t&&a.unexpandable){if(t&&a==null&&n[0]==="\\"&&!this.isDefined(n))throw new V("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var i=a.tokens,u=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs){i=i.slice();for(var s=i.length-1;s>=0;--s){var l=i[s];if(l.text==="#"){if(s===0)throw new V("Incomplete placeholder at end of macro body",l);if(l=i[--s],l.text==="#")i.splice(s+1,1);else if(/^[1-9]$/.test(l.text))i.splice(s,2,...u[+l.text-1]);else throw new V("Not a valid argument number",l)}}}return this.pushTokens(i),i.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var t=this.stack.pop();return t.treatAsRelax&&(t.text="\\relax"),t}throw new Error}expandMacro(t){return this.macros.has(t)?this.expandTokens([new dt(t)]):void 0}expandTokens(t){var r=[],n=this.stack.length;for(this.pushTokens(t);this.stack.length>n;)if(this.expandOnce(!0)===!1){var a=this.stack.pop();a.treatAsRelax&&(a.noexpand=!1,a.treatAsRelax=!1),r.push(a)}return this.countExpansion(r.length),r}expandMacroAsText(t){var r=this.expandMacro(t);return r&&r.map(n=>n.text).join("")}_getExpansion(t){var r=this.macros.get(t);if(r==null)return r;if(t.length===1){var n=this.lexer.catcodes[t];if(n!=null&&n!==13)return}var a=typeof r=="function"?r(this):r;if(typeof a=="string"){var i=0;if(a.indexOf("#")!==-1)for(var u=a.replace(/##/g,"");u.indexOf("#"+(i+1))!==-1;)++i;for(var s=new wu(a,this.settings),l=[],c=s.lex();c.text!=="EOF";)l.push(c),c=s.lex();l.reverse();var f={tokens:l,numArgs:i};return f}return a}isDefined(t){return this.macros.has(t)||Kt.hasOwnProperty(t)||Ae.math.hasOwnProperty(t)||Ae.text.hasOwnProperty(t)||zl.hasOwnProperty(t)}isExpandable(t){var r=this.macros.get(t);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:Kt.hasOwnProperty(t)&&!Kt[t].primitive}}var Iu=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,Dn=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),Y0={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},Nu={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};let Ul=class ql{constructor(t,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new S4(t,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(t,r){if(r===void 0&&(r=!0),this.fetch().text!==t)throw new V("Expected '"+t+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(t){this.mode=t,this.gullet.switchMode(t)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var t=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),t}finally{this.gullet.endGroups()}}subparse(t){var r=this.nextToken;this.consume(),this.gullet.pushToken(new dt("}")),this.gullet.pushTokens(t);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(t,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var a=this.fetch();if(ql.endOfExpression.indexOf(a.text)!==-1||r&&a.text===r||t&&Kt[a.text]&&Kt[a.text].infix)break;var i=this.parseAtom(r);if(i){if(i.type==="internal")continue}else break;n.push(i)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(t){for(var r=-1,n,a=0;a=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',t);var s=Ae[this.mode][r].group,l=at.range(t),c;if(dm.hasOwnProperty(s)){var f=s;c={type:"atom",mode:this.mode,family:f,loc:l,text:r}}else c={type:s,mode:this.mode,loc:l,text:r};u=c}else if(r.charCodeAt(0)>=128)this.settings.strict&&(Qs(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',t):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),t)),u={type:"textord",mode:"text",loc:at.range(t),text:r};else return null;if(this.consume(),i)for(var d=0;dc&&(c=f):f&&(c!==void 0&&c>-1&&l.push(` +`.repeat(c)||" "),c=-1,l.push(f))}return l.join("")}function Kl(e,t,r){return e.type==="element"?Z4(e,t,r):e.type==="text"?r.whitespace==="normal"?Jl(e,r):e2(e):[]}function Z4(e,t,r){const n=Zl(e,r),a=e.children||[];let i=-1,u=[];if(K4(e))return u;let s,l;for(ga(e)||Hu(e)&&Ru(t,e,Hu)?l=` +`:$4(e)?(s=2,l=2):$l(e)&&(s=1,l=1);++i0?{type:"text",value:M}:void 0),M===!1?b.lastIndex=W+1:(y!==W&&I.push({type:"text",value:c.value.slice(y,W)}),Array.isArray(M)?I.push(...M):M&&I.push(M),y=W+R[0].length,C=!0),!b.global)break;R=b.exec(c.value)}return C?(y?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let r=t[0],n=r.indexOf(")");const a=zu(e,"(");let i=zu(e,")");for(;n!==-1&&a>i;)e+=r.slice(0,n+1),r=r.slice(n+1),n=r.indexOf(")"),i++;return[e,r]}function eo(e,t){const r=e.input.charCodeAt(e.index-1);return(e.index===0||hr(r)||Zn(r))&&(!t||r!==47)}to.peek=R2;function k2(){return{enter:{gfmFootnoteDefinition:C2,gfmFootnoteDefinitionLabelString:_2,gfmFootnoteCall:D2,gfmFootnoteCallString:O2},exit:{gfmFootnoteDefinition:N2,gfmFootnoteDefinitionLabelString:I2,gfmFootnoteCall:M2,gfmFootnoteCallString:L2}}}function w2(){return{unsafe:[{character:"[",inConstruct:["phrasing","label","reference"]}],handlers:{footnoteDefinition:P2,footnoteReference:to}}}function C2(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function _2(){this.buffer()}function I2(e){const t=this.resume(),r=this.stack[this.stack.length-1];r.type,r.label=t,r.identifier=yt(this.sliceSerialize(e)).toLowerCase()}function N2(e){this.exit(e)}function D2(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function O2(){this.buffer()}function L2(e){const t=this.resume(),r=this.stack[this.stack.length-1];r.type,r.label=t,r.identifier=yt(this.sliceSerialize(e)).toLowerCase()}function M2(e){this.exit(e)}function to(e,t,r,n){const a=r.createTracker(n);let i=a.move("[^");const u=r.enter("footnoteReference"),s=r.enter("reference");return i+=a.move(r.safe(r.associationId(e),{...a.current(),before:i,after:"]"})),s(),u(),i+=a.move("]"),i}function R2(){return"["}function P2(e,t,r,n){const a=r.createTracker(n);let i=a.move("[^");const u=r.enter("footnoteDefinition"),s=r.enter("label");return i+=a.move(r.safe(r.associationId(e),{...a.current(),before:i,after:"]"})),s(),i+=a.move("]:"+(e.children&&e.children.length>0?" ":"")),a.shift(4),i+=a.move(r.indentLines(r.containerFlow(e,a.current()),B2)),u(),i}function B2(e,t,r){return t===0?e:(r?"":" ")+e}const F2=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];ro.peek=Y2;function H2(){return{canContainEols:["delete"],enter:{strikethrough:U2},exit:{strikethrough:q2}}}function z2(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:F2}],handlers:{delete:ro}}}function U2(e){this.enter({type:"delete",children:[]},e)}function q2(e){this.exit(e)}function ro(e,t,r,n){const a=r.createTracker(n),i=r.enter("strikethrough");let u=a.move("~~");return u+=r.containerPhrasing(e,{...a.current(),before:u,after:"~"}),u+=a.move("~~"),i(),u}function Y2(){return"~"}function V2(e){return e.length}function G2(e,t){const r=t,n=(r.align||[]).concat(),a=r.stringLength||V2,i=[],u=[],s=[],l=[];let c=0,f=-1;for(;++fc&&(c=e[f].length);++Cl[C])&&(l[C]=R)}A.push(I)}u[f]=A,s[f]=D}let d=-1;if(typeof n=="object"&&"length"in n)for(;++dl[d]&&(l[d]=I),p[d]=I),b[d]=R}u.splice(1,0,b),s.splice(1,0,p),f=-1;const y=[];for(;++f "),i.shift(2);const u=r.indentLines(r.containerFlow(e,i.current()),j2);return a(),u}function j2(e,t,r){return">"+(r?"":" ")+e}function Q2(e,t){return Yu(e,t.inConstruct,!0)&&!Yu(e,t.notInConstruct,!1)}function Yu(e,t,r){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return r;let n=-1;for(;++n",...l.current()})),c+=l.move(">")):(s=r.enter("destinationRaw"),c+=l.move(r.safe(e.url,{before:c,after:e.title?" ":` +`,...l.current()}))),s(),e.title&&(s=r.enter(`title${i}`),c+=l.move(" "+a),c+=l.move(r.safe(e.title,{before:c,after:a,...l.current()})),c+=l.move(a),s()),u(),c}function t3(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function ln(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Xn(e,t,r){const n=wr(e),a=wr(t);return n===void 0?a===void 0?r==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:a===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:n===1?a===void 0?{inside:!1,outside:!1}:a===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:a===void 0?{inside:!1,outside:!1}:a===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}ao.peek=r3;function ao(e,t,r,n){const a=t3(r),i=r.enter("emphasis"),u=r.createTracker(n),s=u.move(a);let l=u.move(r.containerPhrasing(e,{after:a,before:s,...u.current()}));const c=l.charCodeAt(0),f=Xn(n.before.charCodeAt(n.before.length-1),c,a);f.inside&&(l=ln(c)+l.slice(1));const d=l.charCodeAt(l.length-1),b=Xn(n.after.charCodeAt(0),d,a);b.inside&&(l=l.slice(0,-1)+ln(d));const p=u.move(a);return i(),r.attentionEncodeSurroundingInfo={after:b.outside,before:f.outside},s+l+p}function r3(e,t,r){return r.options.emphasis||"*"}function n3(e,t){let r=!1;return n0(e,function(n){if("value"in n&&/\r?\n|\r/.test(n.value)||n.type==="break")return r=!0,ta}),!!((!e.depth||e.depth<3)&&wa(e)&&(t.options.setext||r))}function a3(e,t,r,n){const a=Math.max(Math.min(6,e.depth||1),1),i=r.createTracker(n);if(n3(e,r)){const f=r.enter("headingSetext"),d=r.enter("phrasing"),b=r.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return d(),f(),b+` +`+(a===1?"=":"-").repeat(b.length-(Math.max(b.lastIndexOf("\r"),b.lastIndexOf(` +`))+1))}const u="#".repeat(a),s=r.enter("headingAtx"),l=r.enter("phrasing");i.move(u+" ");let c=r.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(c)&&(c=ln(c.charCodeAt(0))+c.slice(1)),c=c?u+" "+c:u,r.options.closeAtx&&(c+=" "+u),l(),s(),c}io.peek=i3;function io(e){return e.value||""}function i3(){return"<"}uo.peek=u3;function uo(e,t,r,n){const a=ri(r),i=a==='"'?"Quote":"Apostrophe",u=r.enter("image");let s=r.enter("label");const l=r.createTracker(n);let c=l.move("![");return c+=l.move(r.safe(e.alt,{before:c,after:"]",...l.current()})),c+=l.move("]("),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=r.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(r.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(s=r.enter("destinationRaw"),c+=l.move(r.safe(e.url,{before:c,after:e.title?" ":")",...l.current()}))),s(),e.title&&(s=r.enter(`title${i}`),c+=l.move(" "+a),c+=l.move(r.safe(e.title,{before:c,after:a,...l.current()})),c+=l.move(a),s()),c+=l.move(")"),u(),c}function u3(){return"!"}so.peek=s3;function so(e,t,r,n){const a=e.referenceType,i=r.enter("imageReference");let u=r.enter("label");const s=r.createTracker(n);let l=s.move("![");const c=r.safe(e.alt,{before:l,after:"]",...s.current()});l+=s.move(c+"]["),u();const f=r.stack;r.stack=[],u=r.enter("reference");const d=r.safe(r.associationId(e),{before:l,after:"]",...s.current()});return u(),r.stack=f,i(),a==="full"||!c||c!==d?l+=s.move(d+"]"):a==="shortcut"?l=l.slice(0,-1):l+=s.move("]"),l}function s3(){return"!"}lo.peek=l3;function lo(e,t,r){let n=e.value||"",a="`",i=-1;for(;new RegExp("(^|[^`])"+a+"([^`]|$)").test(n);)a+="`";for(/[^ \r\n]/.test(n)&&(/^[ \r\n]/.test(n)&&/[ \r\n]$/.test(n)||/^`|`$/.test(n))&&(n=" "+n+" ");++i\u007F]/.test(e.url))}co.peek=o3;function co(e,t,r,n){const a=ri(r),i=a==='"'?"Quote":"Apostrophe",u=r.createTracker(n);let s,l;if(oo(e,r)){const f=r.stack;r.stack=[],s=r.enter("autolink");let d=u.move("<");return d+=u.move(r.containerPhrasing(e,{before:d,after:">",...u.current()})),d+=u.move(">"),s(),r.stack=f,d}s=r.enter("link"),l=r.enter("label");let c=u.move("[");return c+=u.move(r.containerPhrasing(e,{before:c,after:"](",...u.current()})),c+=u.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=r.enter("destinationLiteral"),c+=u.move("<"),c+=u.move(r.safe(e.url,{before:c,after:">",...u.current()})),c+=u.move(">")):(l=r.enter("destinationRaw"),c+=u.move(r.safe(e.url,{before:c,after:e.title?" ":")",...u.current()}))),l(),e.title&&(l=r.enter(`title${i}`),c+=u.move(" "+a),c+=u.move(r.safe(e.title,{before:c,after:a,...u.current()})),c+=u.move(a),l()),c+=u.move(")"),s(),c}function o3(e,t,r){return oo(e,r)?"<":"["}ho.peek=c3;function ho(e,t,r,n){const a=e.referenceType,i=r.enter("linkReference");let u=r.enter("label");const s=r.createTracker(n);let l=s.move("[");const c=r.containerPhrasing(e,{before:l,after:"]",...s.current()});l+=s.move(c+"]["),u();const f=r.stack;r.stack=[],u=r.enter("reference");const d=r.safe(r.associationId(e),{before:l,after:"]",...s.current()});return u(),r.stack=f,i(),a==="full"||!c||c!==d?l+=s.move(d+"]"):a==="shortcut"?l=l.slice(0,-1):l+=s.move("]"),l}function c3(){return"["}function ni(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function h3(e){const t=ni(e),r=e.options.bulletOther;if(!r)return t==="*"?"-":"*";if(r!=="*"&&r!=="+"&&r!=="-")throw new Error("Cannot serialize items with `"+r+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(r===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+r+"`) to be different");return r}function d3(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function fo(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function f3(e,t,r,n){const a=r.enter("list"),i=r.bulletCurrent;let u=e.ordered?d3(r):ni(r);const s=e.ordered?u==="."?")":".":h3(r);let l=t&&r.bulletLastUsed?u===r.bulletLastUsed:!1;if(!e.ordered){const f=e.children?e.children[0]:void 0;if((u==="*"||u==="-")&&f&&(!f.children||!f.children[0])&&r.stack[r.stack.length-1]==="list"&&r.stack[r.stack.length-2]==="listItem"&&r.stack[r.stack.length-3]==="list"&&r.stack[r.stack.length-4]==="listItem"&&r.indexStack[r.indexStack.length-1]===0&&r.indexStack[r.indexStack.length-2]===0&&r.indexStack[r.indexStack.length-3]===0&&(l=!0),fo(r)===u&&f){let d=-1;for(;++d-1?t.start:1)+(r.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let u=i.length+1;(a==="tab"||a==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(u=Math.ceil(u/4)*4);const s=r.createTracker(n);s.move(i+" ".repeat(u-i.length)),s.shift(u);const l=r.enter("listItem"),c=r.indentLines(r.containerFlow(e,s.current()),f);return l(),c;function f(d,b,p){return b?(p?"":" ".repeat(u))+d:(p?i:i+" ".repeat(u-i.length))+d}}function g3(e,t,r,n){const a=r.enter("paragraph"),i=r.enter("phrasing"),u=r.containerPhrasing(e,n);return i(),a(),u}const b3=fn(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function E3(e,t,r,n){return(e.children.some(function(u){return b3(u)})?r.containerPhrasing:r.containerFlow).call(r,e,n)}function T3(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}mo.peek=y3;function mo(e,t,r,n){const a=T3(r),i=r.enter("strong"),u=r.createTracker(n),s=u.move(a+a);let l=u.move(r.containerPhrasing(e,{after:a,before:s,...u.current()}));const c=l.charCodeAt(0),f=Xn(n.before.charCodeAt(n.before.length-1),c,a);f.inside&&(l=ln(c)+l.slice(1));const d=l.charCodeAt(l.length-1),b=Xn(n.after.charCodeAt(0),d,a);b.inside&&(l=l.slice(0,-1)+ln(d));const p=u.move(a+a);return i(),r.attentionEncodeSurroundingInfo={after:b.outside,before:f.outside},s+l+p}function y3(e,t,r){return r.options.strong||"*"}function x3(e,t,r,n){return r.safe(e.value,n)}function v3(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function A3(e,t,r){const n=(fo(r)+(r.options.ruleSpaces?" ":"")).repeat(v3(r));return r.options.ruleSpaces?n.slice(0,-1):n}const po={blockquote:X2,break:Vu,code:J2,definition:e3,emphasis:ao,hardBreak:Vu,heading:a3,html:io,image:uo,imageReference:so,inlineCode:lo,link:co,linkReference:ho,list:f3,listItem:p3,paragraph:g3,root:E3,strong:mo,text:x3,thematicBreak:A3};function S3(){return{enter:{table:k3,tableData:Gu,tableHeader:Gu,tableRow:C3},exit:{codeText:_3,table:w3,tableData:X0,tableHeader:X0,tableRow:X0}}}function k3(e){const t=e._align;this.enter({type:"table",align:t.map(function(r){return r==="none"?null:r}),children:[]},e),this.data.inTable=!0}function w3(e){this.exit(e),this.data.inTable=void 0}function C3(e){this.enter({type:"tableRow",children:[]},e)}function X0(e){this.exit(e)}function Gu(e){this.enter({type:"tableCell",children:[]},e)}function _3(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,I3));const r=this.stack[this.stack.length-1];r.type,r.value=t,this.exit(e)}function I3(e,t){return t==="|"?t:e}function N3(e){const t=e,r=t.tableCellPadding,n=t.tablePipeAlign,a=t.stringLength,i=r?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:b,table:u,tableCell:l,tableRow:s}};function u(p,y,A,D){return c(f(p,A,D),p.align)}function s(p,y,A,D){const C=d(p,A,D),I=c([C]);return I.slice(0,I.indexOf(` +`))}function l(p,y,A,D){const C=A.enter("tableCell"),I=A.enter("phrasing"),R=A.containerPhrasing(p,{...D,before:i,after:i});return I(),C(),R}function c(p,y){return G2(p,{align:y,alignDelimiters:n,padding:r,stringLength:a})}function f(p,y,A){const D=p.children;let C=-1;const I=[],R=y.enter("table");for(;++C0&&!r&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),r}const j3={tokenize:r6,partial:!0};function Q3(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:Z3,continuation:{tokenize:e6},exit:t6}},text:{91:{name:"gfmFootnoteCall",tokenize:J3},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:$3,resolveTo:K3}}}}function $3(e,t,r){const n=this;let a=n.events.length;const i=n.parser.gfmFootnotes||(n.parser.gfmFootnotes=[]);let u;for(;a--;){const l=n.events[a][1];if(l.type==="labelImage"){u=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return s;function s(l){if(!u||!u._balanced)return r(l);const c=yt(n.sliceSerialize({start:u.end,end:n.now()}));return c.codePointAt(0)!==94||!i.includes(c.slice(1))?r(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),t(l))}}function K3(e,t){let r=e.length;for(;r--;)if(e[r][1].type==="labelImage"&&e[r][0]==="enter"){e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";const n={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},a={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[r+3][1].end)};a.end.column++,a.end.offset++,a.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},a.end),end:Object.assign({},e[e.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},s=[e[r+1],e[r+2],["enter",n,t],e[r+3],e[r+4],["enter",a,t],["exit",a,t],["enter",i,t],["enter",u,t],["exit",u,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",n,t]];return e.splice(r,e.length-r+1,...s),e}function J3(e,t,r){const n=this,a=n.parser.gfmFootnotes||(n.parser.gfmFootnotes=[]);let i=0,u;return s;function s(d){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),l}function l(d){return d!==94?r(d):(e.enter("gfmFootnoteCallMarker"),e.consume(d),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(d){if(i>999||d===93&&!u||d===null||d===91||ye(d))return r(d);if(d===93){e.exit("chunkString");const b=e.exit("gfmFootnoteCallString");return a.includes(yt(n.sliceSerialize(b)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):r(d)}return ye(d)||(u=!0),i++,e.consume(d),d===92?f:c}function f(d){return d===91||d===92||d===93?(e.consume(d),i++,c):c(d)}}function Z3(e,t,r){const n=this,a=n.parser.gfmFootnotes||(n.parser.gfmFootnotes=[]);let i,u=0,s;return l;function l(y){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(y),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(y){return y===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(y),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",f):r(y)}function f(y){if(u>999||y===93&&!s||y===null||y===91||ye(y))return r(y);if(y===93){e.exit("chunkString");const A=e.exit("gfmFootnoteDefinitionLabelString");return i=yt(n.sliceSerialize(A)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(y),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),b}return ye(y)||(s=!0),u++,e.consume(y),y===92?d:f}function d(y){return y===91||y===92||y===93?(e.consume(y),u++,f):f(y)}function b(y){return y===58?(e.enter("definitionMarker"),e.consume(y),e.exit("definitionMarker"),a.includes(i)||a.push(i),me(e,p,"gfmFootnoteDefinitionWhitespace")):r(y)}function p(y){return t(y)}}function e6(e,t,r){return e.check(dn,t,e.attempt(j3,t,r))}function t6(e){e.exit("gfmFootnoteDefinition")}function r6(e,t,r){const n=this;return me(e,a,"gfmFootnoteDefinitionIndent",5);function a(i){const u=n.events[n.events.length-1];return u&&u[1].type==="gfmFootnoteDefinitionIndent"&&u[2].sliceSerialize(u[1],!0).length===4?t(i):r(i)}}function n6(e){let r=e.singleTilde;const n={name:"strikethrough",tokenize:i,resolveAll:a};return r==null&&(r=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function a(u,s){let l=-1;for(;++l1?l(y):(u.consume(y),d++,p);if(d<2&&!r)return l(y);const D=u.exit("strikethroughSequenceTemporary"),C=wr(y);return D._open=!C||C===2&&!!A,D._close=!A||A===2&&!!C,s(y)}}}class a6{constructor(){this.map=[]}add(t,r,n){i6(this,t,r,n)}consume(t){if(this.map.sort(function(i,u){return i[0]-u[0]}),this.map.length===0)return;let r=this.map.length;const n=[];for(;r>0;)r-=1,n.push(t.slice(this.map[r][0]+this.map[r][1]),this.map[r][2]),t.length=this.map[r][0];n.push([...t]),t.length=0;let a=n.pop();for(;a;)t.push(...a),a=n.pop();this.map.length=0}}function i6(e,t,r,n){let a=0;if(!(r===0&&n.length===0)){for(;a-1;){const K=n.events[Z][1].type;if(K==="lineEnding"||K==="linePrefix")Z--;else break}const $=Z>-1?n.events[Z][1].type:null,re=$==="tableHead"||$==="tableRow"?M:l;return re===M&&n.parser.lazy[n.now().line]?r(P):re(P)}function l(P){return e.enter("tableHead"),e.enter("tableRow"),c(P)}function c(P){return P===124||(u=!0,i+=1),f(P)}function f(P){return P===null?r(P):ne(P)?i>1?(i=0,n.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(P),e.exit("lineEnding"),p):r(P):pe(P)?me(e,f,"whitespace")(P):(i+=1,u&&(u=!1,a+=1),P===124?(e.enter("tableCellDivider"),e.consume(P),e.exit("tableCellDivider"),u=!0,f):(e.enter("data"),d(P)))}function d(P){return P===null||P===124||ye(P)?(e.exit("data"),f(P)):(e.consume(P),P===92?b:d)}function b(P){return P===92||P===124?(e.consume(P),d):d(P)}function p(P){return n.interrupt=!1,n.parser.lazy[n.now().line]?r(P):(e.enter("tableDelimiterRow"),u=!1,pe(P)?me(e,y,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(P):y(P))}function y(P){return P===45||P===58?D(P):P===124?(u=!0,e.enter("tableCellDivider"),e.consume(P),e.exit("tableCellDivider"),A):Y(P)}function A(P){return pe(P)?me(e,D,"whitespace")(P):D(P)}function D(P){return P===58?(i+=1,u=!0,e.enter("tableDelimiterMarker"),e.consume(P),e.exit("tableDelimiterMarker"),C):P===45?(i+=1,C(P)):P===null||ne(P)?W(P):Y(P)}function C(P){return P===45?(e.enter("tableDelimiterFiller"),I(P)):Y(P)}function I(P){return P===45?(e.consume(P),I):P===58?(u=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(P),e.exit("tableDelimiterMarker"),R):(e.exit("tableDelimiterFiller"),R(P))}function R(P){return pe(P)?me(e,W,"whitespace")(P):W(P)}function W(P){return P===124?y(P):P===null||ne(P)?!u||a!==i?Y(P):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(P)):Y(P)}function Y(P){return r(P)}function M(P){return e.enter("tableRow"),Q(P)}function Q(P){return P===124?(e.enter("tableCellDivider"),e.consume(P),e.exit("tableCellDivider"),Q):P===null||ne(P)?(e.exit("tableRow"),t(P)):pe(P)?me(e,Q,"whitespace")(P):(e.enter("data"),ie(P))}function ie(P){return P===null||P===124||ye(P)?(e.exit("data"),Q(P)):(e.consume(P),P===92?J:ie)}function J(P){return P===92||P===124?(e.consume(P),ie):ie(P)}}function o6(e,t){let r=-1,n=!0,a=0,i=[0,0,0,0],u=[0,0,0,0],s=!1,l=0,c,f,d;const b=new a6;for(;++rr[2]+1){const y=r[2]+1,A=r[3]-r[2]-1;e.add(y,A,[])}}e.add(r[3]+1,0,[["exit",d,t]])}return a!==void 0&&(i.end=Object.assign({},vr(t.events,a)),e.add(a,0,[["exit",i,t]]),i=void 0),i}function Xu(e,t,r,n,a){const i=[],u=vr(t.events,r);a&&(a.end=Object.assign({},u),i.push(["exit",a,t])),n.end=Object.assign({},u),i.push(["exit",n,t]),e.add(r+1,0,i)}function vr(e,t){const r=e[t],n=r[0]==="enter"?"start":"end";return r[1][n]}const c6={name:"tasklistCheck",tokenize:d6};function h6(){return{text:{91:c6}}}function d6(e,t,r){const n=this;return a;function a(l){return n.previous!==null||!n._gfmTasklistFirstContentOfListItem?r(l):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),i)}function i(l){return ye(l)?(e.enter("taskListCheckValueUnchecked"),e.consume(l),e.exit("taskListCheckValueUnchecked"),u):l===88||l===120?(e.enter("taskListCheckValueChecked"),e.consume(l),e.exit("taskListCheckValueChecked"),u):r(l)}function u(l){return l===93?(e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),s):r(l)}function s(l){return ne(l)?t(l):pe(l)?e.check({tokenize:f6},t,r)(l):r(l)}}function f6(e,t,r){return me(e,n,"whitespace");function n(a){return a===null?r(a):t(a)}}function m6(e){return ws([H3(),Q3(),n6(e),s6(),h6()])}const p6={};function g6(e){const t=this,r=e||p6,n=t.data(),a=n.micromarkExtensions||(n.micromarkExtensions=[]),i=n.fromMarkdownExtensions||(n.fromMarkdownExtensions=[]),u=n.toMarkdownExtensions||(n.toMarkdownExtensions=[]);a.push(m6(r)),i.push(R3()),u.push(P3(r))}function b6(e){const t=String(e),r=[];return{toOffset:a,toPoint:n};function n(i){if(typeof i=="number"&&i>-1&&i<=t.length){let u=0;for(;;){let s=r[u];if(s===void 0){const l=ju(t,r[u-1]);s=l===-1?t.length+1:l+1,r[u]=s}if(s>i)return{line:u+1,column:i-(u>0?r[u-1]:0)+1,offset:i};u++}}}function a(i){if(i&&typeof i.line=="number"&&typeof i.column=="number"&&!Number.isNaN(i.line)&&!Number.isNaN(i.column)){for(;r.length1?r[i.line-2]:0)+i.column-1;if(u=55296&&e<=57343}function L6(e){return e>=56320&&e<=57343}function M6(e,t){return(e-55296)*1024+9216+t}function _o(e){return e!==32&&e!==10&&e!==13&&e!==9&&e!==12&&e>=1&&e<=31||e>=127&&e<=159}function Io(e){return e>=64976&&e<=65007||O6.has(e)}var B;(function(e){e.controlCharacterInInputStream="control-character-in-input-stream",e.noncharacterInInputStream="noncharacter-in-input-stream",e.surrogateInInputStream="surrogate-in-input-stream",e.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",e.endTagWithAttributes="end-tag-with-attributes",e.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",e.unexpectedSolidusInTag="unexpected-solidus-in-tag",e.unexpectedNullCharacter="unexpected-null-character",e.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",e.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",e.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",e.missingEndTagName="missing-end-tag-name",e.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",e.unknownNamedCharacterReference="unknown-named-character-reference",e.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",e.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",e.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",e.eofBeforeTagName="eof-before-tag-name",e.eofInTag="eof-in-tag",e.missingAttributeValue="missing-attribute-value",e.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",e.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",e.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",e.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",e.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",e.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",e.missingDoctypePublicIdentifier="missing-doctype-public-identifier",e.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",e.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",e.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",e.cdataInHtmlContent="cdata-in-html-content",e.incorrectlyOpenedComment="incorrectly-opened-comment",e.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",e.eofInDoctype="eof-in-doctype",e.nestedComment="nested-comment",e.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",e.eofInComment="eof-in-comment",e.incorrectlyClosedComment="incorrectly-closed-comment",e.eofInCdata="eof-in-cdata",e.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",e.nullCharacterReference="null-character-reference",e.surrogateCharacterReference="surrogate-character-reference",e.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",e.controlCharacterReference="control-character-reference",e.noncharacterCharacterReference="noncharacter-character-reference",e.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",e.missingDoctypeName="missing-doctype-name",e.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",e.duplicateAttribute="duplicate-attribute",e.nonConformingDoctype="non-conforming-doctype",e.missingDoctype="missing-doctype",e.misplacedDoctype="misplaced-doctype",e.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",e.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",e.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",e.openElementsLeftAfterEof="open-elements-left-after-eof",e.abandonedHeadElementChild="abandoned-head-element-child",e.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",e.nestedNoscriptInHead="nested-noscript-in-head",e.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text"})(B||(B={}));const R6=65536;class P6{constructor(t){this.handler=t,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=R6,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1}get col(){return this.pos-this.lineStartPos+ +(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(t,r){const{line:n,col:a,offset:i}=this,u=a+r,s=i+r;return{code:t,startLine:n,endLine:n,startCol:u,endCol:u,startOffset:s,endOffset:s}}_err(t){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(t,0)))}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(t){if(this.pos!==this.html.length-1){const r=this.html.charCodeAt(this.pos+1);if(L6(r))return this.pos++,this._addGap(),M6(t,r)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,T.EOF;return this._err(B.surrogateInInputStream),t}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(t,r){this.html.length>0?this.html+=t:this.html=t,this.endOfChunkHit=!1,this.lastChunkWritten=r}insertHtmlAtCurrentPos(t){this.html=this.html.substring(0,this.pos+1)+t+this.html.substring(this.pos+1),this.endOfChunkHit=!1}startsWith(t,r){if(this.pos+t.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(r)return this.html.startsWith(t,this.pos);for(let n=0;n=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,T.EOF;const n=this.html.charCodeAt(r);return n===T.CARRIAGE_RETURN?T.LINE_FEED:n}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,T.EOF;let t=this.html.charCodeAt(this.pos);return t===T.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,T.LINE_FEED):t===T.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,Co(t)&&(t=this._processSurrogate(t)),this.handler.onParseError===null||t>31&&t<127||t===T.LINE_FEED||t===T.CARRIAGE_RETURN||t>159&&t<64976||this._checkForProblematicCharacters(t),t)}_checkForProblematicCharacters(t){_o(t)?this._err(B.controlCharacterInInputStream):Io(t)&&this._err(B.noncharacterInInputStream)}retreat(t){for(this.pos-=t;this.pos=0;r--)if(e.attrs[r].name===t)return e.attrs[r].value;return null}const Do=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),B6=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)));var j0;const F6=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),H6=(j0=String.fromCodePoint)!==null&&j0!==void 0?j0:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function z6(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=F6.get(e))!==null&&t!==void 0?t:e}var ze;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(ze||(ze={}));const U6=32;var Jt;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(Jt||(Jt={}));function Ea(e){return e>=ze.ZERO&&e<=ze.NINE}function q6(e){return e>=ze.UPPER_A&&e<=ze.UPPER_F||e>=ze.LOWER_A&&e<=ze.LOWER_F}function Y6(e){return e>=ze.UPPER_A&&e<=ze.UPPER_Z||e>=ze.LOWER_A&&e<=ze.LOWER_Z||Ea(e)}function V6(e){return e===ze.EQUALS||Y6(e)}var He;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(He||(He={}));var Ft;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(Ft||(Ft={}));class Oo{constructor(t,r,n){this.decodeTree=t,this.emitCodePoint=r,this.errors=n,this.state=He.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=Ft.Strict}startEntity(t){this.decodeMode=t,this.state=He.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,r){switch(this.state){case He.EntityStart:return t.charCodeAt(r)===ze.NUM?(this.state=He.NumericStart,this.consumed+=1,this.stateNumericStart(t,r+1)):(this.state=He.NamedEntity,this.stateNamedEntity(t,r));case He.NumericStart:return this.stateNumericStart(t,r);case He.NumericDecimal:return this.stateNumericDecimal(t,r);case He.NumericHex:return this.stateNumericHex(t,r);case He.NamedEntity:return this.stateNamedEntity(t,r)}}stateNumericStart(t,r){return r>=t.length?-1:(t.charCodeAt(r)|U6)===ze.LOWER_X?(this.state=He.NumericHex,this.consumed+=1,this.stateNumericHex(t,r+1)):(this.state=He.NumericDecimal,this.stateNumericDecimal(t,r))}addToNumericResult(t,r,n,a){if(r!==n){const i=n-r;this.result=this.result*Math.pow(a,i)+parseInt(t.substr(r,i),a),this.consumed+=i}}stateNumericHex(t,r){const n=r;for(;r>14;for(;r>14,i!==0){if(u===ze.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==Ft.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:r,decodeTree:n}=this,a=(n[r]&Jt.VALUE_LENGTH)>>14;return this.emitNamedEntityData(r,a,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,r,n){const{decodeTree:a}=this;return this.emitCodePoint(r===1?a[t]&~Jt.VALUE_LENGTH:a[t+1],n),r===3&&this.emitCodePoint(a[t+2],n),n}end(){var t;switch(this.state){case He.NamedEntity:return this.result!==0&&(this.decodeMode!==Ft.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case He.NumericDecimal:return this.emitNumericEntity(0,2);case He.NumericHex:return this.emitNumericEntity(0,3);case He.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case He.EntityStart:return 0}}}function Lo(e){let t="";const r=new Oo(e,n=>t+=H6(n));return function(a,i){let u=0,s=0;for(;(s=a.indexOf("&",s))>=0;){t+=a.slice(u,s),r.startEntity(i);const c=r.write(a,s+1);if(c<0){u=s+r.end();break}u=s+c,s=c===0?u+1:u}const l=t+a.slice(u);return t="",l}}function G6(e,t,r,n){const a=(t&Jt.BRANCH_LENGTH)>>7,i=t&Jt.JUMP_TABLE;if(a===0)return i!==0&&n===i?r:-1;if(i){const l=n-i;return l<0||l>=a?-1:e[r+l]-1}let u=r,s=u+a-1;for(;u<=s;){const l=u+s>>>1,c=e[l];if(cn)s=l-1;else return e[l+a]}return-1}Lo(Do);Lo(B6);var z;(function(e){e.HTML="http://www.w3.org/1999/xhtml",e.MATHML="http://www.w3.org/1998/Math/MathML",e.SVG="http://www.w3.org/2000/svg",e.XLINK="http://www.w3.org/1999/xlink",e.XML="http://www.w3.org/XML/1998/namespace",e.XMLNS="http://www.w3.org/2000/xmlns/"})(z||(z={}));var cr;(function(e){e.TYPE="type",e.ACTION="action",e.ENCODING="encoding",e.PROMPT="prompt",e.NAME="name",e.COLOR="color",e.FACE="face",e.SIZE="size"})(cr||(cr={}));var ct;(function(e){e.NO_QUIRKS="no-quirks",e.QUIRKS="quirks",e.LIMITED_QUIRKS="limited-quirks"})(ct||(ct={}));var O;(function(e){e.A="a",e.ADDRESS="address",e.ANNOTATION_XML="annotation-xml",e.APPLET="applet",e.AREA="area",e.ARTICLE="article",e.ASIDE="aside",e.B="b",e.BASE="base",e.BASEFONT="basefont",e.BGSOUND="bgsound",e.BIG="big",e.BLOCKQUOTE="blockquote",e.BODY="body",e.BR="br",e.BUTTON="button",e.CAPTION="caption",e.CENTER="center",e.CODE="code",e.COL="col",e.COLGROUP="colgroup",e.DD="dd",e.DESC="desc",e.DETAILS="details",e.DIALOG="dialog",e.DIR="dir",e.DIV="div",e.DL="dl",e.DT="dt",e.EM="em",e.EMBED="embed",e.FIELDSET="fieldset",e.FIGCAPTION="figcaption",e.FIGURE="figure",e.FONT="font",e.FOOTER="footer",e.FOREIGN_OBJECT="foreignObject",e.FORM="form",e.FRAME="frame",e.FRAMESET="frameset",e.H1="h1",e.H2="h2",e.H3="h3",e.H4="h4",e.H5="h5",e.H6="h6",e.HEAD="head",e.HEADER="header",e.HGROUP="hgroup",e.HR="hr",e.HTML="html",e.I="i",e.IMG="img",e.IMAGE="image",e.INPUT="input",e.IFRAME="iframe",e.KEYGEN="keygen",e.LABEL="label",e.LI="li",e.LINK="link",e.LISTING="listing",e.MAIN="main",e.MALIGNMARK="malignmark",e.MARQUEE="marquee",e.MATH="math",e.MENU="menu",e.META="meta",e.MGLYPH="mglyph",e.MI="mi",e.MO="mo",e.MN="mn",e.MS="ms",e.MTEXT="mtext",e.NAV="nav",e.NOBR="nobr",e.NOFRAMES="noframes",e.NOEMBED="noembed",e.NOSCRIPT="noscript",e.OBJECT="object",e.OL="ol",e.OPTGROUP="optgroup",e.OPTION="option",e.P="p",e.PARAM="param",e.PLAINTEXT="plaintext",e.PRE="pre",e.RB="rb",e.RP="rp",e.RT="rt",e.RTC="rtc",e.RUBY="ruby",e.S="s",e.SCRIPT="script",e.SEARCH="search",e.SECTION="section",e.SELECT="select",e.SOURCE="source",e.SMALL="small",e.SPAN="span",e.STRIKE="strike",e.STRONG="strong",e.STYLE="style",e.SUB="sub",e.SUMMARY="summary",e.SUP="sup",e.TABLE="table",e.TBODY="tbody",e.TEMPLATE="template",e.TEXTAREA="textarea",e.TFOOT="tfoot",e.TD="td",e.TH="th",e.THEAD="thead",e.TITLE="title",e.TR="tr",e.TRACK="track",e.TT="tt",e.U="u",e.UL="ul",e.SVG="svg",e.VAR="var",e.WBR="wbr",e.XMP="xmp"})(O||(O={}));var o;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.A=1]="A",e[e.ADDRESS=2]="ADDRESS",e[e.ANNOTATION_XML=3]="ANNOTATION_XML",e[e.APPLET=4]="APPLET",e[e.AREA=5]="AREA",e[e.ARTICLE=6]="ARTICLE",e[e.ASIDE=7]="ASIDE",e[e.B=8]="B",e[e.BASE=9]="BASE",e[e.BASEFONT=10]="BASEFONT",e[e.BGSOUND=11]="BGSOUND",e[e.BIG=12]="BIG",e[e.BLOCKQUOTE=13]="BLOCKQUOTE",e[e.BODY=14]="BODY",e[e.BR=15]="BR",e[e.BUTTON=16]="BUTTON",e[e.CAPTION=17]="CAPTION",e[e.CENTER=18]="CENTER",e[e.CODE=19]="CODE",e[e.COL=20]="COL",e[e.COLGROUP=21]="COLGROUP",e[e.DD=22]="DD",e[e.DESC=23]="DESC",e[e.DETAILS=24]="DETAILS",e[e.DIALOG=25]="DIALOG",e[e.DIR=26]="DIR",e[e.DIV=27]="DIV",e[e.DL=28]="DL",e[e.DT=29]="DT",e[e.EM=30]="EM",e[e.EMBED=31]="EMBED",e[e.FIELDSET=32]="FIELDSET",e[e.FIGCAPTION=33]="FIGCAPTION",e[e.FIGURE=34]="FIGURE",e[e.FONT=35]="FONT",e[e.FOOTER=36]="FOOTER",e[e.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",e[e.FORM=38]="FORM",e[e.FRAME=39]="FRAME",e[e.FRAMESET=40]="FRAMESET",e[e.H1=41]="H1",e[e.H2=42]="H2",e[e.H3=43]="H3",e[e.H4=44]="H4",e[e.H5=45]="H5",e[e.H6=46]="H6",e[e.HEAD=47]="HEAD",e[e.HEADER=48]="HEADER",e[e.HGROUP=49]="HGROUP",e[e.HR=50]="HR",e[e.HTML=51]="HTML",e[e.I=52]="I",e[e.IMG=53]="IMG",e[e.IMAGE=54]="IMAGE",e[e.INPUT=55]="INPUT",e[e.IFRAME=56]="IFRAME",e[e.KEYGEN=57]="KEYGEN",e[e.LABEL=58]="LABEL",e[e.LI=59]="LI",e[e.LINK=60]="LINK",e[e.LISTING=61]="LISTING",e[e.MAIN=62]="MAIN",e[e.MALIGNMARK=63]="MALIGNMARK",e[e.MARQUEE=64]="MARQUEE",e[e.MATH=65]="MATH",e[e.MENU=66]="MENU",e[e.META=67]="META",e[e.MGLYPH=68]="MGLYPH",e[e.MI=69]="MI",e[e.MO=70]="MO",e[e.MN=71]="MN",e[e.MS=72]="MS",e[e.MTEXT=73]="MTEXT",e[e.NAV=74]="NAV",e[e.NOBR=75]="NOBR",e[e.NOFRAMES=76]="NOFRAMES",e[e.NOEMBED=77]="NOEMBED",e[e.NOSCRIPT=78]="NOSCRIPT",e[e.OBJECT=79]="OBJECT",e[e.OL=80]="OL",e[e.OPTGROUP=81]="OPTGROUP",e[e.OPTION=82]="OPTION",e[e.P=83]="P",e[e.PARAM=84]="PARAM",e[e.PLAINTEXT=85]="PLAINTEXT",e[e.PRE=86]="PRE",e[e.RB=87]="RB",e[e.RP=88]="RP",e[e.RT=89]="RT",e[e.RTC=90]="RTC",e[e.RUBY=91]="RUBY",e[e.S=92]="S",e[e.SCRIPT=93]="SCRIPT",e[e.SEARCH=94]="SEARCH",e[e.SECTION=95]="SECTION",e[e.SELECT=96]="SELECT",e[e.SOURCE=97]="SOURCE",e[e.SMALL=98]="SMALL",e[e.SPAN=99]="SPAN",e[e.STRIKE=100]="STRIKE",e[e.STRONG=101]="STRONG",e[e.STYLE=102]="STYLE",e[e.SUB=103]="SUB",e[e.SUMMARY=104]="SUMMARY",e[e.SUP=105]="SUP",e[e.TABLE=106]="TABLE",e[e.TBODY=107]="TBODY",e[e.TEMPLATE=108]="TEMPLATE",e[e.TEXTAREA=109]="TEXTAREA",e[e.TFOOT=110]="TFOOT",e[e.TD=111]="TD",e[e.TH=112]="TH",e[e.THEAD=113]="THEAD",e[e.TITLE=114]="TITLE",e[e.TR=115]="TR",e[e.TRACK=116]="TRACK",e[e.TT=117]="TT",e[e.U=118]="U",e[e.UL=119]="UL",e[e.SVG=120]="SVG",e[e.VAR=121]="VAR",e[e.WBR=122]="WBR",e[e.XMP=123]="XMP"})(o||(o={}));const W6=new Map([[O.A,o.A],[O.ADDRESS,o.ADDRESS],[O.ANNOTATION_XML,o.ANNOTATION_XML],[O.APPLET,o.APPLET],[O.AREA,o.AREA],[O.ARTICLE,o.ARTICLE],[O.ASIDE,o.ASIDE],[O.B,o.B],[O.BASE,o.BASE],[O.BASEFONT,o.BASEFONT],[O.BGSOUND,o.BGSOUND],[O.BIG,o.BIG],[O.BLOCKQUOTE,o.BLOCKQUOTE],[O.BODY,o.BODY],[O.BR,o.BR],[O.BUTTON,o.BUTTON],[O.CAPTION,o.CAPTION],[O.CENTER,o.CENTER],[O.CODE,o.CODE],[O.COL,o.COL],[O.COLGROUP,o.COLGROUP],[O.DD,o.DD],[O.DESC,o.DESC],[O.DETAILS,o.DETAILS],[O.DIALOG,o.DIALOG],[O.DIR,o.DIR],[O.DIV,o.DIV],[O.DL,o.DL],[O.DT,o.DT],[O.EM,o.EM],[O.EMBED,o.EMBED],[O.FIELDSET,o.FIELDSET],[O.FIGCAPTION,o.FIGCAPTION],[O.FIGURE,o.FIGURE],[O.FONT,o.FONT],[O.FOOTER,o.FOOTER],[O.FOREIGN_OBJECT,o.FOREIGN_OBJECT],[O.FORM,o.FORM],[O.FRAME,o.FRAME],[O.FRAMESET,o.FRAMESET],[O.H1,o.H1],[O.H2,o.H2],[O.H3,o.H3],[O.H4,o.H4],[O.H5,o.H5],[O.H6,o.H6],[O.HEAD,o.HEAD],[O.HEADER,o.HEADER],[O.HGROUP,o.HGROUP],[O.HR,o.HR],[O.HTML,o.HTML],[O.I,o.I],[O.IMG,o.IMG],[O.IMAGE,o.IMAGE],[O.INPUT,o.INPUT],[O.IFRAME,o.IFRAME],[O.KEYGEN,o.KEYGEN],[O.LABEL,o.LABEL],[O.LI,o.LI],[O.LINK,o.LINK],[O.LISTING,o.LISTING],[O.MAIN,o.MAIN],[O.MALIGNMARK,o.MALIGNMARK],[O.MARQUEE,o.MARQUEE],[O.MATH,o.MATH],[O.MENU,o.MENU],[O.META,o.META],[O.MGLYPH,o.MGLYPH],[O.MI,o.MI],[O.MO,o.MO],[O.MN,o.MN],[O.MS,o.MS],[O.MTEXT,o.MTEXT],[O.NAV,o.NAV],[O.NOBR,o.NOBR],[O.NOFRAMES,o.NOFRAMES],[O.NOEMBED,o.NOEMBED],[O.NOSCRIPT,o.NOSCRIPT],[O.OBJECT,o.OBJECT],[O.OL,o.OL],[O.OPTGROUP,o.OPTGROUP],[O.OPTION,o.OPTION],[O.P,o.P],[O.PARAM,o.PARAM],[O.PLAINTEXT,o.PLAINTEXT],[O.PRE,o.PRE],[O.RB,o.RB],[O.RP,o.RP],[O.RT,o.RT],[O.RTC,o.RTC],[O.RUBY,o.RUBY],[O.S,o.S],[O.SCRIPT,o.SCRIPT],[O.SEARCH,o.SEARCH],[O.SECTION,o.SECTION],[O.SELECT,o.SELECT],[O.SOURCE,o.SOURCE],[O.SMALL,o.SMALL],[O.SPAN,o.SPAN],[O.STRIKE,o.STRIKE],[O.STRONG,o.STRONG],[O.STYLE,o.STYLE],[O.SUB,o.SUB],[O.SUMMARY,o.SUMMARY],[O.SUP,o.SUP],[O.TABLE,o.TABLE],[O.TBODY,o.TBODY],[O.TEMPLATE,o.TEMPLATE],[O.TEXTAREA,o.TEXTAREA],[O.TFOOT,o.TFOOT],[O.TD,o.TD],[O.TH,o.TH],[O.THEAD,o.THEAD],[O.TITLE,o.TITLE],[O.TR,o.TR],[O.TRACK,o.TRACK],[O.TT,o.TT],[O.U,o.U],[O.UL,o.UL],[O.SVG,o.SVG],[O.VAR,o.VAR],[O.WBR,o.WBR],[O.XMP,o.XMP]]);function Rr(e){var t;return(t=W6.get(e))!==null&&t!==void 0?t:o.UNKNOWN}const U=o,X6={[z.HTML]:new Set([U.ADDRESS,U.APPLET,U.AREA,U.ARTICLE,U.ASIDE,U.BASE,U.BASEFONT,U.BGSOUND,U.BLOCKQUOTE,U.BODY,U.BR,U.BUTTON,U.CAPTION,U.CENTER,U.COL,U.COLGROUP,U.DD,U.DETAILS,U.DIR,U.DIV,U.DL,U.DT,U.EMBED,U.FIELDSET,U.FIGCAPTION,U.FIGURE,U.FOOTER,U.FORM,U.FRAME,U.FRAMESET,U.H1,U.H2,U.H3,U.H4,U.H5,U.H6,U.HEAD,U.HEADER,U.HGROUP,U.HR,U.HTML,U.IFRAME,U.IMG,U.INPUT,U.LI,U.LINK,U.LISTING,U.MAIN,U.MARQUEE,U.MENU,U.META,U.NAV,U.NOEMBED,U.NOFRAMES,U.NOSCRIPT,U.OBJECT,U.OL,U.P,U.PARAM,U.PLAINTEXT,U.PRE,U.SCRIPT,U.SECTION,U.SELECT,U.SOURCE,U.STYLE,U.SUMMARY,U.TABLE,U.TBODY,U.TD,U.TEMPLATE,U.TEXTAREA,U.TFOOT,U.TH,U.THEAD,U.TITLE,U.TR,U.TRACK,U.UL,U.WBR,U.XMP]),[z.MATHML]:new Set([U.MI,U.MO,U.MN,U.MS,U.MTEXT,U.ANNOTATION_XML]),[z.SVG]:new Set([U.TITLE,U.FOREIGN_OBJECT,U.DESC]),[z.XLINK]:new Set,[z.XML]:new Set,[z.XMLNS]:new Set},Ta=new Set([U.H1,U.H2,U.H3,U.H4,U.H5,U.H6]);O.STYLE,O.SCRIPT,O.XMP,O.IFRAME,O.NOEMBED,O.NOFRAMES,O.PLAINTEXT;var x;(function(e){e[e.DATA=0]="DATA",e[e.RCDATA=1]="RCDATA",e[e.RAWTEXT=2]="RAWTEXT",e[e.SCRIPT_DATA=3]="SCRIPT_DATA",e[e.PLAINTEXT=4]="PLAINTEXT",e[e.TAG_OPEN=5]="TAG_OPEN",e[e.END_TAG_OPEN=6]="END_TAG_OPEN",e[e.TAG_NAME=7]="TAG_NAME",e[e.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",e[e.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",e[e.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",e[e.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",e[e.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",e[e.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",e[e.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",e[e.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",e[e.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",e[e.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",e[e.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",e[e.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",e[e.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",e[e.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",e[e.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",e[e.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",e[e.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",e[e.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",e[e.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",e[e.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",e[e.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",e[e.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",e[e.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",e[e.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",e[e.BOGUS_COMMENT=40]="BOGUS_COMMENT",e[e.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",e[e.COMMENT_START=42]="COMMENT_START",e[e.COMMENT_START_DASH=43]="COMMENT_START_DASH",e[e.COMMENT=44]="COMMENT",e[e.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",e[e.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",e[e.COMMENT_END_DASH=49]="COMMENT_END_DASH",e[e.COMMENT_END=50]="COMMENT_END",e[e.COMMENT_END_BANG=51]="COMMENT_END_BANG",e[e.DOCTYPE=52]="DOCTYPE",e[e.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",e[e.DOCTYPE_NAME=54]="DOCTYPE_NAME",e[e.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",e[e.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",e[e.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",e[e.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",e[e.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",e[e.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",e[e.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",e[e.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",e[e.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",e[e.CDATA_SECTION=68]="CDATA_SECTION",e[e.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",e[e.CDATA_SECTION_END=70]="CDATA_SECTION_END",e[e.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",e[e.AMBIGUOUS_AMPERSAND=72]="AMBIGUOUS_AMPERSAND"})(x||(x={}));const De={DATA:x.DATA,RCDATA:x.RCDATA,RAWTEXT:x.RAWTEXT,SCRIPT_DATA:x.SCRIPT_DATA,PLAINTEXT:x.PLAINTEXT,CDATA_SECTION:x.CDATA_SECTION};function j6(e){return e>=T.DIGIT_0&&e<=T.DIGIT_9}function jr(e){return e>=T.LATIN_CAPITAL_A&&e<=T.LATIN_CAPITAL_Z}function Q6(e){return e>=T.LATIN_SMALL_A&&e<=T.LATIN_SMALL_Z}function Qt(e){return Q6(e)||jr(e)}function $u(e){return Qt(e)||j6(e)}function Ln(e){return e+32}function Mo(e){return e===T.SPACE||e===T.LINE_FEED||e===T.TABULATION||e===T.FORM_FEED}function Ku(e){return Mo(e)||e===T.SOLIDUS||e===T.GREATER_THAN_SIGN}function $6(e){return e===T.NULL?B.nullCharacterReference:e>1114111?B.characterReferenceOutsideUnicodeRange:Co(e)?B.surrogateCharacterReference:Io(e)?B.noncharacterCharacterReference:_o(e)||e===T.CARRIAGE_RETURN?B.controlCharacterReference:null}class K6{constructor(t,r){this.options=t,this.handler=r,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=x.DATA,this.returnState=x.DATA,this.entityStartPos=0,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new P6(r),this.currentLocation=this.getCurrentLocation(-1),this.entityDecoder=new Oo(Do,(n,a)=>{this.preprocessor.pos=this.entityStartPos+a-1,this._flushCodePointConsumedAsCharacterReference(n)},r.onParseError?{missingSemicolonAfterCharacterReference:()=>{this._err(B.missingSemicolonAfterCharacterReference,1)},absenceOfDigitsInNumericCharacterReference:n=>{this._err(B.absenceOfDigitsInNumericCharacterReference,this.entityStartPos-this.preprocessor.pos+n)},validateNumericCharacterReference:n=>{const a=$6(n);a&&this._err(a,1)}}:void 0)}_err(t,r=0){var n,a;(a=(n=this.handler).onParseError)===null||a===void 0||a.call(n,this.preprocessor.getError(t,r))}getCurrentLocation(t){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-t,startOffset:this.preprocessor.offset-t,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;const t=this._consume();this._ensureHibernation()||this._callState(t)}this.inLoop=!1}}pause(){this.paused=!0}resume(t){if(!this.paused)throw new Error("Parser was already resumed");this.paused=!1,!this.inLoop&&(this._runParsingLoop(),this.paused||t==null||t())}write(t,r,n){this.active=!0,this.preprocessor.write(t,r),this._runParsingLoop(),this.paused||n==null||n()}insertHtmlAtCurrentPos(t){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(t),this._runParsingLoop()}_ensureHibernation(){return this.preprocessor.endOfChunkHit?(this.preprocessor.retreat(this.consumedAfterSnapshot),this.consumedAfterSnapshot=0,this.active=!1,!0):!1}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_advanceBy(t){this.consumedAfterSnapshot+=t;for(let r=0;r0&&this._err(B.endTagWithAttributes),t.selfClosing&&this._err(B.endTagWithTrailingSolidus),this.handler.onEndTag(t)),this.preprocessor.dropParsedChunk()}emitCurrentComment(t){this.prepareToken(t),this.handler.onComment(t),this.preprocessor.dropParsedChunk()}emitCurrentDoctype(t){this.prepareToken(t),this.handler.onDoctype(t),this.preprocessor.dropParsedChunk()}_emitCurrentCharacterToken(t){if(this.currentCharacterToken){switch(t&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=t.startLine,this.currentCharacterToken.location.endCol=t.startCol,this.currentCharacterToken.location.endOffset=t.startOffset),this.currentCharacterToken.type){case fe.CHARACTER:{this.handler.onCharacter(this.currentCharacterToken);break}case fe.NULL_CHARACTER:{this.handler.onNullCharacter(this.currentCharacterToken);break}case fe.WHITESPACE_CHARACTER:{this.handler.onWhitespaceCharacter(this.currentCharacterToken);break}}this.currentCharacterToken=null}}_emitEOFToken(){const t=this.getCurrentLocation(0);t&&(t.endLine=t.startLine,t.endCol=t.startCol,t.endOffset=t.startOffset),this._emitCurrentCharacterToken(t),this.handler.onEof({type:fe.EOF,location:t}),this.active=!1}_appendCharToCurrentCharacterToken(t,r){if(this.currentCharacterToken)if(this.currentCharacterToken.type===t){this.currentCharacterToken.chars+=r;return}else this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk();this._createCharacterToken(t,r)}_emitCodePoint(t){const r=Mo(t)?fe.WHITESPACE_CHARACTER:t===T.NULL?fe.NULL_CHARACTER:fe.CHARACTER;this._appendCharToCurrentCharacterToken(r,String.fromCodePoint(t))}_emitChars(t){this._appendCharToCurrentCharacterToken(fe.CHARACTER,t)}_startCharacterReference(){this.returnState=this.state,this.state=x.CHARACTER_REFERENCE,this.entityStartPos=this.preprocessor.pos,this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute()?Ft.Attribute:Ft.Legacy)}_isCharacterReferenceInAttribute(){return this.returnState===x.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===x.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===x.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(t){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(t):this._emitCodePoint(t)}_callState(t){switch(this.state){case x.DATA:{this._stateData(t);break}case x.RCDATA:{this._stateRcdata(t);break}case x.RAWTEXT:{this._stateRawtext(t);break}case x.SCRIPT_DATA:{this._stateScriptData(t);break}case x.PLAINTEXT:{this._statePlaintext(t);break}case x.TAG_OPEN:{this._stateTagOpen(t);break}case x.END_TAG_OPEN:{this._stateEndTagOpen(t);break}case x.TAG_NAME:{this._stateTagName(t);break}case x.RCDATA_LESS_THAN_SIGN:{this._stateRcdataLessThanSign(t);break}case x.RCDATA_END_TAG_OPEN:{this._stateRcdataEndTagOpen(t);break}case x.RCDATA_END_TAG_NAME:{this._stateRcdataEndTagName(t);break}case x.RAWTEXT_LESS_THAN_SIGN:{this._stateRawtextLessThanSign(t);break}case x.RAWTEXT_END_TAG_OPEN:{this._stateRawtextEndTagOpen(t);break}case x.RAWTEXT_END_TAG_NAME:{this._stateRawtextEndTagName(t);break}case x.SCRIPT_DATA_LESS_THAN_SIGN:{this._stateScriptDataLessThanSign(t);break}case x.SCRIPT_DATA_END_TAG_OPEN:{this._stateScriptDataEndTagOpen(t);break}case x.SCRIPT_DATA_END_TAG_NAME:{this._stateScriptDataEndTagName(t);break}case x.SCRIPT_DATA_ESCAPE_START:{this._stateScriptDataEscapeStart(t);break}case x.SCRIPT_DATA_ESCAPE_START_DASH:{this._stateScriptDataEscapeStartDash(t);break}case x.SCRIPT_DATA_ESCAPED:{this._stateScriptDataEscaped(t);break}case x.SCRIPT_DATA_ESCAPED_DASH:{this._stateScriptDataEscapedDash(t);break}case x.SCRIPT_DATA_ESCAPED_DASH_DASH:{this._stateScriptDataEscapedDashDash(t);break}case x.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataEscapedLessThanSign(t);break}case x.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:{this._stateScriptDataEscapedEndTagOpen(t);break}case x.SCRIPT_DATA_ESCAPED_END_TAG_NAME:{this._stateScriptDataEscapedEndTagName(t);break}case x.SCRIPT_DATA_DOUBLE_ESCAPE_START:{this._stateScriptDataDoubleEscapeStart(t);break}case x.SCRIPT_DATA_DOUBLE_ESCAPED:{this._stateScriptDataDoubleEscaped(t);break}case x.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:{this._stateScriptDataDoubleEscapedDash(t);break}case x.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:{this._stateScriptDataDoubleEscapedDashDash(t);break}case x.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataDoubleEscapedLessThanSign(t);break}case x.SCRIPT_DATA_DOUBLE_ESCAPE_END:{this._stateScriptDataDoubleEscapeEnd(t);break}case x.BEFORE_ATTRIBUTE_NAME:{this._stateBeforeAttributeName(t);break}case x.ATTRIBUTE_NAME:{this._stateAttributeName(t);break}case x.AFTER_ATTRIBUTE_NAME:{this._stateAfterAttributeName(t);break}case x.BEFORE_ATTRIBUTE_VALUE:{this._stateBeforeAttributeValue(t);break}case x.ATTRIBUTE_VALUE_DOUBLE_QUOTED:{this._stateAttributeValueDoubleQuoted(t);break}case x.ATTRIBUTE_VALUE_SINGLE_QUOTED:{this._stateAttributeValueSingleQuoted(t);break}case x.ATTRIBUTE_VALUE_UNQUOTED:{this._stateAttributeValueUnquoted(t);break}case x.AFTER_ATTRIBUTE_VALUE_QUOTED:{this._stateAfterAttributeValueQuoted(t);break}case x.SELF_CLOSING_START_TAG:{this._stateSelfClosingStartTag(t);break}case x.BOGUS_COMMENT:{this._stateBogusComment(t);break}case x.MARKUP_DECLARATION_OPEN:{this._stateMarkupDeclarationOpen(t);break}case x.COMMENT_START:{this._stateCommentStart(t);break}case x.COMMENT_START_DASH:{this._stateCommentStartDash(t);break}case x.COMMENT:{this._stateComment(t);break}case x.COMMENT_LESS_THAN_SIGN:{this._stateCommentLessThanSign(t);break}case x.COMMENT_LESS_THAN_SIGN_BANG:{this._stateCommentLessThanSignBang(t);break}case x.COMMENT_LESS_THAN_SIGN_BANG_DASH:{this._stateCommentLessThanSignBangDash(t);break}case x.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:{this._stateCommentLessThanSignBangDashDash(t);break}case x.COMMENT_END_DASH:{this._stateCommentEndDash(t);break}case x.COMMENT_END:{this._stateCommentEnd(t);break}case x.COMMENT_END_BANG:{this._stateCommentEndBang(t);break}case x.DOCTYPE:{this._stateDoctype(t);break}case x.BEFORE_DOCTYPE_NAME:{this._stateBeforeDoctypeName(t);break}case x.DOCTYPE_NAME:{this._stateDoctypeName(t);break}case x.AFTER_DOCTYPE_NAME:{this._stateAfterDoctypeName(t);break}case x.AFTER_DOCTYPE_PUBLIC_KEYWORD:{this._stateAfterDoctypePublicKeyword(t);break}case x.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateBeforeDoctypePublicIdentifier(t);break}case x.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypePublicIdentifierDoubleQuoted(t);break}case x.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypePublicIdentifierSingleQuoted(t);break}case x.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateAfterDoctypePublicIdentifier(t);break}case x.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:{this._stateBetweenDoctypePublicAndSystemIdentifiers(t);break}case x.AFTER_DOCTYPE_SYSTEM_KEYWORD:{this._stateAfterDoctypeSystemKeyword(t);break}case x.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateBeforeDoctypeSystemIdentifier(t);break}case x.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypeSystemIdentifierDoubleQuoted(t);break}case x.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypeSystemIdentifierSingleQuoted(t);break}case x.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateAfterDoctypeSystemIdentifier(t);break}case x.BOGUS_DOCTYPE:{this._stateBogusDoctype(t);break}case x.CDATA_SECTION:{this._stateCdataSection(t);break}case x.CDATA_SECTION_BRACKET:{this._stateCdataSectionBracket(t);break}case x.CDATA_SECTION_END:{this._stateCdataSectionEnd(t);break}case x.CHARACTER_REFERENCE:{this._stateCharacterReference();break}case x.AMBIGUOUS_AMPERSAND:{this._stateAmbiguousAmpersand(t);break}default:throw new Error("Unknown state")}}_stateData(t){switch(t){case T.LESS_THAN_SIGN:{this.state=x.TAG_OPEN;break}case T.AMPERSAND:{this._startCharacterReference();break}case T.NULL:{this._err(B.unexpectedNullCharacter),this._emitCodePoint(t);break}case T.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateRcdata(t){switch(t){case T.AMPERSAND:{this._startCharacterReference();break}case T.LESS_THAN_SIGN:{this.state=x.RCDATA_LESS_THAN_SIGN;break}case T.NULL:{this._err(B.unexpectedNullCharacter),this._emitChars(ke);break}case T.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateRawtext(t){switch(t){case T.LESS_THAN_SIGN:{this.state=x.RAWTEXT_LESS_THAN_SIGN;break}case T.NULL:{this._err(B.unexpectedNullCharacter),this._emitChars(ke);break}case T.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateScriptData(t){switch(t){case T.LESS_THAN_SIGN:{this.state=x.SCRIPT_DATA_LESS_THAN_SIGN;break}case T.NULL:{this._err(B.unexpectedNullCharacter),this._emitChars(ke);break}case T.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_statePlaintext(t){switch(t){case T.NULL:{this._err(B.unexpectedNullCharacter),this._emitChars(ke);break}case T.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateTagOpen(t){if(Qt(t))this._createStartTagToken(),this.state=x.TAG_NAME,this._stateTagName(t);else switch(t){case T.EXCLAMATION_MARK:{this.state=x.MARKUP_DECLARATION_OPEN;break}case T.SOLIDUS:{this.state=x.END_TAG_OPEN;break}case T.QUESTION_MARK:{this._err(B.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=x.BOGUS_COMMENT,this._stateBogusComment(t);break}case T.EOF:{this._err(B.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break}default:this._err(B.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=x.DATA,this._stateData(t)}}_stateEndTagOpen(t){if(Qt(t))this._createEndTagToken(),this.state=x.TAG_NAME,this._stateTagName(t);else switch(t){case T.GREATER_THAN_SIGN:{this._err(B.missingEndTagName),this.state=x.DATA;break}case T.EOF:{this._err(B.eofBeforeTagName),this._emitChars("");break}case T.NULL:{this._err(B.unexpectedNullCharacter),this.state=x.SCRIPT_DATA_ESCAPED,this._emitChars(ke);break}case T.EOF:{this._err(B.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=x.SCRIPT_DATA_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataEscapedLessThanSign(t){t===T.SOLIDUS?this.state=x.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:Qt(t)?(this._emitChars("<"),this.state=x.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(t)):(this._emitChars("<"),this.state=x.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataEscapedEndTagOpen(t){Qt(t)?(this.state=x.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(t)):(this._emitChars("");break}case T.NULL:{this._err(B.unexpectedNullCharacter),this.state=x.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(ke);break}case T.EOF:{this._err(B.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=x.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedLessThanSign(t){t===T.SOLIDUS?(this.state=x.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=x.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(t))}_stateScriptDataDoubleEscapeEnd(t){if(this.preprocessor.startsWith(Ke.SCRIPT,!1)&&Ku(this.preprocessor.peek(Ke.SCRIPT.length))){this._emitCodePoint(t);for(let r=0;r0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,!0)}replace(t,r){const n=this._indexOf(t);this.items[n]=r,n===this.stackTop&&(this.current=r)}insertAfter(t,r,n){const a=this._indexOf(t)+1;this.items.splice(a,0,r),this.tagIDs.splice(a,0,n),this.stackTop++,a===this.stackTop&&this._updateCurrentElement(),this.handler.onItemPush(this.current,this.currentTagId,a===this.stackTop)}popUntilTagNamePopped(t){let r=this.stackTop+1;do r=this.tagIDs.lastIndexOf(t,r-1);while(r>0&&this.treeAdapter.getNamespaceURI(this.items[r])!==z.HTML);this.shortenToLength(r<0?0:r)}shortenToLength(t){for(;this.stackTop>=t;){const r=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(r,this.stackTop=0;n--)if(t.has(this.tagIDs[n])&&this.treeAdapter.getNamespaceURI(this.items[n])===r)return n;return-1}clearBackTo(t,r){const n=this._indexOfTagNames(t,r);this.shortenToLength(n+1)}clearBackToTableContext(){this.clearBackTo(rp,z.HTML)}clearBackToTableBodyContext(){this.clearBackTo(tp,z.HTML)}clearBackToTableRowContext(){this.clearBackTo(ep,z.HTML)}remove(t){const r=this._indexOf(t);r>=0&&(r===this.stackTop?this.pop():(this.items.splice(r,1),this.tagIDs.splice(r,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===o.BODY?this.items[1]:null}contains(t){return this._indexOf(t)>-1}getCommonAncestor(t){const r=this._indexOf(t)-1;return r>=0?this.items[r]:null}isRootHtmlElementCurrent(){return this.stackTop===0&&this.tagIDs[0]===o.HTML}hasInDynamicScope(t,r){for(let n=this.stackTop;n>=0;n--){const a=this.tagIDs[n];switch(this.treeAdapter.getNamespaceURI(this.items[n])){case z.HTML:{if(a===t)return!0;if(r.has(a))return!1;break}case z.SVG:{if(es.has(a))return!1;break}case z.MATHML:{if(Zu.has(a))return!1;break}}}return!0}hasInScope(t){return this.hasInDynamicScope(t,jn)}hasInListItemScope(t){return this.hasInDynamicScope(t,J6)}hasInButtonScope(t){return this.hasInDynamicScope(t,Z6)}hasNumberedHeaderInScope(){for(let t=this.stackTop;t>=0;t--){const r=this.tagIDs[t];switch(this.treeAdapter.getNamespaceURI(this.items[t])){case z.HTML:{if(Ta.has(r))return!0;if(jn.has(r))return!1;break}case z.SVG:{if(es.has(r))return!1;break}case z.MATHML:{if(Zu.has(r))return!1;break}}}return!0}hasInTableScope(t){for(let r=this.stackTop;r>=0;r--)if(this.treeAdapter.getNamespaceURI(this.items[r])===z.HTML)switch(this.tagIDs[r]){case t:return!0;case o.TABLE:case o.HTML:return!1}return!0}hasTableBodyContextInTableScope(){for(let t=this.stackTop;t>=0;t--)if(this.treeAdapter.getNamespaceURI(this.items[t])===z.HTML)switch(this.tagIDs[t]){case o.TBODY:case o.THEAD:case o.TFOOT:return!0;case o.TABLE:case o.HTML:return!1}return!0}hasInSelectScope(t){for(let r=this.stackTop;r>=0;r--)if(this.treeAdapter.getNamespaceURI(this.items[r])===z.HTML)switch(this.tagIDs[r]){case t:return!0;case o.OPTION:case o.OPTGROUP:break;default:return!1}return!0}generateImpliedEndTags(){for(;Ro.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;Ju.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(t){for(;this.currentTagId!==t&&Ju.has(this.currentTagId);)this.pop()}}const Q0=3;var kt;(function(e){e[e.Marker=0]="Marker",e[e.Element=1]="Element"})(kt||(kt={}));const ts={type:kt.Marker};class ip{constructor(t){this.treeAdapter=t,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(t,r){const n=[],a=r.length,i=this.treeAdapter.getTagName(t),u=this.treeAdapter.getNamespaceURI(t);for(let s=0;s[u.name,u.value]));let i=0;for(let u=0;ua.get(l.name)===l.value)&&(i+=1,i>=Q0&&this.entries.splice(s.idx,1))}}insertMarker(){this.entries.unshift(ts)}pushElement(t,r){this._ensureNoahArkCondition(t),this.entries.unshift({type:kt.Element,element:t,token:r})}insertElementAfterBookmark(t,r){const n=this.entries.indexOf(this.bookmark);this.entries.splice(n,0,{type:kt.Element,element:t,token:r})}removeEntry(t){const r=this.entries.indexOf(t);r>=0&&this.entries.splice(r,1)}clearToLastMarker(){const t=this.entries.indexOf(ts);t>=0?this.entries.splice(0,t+1):this.entries.length=0}getElementEntryInScopeWithTagName(t){const r=this.entries.find(n=>n.type===kt.Marker||this.treeAdapter.getTagName(n.element)===t);return r&&r.type===kt.Element?r:null}getElementEntry(t){return this.entries.find(r=>r.type===kt.Element&&r.element===t)}}const $t={createDocument(){return{nodeName:"#document",mode:ct.NO_QUIRKS,childNodes:[]}},createDocumentFragment(){return{nodeName:"#document-fragment",childNodes:[]}},createElement(e,t,r){return{nodeName:e,tagName:e,attrs:r,namespaceURI:t,childNodes:[],parentNode:null}},createCommentNode(e){return{nodeName:"#comment",data:e,parentNode:null}},createTextNode(e){return{nodeName:"#text",value:e,parentNode:null}},appendChild(e,t){e.childNodes.push(t),t.parentNode=e},insertBefore(e,t,r){const n=e.childNodes.indexOf(r);e.childNodes.splice(n,0,t),t.parentNode=e},setTemplateContent(e,t){e.content=t},getTemplateContent(e){return e.content},setDocumentType(e,t,r,n){const a=e.childNodes.find(i=>i.nodeName==="#documentType");if(a)a.name=t,a.publicId=r,a.systemId=n;else{const i={nodeName:"#documentType",name:t,publicId:r,systemId:n,parentNode:null};$t.appendChild(e,i)}},setDocumentMode(e,t){e.mode=t},getDocumentMode(e){return e.mode},detachNode(e){if(e.parentNode){const t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},insertText(e,t){if(e.childNodes.length>0){const r=e.childNodes[e.childNodes.length-1];if($t.isTextNode(r)){r.value+=t;return}}$t.appendChild(e,$t.createTextNode(t))},insertTextBefore(e,t,r){const n=e.childNodes[e.childNodes.indexOf(r)-1];n&&$t.isTextNode(n)?n.value+=t:$t.insertBefore(e,$t.createTextNode(t),r)},adoptAttributes(e,t){const r=new Set(e.attrs.map(n=>n.name));for(let n=0;ne.startsWith(r))}function hp(e){return e.name===Po&&e.publicId===null&&(e.systemId===null||e.systemId===up)}function dp(e){if(e.name!==Po)return ct.QUIRKS;const{systemId:t}=e;if(t&&t.toLowerCase()===sp)return ct.QUIRKS;let{publicId:r}=e;if(r!==null){if(r=r.toLowerCase(),op.has(r))return ct.QUIRKS;let n=t===null?lp:Bo;if(rs(r,n))return ct.QUIRKS;if(n=t===null?Fo:cp,rs(r,n))return ct.LIMITED_QUIRKS}return ct.NO_QUIRKS}const ns={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},fp="definitionurl",mp="definitionURL",pp=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e])),gp=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:z.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:z.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:z.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:z.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:z.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:z.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:z.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:z.XML}],["xml:space",{prefix:"xml",name:"space",namespace:z.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:z.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:z.XMLNS}]]),bp=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),Ep=new Set([o.B,o.BIG,o.BLOCKQUOTE,o.BODY,o.BR,o.CENTER,o.CODE,o.DD,o.DIV,o.DL,o.DT,o.EM,o.EMBED,o.H1,o.H2,o.H3,o.H4,o.H5,o.H6,o.HEAD,o.HR,o.I,o.IMG,o.LI,o.LISTING,o.MENU,o.META,o.NOBR,o.OL,o.P,o.PRE,o.RUBY,o.S,o.SMALL,o.SPAN,o.STRONG,o.STRIKE,o.SUB,o.SUP,o.TABLE,o.TT,o.U,o.UL,o.VAR]);function Tp(e){const t=e.tagID;return t===o.FONT&&e.attrs.some(({name:n})=>n===cr.COLOR||n===cr.SIZE||n===cr.FACE)||Ep.has(t)}function Ho(e){for(let t=0;t0&&this._setContextModes(t,r)}onItemPop(t,r){var n,a;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(t,this.currentToken),(a=(n=this.treeAdapter).onItemPop)===null||a===void 0||a.call(n,t,this.openElements.current),r){let i,u;this.openElements.stackTop===0&&this.fragmentContext?(i=this.fragmentContext,u=this.fragmentContextID):{current:i,currentTagId:u}=this.openElements,this._setContextModes(i,u)}}_setContextModes(t,r){const n=t===this.document||this.treeAdapter.getNamespaceURI(t)===z.HTML;this.currentNotInHTML=!n,this.tokenizer.inForeignNode=!n&&!this._isIntegrationPoint(r,t)}_switchToTextParsing(t,r){this._insertElement(t,z.HTML),this.tokenizer.state=r,this.originalInsertionMode=this.insertionMode,this.insertionMode=k.TEXT}switchToPlaintextParsing(){this.insertionMode=k.TEXT,this.originalInsertionMode=k.IN_BODY,this.tokenizer.state=De.PLAINTEXT}_getAdjustedCurrentElement(){return this.openElements.stackTop===0&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let t=this.fragmentContext;for(;t;){if(this.treeAdapter.getTagName(t)===O.FORM){this.formElement=t;break}t=this.treeAdapter.getParentNode(t)}}_initTokenizerForFragmentParsing(){if(!(!this.fragmentContext||this.treeAdapter.getNamespaceURI(this.fragmentContext)!==z.HTML))switch(this.fragmentContextID){case o.TITLE:case o.TEXTAREA:{this.tokenizer.state=De.RCDATA;break}case o.STYLE:case o.XMP:case o.IFRAME:case o.NOEMBED:case o.NOFRAMES:case o.NOSCRIPT:{this.tokenizer.state=De.RAWTEXT;break}case o.SCRIPT:{this.tokenizer.state=De.SCRIPT_DATA;break}case o.PLAINTEXT:{this.tokenizer.state=De.PLAINTEXT;break}}}_setDocumentType(t){const r=t.name||"",n=t.publicId||"",a=t.systemId||"";if(this.treeAdapter.setDocumentType(this.document,r,n,a),t.location){const u=this.treeAdapter.getChildNodes(this.document).find(s=>this.treeAdapter.isDocumentTypeNode(s));u&&this.treeAdapter.setNodeSourceCodeLocation(u,t.location)}}_attachElementToTree(t,r){if(this.options.sourceCodeLocationInfo){const n=r&&{...r,startTag:r};this.treeAdapter.setNodeSourceCodeLocation(t,n)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(t);else{const n=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(n,t)}}_appendElement(t,r){const n=this.treeAdapter.createElement(t.tagName,r,t.attrs);this._attachElementToTree(n,t.location)}_insertElement(t,r){const n=this.treeAdapter.createElement(t.tagName,r,t.attrs);this._attachElementToTree(n,t.location),this.openElements.push(n,t.tagID)}_insertFakeElement(t,r){const n=this.treeAdapter.createElement(t,z.HTML,[]);this._attachElementToTree(n,null),this.openElements.push(n,r)}_insertTemplate(t){const r=this.treeAdapter.createElement(t.tagName,z.HTML,t.attrs),n=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(r,n),this._attachElementToTree(r,t.location),this.openElements.push(r,t.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,null)}_insertFakeRootElement(){const t=this.treeAdapter.createElement(O.HTML,z.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(t,null),this.treeAdapter.appendChild(this.openElements.current,t),this.openElements.push(t,o.HTML)}_appendCommentNode(t,r){const n=this.treeAdapter.createCommentNode(t.data);this.treeAdapter.appendChild(r,n),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,t.location)}_insertCharacters(t){let r,n;if(this._shouldFosterParentOnInsertion()?({parent:r,beforeElement:n}=this._findFosterParentingLocation(),n?this.treeAdapter.insertTextBefore(r,t.chars,n):this.treeAdapter.insertText(r,t.chars)):(r=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(r,t.chars)),!t.location)return;const a=this.treeAdapter.getChildNodes(r),i=n?a.lastIndexOf(n):a.length,u=a[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(u)){const{endLine:l,endCol:c,endOffset:f}=t.location;this.treeAdapter.updateNodeSourceCodeLocation(u,{endLine:l,endCol:c,endOffset:f})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(u,t.location)}_adoptNodes(t,r){for(let n=this.treeAdapter.getFirstChild(t);n;n=this.treeAdapter.getFirstChild(t))this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(r,n)}_setEndLocation(t,r){if(this.treeAdapter.getNodeSourceCodeLocation(t)&&r.location){const n=r.location,a=this.treeAdapter.getTagName(t),i=r.type===fe.END_TAG&&a===r.tagName?{endTag:{...n},endLine:n.endLine,endCol:n.endCol,endOffset:n.endOffset}:{endLine:n.startLine,endCol:n.startCol,endOffset:n.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(t,i)}}shouldProcessStartTagTokenInForeignContent(t){if(!this.currentNotInHTML)return!1;let r,n;return this.openElements.stackTop===0&&this.fragmentContext?(r=this.fragmentContext,n=this.fragmentContextID):{current:r,currentTagId:n}=this.openElements,t.tagID===o.SVG&&this.treeAdapter.getTagName(r)===O.ANNOTATION_XML&&this.treeAdapter.getNamespaceURI(r)===z.MATHML?!1:this.tokenizer.inForeignNode||(t.tagID===o.MGLYPH||t.tagID===o.MALIGNMARK)&&!this._isIntegrationPoint(n,r,z.HTML)}_processToken(t){switch(t.type){case fe.CHARACTER:{this.onCharacter(t);break}case fe.NULL_CHARACTER:{this.onNullCharacter(t);break}case fe.COMMENT:{this.onComment(t);break}case fe.DOCTYPE:{this.onDoctype(t);break}case fe.START_TAG:{this._processStartTag(t);break}case fe.END_TAG:{this.onEndTag(t);break}case fe.EOF:{this.onEof(t);break}case fe.WHITESPACE_CHARACTER:{this.onWhitespaceCharacter(t);break}}}_isIntegrationPoint(t,r,n){const a=this.treeAdapter.getNamespaceURI(r),i=this.treeAdapter.getAttrList(r);return Ap(t,a,i,n)}_reconstructActiveFormattingElements(){const t=this.activeFormattingElements.entries.length;if(t){const r=this.activeFormattingElements.entries.findIndex(a=>a.type===kt.Marker||this.openElements.contains(a.element)),n=r<0?t-1:r-1;for(let a=n;a>=0;a--){const i=this.activeFormattingElements.entries[a];this._insertElement(i.token,this.treeAdapter.getNamespaceURI(i.element)),i.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=k.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(o.P),this.openElements.popUntilTagNamePopped(o.P)}_resetInsertionMode(){for(let t=this.openElements.stackTop;t>=0;t--)switch(t===0&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[t]){case o.TR:{this.insertionMode=k.IN_ROW;return}case o.TBODY:case o.THEAD:case o.TFOOT:{this.insertionMode=k.IN_TABLE_BODY;return}case o.CAPTION:{this.insertionMode=k.IN_CAPTION;return}case o.COLGROUP:{this.insertionMode=k.IN_COLUMN_GROUP;return}case o.TABLE:{this.insertionMode=k.IN_TABLE;return}case o.BODY:{this.insertionMode=k.IN_BODY;return}case o.FRAMESET:{this.insertionMode=k.IN_FRAMESET;return}case o.SELECT:{this._resetInsertionModeForSelect(t);return}case o.TEMPLATE:{this.insertionMode=this.tmplInsertionModeStack[0];return}case o.HTML:{this.insertionMode=this.headElement?k.AFTER_HEAD:k.BEFORE_HEAD;return}case o.TD:case o.TH:{if(t>0){this.insertionMode=k.IN_CELL;return}break}case o.HEAD:{if(t>0){this.insertionMode=k.IN_HEAD;return}break}}this.insertionMode=k.IN_BODY}_resetInsertionModeForSelect(t){if(t>0)for(let r=t-1;r>0;r--){const n=this.openElements.tagIDs[r];if(n===o.TEMPLATE)break;if(n===o.TABLE){this.insertionMode=k.IN_SELECT_IN_TABLE;return}}this.insertionMode=k.IN_SELECT}_isElementCausesFosterParenting(t){return Uo.has(t)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let t=this.openElements.stackTop;t>=0;t--){const r=this.openElements.items[t];switch(this.openElements.tagIDs[t]){case o.TEMPLATE:{if(this.treeAdapter.getNamespaceURI(r)===z.HTML)return{parent:this.treeAdapter.getTemplateContent(r),beforeElement:null};break}case o.TABLE:{const n=this.treeAdapter.getParentNode(r);return n?{parent:n,beforeElement:r}:{parent:this.openElements.items[t-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(t){const r=this._findFosterParentingLocation();r.beforeElement?this.treeAdapter.insertBefore(r.parent,t,r.beforeElement):this.treeAdapter.appendChild(r.parent,t)}_isSpecialElement(t,r){const n=this.treeAdapter.getNamespaceURI(t);return X6[n].has(r)}onCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){n7(this,t);return}switch(this.insertionMode){case k.INITIAL:{Gr(this,t);break}case k.BEFORE_HTML:{Jr(this,t);break}case k.BEFORE_HEAD:{Zr(this,t);break}case k.IN_HEAD:{en(this,t);break}case k.IN_HEAD_NO_SCRIPT:{tn(this,t);break}case k.AFTER_HEAD:{rn(this,t);break}case k.IN_BODY:case k.IN_CAPTION:case k.IN_CELL:case k.IN_TEMPLATE:{Yo(this,t);break}case k.TEXT:case k.IN_SELECT:case k.IN_SELECT_IN_TABLE:{this._insertCharacters(t);break}case k.IN_TABLE:case k.IN_TABLE_BODY:case k.IN_ROW:{$0(this,t);break}case k.IN_TABLE_TEXT:{Qo(this,t);break}case k.IN_COLUMN_GROUP:{Qn(this,t);break}case k.AFTER_BODY:{$n(this,t);break}case k.AFTER_AFTER_BODY:{Fn(this,t);break}}}onNullCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){r7(this,t);return}switch(this.insertionMode){case k.INITIAL:{Gr(this,t);break}case k.BEFORE_HTML:{Jr(this,t);break}case k.BEFORE_HEAD:{Zr(this,t);break}case k.IN_HEAD:{en(this,t);break}case k.IN_HEAD_NO_SCRIPT:{tn(this,t);break}case k.AFTER_HEAD:{rn(this,t);break}case k.TEXT:{this._insertCharacters(t);break}case k.IN_TABLE:case k.IN_TABLE_BODY:case k.IN_ROW:{$0(this,t);break}case k.IN_COLUMN_GROUP:{Qn(this,t);break}case k.AFTER_BODY:{$n(this,t);break}case k.AFTER_AFTER_BODY:{Fn(this,t);break}}}onComment(t){if(this.skipNextNewLine=!1,this.currentNotInHTML){ya(this,t);return}switch(this.insertionMode){case k.INITIAL:case k.BEFORE_HTML:case k.BEFORE_HEAD:case k.IN_HEAD:case k.IN_HEAD_NO_SCRIPT:case k.AFTER_HEAD:case k.IN_BODY:case k.IN_TABLE:case k.IN_CAPTION:case k.IN_COLUMN_GROUP:case k.IN_TABLE_BODY:case k.IN_ROW:case k.IN_CELL:case k.IN_SELECT:case k.IN_SELECT_IN_TABLE:case k.IN_TEMPLATE:case k.IN_FRAMESET:case k.AFTER_FRAMESET:{ya(this,t);break}case k.IN_TABLE_TEXT:{Wr(this,t);break}case k.AFTER_BODY:{Mp(this,t);break}case k.AFTER_AFTER_BODY:case k.AFTER_AFTER_FRAMESET:{Rp(this,t);break}}}onDoctype(t){switch(this.skipNextNewLine=!1,this.insertionMode){case k.INITIAL:{Pp(this,t);break}case k.BEFORE_HEAD:case k.IN_HEAD:case k.IN_HEAD_NO_SCRIPT:case k.AFTER_HEAD:{this._err(t,B.misplacedDoctype);break}case k.IN_TABLE_TEXT:{Wr(this,t);break}}}onStartTag(t){this.skipNextNewLine=!1,this.currentToken=t,this._processStartTag(t),t.selfClosing&&!t.ackSelfClosing&&this._err(t,B.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(t){this.shouldProcessStartTagTokenInForeignContent(t)?a7(this,t):this._startTagOutsideForeignContent(t)}_startTagOutsideForeignContent(t){switch(this.insertionMode){case k.INITIAL:{Gr(this,t);break}case k.BEFORE_HTML:{Bp(this,t);break}case k.BEFORE_HEAD:{Hp(this,t);break}case k.IN_HEAD:{xt(this,t);break}case k.IN_HEAD_NO_SCRIPT:{qp(this,t);break}case k.AFTER_HEAD:{Vp(this,t);break}case k.IN_BODY:{Ye(this,t);break}case k.IN_TABLE:{Ir(this,t);break}case k.IN_TABLE_TEXT:{Wr(this,t);break}case k.IN_CAPTION:{z5(this,t);break}case k.IN_COLUMN_GROUP:{ci(this,t);break}case k.IN_TABLE_BODY:{d0(this,t);break}case k.IN_ROW:{f0(this,t);break}case k.IN_CELL:{Y5(this,t);break}case k.IN_SELECT:{Jo(this,t);break}case k.IN_SELECT_IN_TABLE:{G5(this,t);break}case k.IN_TEMPLATE:{X5(this,t);break}case k.AFTER_BODY:{Q5(this,t);break}case k.IN_FRAMESET:{$5(this,t);break}case k.AFTER_FRAMESET:{J5(this,t);break}case k.AFTER_AFTER_BODY:{e7(this,t);break}case k.AFTER_AFTER_FRAMESET:{t7(this,t);break}}}onEndTag(t){this.skipNextNewLine=!1,this.currentToken=t,this.currentNotInHTML?i7(this,t):this._endTagOutsideForeignContent(t)}_endTagOutsideForeignContent(t){switch(this.insertionMode){case k.INITIAL:{Gr(this,t);break}case k.BEFORE_HTML:{Fp(this,t);break}case k.BEFORE_HEAD:{zp(this,t);break}case k.IN_HEAD:{Up(this,t);break}case k.IN_HEAD_NO_SCRIPT:{Yp(this,t);break}case k.AFTER_HEAD:{Gp(this,t);break}case k.IN_BODY:{h0(this,t);break}case k.TEXT:{N5(this,t);break}case k.IN_TABLE:{on(this,t);break}case k.IN_TABLE_TEXT:{Wr(this,t);break}case k.IN_CAPTION:{U5(this,t);break}case k.IN_COLUMN_GROUP:{q5(this,t);break}case k.IN_TABLE_BODY:{xa(this,t);break}case k.IN_ROW:{Ko(this,t);break}case k.IN_CELL:{V5(this,t);break}case k.IN_SELECT:{Zo(this,t);break}case k.IN_SELECT_IN_TABLE:{W5(this,t);break}case k.IN_TEMPLATE:{j5(this,t);break}case k.AFTER_BODY:{tc(this,t);break}case k.IN_FRAMESET:{K5(this,t);break}case k.AFTER_FRAMESET:{Z5(this,t);break}case k.AFTER_AFTER_BODY:{Fn(this,t);break}}}onEof(t){switch(this.insertionMode){case k.INITIAL:{Gr(this,t);break}case k.BEFORE_HTML:{Jr(this,t);break}case k.BEFORE_HEAD:{Zr(this,t);break}case k.IN_HEAD:{en(this,t);break}case k.IN_HEAD_NO_SCRIPT:{tn(this,t);break}case k.AFTER_HEAD:{rn(this,t);break}case k.IN_BODY:case k.IN_TABLE:case k.IN_CAPTION:case k.IN_COLUMN_GROUP:case k.IN_TABLE_BODY:case k.IN_ROW:case k.IN_CELL:case k.IN_SELECT:case k.IN_SELECT_IN_TABLE:{Xo(this,t);break}case k.TEXT:{D5(this,t);break}case k.IN_TABLE_TEXT:{Wr(this,t);break}case k.IN_TEMPLATE:{ec(this,t);break}case k.AFTER_BODY:case k.IN_FRAMESET:case k.AFTER_FRAMESET:case k.AFTER_AFTER_BODY:case k.AFTER_AFTER_FRAMESET:{oi(this,t);break}}}onWhitespaceCharacter(t){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.chars.charCodeAt(0)===T.LINE_FEED)){if(t.chars.length===1)return;t.chars=t.chars.substr(1)}if(this.tokenizer.inForeignNode){this._insertCharacters(t);return}switch(this.insertionMode){case k.IN_HEAD:case k.IN_HEAD_NO_SCRIPT:case k.AFTER_HEAD:case k.TEXT:case k.IN_COLUMN_GROUP:case k.IN_SELECT:case k.IN_SELECT_IN_TABLE:case k.IN_FRAMESET:case k.AFTER_FRAMESET:{this._insertCharacters(t);break}case k.IN_BODY:case k.IN_CAPTION:case k.IN_CELL:case k.IN_TEMPLATE:case k.AFTER_BODY:case k.AFTER_AFTER_BODY:case k.AFTER_AFTER_FRAMESET:{qo(this,t);break}case k.IN_TABLE:case k.IN_TABLE_BODY:case k.IN_ROW:{$0(this,t);break}case k.IN_TABLE_TEXT:{jo(this,t);break}}}}function _p(e,t){let r=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return r?e.openElements.contains(r.element)?e.openElements.hasInScope(t.tagID)||(r=null):(e.activeFormattingElements.removeEntry(r),r=null):Wo(e,t),r}function Ip(e,t){let r=null,n=e.openElements.stackTop;for(;n>=0;n--){const a=e.openElements.items[n];if(a===t.element)break;e._isSpecialElement(a,e.openElements.tagIDs[n])&&(r=a)}return r||(e.openElements.shortenToLength(n<0?0:n),e.activeFormattingElements.removeEntry(t)),r}function Np(e,t,r){let n=t,a=e.openElements.getCommonAncestor(t);for(let i=0,u=a;u!==r;i++,u=a){a=e.openElements.getCommonAncestor(u);const s=e.activeFormattingElements.getElementEntry(u),l=s&&i>=wp;!s||l?(l&&e.activeFormattingElements.removeEntry(s),e.openElements.remove(u)):(u=Dp(e,s),n===t&&(e.activeFormattingElements.bookmark=s),e.treeAdapter.detachNode(n),e.treeAdapter.appendChild(u,n),n=u)}return n}function Dp(e,t){const r=e.treeAdapter.getNamespaceURI(t.element),n=e.treeAdapter.createElement(t.token.tagName,r,t.token.attrs);return e.openElements.replace(t.element,n),t.element=n,n}function Op(e,t,r){const n=e.treeAdapter.getTagName(t),a=Rr(n);if(e._isElementCausesFosterParenting(a))e._fosterParentElement(r);else{const i=e.treeAdapter.getNamespaceURI(t);a===o.TEMPLATE&&i===z.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,r)}}function Lp(e,t,r){const n=e.treeAdapter.getNamespaceURI(r.element),{token:a}=r,i=e.treeAdapter.createElement(a.tagName,n,a.attrs);e._adoptNodes(t,i),e.treeAdapter.appendChild(t,i),e.activeFormattingElements.insertElementAfterBookmark(i,a),e.activeFormattingElements.removeEntry(r),e.openElements.remove(r.element),e.openElements.insertAfter(t,i,a.tagID)}function li(e,t){for(let r=0;r=r;n--)e._setEndLocation(e.openElements.items[n],t);if(!e.fragmentContext&&e.openElements.stackTop>=0){const n=e.openElements.items[0],a=e.treeAdapter.getNodeSourceCodeLocation(n);if(a&&!a.endTag&&(e._setEndLocation(n,t),e.openElements.stackTop>=1)){const i=e.openElements.items[1],u=e.treeAdapter.getNodeSourceCodeLocation(i);u&&!u.endTag&&e._setEndLocation(i,t)}}}}function Pp(e,t){e._setDocumentType(t);const r=t.forceQuirks?ct.QUIRKS:dp(t);hp(t)||e._err(t,B.nonConformingDoctype),e.treeAdapter.setDocumentMode(e.document,r),e.insertionMode=k.BEFORE_HTML}function Gr(e,t){e._err(t,B.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,ct.QUIRKS),e.insertionMode=k.BEFORE_HTML,e._processToken(t)}function Bp(e,t){t.tagID===o.HTML?(e._insertElement(t,z.HTML),e.insertionMode=k.BEFORE_HEAD):Jr(e,t)}function Fp(e,t){const r=t.tagID;(r===o.HTML||r===o.HEAD||r===o.BODY||r===o.BR)&&Jr(e,t)}function Jr(e,t){e._insertFakeRootElement(),e.insertionMode=k.BEFORE_HEAD,e._processToken(t)}function Hp(e,t){switch(t.tagID){case o.HTML:{Ye(e,t);break}case o.HEAD:{e._insertElement(t,z.HTML),e.headElement=e.openElements.current,e.insertionMode=k.IN_HEAD;break}default:Zr(e,t)}}function zp(e,t){const r=t.tagID;r===o.HEAD||r===o.BODY||r===o.HTML||r===o.BR?Zr(e,t):e._err(t,B.endTagWithoutMatchingOpenElement)}function Zr(e,t){e._insertFakeElement(O.HEAD,o.HEAD),e.headElement=e.openElements.current,e.insertionMode=k.IN_HEAD,e._processToken(t)}function xt(e,t){switch(t.tagID){case o.HTML:{Ye(e,t);break}case o.BASE:case o.BASEFONT:case o.BGSOUND:case o.LINK:case o.META:{e._appendElement(t,z.HTML),t.ackSelfClosing=!0;break}case o.TITLE:{e._switchToTextParsing(t,De.RCDATA);break}case o.NOSCRIPT:{e.options.scriptingEnabled?e._switchToTextParsing(t,De.RAWTEXT):(e._insertElement(t,z.HTML),e.insertionMode=k.IN_HEAD_NO_SCRIPT);break}case o.NOFRAMES:case o.STYLE:{e._switchToTextParsing(t,De.RAWTEXT);break}case o.SCRIPT:{e._switchToTextParsing(t,De.SCRIPT_DATA);break}case o.TEMPLATE:{e._insertTemplate(t),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=k.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(k.IN_TEMPLATE);break}case o.HEAD:{e._err(t,B.misplacedStartTagForHeadElement);break}default:en(e,t)}}function Up(e,t){switch(t.tagID){case o.HEAD:{e.openElements.pop(),e.insertionMode=k.AFTER_HEAD;break}case o.BODY:case o.BR:case o.HTML:{en(e,t);break}case o.TEMPLATE:{pr(e,t);break}default:e._err(t,B.endTagWithoutMatchingOpenElement)}}function pr(e,t){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==o.TEMPLATE&&e._err(t,B.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(o.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(t,B.endTagWithoutMatchingOpenElement)}function en(e,t){e.openElements.pop(),e.insertionMode=k.AFTER_HEAD,e._processToken(t)}function qp(e,t){switch(t.tagID){case o.HTML:{Ye(e,t);break}case o.BASEFONT:case o.BGSOUND:case o.HEAD:case o.LINK:case o.META:case o.NOFRAMES:case o.STYLE:{xt(e,t);break}case o.NOSCRIPT:{e._err(t,B.nestedNoscriptInHead);break}default:tn(e,t)}}function Yp(e,t){switch(t.tagID){case o.NOSCRIPT:{e.openElements.pop(),e.insertionMode=k.IN_HEAD;break}case o.BR:{tn(e,t);break}default:e._err(t,B.endTagWithoutMatchingOpenElement)}}function tn(e,t){const r=t.type===fe.EOF?B.openElementsLeftAfterEof:B.disallowedContentInNoscriptInHead;e._err(t,r),e.openElements.pop(),e.insertionMode=k.IN_HEAD,e._processToken(t)}function Vp(e,t){switch(t.tagID){case o.HTML:{Ye(e,t);break}case o.BODY:{e._insertElement(t,z.HTML),e.framesetOk=!1,e.insertionMode=k.IN_BODY;break}case o.FRAMESET:{e._insertElement(t,z.HTML),e.insertionMode=k.IN_FRAMESET;break}case o.BASE:case o.BASEFONT:case o.BGSOUND:case o.LINK:case o.META:case o.NOFRAMES:case o.SCRIPT:case o.STYLE:case o.TEMPLATE:case o.TITLE:{e._err(t,B.abandonedHeadElementChild),e.openElements.push(e.headElement,o.HEAD),xt(e,t),e.openElements.remove(e.headElement);break}case o.HEAD:{e._err(t,B.misplacedStartTagForHeadElement);break}default:rn(e,t)}}function Gp(e,t){switch(t.tagID){case o.BODY:case o.HTML:case o.BR:{rn(e,t);break}case o.TEMPLATE:{pr(e,t);break}default:e._err(t,B.endTagWithoutMatchingOpenElement)}}function rn(e,t){e._insertFakeElement(O.BODY,o.BODY),e.insertionMode=k.IN_BODY,c0(e,t)}function c0(e,t){switch(t.type){case fe.CHARACTER:{Yo(e,t);break}case fe.WHITESPACE_CHARACTER:{qo(e,t);break}case fe.COMMENT:{ya(e,t);break}case fe.START_TAG:{Ye(e,t);break}case fe.END_TAG:{h0(e,t);break}case fe.EOF:{Xo(e,t);break}}}function qo(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function Yo(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function Wp(e,t){e.openElements.tmplCount===0&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}function Xp(e,t){const r=e.openElements.tryPeekProperlyNestedBodyElement();r&&e.openElements.tmplCount===0&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(r,t.attrs))}function jp(e,t){const r=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&r&&(e.treeAdapter.detachNode(r),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,z.HTML),e.insertionMode=k.IN_FRAMESET)}function Qp(e,t){e.openElements.hasInButtonScope(o.P)&&e._closePElement(),e._insertElement(t,z.HTML)}function $p(e,t){e.openElements.hasInButtonScope(o.P)&&e._closePElement(),Ta.has(e.openElements.currentTagId)&&e.openElements.pop(),e._insertElement(t,z.HTML)}function Kp(e,t){e.openElements.hasInButtonScope(o.P)&&e._closePElement(),e._insertElement(t,z.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function Jp(e,t){const r=e.openElements.tmplCount>0;(!e.formElement||r)&&(e.openElements.hasInButtonScope(o.P)&&e._closePElement(),e._insertElement(t,z.HTML),r||(e.formElement=e.openElements.current))}function Zp(e,t){e.framesetOk=!1;const r=t.tagID;for(let n=e.openElements.stackTop;n>=0;n--){const a=e.openElements.tagIDs[n];if(r===o.LI&&a===o.LI||(r===o.DD||r===o.DT)&&(a===o.DD||a===o.DT)){e.openElements.generateImpliedEndTagsWithExclusion(a),e.openElements.popUntilTagNamePopped(a);break}if(a!==o.ADDRESS&&a!==o.DIV&&a!==o.P&&e._isSpecialElement(e.openElements.items[n],a))break}e.openElements.hasInButtonScope(o.P)&&e._closePElement(),e._insertElement(t,z.HTML)}function e5(e,t){e.openElements.hasInButtonScope(o.P)&&e._closePElement(),e._insertElement(t,z.HTML),e.tokenizer.state=De.PLAINTEXT}function t5(e,t){e.openElements.hasInScope(o.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(o.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,z.HTML),e.framesetOk=!1}function r5(e,t){const r=e.activeFormattingElements.getElementEntryInScopeWithTagName(O.A);r&&(li(e,t),e.openElements.remove(r.element),e.activeFormattingElements.removeEntry(r)),e._reconstructActiveFormattingElements(),e._insertElement(t,z.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function n5(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,z.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function a5(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(o.NOBR)&&(li(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,z.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function i5(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,z.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function u5(e,t){e.treeAdapter.getDocumentMode(e.document)!==ct.QUIRKS&&e.openElements.hasInButtonScope(o.P)&&e._closePElement(),e._insertElement(t,z.HTML),e.framesetOk=!1,e.insertionMode=k.IN_TABLE}function Vo(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,z.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function Go(e){const t=No(e,cr.TYPE);return t!=null&&t.toLowerCase()===Sp}function s5(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,z.HTML),Go(t)||(e.framesetOk=!1),t.ackSelfClosing=!0}function l5(e,t){e._appendElement(t,z.HTML),t.ackSelfClosing=!0}function o5(e,t){e.openElements.hasInButtonScope(o.P)&&e._closePElement(),e._appendElement(t,z.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function c5(e,t){t.tagName=O.IMG,t.tagID=o.IMG,Vo(e,t)}function h5(e,t){e._insertElement(t,z.HTML),e.skipNextNewLine=!0,e.tokenizer.state=De.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=k.TEXT}function d5(e,t){e.openElements.hasInButtonScope(o.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,De.RAWTEXT)}function f5(e,t){e.framesetOk=!1,e._switchToTextParsing(t,De.RAWTEXT)}function us(e,t){e._switchToTextParsing(t,De.RAWTEXT)}function m5(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,z.HTML),e.framesetOk=!1,e.insertionMode=e.insertionMode===k.IN_TABLE||e.insertionMode===k.IN_CAPTION||e.insertionMode===k.IN_TABLE_BODY||e.insertionMode===k.IN_ROW||e.insertionMode===k.IN_CELL?k.IN_SELECT_IN_TABLE:k.IN_SELECT}function p5(e,t){e.openElements.currentTagId===o.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,z.HTML)}function g5(e,t){e.openElements.hasInScope(o.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,z.HTML)}function b5(e,t){e.openElements.hasInScope(o.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(o.RTC),e._insertElement(t,z.HTML)}function E5(e,t){e._reconstructActiveFormattingElements(),Ho(t),si(t),t.selfClosing?e._appendElement(t,z.MATHML):e._insertElement(t,z.MATHML),t.ackSelfClosing=!0}function T5(e,t){e._reconstructActiveFormattingElements(),zo(t),si(t),t.selfClosing?e._appendElement(t,z.SVG):e._insertElement(t,z.SVG),t.ackSelfClosing=!0}function ss(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,z.HTML)}function Ye(e,t){switch(t.tagID){case o.I:case o.S:case o.B:case o.U:case o.EM:case o.TT:case o.BIG:case o.CODE:case o.FONT:case o.SMALL:case o.STRIKE:case o.STRONG:{n5(e,t);break}case o.A:{r5(e,t);break}case o.H1:case o.H2:case o.H3:case o.H4:case o.H5:case o.H6:{$p(e,t);break}case o.P:case o.DL:case o.OL:case o.UL:case o.DIV:case o.DIR:case o.NAV:case o.MAIN:case o.MENU:case o.ASIDE:case o.CENTER:case o.FIGURE:case o.FOOTER:case o.HEADER:case o.HGROUP:case o.DIALOG:case o.DETAILS:case o.ADDRESS:case o.ARTICLE:case o.SEARCH:case o.SECTION:case o.SUMMARY:case o.FIELDSET:case o.BLOCKQUOTE:case o.FIGCAPTION:{Qp(e,t);break}case o.LI:case o.DD:case o.DT:{Zp(e,t);break}case o.BR:case o.IMG:case o.WBR:case o.AREA:case o.EMBED:case o.KEYGEN:{Vo(e,t);break}case o.HR:{o5(e,t);break}case o.RB:case o.RTC:{g5(e,t);break}case o.RT:case o.RP:{b5(e,t);break}case o.PRE:case o.LISTING:{Kp(e,t);break}case o.XMP:{d5(e,t);break}case o.SVG:{T5(e,t);break}case o.HTML:{Wp(e,t);break}case o.BASE:case o.LINK:case o.META:case o.STYLE:case o.TITLE:case o.SCRIPT:case o.BGSOUND:case o.BASEFONT:case o.TEMPLATE:{xt(e,t);break}case o.BODY:{Xp(e,t);break}case o.FORM:{Jp(e,t);break}case o.NOBR:{a5(e,t);break}case o.MATH:{E5(e,t);break}case o.TABLE:{u5(e,t);break}case o.INPUT:{s5(e,t);break}case o.PARAM:case o.TRACK:case o.SOURCE:{l5(e,t);break}case o.IMAGE:{c5(e,t);break}case o.BUTTON:{t5(e,t);break}case o.APPLET:case o.OBJECT:case o.MARQUEE:{i5(e,t);break}case o.IFRAME:{f5(e,t);break}case o.SELECT:{m5(e,t);break}case o.OPTION:case o.OPTGROUP:{p5(e,t);break}case o.NOEMBED:case o.NOFRAMES:{us(e,t);break}case o.FRAMESET:{jp(e,t);break}case o.TEXTAREA:{h5(e,t);break}case o.NOSCRIPT:{e.options.scriptingEnabled?us(e,t):ss(e,t);break}case o.PLAINTEXT:{e5(e,t);break}case o.COL:case o.TH:case o.TD:case o.TR:case o.HEAD:case o.FRAME:case o.TBODY:case o.TFOOT:case o.THEAD:case o.CAPTION:case o.COLGROUP:break;default:ss(e,t)}}function y5(e,t){if(e.openElements.hasInScope(o.BODY)&&(e.insertionMode=k.AFTER_BODY,e.options.sourceCodeLocationInfo)){const r=e.openElements.tryPeekProperlyNestedBodyElement();r&&e._setEndLocation(r,t)}}function x5(e,t){e.openElements.hasInScope(o.BODY)&&(e.insertionMode=k.AFTER_BODY,tc(e,t))}function v5(e,t){const r=t.tagID;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r))}function A5(e){const t=e.openElements.tmplCount>0,{formElement:r}=e;t||(e.formElement=null),(r||t)&&e.openElements.hasInScope(o.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(o.FORM):r&&e.openElements.remove(r))}function S5(e){e.openElements.hasInButtonScope(o.P)||e._insertFakeElement(O.P,o.P),e._closePElement()}function k5(e){e.openElements.hasInListItemScope(o.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(o.LI),e.openElements.popUntilTagNamePopped(o.LI))}function w5(e,t){const r=t.tagID;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.popUntilTagNamePopped(r))}function C5(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}function _5(e,t){const r=t.tagID;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r),e.activeFormattingElements.clearToLastMarker())}function I5(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(O.BR,o.BR),e.openElements.pop(),e.framesetOk=!1}function Wo(e,t){const r=t.tagName,n=t.tagID;for(let a=e.openElements.stackTop;a>0;a--){const i=e.openElements.items[a],u=e.openElements.tagIDs[a];if(n===u&&(n!==o.UNKNOWN||e.treeAdapter.getTagName(i)===r)){e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.stackTop>=a&&e.openElements.shortenToLength(a);break}if(e._isSpecialElement(i,u))break}}function h0(e,t){switch(t.tagID){case o.A:case o.B:case o.I:case o.S:case o.U:case o.EM:case o.TT:case o.BIG:case o.CODE:case o.FONT:case o.NOBR:case o.SMALL:case o.STRIKE:case o.STRONG:{li(e,t);break}case o.P:{S5(e);break}case o.DL:case o.UL:case o.OL:case o.DIR:case o.DIV:case o.NAV:case o.PRE:case o.MAIN:case o.MENU:case o.ASIDE:case o.BUTTON:case o.CENTER:case o.FIGURE:case o.FOOTER:case o.HEADER:case o.HGROUP:case o.DIALOG:case o.ADDRESS:case o.ARTICLE:case o.DETAILS:case o.SEARCH:case o.SECTION:case o.SUMMARY:case o.LISTING:case o.FIELDSET:case o.BLOCKQUOTE:case o.FIGCAPTION:{v5(e,t);break}case o.LI:{k5(e);break}case o.DD:case o.DT:{w5(e,t);break}case o.H1:case o.H2:case o.H3:case o.H4:case o.H5:case o.H6:{C5(e);break}case o.BR:{I5(e);break}case o.BODY:{y5(e,t);break}case o.HTML:{x5(e,t);break}case o.FORM:{A5(e);break}case o.APPLET:case o.OBJECT:case o.MARQUEE:{_5(e,t);break}case o.TEMPLATE:{pr(e,t);break}default:Wo(e,t)}}function Xo(e,t){e.tmplInsertionModeStack.length>0?ec(e,t):oi(e,t)}function N5(e,t){var r;t.tagID===o.SCRIPT&&((r=e.scriptHandler)===null||r===void 0||r.call(e,e.openElements.current)),e.openElements.pop(),e.insertionMode=e.originalInsertionMode}function D5(e,t){e._err(t,B.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(t)}function $0(e,t){if(Uo.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=k.IN_TABLE_TEXT,t.type){case fe.CHARACTER:{Qo(e,t);break}case fe.WHITESPACE_CHARACTER:{jo(e,t);break}}else En(e,t)}function O5(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,z.HTML),e.insertionMode=k.IN_CAPTION}function L5(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,z.HTML),e.insertionMode=k.IN_COLUMN_GROUP}function M5(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(O.COLGROUP,o.COLGROUP),e.insertionMode=k.IN_COLUMN_GROUP,ci(e,t)}function R5(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,z.HTML),e.insertionMode=k.IN_TABLE_BODY}function P5(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(O.TBODY,o.TBODY),e.insertionMode=k.IN_TABLE_BODY,d0(e,t)}function B5(e,t){e.openElements.hasInTableScope(o.TABLE)&&(e.openElements.popUntilTagNamePopped(o.TABLE),e._resetInsertionMode(),e._processStartTag(t))}function F5(e,t){Go(t)?e._appendElement(t,z.HTML):En(e,t),t.ackSelfClosing=!0}function H5(e,t){!e.formElement&&e.openElements.tmplCount===0&&(e._insertElement(t,z.HTML),e.formElement=e.openElements.current,e.openElements.pop())}function Ir(e,t){switch(t.tagID){case o.TD:case o.TH:case o.TR:{P5(e,t);break}case o.STYLE:case o.SCRIPT:case o.TEMPLATE:{xt(e,t);break}case o.COL:{M5(e,t);break}case o.FORM:{H5(e,t);break}case o.TABLE:{B5(e,t);break}case o.TBODY:case o.TFOOT:case o.THEAD:{R5(e,t);break}case o.INPUT:{F5(e,t);break}case o.CAPTION:{O5(e,t);break}case o.COLGROUP:{L5(e,t);break}default:En(e,t)}}function on(e,t){switch(t.tagID){case o.TABLE:{e.openElements.hasInTableScope(o.TABLE)&&(e.openElements.popUntilTagNamePopped(o.TABLE),e._resetInsertionMode());break}case o.TEMPLATE:{pr(e,t);break}case o.BODY:case o.CAPTION:case o.COL:case o.COLGROUP:case o.HTML:case o.TBODY:case o.TD:case o.TFOOT:case o.TH:case o.THEAD:case o.TR:break;default:En(e,t)}}function En(e,t){const r=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,c0(e,t),e.fosterParentingEnabled=r}function jo(e,t){e.pendingCharacterTokens.push(t)}function Qo(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0}function Wr(e,t){let r=0;if(e.hasNonWhitespacePendingCharacterToken)for(;r0&&e.openElements.currentTagId===o.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===o.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===o.OPTGROUP&&e.openElements.pop();break}case o.OPTION:{e.openElements.currentTagId===o.OPTION&&e.openElements.pop();break}case o.SELECT:{e.openElements.hasInSelectScope(o.SELECT)&&(e.openElements.popUntilTagNamePopped(o.SELECT),e._resetInsertionMode());break}case o.TEMPLATE:{pr(e,t);break}}}function G5(e,t){const r=t.tagID;r===o.CAPTION||r===o.TABLE||r===o.TBODY||r===o.TFOOT||r===o.THEAD||r===o.TR||r===o.TD||r===o.TH?(e.openElements.popUntilTagNamePopped(o.SELECT),e._resetInsertionMode(),e._processStartTag(t)):Jo(e,t)}function W5(e,t){const r=t.tagID;r===o.CAPTION||r===o.TABLE||r===o.TBODY||r===o.TFOOT||r===o.THEAD||r===o.TR||r===o.TD||r===o.TH?e.openElements.hasInTableScope(r)&&(e.openElements.popUntilTagNamePopped(o.SELECT),e._resetInsertionMode(),e.onEndTag(t)):Zo(e,t)}function X5(e,t){switch(t.tagID){case o.BASE:case o.BASEFONT:case o.BGSOUND:case o.LINK:case o.META:case o.NOFRAMES:case o.SCRIPT:case o.STYLE:case o.TEMPLATE:case o.TITLE:{xt(e,t);break}case o.CAPTION:case o.COLGROUP:case o.TBODY:case o.TFOOT:case o.THEAD:{e.tmplInsertionModeStack[0]=k.IN_TABLE,e.insertionMode=k.IN_TABLE,Ir(e,t);break}case o.COL:{e.tmplInsertionModeStack[0]=k.IN_COLUMN_GROUP,e.insertionMode=k.IN_COLUMN_GROUP,ci(e,t);break}case o.TR:{e.tmplInsertionModeStack[0]=k.IN_TABLE_BODY,e.insertionMode=k.IN_TABLE_BODY,d0(e,t);break}case o.TD:case o.TH:{e.tmplInsertionModeStack[0]=k.IN_ROW,e.insertionMode=k.IN_ROW,f0(e,t);break}default:e.tmplInsertionModeStack[0]=k.IN_BODY,e.insertionMode=k.IN_BODY,Ye(e,t)}}function j5(e,t){t.tagID===o.TEMPLATE&&pr(e,t)}function ec(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(o.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(t)):oi(e,t)}function Q5(e,t){t.tagID===o.HTML?Ye(e,t):$n(e,t)}function tc(e,t){var r;if(t.tagID===o.HTML){if(e.fragmentContext||(e.insertionMode=k.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===o.HTML){e._setEndLocation(e.openElements.items[0],t);const n=e.openElements.items[1];n&&!(!((r=e.treeAdapter.getNodeSourceCodeLocation(n))===null||r===void 0)&&r.endTag)&&e._setEndLocation(n,t)}}else $n(e,t)}function $n(e,t){e.insertionMode=k.IN_BODY,c0(e,t)}function $5(e,t){switch(t.tagID){case o.HTML:{Ye(e,t);break}case o.FRAMESET:{e._insertElement(t,z.HTML);break}case o.FRAME:{e._appendElement(t,z.HTML),t.ackSelfClosing=!0;break}case o.NOFRAMES:{xt(e,t);break}}}function K5(e,t){t.tagID===o.FRAMESET&&!e.openElements.isRootHtmlElementCurrent()&&(e.openElements.pop(),!e.fragmentContext&&e.openElements.currentTagId!==o.FRAMESET&&(e.insertionMode=k.AFTER_FRAMESET))}function J5(e,t){switch(t.tagID){case o.HTML:{Ye(e,t);break}case o.NOFRAMES:{xt(e,t);break}}}function Z5(e,t){t.tagID===o.HTML&&(e.insertionMode=k.AFTER_AFTER_FRAMESET)}function e7(e,t){t.tagID===o.HTML?Ye(e,t):Fn(e,t)}function Fn(e,t){e.insertionMode=k.IN_BODY,c0(e,t)}function t7(e,t){switch(t.tagID){case o.HTML:{Ye(e,t);break}case o.NOFRAMES:{xt(e,t);break}}}function r7(e,t){t.chars=ke,e._insertCharacters(t)}function n7(e,t){e._insertCharacters(t),e.framesetOk=!1}function rc(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==z.HTML&&!e._isIntegrationPoint(e.openElements.currentTagId,e.openElements.current);)e.openElements.pop()}function a7(e,t){if(Tp(t))rc(e),e._startTagOutsideForeignContent(t);else{const r=e._getAdjustedCurrentElement(),n=e.treeAdapter.getNamespaceURI(r);n===z.MATHML?Ho(t):n===z.SVG&&(yp(t),zo(t)),si(t),t.selfClosing?e._appendElement(t,n):e._insertElement(t,n),t.ackSelfClosing=!0}}function i7(e,t){if(t.tagID===o.P||t.tagID===o.BR){rc(e),e._endTagOutsideForeignContent(t);return}for(let r=e.openElements.stackTop;r>0;r--){const n=e.openElements.items[r];if(e.treeAdapter.getNamespaceURI(n)===z.HTML){e._endTagOutsideForeignContent(t);break}const a=e.treeAdapter.getTagName(n);if(a.toLowerCase()===t.tagName){t.tagName=a,e.openElements.shortenToLength(r);break}}}O.AREA,O.BASE,O.BASEFONT,O.BGSOUND,O.BR,O.COL,O.EMBED,O.FRAME,O.HR,O.IMG,O.INPUT,O.KEYGEN,O.LINK,O.META,O.PARAM,O.SOURCE,O.TRACK,O.WBR;const u7=/<(\/?)(iframe|noembed|noframes|plaintext|script|style|textarea|title|xmp)(?=[\t\n\f\r />])/gi,s7=new Set(["mdxFlowExpression","mdxJsxFlowElement","mdxJsxTextElement","mdxTextExpression","mdxjsEsm"]),ls={sourceCodeLocationInfo:!0,scriptingEnabled:!1};function nc(e,t){const r=b7(e),n=no("type",{handlers:{root:l7,element:o7,text:c7,comment:ic,doctype:h7,raw:f7},unknown:m7}),a={parser:r?new is(ls):is.getFragmentParser(void 0,ls),handle(s){n(s,a)},stitches:!1,options:t||{}};n(e,a),Pr(a,It());const i=r?a.parser.document:a.parser.getFragment(),u=T6(i,{file:a.options.file});return a.stitches&&n0(u,"comment",function(s,l,c){const f=s;if(f.value.stitch&&c&&l!==void 0){const d=c.children;return d[l]=f.value.stitch,l}}),u.type==="root"&&u.children.length===1&&u.children[0].type===e.type?u.children[0]:u}function ac(e,t){let r=-1;if(e)for(;++r4&&(t.parser.tokenizer.state=0);const r={type:fe.CHARACTER,chars:e.value,location:Tn(e)};Pr(t,It(e)),t.parser.currentToken=r,t.parser._processToken(t.parser.currentToken)}function h7(e,t){const r={type:fe.DOCTYPE,name:"html",forceQuirks:!1,publicId:"",systemId:"",location:Tn(e)};Pr(t,It(e)),t.parser.currentToken=r,t.parser._processToken(t.parser.currentToken)}function d7(e,t){t.stitches=!0;const r=E7(e);if("children"in e&&"children"in r){const n=nc({type:"root",children:e.children},t.options);r.children=n.children}ic({type:"comment",value:{stitch:r}},t)}function ic(e,t){const r=e.value,n={type:fe.COMMENT,data:r,location:Tn(e)};Pr(t,It(e)),t.parser.currentToken=n,t.parser._processToken(t.parser.currentToken)}function f7(e,t){if(t.parser.tokenizer.preprocessor.html="",t.parser.tokenizer.preprocessor.pos=-1,t.parser.tokenizer.preprocessor.lastGapPos=-2,t.parser.tokenizer.preprocessor.gapStack=[],t.parser.tokenizer.preprocessor.skipNextNewLine=!1,t.parser.tokenizer.preprocessor.lastChunkWritten=!1,t.parser.tokenizer.preprocessor.endOfChunkHit=!1,t.parser.tokenizer.preprocessor.isEol=!1,uc(t,It(e)),t.parser.tokenizer.write(t.options.tagfilter?e.value.replace(u7,"<$1$2"):e.value,!1),t.parser.tokenizer._runParsingLoop(),t.parser.tokenizer.state===72||t.parser.tokenizer.state===78){t.parser.tokenizer.preprocessor.lastChunkWritten=!0;const r=t.parser.tokenizer._consume();t.parser.tokenizer._callState(r)}}function m7(e,t){const r=e;if(t.options.passThrough&&t.options.passThrough.includes(r.type))d7(r,t);else{let n="";throw s7.has(r.type)&&(n=". It looks like you are using MDX nodes with `hast-util-raw` (or `rehype-raw`). If you use this because you are using remark or rehype plugins that inject `'html'` nodes, then please raise an issue with that plugin, as its a bad and slow idea. If you use this because you are using markdown syntax, then you have to configure this utility (or plugin) to pass through these nodes (see `passThrough` in docs), but you can also migrate to use the MDX syntax"),new Error("Cannot compile `"+r.type+"` node"+n)}}function Pr(e,t){uc(e,t);const r=e.parser.tokenizer.currentCharacterToken;r&&r.location&&(r.location.endLine=e.parser.tokenizer.preprocessor.line,r.location.endCol=e.parser.tokenizer.preprocessor.col+1,r.location.endOffset=e.parser.tokenizer.preprocessor.offset+1,e.parser.currentToken=r,e.parser._processToken(e.parser.currentToken)),e.parser.tokenizer.paused=!1,e.parser.tokenizer.inLoop=!1,e.parser.tokenizer.active=!1,e.parser.tokenizer.returnState=De.DATA,e.parser.tokenizer.charRefCode=-1,e.parser.tokenizer.consumedAfterSnapshot=-1,e.parser.tokenizer.currentLocation=null,e.parser.tokenizer.currentCharacterToken=null,e.parser.tokenizer.currentToken=null,e.parser.tokenizer.currentAttr={name:"",value:""}}function uc(e,t){if(t&&t.offset!==void 0){const r={startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:-1,endCol:-1,endOffset:-1};e.parser.tokenizer.preprocessor.lineStartPos=-t.column+1,e.parser.tokenizer.preprocessor.droppedBufferSize=t.offset,e.parser.tokenizer.preprocessor.line=t.line,e.parser.tokenizer.currentLocation=r}}function p7(e,t){const r=e.tagName.toLowerCase();if(t.parser.tokenizer.state===De.PLAINTEXT)return;Pr(t,It(e));const n=t.parser.openElements.current;let a="namespaceURI"in n?n.namespaceURI:_t.html;a===_t.html&&r==="svg"&&(a=_t.svg);const i=A6({...e,children:[]},{space:a===_t.svg?"svg":"html"}),u={type:fe.START_TAG,tagName:r,tagID:Rr(r),selfClosing:!1,ackSelfClosing:!1,attrs:"attrs"in i?i.attrs:[],location:Tn(e)};t.parser.currentToken=u,t.parser._processToken(t.parser.currentToken),t.parser.tokenizer.lastStartTagName=r}function g7(e,t){const r=e.tagName.toLowerCase();if(!t.parser.tokenizer.inForeignNode&&D6.includes(r)||t.parser.tokenizer.state===De.PLAINTEXT)return;Pr(t,Jn(e));const n={type:fe.END_TAG,tagName:r,tagID:Rr(r),selfClosing:!1,ackSelfClosing:!1,attrs:[],location:Tn(e)};t.parser.currentToken=n,t.parser._processToken(t.parser.currentToken),r===t.parser.tokenizer.lastStartTagName&&(t.parser.tokenizer.state===De.RCDATA||t.parser.tokenizer.state===De.RAWTEXT||t.parser.tokenizer.state===De.SCRIPT_DATA)&&(t.parser.tokenizer.state=De.DATA)}function b7(e){const t=e.type==="root"?e.children[0]:e;return!!(t&&(t.type==="doctype"||t.type==="element"&&t.tagName.toLowerCase()==="html"))}function Tn(e){const t=It(e)||{line:void 0,column:void 0,offset:void 0},r=Jn(e)||{line:void 0,column:void 0,offset:void 0};return{startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:r.line,endCol:r.column,endOffset:r.offset}}function E7(e){return"children"in e?Cr({...e,children:[]}):Cr(e)}function T7(e){return function(t,r){return nc(t,{...e,file:r})}}function y7({id:e,host:t,repo:r,repoId:n,category:a,categoryId:i,mapping:u,term:s,strict:l,reactionsEnabled:c,emitMetadata:f,inputPosition:d,theme:b,lang:p,loading:y}){const[A,D]=di.useState(!1);return di.useEffect(()=>{A||dc(()=>import("./chunk-C45O1yEu.js"),[]).then(()=>D(!0))},[]),A?At.jsx("giscus-widget",{id:e,host:t,repo:r,repoid:n,category:a,categoryid:i,mapping:u,term:s,strict:l,reactionsenabled:c,emitmetadata:f,inputposition:d,theme:b,lang:p,loading:y}):null}function S7({title:e,content:t,publishing_date:r}){return At.jsxs(At.Fragment,{children:[At.jsx("h1",{children:e}),r&&At.jsxs("p",{children:["Published on: ",r]}),At.jsx(yf,{remarkPlugins:[D4,g6],rehypePlugins:[s2,T7],children:t}),At.jsx(y7,{id:"comments",repo:"fretchen/fretchen.github.io",repoId:"MDEwOlJlcG9zaXRvcnkzMzkyNzQ5OA=",category:"General",categoryId:"DIC_kwDOAgWxSs4ClveO",mapping:"pathname",term:"Welcome to @giscus/react component!",reactionsEnabled:"1",emitMetadata:"0",inputPosition:"top",theme:"light",lang:"en",loading:"lazy"})]})}export{S7 as P}; diff --git a/assets/entries/entry-client-routing.BG88Oxnn.js b/assets/entries/entry-client-routing.BG88Oxnn.js new file mode 100644 index 0000000..156f136 --- /dev/null +++ b/assets/entries/entry-client-routing.BG88Oxnn.js @@ -0,0 +1,3 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/entries/pages_error.DRgSAV9W.js","assets/chunks/chunk-DjXTsExv.js","assets/chunks/chunk-BcEW-Cv4.js","assets/static/vike-react-b64a028b.BcWtY8Ol.css","assets/static/layouts_style-b34a8e57.a91n6qlS.css","assets/entries/pages_amo.Dei93Ii3.js","assets/chunks/chunk-B6MK7gFR.js","assets/entries/pages_amo_-id.Bo-MT0uZ.js","assets/chunks/chunk-ghC-DV5X.js","assets/chunks/chunk-D7HrI6pR.js","assets/static/katex-afcc0501.C3UTweSs.css","assets/entries/pages_blog.CLJEyjOt.js","assets/chunks/chunk-69ijPTbK.js","assets/chunks/chunk-1FbNI5qA.js","assets/entries/pages_blog_-id.wPjLVB1P.js","assets/entries/pages_index.aFbag0J2.js"])))=>i.map(i=>d[i]); +import{g as k,a as h,b as p,c as x,d as s,i as T,u as _t,e as N,f as xn,h as Tn,j as Fn}from"../chunks/chunk-BcEW-Cv4.js";import{_ as G}from"../chunks/chunk-D7HrI6pR.js";function V(){return typeof window<"u"&&typeof window.scrollY=="number"}const Ot=k("utils/assertRouterType.ts",{});function ne(){kn($n()),Ot.isClientRouting=!0}function $n(){return Ot.isClientRouting!==!1}function kn(e){h(V(),`${p.cyan("import { something } from 'vike/client/router'")} is forbidden on the server-side`,{showStackTrace:!0}),x(e,"You shouldn't `import { something } from 'vike/client/router'` when using Server Routing. The 'vike/client/router' utilities work only with Client Routing. In particular, don't `import { navigate }` nor `import { prefetch }` as they unnecessarily bloat your client-side bundle sizes.",{showStackTrace:!0,onlyOnce:!0})}function L(e,t,n){return typeof e=="string"?et(e.split(""),t,n).join(""):et(e,t,n)}function et(e,t,n){const r=[];let i=t>=0?t:e.length+t;s(i>=0&&i<=e.length);let o=n>=0?n:e.length+n;for(s(o>=0&&o<=e.length);!(i===o||(i===e.length&&(i=0),i===o));){const a=e[i];s(a!==void 0),r.push(a),i++}return r}function fe(e,t){s(kt(e),e),s(t.startsWith("/"));const{hashString:n,withoutHash:r}=In(e);s(n===null||n.startsWith("#"));const i=n===null?"":xt(n.slice(1)),{searchString:o,withoutSearch:a}=tt(r);s(o===null||o.startsWith("?"));let l="";if(o!==null)l=o;else if(e.startsWith("#")){const d=Tt();l=d&&tt(d).searchString||""}const u={},c={};Array.from(new URLSearchParams(l)).forEach(([d,E])=>{u[d]=E,c[d]=[...c.hasOwnProperty(d)?c[d]:[],E]});let{protocol:f,origin:g,pathnameAbsoluteWithBase:y}=jn(a,t);const S=a.slice((g||"").length);zn(e,g,S,o,n);let{pathname:w,hasBaseServer:$}=Hn(y,t);const F=$t(g,w,o,n),A=g?g.slice(f.length):null,{hostname:v,port:P}=Ln(A,e);return w=An(w),s(w.startsWith("/")),{href:F,protocol:f,hostname:v,port:P,origin:g,pathname:w,pathnameOriginal:S,hasBaseServer:$,search:u,searchAll:c,searchOriginal:o,hash:i,hashOriginal:n}}function In(e){const[t,...n]=e.split("#");return{hashString:["",...n].join("#")||null,withoutHash:t}}function tt(e){const[t,...n]=e.split("?");return{searchString:["",...n].join("?")||null,withoutSearch:t}}function xt(e){try{return decodeURIComponent(e)}catch{}try{return decodeURI(e)}catch{}return e}function An(e){return e=e.replace(/\s+$/,""),e=e.split("/").map(t=>xt(t).split("/").join("%2F")).join("/"),e}function jn(e,t){s(!e.includes("?")&&!e.includes("#"));{const{protocol:n,origin:r,pathname:i}=nt(e);if(r)return{protocol:n,origin:r,pathnameAbsoluteWithBase:i};s(i===e)}if(e.startsWith("/"))return{protocol:null,origin:null,pathnameAbsoluteWithBase:e};{const n=Tt();let r;return n?r=nt(n.split("?")[0].split("#")[0]).pathname:r=t,{protocol:null,origin:null,pathnameAbsoluteWithBase:Dn(e,r)}}}function Tt(){var t;return typeof window<"u"?(t=window==null?void 0:window.document)==null?void 0:t.baseURI:void 0}function nt(e){if(Ae(e)){const{protocol:t,uriWithoutProtocol:n}=ke(e);s(t);const[r,...i]=n.split("/"),o=t+r;return{pathname:"/"+i.join("/"),origin:o,protocol:t}}else return{pathname:e,origin:null,protocol:null}}function Ln(e,t){const n={hostname:null,port:null};if(!e)return n;const r=e.split(":");if(r.length>1){const i=parseInt(r.pop(),10);s(i||i===0,t),n.port=i}return n.hostname=r.join(":"),n}function ke(e){const t=":",[n,...r]=e.split(t);if(r.length===0||!/^[a-z][a-z0-9\+\-]*$/i.test(n))return{protocol:null,uriWithoutProtocol:e};let i=n+t,o=r.join(t);const a="//";return o.startsWith(a)&&(i=i+a,o=o.slice(a.length)),{protocol:i,uriWithoutProtocol:o}}function Ft(e){return["ipfs://","ipns://"].includes(e)?!1:e.endsWith("://")}function Dn(e,t){const n=t.split("/"),r=e.split("/");let i=t.endsWith("/");e.startsWith(".")&&n.pop();for(const a in r){const l=r[a];l==""&&a==="0"||l!="."&&(l==".."?n.pop():(i=!1,n.push(l)))}let o=n.join("/");return i&&!o.endsWith("/")&&(o+="/"),o.startsWith("/")||(o="/"+o),o}function Hn(e,t){s(e.startsWith("/")),s(Ie(t));let n=e;if(s(n.startsWith("/")),s(t.startsWith("/")),t==="/")return{pathname:e,hasBaseServer:!0};let r=t;return t.endsWith("/")&&n===L(t,0,-1)&&(r=L(t,0,-1),s(n===r)),n.startsWith(r)?(s(n.startsWith("/")||n.startsWith("http")),s(n.startsWith(r)),n=n.slice(r.length),n.startsWith("/")||(n="/"+n),s(n.startsWith("/")),{pathname:n,hasBaseServer:!0}):{pathname:e,hasBaseServer:!1}}function Ie(e){return e.startsWith("/")}function zn(e,t,n,r,i){const o=$t(t,n,r,i);s(e===o)}function $t(e,t,n,r){return`${e||""}${t}${n||""}${r||""}`}function kt(e){return Ae(e)||e.startsWith("/")||It(e)}function Wn(e){return e.startsWith("/")||Nn(e)||Ae(e)}function It(e){return[".","?","#"].some(t=>e.startsWith(t))||e===""}function Bn(e){return!e.startsWith("/")&&!It(e)}function Ae(e){const{protocol:t}=ke(e);return!!t&&Ft(t)}function Nn(e){const{protocol:t}=ke(e);return!!t&&!Ft(e)}function Vn(e,t){Un(e,t)}function Un(e,t,{isRedirectTarget:n}={}){if(e.startsWith("/"))return;let r=`${t} is ${p.string(e)} but it should start with ${p.string("/")}`;if(n){if(Wn(e))return;if(r+=` or a protocol (${p.string("http://")}, ${p.string("mailto:")}, ...)`,n==="unresolved"){if(e==="*")return;r+=`, or be ${p.string("*")}`}}h(!1,r)}function b(e,t){t&&(s(!("_isPageContextObject"in t)),Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)))}function H(e){return e instanceof Function||typeof e=="function"}function ue(e){return(t,n)=>{const r=e(t),i=e(n);return r===i?0:r>i?-1:1}}function Gn(e){return(t,n)=>{const r=e(t),i=e(n);return r===i?0:r{const r=e(t),i=e(n);if(s([!0,!1,null].includes(r)),s([!0,!1,null].includes(i)),r===i)return 0;if(r===!0||i===!1)return-1;if(i===!0||r===!1)return 1;s(!1)}}function Mn(e){return z(t=>{const n=e(t);return n===null?null:!n})}function M(e){return Array.isArray(e)}function Kn(e){return M(e)&&e.every(t=>typeof t=="string")}function Yn(e){return T(e)&&Object.values(e).every(t=>typeof t=="string")}function m(e,t,n){if(!T(e))return!1;if(!(t in e))return n==="undefined";if(n===void 0)return!0;const r=e[t];return n==="undefined"?r===void 0:n==="array"?M(r):n==="object"?T(r):n==="string[]"?Kn(r):n==="string{}"?Yn(r):n==="function"?H(r):M(n)?typeof r=="string"&&n.includes(r):n==="null"?r===null:n==="true"?r===!0:n==="false"?r===!1:typeof r===n}function K(e){return typeof e!="object"||e===null?!1:Object.getPrototypeOf(e)===null?!0:e.constructor.name==="Object"}function Jn(e,t){return e.toLowerCase()t.toLowerCase()?1:0}const qn=e=>e!=null;function rt(e){return"["+e.map(t=>"'"+t+"'").join(", ")+"]"}function At(e){const t=n=>`Not a posix path: ${n}`;s(e!==null,t("null")),s(typeof e=="string",t(`typeof path === ${JSON.stringify(typeof e)}`)),s(e!=="",t("(empty string)")),s(e),s(!e.includes("\\"),t(e))}function pe(e,t){const n=Object.getOwnPropertyDescriptor(e,t);return!!n&&!("value"in n)&&!!n.get}function Xn(e){return typeof e=="object"&&e!==null&&"then"in e&&H(e.then)}function Qn(e){return[null,void 0].includes(e)?String(e):["boolean","number","string"].includes(typeof e)?JSON.stringify(e):null}function Zn(e){return e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function ie(e,t,n){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(e,t,{...r,enumerable:n})}function me(e,t,{get:n,...r}){Object.defineProperty(e,t,{...r,get:n})}const er=["clientRouting"];function tr(e){er.forEach(t=>{if(s(e.fileExports),!(t in e.fileExports))return;const n=`The value of \`${t}\` is only allowed to be \`true\`.`;h(e.fileExports[t]!==!1,`${e.filePath} has \`export { ${t} }\` with the value \`false\` which is prohibited: remove \`export { ${t} }\` instead. (${n})`),h(e.fileExports[t]===!0,`${e.filePath} has \`export { ${t} }\` with a forbidden value. ${n}`)})}const jt=["render","clientRouting","prerender","doNotPrerender"];function nr(e,t){h(!jt.includes(e),`${t} has \`export default { ${e} }\` which is prohibited, use \`export { ${e} }\` instead.`)}function rr(e){const t=".page.",n=L(e.split(t),0,-1).join(t);return s(!n.includes("\\")),n}function Y(e){At(e)}function ir(e,t){if(t.length>0){const r=t.filter(i=>i.isErrorPage);return r.length===0?null:(h(r.length===1,"Only one error page can be defined"),r[0].pageId)}const n=_t(e.map(({pageId:r})=>r).filter(r=>re(r)));if(h(n.length<=1,`Only one _error.page.js is allowed, but found several: ${n.join(" ")}`),n.length>0){const r=n[0];return s(r),r}return null}function re(e,t){return s(!e.includes("\\")),e.includes("/_error")}function or(e,t){if(t.length>0){const n=t.find(r=>r.pageId===e);return s(n),!!n.isErrorPage}else return re(e)}const Lt=["js","ts","cjs","cts","mjs","mts"],sr=["jsx","tsx","cjsx","ctsx","mjsx","mtsx"],Dt=["vue","svelte","marko","md","mdx"],ar=[...Lt,...sr,...Dt];function Ht(e){const t=ar.some(n=>e.endsWith("."+n));return lr(e)&&s(t),t}function lr(e){const t=/\.(c|m)?(j|t)s$/.test(e),n=Lt.some(r=>e.endsWith("."+r));return s(t===n),t}function ur(e){return Dt.some(t=>e.endsWith("."+t))}const cr=[".page",".page.server",".page.route",".page.client",".css"];function fr(e){if(At(e),e.endsWith(".css"))return".css";s(Ht(e),e);const n=e.split("/").slice(-1)[0].split("."),r=n.slice(-3)[0],i=n.slice(-2)[0];if(i==="page")return".page";if(s(r==="page",e),i==="server")return".page.server";if(i==="client")return".page.client";if(i==="route")return".page.route";s(!1,e)}function zt(e){const t=o=>i.pageId===o||i.isDefaultPageFile&&(it(i.filePath)||dr(o,i.filePath)),n=fr(e),i={filePath:e,fileType:n,isEnv:o=>{if(s(n!==".page.route"),o==="CLIENT_ONLY")return n===".page.client"||n===".css";if(o==="SERVER_ONLY")return n===".page.server";if(o==="CLIENT_AND_SERVER")return n===".page";s(!1)},isRelevant:t,isDefaultPageFile:be(e),isRendererPageFile:n!==".css"&&be(e)&&it(e),isErrorPageFile:re(e),pageId:rr(e)};return i}function be(e){return Y(e),re(e)?!1:e.includes("/_default")}function it(e){return Y(e),e.includes("/renderer/")}function dr(e,t){Y(e),Y(t),s(!e.endsWith("/")),s(!t.endsWith("/")),s(be(t));const n=L(t.split("/"),0,-1).filter(r=>r!=="_default").join("/");return e.startsWith(n)}function gr(e,t){if(!e)return null;let[n,...r]=e;if(!n||r.length===0&&["*","default",t].includes(n))return null;s(n!=="*");let i="",o="";return n==="default"?i="export default":(i="export",r=[n,...r]),r.forEach(l=>{i=`${i} { ${l}`,o=` }${o}`}),i+o}function hr(e,t,n){return`${we(e,t)} at ${Q(n,t)}`}function Wt(e,t,n){return n?`${we(e,t)} at ${Q(n,t)}`:`${we(e,t)} internally`}function we(e,t){return`${e} ${p.cyan(t)} defined`}function Q(e,t){let n;return M(e)?n=e:n=[e],s(n.length>=1),n.map(i=>{const{filePathToShowToUser:o,fileExportPathToShowToUser:a}=i;let l=o;const u=gr(a,t);return u&&(l=`${l} > ${p.cyan(u)}`),l}).join(" / ")}const pr=[{is:e=>e===void 0,match:e=>e==="!undefined",serialize:()=>"!undefined",deserialize:()=>{}},{is:e=>e===1/0,match:e=>e==="!Infinity",serialize:()=>"!Infinity",deserialize:()=>1/0},{is:e=>e===-1/0,match:e=>e==="!-Infinity",serialize:()=>"!-Infinity",deserialize:()=>-1/0},{is:e=>typeof e=="number"&&isNaN(e),match:e=>e==="!NaN",serialize:()=>"!NaN",deserialize:()=>NaN},{is:e=>e instanceof Date,match:e=>e.startsWith("!Date:"),serialize:e=>"!Date:"+e.toISOString(),deserialize:e=>new Date(e.slice(6))},{is:e=>typeof e=="bigint",match:e=>e.startsWith("!BigInt:"),serialize:e=>"!BigInt:"+e.toString(),deserialize:e=>{if(typeof BigInt>"u")throw new Error("Your JavaScript environement does not support BigInt. Consider adding a polyfill.");return BigInt(e.slice(8))}},{is:e=>e instanceof RegExp,match:e=>e.startsWith("!RegExp:"),serialize:e=>"!RegExp:"+e.toString(),deserialize:e=>{e=e.slice(8);const t=e.match(/\/(.*)\/(.*)?/),n=t[1],r=t[2];return new RegExp(n,r)}},{is:e=>e instanceof Map,match:e=>e.startsWith("!Map:"),serialize:(e,t)=>"!Map:"+t(Array.from(e.entries())),deserialize:(e,t)=>new Map(t(e.slice(5)))},{is:e=>e instanceof Set,match:e=>e.startsWith("!Set:"),serialize:(e,t)=>"!Set:"+t(Array.from(e.values())),deserialize:(e,t)=>new Set(t(e.slice(5)))},{is:e=>typeof e=="string"&&e.startsWith("!"),match:e=>e.startsWith("!"),serialize:e=>"!"+e,deserialize:e=>e.slice(1)}];function je(e){const t=JSON.parse(e);return Le(t)}function Le(e){return typeof e=="string"?mr(e):(typeof e=="object"&&e!==null&&Object.entries(e).forEach(([t,n])=>{e[t]=Le(n)}),e)}function mr(e){for(const{match:t,deserialize:n}of pr)if(t(e))return n(e,je);return e}const yr=["$$registrations","_rerender_only"],Sr=[".md",".mdx"];function Pr(e,t,n){const r=Object.keys(e),i=c=>c==="default"||c===n,o=r.filter(i),a=p.code("export default"),l=p.code(`export { ${n} }`);o.length===0&&h(!1,`${t} should have ${l} or ${a}`),o.length===2&&h(!1,`${t} is ambiguous: remove ${a} or ${l}`),s(o.length===1);const u=r.filter(c=>!i(c)).filter(c=>!yr.includes(c));Sr.some(c=>t.endsWith(c))||u.forEach(c=>{x(!1,`${t} unexpected ${p.cyan(`export { ${c} }`)}, see https://vike.dev/no-side-exports`,{onlyOnce:!0})})}function Re(e){return wr(e)}function vr(e,t){const n=e.map(i=>{const o=Re(i.configValuesSerialized),{pageId:a,isErrorPage:l,routeFilesystem:u,loadConfigValuesAll:c}=i;return br(o),{pageId:a,isErrorPage:l,routeFilesystem:u,configValues:o,loadConfigValuesAll:c}}),r={configValues:{}};{const i=Re(t.configValuesSerialized);Object.assign(r.configValues,i)}return{pageConfigs:n,pageConfigGlobal:r}}function br(e){const t="route",n=e[t];if(!n)return;const{value:r,definedAtData:i}=n,o=typeof r;s(i);const a=hr("Config",t,i);h(o==="string"||H(r),`${a} has an invalid type '${o}': it should be a string or a function instead, see https://vike.dev/route`)}function wr(e){const t={};return Object.entries(e).forEach(([r,i])=>{let o;if(i.type==="cumulative"){const{valueSerialized:a,...l}=i;o={value:a.map((c,f)=>{const{value:g,sideExports:y}=ot(c,r,()=>{const S=i.definedAtData[f];return s(S),S});return n(y),g}),...l}}else{const{valueSerialized:a,...l}=i,{value:u,sideExports:c}=ot(a,r,()=>(s(i.type!=="computed"),i.definedAtData));n(c),o={value:u,...l}}t[r]=o}),t;function n(r){r.forEach(i=>{const{configName:o,configValue:a}=i;t[o]||(t[o]=a)})}}function ot(e,t,n){if(e.type==="js-serialized"){let{value:r}=e;return r=Le(r),{value:r,sideExports:[]}}if(e.type==="pointer-import"){const{value:r}=e;return{value:r,sideExports:[]}}if(e.type==="plus-file"){const r=n(),{exportValues:i}=e;Pr(i,r.filePathToShowToUser,t);let o,a=!1;const l=[];return Object.entries(i).forEach(([u,c])=>{u!=="default"&&u!==t?l.push({configName:u,configValue:{type:"standard",value:c,definedAtData:{filePathToShowToUser:r.filePathToShowToUser,fileExportPathToShowToUser:[u]}}}):(o=c,s(!a),a=!0)}),s(a),{value:o,sideExports:l}}s(!1)}function Rr(e){s(m(e,"pageFilesLazy","object")),s(m(e,"pageFilesEager","object")),s(m(e,"pageFilesExportNamesLazy","object")),s(m(e,"pageFilesExportNamesEager","object")),s(m(e.pageFilesLazy,".page")),s(m(e.pageFilesLazy,".page.client")||m(e.pageFilesLazy,".page.server")),s(m(e,"pageFilesList","string[]")),s(m(e,"pageConfigsSerialized")),s(m(e,"pageConfigGlobalSerialized"));const{pageConfigsSerialized:t,pageConfigGlobalSerialized:n}=e;Cr(t),Er(n);const{pageConfigs:r,pageConfigGlobal:i}=vr(t,n),o={};oe(e.pageFilesLazy).forEach(({filePath:l,pageFile:u,globValue:c})=>{u=o[l]=o[l]??u;const f=c;st(f),u.loadFile=async()=>{"fileExports"in u||(u.fileExports=await f(),tr(u))}}),oe(e.pageFilesExportNamesLazy).forEach(({filePath:l,pageFile:u,globValue:c})=>{u=o[l]=o[l]??u;const f=c;st(f),u.loadExportNames=async()=>{if(!("exportNames"in u)){const g=await f();s(m(g,"exportNames","string[]"),u.filePath),u.exportNames=g.exportNames}}}),oe(e.pageFilesEager).forEach(({filePath:l,pageFile:u,globValue:c})=>{u=o[l]=o[l]??u;const f=c;s(T(f)),u.fileExports=f}),oe(e.pageFilesExportNamesEager).forEach(({filePath:l,pageFile:u,globValue:c})=>{u=o[l]=o[l]??u;const f=c;s(T(f)),s(m(f,"exportNames","string[]"),u.filePath),u.exportNames=f.exportNames}),e.pageFilesList.forEach(l=>{o[l]=o[l]??zt(l)});const a=Object.values(o);return a.forEach(({filePath:l})=>{s(!l.includes("\\"))}),{pageFiles:a,pageConfigs:r,pageConfigGlobal:i}}function oe(e){const t=[];return Object.entries(e).forEach(([n,r])=>{s(cr.includes(n)),s(T(r)),Object.entries(r).forEach(([i,o])=>{const a=zt(i);s(a.fileType===n),t.push({filePath:i,pageFile:a,globValue:o})})}),t}function st(e){s(H(e))}function Cr(e){s(M(e)),e.forEach(t=>{s(T(t)),s(m(t,"pageId","string")),s(m(t,"routeFilesystem")),s(m(t,"configValuesSerialized"))})}function Er(e){s(m(e,"configValuesSerialized"))}const q=k("setPageFiles.ts",{});function _r(e){const{pageFiles:t,pageConfigs:n,pageConfigGlobal:r}=Rr(e);q.pageFilesAll=t,q.pageConfigs=n,q.pageConfigGlobal=r}async function Or(e,t){s(!q.pageFilesGetter),s(t===void 0);const{pageFilesAll:n,pageConfigs:r,pageConfigGlobal:i}=q;s(n&&r&&i);const o=xr(n,r);return{pageFilesAll:n,allPageIds:o,pageConfigs:r,pageConfigGlobal:i}}function xr(e,t){const n=e.filter(({isDefaultPageFile:o})=>!o).map(({pageId:o})=>o),r=_t(n),i=t.map(o=>o.pageId);return[...r,...i]}function De(e,t){return Nt(e,t,!0)}function Bt(e,t){return Nt(e,t,!1)}function Nt(e,t,n){const r=n?"CLIENT_ONLY":"SERVER_ONLY",i=e.filter(S=>S.isRelevant(t)&&S.fileType!==".page.route").sort(Tr(n,t)),o=S=>{const w=i.filter(F=>F.pageId===t&&F.isEnv(S?"CLIENT_AND_SERVER":r));h(w.length<=1,`Merge the following files into a single file: ${w.map(F=>F.filePath).join(" ")}`);const $=w[0];return s($===void 0||!$.isDefaultPageFile),$},a=o(!1),l=o(!0),u=S=>i.filter(w=>w.isRendererPageFile&&w.isEnv(S?"CLIENT_AND_SERVER":r))[0],c=u(!1),f=u(!0),g=i.filter(S=>S.isDefaultPageFile&&!S.isRendererPageFile&&(S.isEnv(r)||S.isEnv("CLIENT_AND_SERVER")));return[a,l,...g,c,f].filter(qn)}function Tr(e,t){const n=e?"CLIENT_ONLY":"SERVER_ONLY",r=-1,i=1,o=0;return(a,l)=>{if(!a.isDefaultPageFile&&l.isDefaultPageFile)return r;if(!l.isDefaultPageFile&&a.isDefaultPageFile)return i;{const u=a.isRendererPageFile,c=l.isRendererPageFile;if(!u&&c)return r;if(!c&&u)return i;s(u===c)}{const u=at(t,a.filePath),c=at(t,l.filePath);if(ur.pageId===e);return s(t.length>0),s(n),n}function Ut(e){if(!e||M(e))return null;const{filePathToShowToUser:t}=e;return s(t),t}function Fr(e){const t=Ut(e);return s(t),t}function $r(e,t){const n={},r={},i={};e.forEach(y=>{kr(y).forEach(({exportName:w,exportValue:$,isFromDefaultExport:F})=>{s(w!=="default"),i[w]=i[w]??[],i[w].push({exportValue:$,exportSource:`${y.filePath} > ${F?`\`export default { ${w} }\``:`\`export { ${w} }\``}`,filePath:y.filePath,_filePath:y.filePath,_fileType:y.fileType,_isFromDefaultExport:F})})});const o={},a={},l=(y,S)=>{o[S]=y,a[S]??(a[S]=[]),a[S].push(y)},u={configsStandard:{},configsCumulative:{},configsComputed:{}};t&&Object.entries(t.configValues).forEach(([y,S])=>{const{value:w}=S,$=Ut(S.definedAtData),F=Wt("Config",y,S.definedAtData);if(r[y]=r[y]??w,n[y]=n[y]??[],s(n[y].length===0),n[y].push({configValue:w,configDefinedAt:F,configDefinedByFile:$}),S.type==="standard"){const v={type:"configsStandard",value:S.value,definedAt:Q(S.definedAtData,y)};l(v,y),u.configsStandard[y]=v}if(S.type==="cumulative"){const v={type:"configsCumulative",values:S.value.map((P,d)=>{const E=S.definedAtData[d];s(E);const R=Q(E,y);return{value:P,definedAt:R}})};l(v,y),u.configsCumulative[y]=v}if(S.type==="computed"){const v={type:"configsComputed",value:S.value};l(v,y),u.configsComputed[y]=v}const A=y;i[A]=i[A]??[],i[A].push({exportValue:w,exportSource:F,filePath:$,_filePath:$,_fileType:null,_isFromDefaultExport:null})});const c=Ir(),f={};return Object.entries(i).forEach(([y,S])=>{S.forEach(({exportValue:w,_fileType:$,_isFromDefaultExport:F})=>{f[y]=f[y]??w,$===".page"&&!F&&(y in c||(c[y]=w))})}),s(!("default"in f)),s(!("default"in i)),{from:u,source:o,sources:a,config:r,configEntries:n,exports:f,exportsAll:i,pageExports:c}}function kr(e){const{filePath:t,fileExports:n}=e;s(n),s(Ht(t));const r=[];return Object.entries(n).sort(Mn(([i])=>i==="default")).forEach(([i,o])=>{let a=i==="default";if(a)if(ur(t))i="Page";else{h(T(o),`The ${p.cyan("export default")} of ${t} should be an object.`),Object.entries(o).forEach(([l,u])=>{nr(l,t),r.push({exportName:l,exportValue:u,isFromDefaultExport:a})});return}r.push({exportName:i,exportValue:o,isFromDefaultExport:a})}),r.forEach(({exportName:i,isFromDefaultExport:o})=>{s(!(o&&jt.includes(i)))}),r}function Ir(){return new Proxy({},{get(...e){return V()||x(!1,"`pageContext.pageExports` is outdated. Use `pageContext.exports` instead, see https://vike.dev/exports",{onlyOnce:!0,showStackTrace:!0}),Reflect.get(...e)}})}const He={},Gt={},Ar={},de={},jr=[],Mt={},Lr=[{pageId:"/pages/_error",isErrorPage:!0,routeFilesystem:void 0,loadConfigValuesAll:()=>G(()=>import("./pages_error.DRgSAV9W.js"),__vite__mapDeps([0,1,2,3,4])),configValuesSerialized:{isClientRuntimeLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},clientRouting:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","clientRouting"]},valueSerialized:{type:"js-serialized",value:!0}}}},{pageId:"/pages/amo",isErrorPage:void 0,routeFilesystem:{routeString:"/amo",definedBy:"/pages/amo/"},loadConfigValuesAll:()=>G(()=>import("./pages_amo.Dei93Ii3.js"),__vite__mapDeps([5,1,2,3,4,6])),configValuesSerialized:{isClientRuntimeLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},clientRouting:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","clientRouting"]},valueSerialized:{type:"js-serialized",value:!0}}}},{pageId:"/pages/amo/@id",isErrorPage:void 0,routeFilesystem:{routeString:"/amo/@id",definedBy:"/pages/amo/@id/"},loadConfigValuesAll:()=>G(()=>import("./pages_amo_-id.Bo-MT0uZ.js"),__vite__mapDeps([7,1,2,3,4,6,8,9,10])),configValuesSerialized:{isClientRuntimeLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},clientRouting:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","clientRouting"]},valueSerialized:{type:"js-serialized",value:!0}}}},{pageId:"/pages/blog",isErrorPage:void 0,routeFilesystem:{routeString:"/blog",definedBy:"/pages/blog/"},loadConfigValuesAll:()=>G(()=>import("./pages_blog.CLJEyjOt.js"),__vite__mapDeps([11,1,2,3,4,12,13])),configValuesSerialized:{isClientRuntimeLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},clientRouting:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","clientRouting"]},valueSerialized:{type:"js-serialized",value:!0}}}},{pageId:"/pages/blog/@id",isErrorPage:void 0,routeFilesystem:{routeString:"/blog/@id",definedBy:"/pages/blog/@id/"},loadConfigValuesAll:()=>G(()=>import("./pages_blog_-id.wPjLVB1P.js"),__vite__mapDeps([14,1,2,3,4,13,8,9,10])),configValuesSerialized:{isClientRuntimeLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},clientRouting:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","clientRouting"]},valueSerialized:{type:"js-serialized",value:!0}}}},{pageId:"/pages/index",isErrorPage:void 0,routeFilesystem:{routeString:"/",definedBy:"/pages/index/"},loadConfigValuesAll:()=>G(()=>import("./pages_index.aFbag0J2.js"),__vite__mapDeps([15,1,2,3,4,12,13])),configValuesSerialized:{isClientRuntimeLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},clientRouting:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","clientRouting"]},valueSerialized:{type:"js-serialized",value:!0}}}}],Dr={configValuesSerialized:{}},Hr=Object.assign({}),zr={...Hr};He[".page"]=zr;const Wr=Object.assign({}),Br={...Wr};de[".page"]=Br;const Nr=Object.assign({}),Vr={...Nr};de[".page.server"]=Vr;const Ur=Object.assign({}),Gr={...Ur};Gt[".page.route"]=Gr;const Mr=Object.assign({}),Kr={...Mr};He[".page.client"]=Kr;const Yr=Object.assign({}),Jr={...Yr};de[".page.client"]=Jr;const qr=Object.assign({}),Xr={...qr};Mt[".page.server"]=Xr;const Qr=Object.freeze(Object.defineProperty({__proto__:null,neverLoaded:Mt,pageConfigGlobalSerialized:Dr,pageConfigsSerialized:Lr,pageFilesEager:Gt,pageFilesExportNamesEager:de,pageFilesExportNamesLazy:Ar,pageFilesLazy:He,pageFilesList:jr},Symbol.toStringTag,{value:"Module"}));_r(Qr);function Kt(){s(V())}function Zr(){Kt(),ne()}function ei(){var r,i,o,a;const e=!!((i=(r=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:r.renderers)!=null&&i.size),t=!!((a=(o=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:o.rendererInterfaces)!=null&&a.size),n=!!window.__vite_plugin_react_preamble_installed__;return e||t||n}function lt(e,t){return!T(e)||!T(t)?!1:e.message===t.message}function W(e){window.location.href=e}function ti(e){return new Promise(t=>setTimeout(t,e))}function ni(e,t){let n=!1;return()=>{n||(n=!0,setTimeout(()=>{n=!1,e()},t))}}function Yt(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&e()})}function ri(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()})}function ye(e,t){s(e===t)}function ii(){let e;return{promise:new Promise(n=>e=n),resolve:e}}Zr();function oi(){Kt()}function si(e){return typeof e=="string"&&ai(e)?`.${e}`:`[${JSON.stringify(e)}]`}function ai(e){return/^[a-z0-9\$_]+$/i.test(e)}oi();function li(){const e="vike_pageContext",t=document.getElementById(e);h(t,`Couldn't find #${e} (which Vike automatically injects in the HTML): make sure it exists (i.e. don't remove it and make sure your HTML isn't malformed)`);const n=t.textContent;s(n);const r=je(n);return s(m(r,"pageId","string")),s(m(r,"routeParams","string{}")),r}async function ui(e,t){const r=Bt(e,t).filter(o=>o.fileType===".page.server");return await Promise.all(r.map(async o=>{o.exportNames||(s(o.loadExportNames,t),await o.loadExportNames())})),{hasOnBeforeRenderServerSideOnlyHook:r.some(({exportNames:o})=>(s(o),o.includes("onBeforeRender")))}}function ci(e,t,n){const{value:r,definedAtData:i}=e;return n&&fi(r,n,t,i),e}function J(e,t,n){const r=e.configValues[t];return r?ci(r,t,n):null}function fi(e,t,n,r){s(e!==null);const i=typeof e;if(i===t)return;const o=Qn(e),a=o!==null?`value ${p.cyan(o)}`:`type ${p.cyan(i)}`,u=`${Wt("Config",n,r)} has an invalid ${a}: it should be a ${p.cyan(t)} instead`;h(!1,u)}const di=k("getHook.ts",{});function D(e,t){if(!(t in e.exports))return null;const{hooksTimeout:n}=e.config,r=hi(n,t),i=e.exports[t],o=e.exportsAll[t][0];if(s(o.exportValue===i),i===null)return null;const a=o.filePath;return s(a),s(!a.endsWith(" ")),Jt(i,{hookName:t,hookFilePath:a}),{hookFn:i,hookName:t,hookFilePath:a,hookTimeout:r}}function gi(e,t){const n=e.configValues[t];if(!n)return null;const r=n.value;if(!r)return null;const i=Fr(n.definedAtData);s(i),Jt(r,{hookName:t,hookFilePath:i});const o=ge(t);return{hookFn:r,hookName:t,hookFilePath:i,hookTimeout:o}}function Se(e,t){D(e,t)}function Jt(e,{hookName:t,hookFilePath:n}){s(t&&n),s(!t.endsWith(")")),h(H(e),`Hook ${t}() defined by ${n} should be a function`)}function hi(e,t){const n=pi(e);if(n===!1)return{error:!1,warning:!1};const r=n[t],i=ge(t);return(r==null?void 0:r.error)!==void 0&&(i.error=r.error),(r==null?void 0:r.warning)!==void 0&&(i.warning=r.warning),i}function pi(e){if(e===void 0)return{};if(e===!1)return!1;h(T(e),`Setting ${p.cyan("hooksTimeout")} should be ${p.cyan("false")} or an object`);const t={};return Object.entries(e).forEach(([n,r])=>{if(r===!1){t[n]={error:!1,warning:!1};return}h(T(r),`Setting ${p.cyan(`hooksTimeout.${n}`)} should be ${p.cyan("false")} or an object`);const[i,o]=["error","warning"].map(a=>{const l=r[a];if(l===void 0||l===!1)return l;const u=`Setting ${p.cyan(`hooksTimeout.${n}.${a}`)} should be`;return h(typeof l=="number",`${u} ${p.cyan("false")} or a number`),h(l>0,`${u} a positive number`),l});t[n]={error:i,warning:o}}),t}function ge(e){return e==="onBeforeRoute"?{error:5*1e3,warning:1*1e3}:di.isPrerendering?{error:2*60*1e3,warning:30*1e3}:(s(!e.toLowerCase().includes("prerender")),{error:30*1e3,warning:4*1e3})}const mi="not-serializable",se=k("getPageContextProxyForUser.ts",{});function yi(e){return s([!0,!1].includes(e._hasPageContextFromServer)),s([!0,!1].includes(e._hasPageContextFromClient)),new Proxy(e,{get(t,n){const r=e[n],i=si(n);return h(r!==mi,`Can't access pageContext${i} on the client side. Because it can't be serialized, see server logs.`),Si(e,n,i),r}})}function Si(e,t,n){if(bi(t)||t in e||vi(t)||!e._hasPageContextFromServer)return;const r=`pageContext${n} isn't defined on the client-side, see https://vike.dev/passToClient#error`;e._hasPageContextFromClient?x(!1,r,{onlyOnce:!1,showStackTrace:!0}):h(!1,r)}const Pi=["then","toJSON"];function vi(e){return!!(Pi.includes(e)||typeof e=="symbol"||typeof e!="string"||e.startsWith("__v_"))}function bi(e){return se.prev===e||se.prev==="__v_raw"?!0:(se.prev=e,window.setTimeout(()=>{se.prev=void 0},0),!1)}function wi(e){Ri(e),Ci(e)}function Ri(e){or(e.pageId,e._pageConfigs)&&s(m(e,"is404","boolean"))}function Ci(e){if(e.is404===void 0||e.is404===null)return;const t=e.pageProps||{};if(!T(t)){x(!1,"pageContext.pageProps should be an object",{showStackTrace:!0,onlyOnce:!0});return}t.is404=t.is404||e.is404,e.pageProps=t}function Ei(e){s(e.pageId),s("config"in e),s("configEntries"in e),wi(e),"_pageId"in e||Object.defineProperty(e,"_pageId",{get(){return x(!1,"pageContext._pageId has been renamed to pageContext.pageId",{showStackTrace:!0,onlyOnce:!0}),e.pageId},enumerable:!1}),_i(e)}function _i(e){let t=Object.getOwnPropertyDescriptors(e);for(const n of Object.keys(e))delete e[n];t=Object.fromEntries(Object.entries(t).sort(([n],[r])=>Jn(n,r))),Object.defineProperties(e,t)}function ze(e,t){{const i=e;s([!0,!1].includes(i.isHydration)),s([!0,!1,null].includes(i.isBackwardNavigation))}const n=e.config.Page||e.exports.Page;return b(e,{Page:n}),Oi(e),Ei(e),yi(e)}function Oi(e){xi(e)}function xi(e){Object.entries(e).forEach(([t,n])=>{delete e[t],e[t]=n})}const ut=["urlPathname","urlParsed"],Ti=["Page","pageExports","exports"];function Fi(e){[...Ti,...ut].forEach(n=>{n in e&&(ut.includes(n)?(s(n.startsWith("url")),x(!1,`pageContext.${n} is already available in the browser when using Client Routing; adding '${n}' to passToClient has no effect`,{onlyOnce:!0})):x(!1,`pageContext.${n} is a built-in that cannot be overriden; adding '${n}' to passToClient has no effect`,{onlyOnce:!0}),delete e[n])})}const $i="/";function ki(e,t,n){const{pathnameOriginal:r,searchOriginal:i,hashOriginal:o}=fe(e,$i);e.startsWith("/")&&s(e===`${r}${i||""}${o||""}`,{url:e});const a=r.endsWith("/");let l;return l=r+(a?"":"/")+"index",s(l),l=l+t,`${l}${i||""}${o||""}`}const Ii=".pageContext.json";function Ai(e){return ki(e,Ii)}function qt(e,{hookName:t,hookFilePath:n}){if(e==null)return;s(!t.endsWith(")"));const r=`The ${p.cyan("pageContext")} object provided by the ${t}() hook defined by ${n}`;h(T(e),`${r} should be an object (but it's ${p.cyan(`typeof pageContext === ${JSON.stringify(typeof e)}`)} instead)`),h(!("_objectCreatedByVike"in e),`${r} shouldn't be the whole ${p.cyan("pageContext")} object, see https://vike.dev/pageContext-manipulation#do-not-return-entire-pagecontext`),x(!("pageId"in e),`${r} sets ${p.cyan("pageContext.pageId")} which means that Vike's routing is overriden. This is an experimental feature: make sure to contact a vike maintainer before using this.`,{onlyOnce:!0}),h(!("is404"in e),`${r} sets ${p.cyan("pageContext.is404")} which is forbidden, use ${p.cyan("throw render()")} instead, see https://vike.dev/render`)}function ji(e,t,n){s(!n.endsWith(" "));const r=[],i=Object.keys(e);for(const o of i)t.includes(o)||r.push(o);h(r.length===0,[n,"returned an object with following unknown keys:",rt(r)+".","Only following keys are allowed:",rt(t)+"."].join(" "))}function Li(e,t){if(e==null)return;const n=`The onBeforeRender() hook defined by ${t}`;h(K(e),`${n} should return a plain JavaScript object, ${p.cyan("undefined")}, or ${p.cyan("null")}`),ji(e,["pageContext"],n),e.pageContext&&qt(e.pageContext,{hookName:"onBeforeRender",hookFilePath:t})}function Di(e,t){if(!K(e))return!1;for(const n of Object.keys(e))if(!t.includes(n))return!1;return!0}function Hi(e,t,n=r=>r){if(s(e.length>0),e.length===1)return n(e[0]);const r=e.slice(0,e.length-1),i=e[e.length-1];return r.map(n).join(", ")+`, ${t} `+n(i)}V()&&ne();const Xt="The guard() hook defined by";async function zi(e,t){let n;if(e._pageFilesAll.length>0?(s(e._pageConfigs.length===0),n=Wi(e.pageId,e._pageFilesAll)):n=D(e,"guard"),!n)return;const r=n.hookFn;let i=e;const o=t(e);o&&(i=o);const a=await N(()=>r(i),n,e);h(a===void 0,`${Xt} ${n.hookFilePath} returns a value, but guard() shouldn't return any value`)}function Wi(e,t){const n=t.find(u=>u.pageId===e&&u.fileType===".page.route");if(!n)return null;const{filePath:r,fileExports:i}=n;s(i);const o=i.guard;if(!o)return null;const a=r,l=ge("guard");return h(H(o),`${Xt} ${a} should be a function`),{hookFn:o,hookName:"guard",hookFilePath:a,hookTimeout:l}}function Bi(e){const t=new Error("AbortRender");return b(t,{_pageContextAbort:e,[Qt]:!0}),t}const Qt="_isAbortError";function ct(e){return typeof e=="object"&&e!==null&&Qt in e}function Ni(e){return e._urlRewrite||e._urlRedirect||e.abortStatusCode?(s(m(e,"_abortCall","string")),!0):!1}function Vi(e){Ui(e);const t={_urlRewrite:null};return e.forEach(n=>{Object.assign(t,n)}),t}function Ui(e){const t=[];e.forEach(n=>{const r=n._urlRewrite;{const i=t.indexOf(r);if(i!==-1){const o=[...t.slice(i),r].map(a=>`render('${a}')`).join(" => ");h(!1,`Infinite loop of render() calls: ${o}`)}}t.push(r)})}function Gi(e,t){const n=[e>0&&p.cyan("throw render('/some-url')"),t>0&&p.cyan("throw redirect('/some-url')")].filter(Boolean).join(" and ");h(e+t<=7,`Maximum chain length of 7 ${n} exceeded. Did you define an infinite loop of ${n}?`)}const Mi="_pageContextInitIsPassedToClient",Zt="_isServerSideError",en=k("router/getPageContext.ts",{});function Ki(){const e=li();return h(!("urlOriginal"in e),"Adding 'urlOriginal' to passToClient is forbidden"),rn(e),b(e,{_hasPageContextFromServer:!0}),e}async function Yi(e){b(e,{_hasPageContextFromClient:!1});for(const t of["data","onBeforeRender"])if(nn(t,e)){const n=await tn(t,e);s(!("urlOriginal"in n)),Object.assign(e,n)}return e}async function Ce(e,t){const n={_hasPageContextFromServer:!1};if(!t&&await qi(e)){const r=await Xi(e);if("is404ServerSideRouted"in r)return{is404ServerSideRouted:!0};const{pageContextFromServer:i}=r;n._hasPageContextFromServer=!0,s(!(Zt in i)),s(!("serverSideError"in i)),b(n,i)}return{pageContextFromServerHooks:n}}async function ft(e,t){b(e,{_hasPageContextFromClient:!1});for(const r of["guard","data","onBeforeRender"])if(r==="guard")!t&&!e._hasPageContextFromServer&&await zi(e,i=>ze(i));else if(s(r==="data"||r==="onBeforeRender"),nn(r,e)||!e._hasPageContextFromServer){const i=await tn(r,e);s(!("urlOriginal"in i)),Object.assign(e,i)}return e}async function tn(e,t){const n=D(t,e);if(!n)return{};const r=ze(t),i=await N(()=>n.hookFn(r),n,t),o={};if(e==="onBeforeRender"){Li(i,n.hookFilePath);const a=i==null?void 0:i.pageContext;a&&(b(o,{_hasPageContextFromClient:!0}),b(o,a))}else{s(e==="data");const a={data:i};i&&b(o,{_hasPageContextFromClient:!0}),b(o,a)}return o}function Ji(e){e[Mi]&&(en.pageContextInitIsPassedToClient=!0)}async function qi(e){return!!en.pageContextInitIsPassedToClient||await dt("data",e)||await dt("onBeforeRender",e)}async function dt(e,t){var n;if(t._pageConfigs.length>0){const r=Vt(t.pageId,t._pageConfigs),i=(n=J(r,`${e}Env`))==null?void 0:n.value;if(i===null)return!1;s(T(i));const{client:o,server:a}=i;return s(o===!0||o===void 0),s(a===!0||a===void 0),s(o||a),!!a&&!o}else{if(e==="data")return!1;s(e==="onBeforeRender");const{hasOnBeforeRenderServerSideOnlyHook:r}=await ui(t._pageFilesAll,t.pageId);return r}}function nn(e,t){var n;if(t._pageConfigs.length>0){const r=Vt(t.pageId,t._pageConfigs),i=((n=J(r,`${e}Env`))==null?void 0:n.value)??{};return s(T(i)),!!i.client&&!i.server}else return!1}async function Xi(e){const t=Ai(e._urlRewrite??e.urlOriginal),n=await fetch(t);{const o=n.headers.get("content-type"),a="application/json",l=o&&o.includes(a);if(!l&&n.status===404)return W(e.urlOriginal),{is404ServerSideRouted:!0};h(l,`Wrong Content-Type for ${t}: it should be ${a} but it's ${o} instead. Make sure to properly use pageContext.httpResponse.headers, see https://vike.dev/renderPage`)}const r=await n.text(),i=je(r);if(s(T(i)),Ni(i))throw Bi(i);if("serverSideError"in i||Zt in i)throw xn("pageContext couldn't be fetched because an error occurred on the server-side");return s(m(i,"pageId","string")),rn(i),{pageContextFromServer:i}}function rn(e){Fi(e)}function Qi(e){s(typeof e.urlOriginal=="string"),ln(e);const t={};return me(t,"urlPathname",{get:sn,enumerable:!0,configurable:!0}),me(t,"url",{get:Zi,enumerable:!1,configurable:!0}),me(t,"urlParsed",{get:eo,enumerable:!0,configurable:!0}),t}function on(e){let t,n;e.urlLogical?(t=e.urlLogical,n=!1):e._urlRewrite?(t=e._urlRewrite,n=!1):(t=e.urlOriginal,n=!0),s(t&&typeof t=="string");let r=e._urlHandler;r||(r=o=>o),t=r(t);const i=n?e._baseServer:"/";return fe(t,i)}function sn(){const{pathname:e}=on(this),t=e;return s(t.startsWith("/")),t}function Zi(){return x(!1,"`pageContext.url` is outdated. Use `pageContext.urlPathname`, `pageContext.urlParsed`, or `pageContext.urlOriginal` instead. (See https://vike.dev/migration/0.4.23 for more information.)",{onlyOnce:!0,showStackTrace:!0}),sn.call(this)}function eo(){const{hasBaseServer:e,...t}=on(this),n=V(),r=o=>{x(n,`pageContext.urlParsed.${o} isn't available on the server-side (HTTP requests don't include the URL hash)`,{onlyOnce:!0,showStackTrace:!0})},i={...t,get hash(){return r("hash"),t.hash},get hashOriginal(){return r("hashOriginal"),t.hashOriginal},get hashString(){return x(!1,"pageContext.urlParsed.hashString has been renamed to pageContext.urlParsed.hashOriginal",{onlyOnce:!0,showStackTrace:!0}),r("hashString"),t.hashOriginal},get searchString(){return x(!1,"pageContext.urlParsed.searchString has been renamed to pageContext.urlParsed.searchOriginal",{onlyOnce:!0,showStackTrace:!0}),t.searchOriginal}};return ie(i,"hashString",!1),ie(i,"searchString",!1),n||(ie(i,"hash",!1),ie(i,"hashOriginal",!1)),i}function an(e){s(typeof e.urlOriginal=="string"),s(typeof e.urlPathname=="string"),s(K(e.urlParsed)),s(e.urlPathname===e.urlParsed.pathname),ln(e)}function ln(e){"urlPathname"in e?(s(typeof e.urlPathname=="string"),s(pe(e,"urlPathname")),s(pe(e,"urlParsed")),s(pe(e,"url"))):(s(!("urlParsed"in e)),s(!("url"in e)))}function to(e,t){const r=t.filter(({filesystemRoot:o})=>e.startsWith(o)).sort(ue(({filesystemRoot:o})=>o.length))[0];let i;if(r){const{filesystemRoot:o,urlRoot:a}=r,l={pageId:e,filesystemRoot:o,urlRoot:a};s(a.startsWith("/")&&e.startsWith("/")&&o.startsWith("/"),l),s(e.startsWith(o),l),o!=="/"?(s(!o.endsWith("/"),l),i=L(e,o.length,0)):i=e,s(i.startsWith("/"),l),i=a+(a.endsWith("/")?"":"/")+L(i,1,0)}else i=e;return s(i.startsWith("/")),i=i.split("/").filter(o=>o!=="pages"&&o!=="src"&&o!=="index").join("/"),s(!i.includes(".page.")),s(!i.endsWith(".")),i.endsWith("/index")&&(i=L(i,0,-6)),i===""&&(i="/"),s(i.startsWith("/")),s(!i.endsWith("/")||i==="/"),i}async function no(e,t,n){an(t);let r=e(t);if(un(r,`The Route Function ${n}`),r=await r,r===!1)return null;if(r===!0&&(r={}),h(K(r),`The Route Function ${n} should return a boolean or a plain JavaScript object (but it's ${p.cyan(`typeof result === ${JSON.stringify(typeof r)}`)} instead)`),"match"in r){const{match:a}=r;if(h(typeof a=="boolean",`The ${p.cyan("match")} value returned by the Route Function ${n} should be a boolean.`),!a)return null}let i=null;"precedence"in r&&(i=r.precedence,h(typeof i=="number",`The ${p.cyan("precedence")} value returned by the Route Function ${n} should be a number.`)),cn(r,`The ${p.cyan("routeParams")} object returned by the Route Function ${n} should`);const o=r.routeParams||{};return h(!("pageContext"in r),`Providing ${p.cyan("pageContext")} in Route Functions is prohibited, see https://vike.dev/route-function#cannot-provide-pagecontext`),s(K(o)),Object.keys(r).forEach(a=>{h(a==="match"||a==="routeParams"||a==="precedence",`The Route Function ${n} returned an object with an unknown property ${p.cyan(a)} (the known properties are ${p.cyan("match")}, ${p.cyan("routeParams")}, and ${p.cyan("precedence")})`)}),{precedence:i,routeParams:o}}function un(e,t){x(!Xn(e),`${t} returned a promise, but asynchronous routing is deprecated and will be removed in the next major release, see https://vike.dev/route-function#async`,{onlyOnce:!0})}function gt(){const e=p.cyan("iKnowThePerformanceRisksOfAsyncRouteFunctions");x(!1,`${e} is deprecated and will be removed in the next major release`,{onlyOnce:!0})}function cn(e,t){s(t.endsWith(" should")),m(e,"routeParams")&&(s(t.endsWith(" should")),h(m(e,"routeParams","string{}"),`${t} be an object holding string values.`))}async function ro(e,t,n,r){await Promise.all(e.filter(l=>l.fileType===".page.route").map(l=>{var u;return(u=l.loadFile)==null?void 0:u.call(l)}));const{onBeforeRouteHook:i,filesystemRoots:o}=oo(e,t,n);return{pageRoutes:io(o,e,t,r),onBeforeRouteHook:i}}function io(e,t,n,r){const i=[];if(n.length>0){s(e===null);const o=!0;n.filter(a=>!a.isErrorPage).forEach(a=>{const l=a.pageId;let u=null;{const c="route",f=J(a,c);if(f){const g=f.value;s(f.definedAtData);const y=Q(f.definedAtData,c);typeof g=="string"?u={pageId:l,comesFromV1PageConfig:o,routeString:g,routeDefinedAtString:y,routeType:"STRING"}:(s(H(g)),J(a,"iKnowThePerformanceRisksOfAsyncRouteFunctions","boolean")&>(),u={pageId:l,comesFromV1PageConfig:o,routeFunction:g,routeDefinedAtString:y,routeType:"FUNCTION"})}}if(!u){const{routeFilesystem:c}=a;s(c);const{routeString:f,definedBy:g}=c;s(c.routeString.startsWith("/")),u={pageId:l,routeFilesystemDefinedBy:g,comesFromV1PageConfig:o,routeString:f,routeDefinedAtString:null,routeType:"FILESYSTEM"}}s(u),i.push(u)})}if(n.length===0){s(e);const o=!1;r.filter(a=>!re(a)).forEach(a=>{const l=t.find(u=>u.pageId===a&&u.fileType===".page.route");if(!l||!("default"in l.fileExports)){const u=to(a,e);s(u.startsWith("/")),s(!u.endsWith("/")||u==="/"),i.push({pageId:a,comesFromV1PageConfig:o,routeString:u,routeDefinedAtString:null,routeFilesystemDefinedBy:`${a}.page.*`,routeType:"FILESYSTEM"})}else{const{filePath:u,fileExports:c}=l;if(s(c.default),m(c,"default","string")){const f=c.default;h(f.startsWith("/"),`A Route String should start with a leading slash '/' but ${u} has \`export default '${f}'\`. Make sure to \`export default '/${f}'\` instead.`),i.push({pageId:a,comesFromV1PageConfig:o,routeString:f,routeDefinedAtString:u,routeType:"STRING"});return}if(m(c,"default","function")){const f=c.default;"iKnowThePerformanceRisksOfAsyncRouteFunctions"in c&>(),i.push({pageId:a,comesFromV1PageConfig:o,routeFunction:f,routeDefinedAtString:u,routeType:"FUNCTION"});return}h(!1,`The default export of ${u} should be a string or a function.`)}})}return i}function oo(e,t,n){if(t.length>0)return{onBeforeRouteHook:gi(n,"onBeforeRoute"),filesystemRoots:null};let r=null;const i=[];return e.filter(o=>o.fileType===".page.route"&&o.isDefaultPageFile).forEach(({filePath:o,fileExports:a})=>{if(s(a),"onBeforeRoute"in a){h(m(a,"onBeforeRoute","function"),`\`export { onBeforeRoute }\` of ${o} should be a function.`);const{onBeforeRoute:l}=a,u="onBeforeRoute";r={hookFilePath:o,hookFn:l,hookName:u,hookTimeout:ge(u)}}"filesystemRoutingRoot"in a&&(h(m(a,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${o} should be a string.`),h(m(a,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${o} is \`'${a.filesystemRoutingRoot}'\` but it should start with a leading slash \`/\`.`),i.push({filesystemRoot:so(o),urlRoot:a.filesystemRoutingRoot}))}),{onBeforeRouteHook:r,filesystemRoots:i}}function so(e){s(e.startsWith("/")),s(!e.endsWith("/"));const t=e.split("/"),n=L(t,0,-1).join("/")||"/";return s(n.startsWith("/")),s(!n.endsWith("/")||n==="/"),n}function fn(){const e="/";return s(ao(e)),e}function ao(e){return e.startsWith("/")}const Pe=k("createPageContext.ts",{});async function dn(e){Pe.pageFilesData||(Pe.pageFilesData=await Or());const{pageFilesAll:t,allPageIds:n,pageConfigs:r,pageConfigGlobal:i}=Pe.pageFilesData,{pageRoutes:o,onBeforeRouteHook:a}=await ro(t,r,i,n),l=fn();s(Ie(l));const u={urlOriginal:e,_objectCreatedByVike:!0,_urlHandler:null,_urlRewrite:null,_baseServer:l,_pageFilesAll:t,_pageConfigs:r,_pageConfigGlobal:i,_allPageIds:n,_pageRoutes:o,_onBeforeRouteHook:a,_isPageContextObject:!0},c=Qi(u);return b(u,c),u}function gn(e,t){const n=e.filter(i=>i.pageId===t);return s(n.length<=1),n[0]??null}async function lo(e,t){if("isAllLoaded"in e&&!t)return e;const n=await e.loadConfigValuesAll(),r=Re(n.configValuesSerialized);return Object.assign(e.configValues,r),b(e,{isAllLoaded:!0}),e}const hn="__whileFetchingAssets";async function Ee(e,t,n){const r=De(t,e),i=gn(n,e);let o;const a=!1;try{o=(await Promise.all([i&&lo(i,a),...r.map(f=>{var g;return(g=f.loadFile)==null?void 0:g.call(f)})]))[0]}catch(c){throw uo(c)&&Object.assign(c,{[hn]:!0}),c}const l=$r(r,o),u={};return b(u,l),b(u,{_pageFilesLoaded:r}),u}function We(e){return e?e[hn]===!0:!1}function uo(e){return e instanceof Error?["Failed to fetch dynamically imported module","error loading dynamically imported module","Importing a module script failed","error resolving module specifier","failed to resolve module"].some(n=>e.message.toLowerCase().includes(n.toLowerCase())):!1}function Z(e,t){s(!e.startsWith("#"));const{searchOriginal:n,hashOriginal:r,pathname:i}=fe(e,"/");let o=`${i}${n||""}`;return t!=null&&t.withoutHash||(o+=r||""),s(o.startsWith("/")),o}function Be(e){const t=e.getAttribute("href");return t===null||!kt(t)||t===""||Bn(t)||go(t)||fo(e)||!po(t)||!co(e)}function co(e){if(mo()){const n=e.getAttribute("data-vike-link");return n!==null&&n!=="false"}else return!0}function fo(e){const t=e.getAttribute("target"),n=e.getAttribute("rel");return t==="_blank"||t==="_external"||n==="external"||e.hasAttribute("download")}function go(e){return!!(e.startsWith("#")||e.includes("#")&&Z(e,{withoutHash:!0})===Z(window.location.href,{withoutHash:!0}))}function ho(e){return e.startsWith("#")?e===window.location.hash:Z(e)===Z(window.location.href)}function po(e){const t=fn();s(Ie(t));const{hasBaseServer:n}=fe(e,t);return n}function mo(){return!!window._disableAutomaticLinkInterception}function X(e){return e.fileType===".css"?[]:e.exportNames?e.exportNames:(s(e.fileExports,e.filePath),Object.keys(e.fileExports))}function yo({pageFilesClientSide:e,pageFilesServerSide:t,pageId:n}){return{isHtmlOnly:r(),isClientRouting:o()};function r(){return t.some(l=>l.pageId===n&&l.fileType===".page")?(i(),!1):!(!t.some(l=>l.pageId===n&&l.fileType===".page.server")||e.some(l=>l.pageId===n&&l.fileType===".page.client"&&X(l).includes("render")))}function i(){const a=e.some(l=>X(l).includes("render"));h(a,["No client-side `render()` hook found.","See https://vike.dev/render-modes for more information.",["Loaded client-side page files (none of them `export { render }`):",...e.map((l,u)=>` (${u+1}): ${l.filePath}`)].join(` +`)].join(" "))}function o(){return e.some(l=>X(l).includes("clientRouting"))}}function So({pageFilesClientSide:e,pageFilesServerSide:t,isHtmlOnly:n,isClientRouting:r}){let i=[];const o=t.filter(l=>!e.includes(l)),a=[];if(a.push(...e.map(l=>({id:l.filePath,onlyAssets:!1,eagerlyImported:!1}))),a.push(...o.map(l=>({id:l.filePath,onlyAssets:!0,eagerlyImported:!1}))),n)i=e.map(l=>l.filePath);else{const l=Po(r);a.push({id:l,onlyAssets:!1,eagerlyImported:!1}),i=[l]}return{clientEntries:i,clientDependencies:a}}function Po(e){return e?"@@vike/dist/esm/client/client-routing-runtime/entry.js":"@@vike/dist/esm/client/server-routing-runtime/entry.js"}function vo(e,t){let n=De(e,t);const r=Bt(e,t),{isHtmlOnly:i,isClientRouting:o}=yo({pageFilesClientSide:n,pageFilesServerSide:r,pageId:t});i&&(n=n.filter(u=>u.isEnv("CLIENT_ONLY")&&!X(u).includes("render")),n=wo(n));const{clientEntries:a,clientDependencies:l}=So({pageFilesClientSide:n,pageFilesServerSide:r,isHtmlOnly:i,isClientRouting:o});return{isHtmlOnly:i,isClientRouting:o,clientEntries:a,clientDependencies:l,pageFilesClientSide:n,pageFilesServerSide:r}}async function bo(e,t,{sharedPageFilesAlreadyLoaded:n}){const r=De(e,t);await Promise.all(r.map(async i=>{var o;s(i.isEnv("CLIENT_ONLY")||i.isEnv("CLIENT_AND_SERVER")),!(n&&i.isEnv("CLIENT_AND_SERVER"))&&await((o=i.loadExportNames)==null?void 0:o.call(i))}))}function wo(e){const t=[];for(const n of e)if(t.push(n),X(n).includes("overrideDefaultPages"))break;return t}function Ro(e,t,n){var r,i;if(e){const o=((r=J(e,"clientRouting","boolean"))==null?void 0:r.value)??!1;return{isClientRuntimeLoaded:((i=J(e,"isClientRuntimeLoaded","boolean"))==null?void 0:i.value)??!1,isClientRouting:o}}else{const{isHtmlOnly:o,isClientRouting:a}=vo(t,n);return{isClientRuntimeLoaded:!o,isClientRouting:a}}}async function _e(e,t){await bo(t._pageFilesAll,e,{sharedPageFilesAlreadyLoaded:!1});const n=gn(t._pageConfigs,e),{isClientRuntimeLoaded:r,isClientRouting:i}=Ro(n,t._pageFilesAll,e);return r&&i}const pn="@",Oe=":";function Co(e,t="Invalid"){let n=`${t} Route String ${B(e)}`;h(e!=="",`${n} (empty string): set it to ${B("/")} instead`),h(["/","*"].includes(e[0]),`${n}: it should start with ${B("/")} or ${B("*")}`),h(!e.includes("**"),`${n}: set it to ${B(e.split("**").join("*"))} instead`)}function xe(e,t){Co(e);const n=Ne(e),r=n.map(g=>g.param?"[^/]+":g.glob?".*":Zn(g.static)).map(g=>`(${g})`).join(""),i=new RegExp(`^${r}/?$`),o=t.match(i);if(!o)return null;const a={},[l,...u]=o;let c=0;const f=n.filter(g=>g.glob).length>1;return n.forEach((g,y)=>{let S=u[y];if(g.param&&(a[g.param]=S),g.glob){const w=`*${f?++c:""}`;a[w]=S}}),{routeParams:a}}function Ne(e){const t=[],n=i=>{const o=t[t.length-1];o!=null&&o.static?o.static+=i:t.push({static:i})},r=e.split("/");return r.forEach((i,o)=>{o!==0&&n("/"),_o(i)?(x(!i.startsWith(Oe),`Outdated Route String ${B(e)}, use ${B(e.split(Oe).join(pn))} instead`,{onlyOnce:!0}),t.push({param:i.slice(1)})):i==="*"&&o===r.length-1&&e!=="*"&&e!=="/*"?t.push({glob:!0}):i.split("*").forEach((a,l)=>{l!==0&&t.push({glob:!0}),a!==""&&n(a)})}),t}function Eo(e){const t=[];return Ne(e).forEach(r=>{r.param&&t.push(r.param)}),t}function ae(e){const t=Ne(e),n=l=>(l==null?void 0:l.split("/").filter(Boolean).length)||0;let r=0;for(const l of t){if(!l.static)break;r+=n(l.static)}const i=t.map(l=>n(l.static)).reduce((l,u)=>l+u,0),o=t.filter(l=>l.param).length,a=t.filter(l=>l.glob).length;return{numberOfStaticPartsBeginning:r,numberOfStaticParts:i,numberOfParams:o,numberOfGlobs:a}}function _o(e){return e.startsWith(pn)||e.startsWith(Oe)}function ht(e){const n=xe(e,e);return s(n),Object.keys(n.routeParams).length===0}function B(e){return V()?`'${e}'`:(e===""&&(e="''"),p.cyan(e))}function Oo(e){e.sort(xo).sort(z(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence<0)).sort(z(t=>t.routeType==="STRING"&&ht(t.routeString)===!1)).sort(z(t=>t.routeType==="FUNCTION"&&!t.precedence)).sort(z(t=>t.routeType==="STRING"&&ht(t.routeString)===!0)).sort(z(t=>t.routeType==="FILESYSTEM")).sort(z(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence>0))}function xo(e,t){{const n=e.precedence??0,r=t.precedence??0;if(n!==r)return n>r?-1:1}if(!t.routeString||!e.routeString)return 0;{const r=ue(i=>ae(i).numberOfStaticPartsBeginning)(e.routeString,t.routeString);if(r!==0)return r}{const r=ue(i=>ae(i).numberOfStaticParts)(e.routeString,t.routeString);if(r!==0)return r}{const r=Gn(i=>ae(i).numberOfGlobs)(e.routeString,t.routeString);if(r!==0)return r}{const r=ue(i=>ae(i).numberOfParams)(e.routeString,t.routeString);if(r!==0)return r}return 0}async function To(e){const t={};if(!e._onBeforeRouteHook)return null;const n=await Fo(e._onBeforeRouteHook,e);return n&&(b(t,n),m(t,"pageId","string")||m(t,"pageId","null"))?(m(t,"routeParams")?s(m(t,"routeParams","object")):b(t,{routeParams:{}}),b(t,{_routingProvidedByOnBeforeRouteHook:!0,_debugRouteMatches:"CUSTOM_ROUTING"}),t):(b(t,{_routingProvidedByOnBeforeRouteHook:!1}),t)}async function Fo(e,t){let n=e.hookFn(t);un(n,`The onBeforeRoute() hook ${e.hookFilePath}`),n=await N(()=>n,e,t);const r=`The onBeforeRoute() hook defined by ${e.hookFilePath}`;if(h(n==null||Di(n,["pageContext"])&&m(n,"pageContext"),`${r} should return ${p.cyan("null")}, ${p.cyan("undefined")}, or a plain JavaScript object ${p.cyan("{ pageContext: { /* ... */ } }")}`),n==null)return null;if(h(m(n,"pageContext","object"),`${r} returned ${p.cyan("{ pageContext }")} but pageContext should be a plain JavaScript object.`),m(n.pageContext,"pageId")&&!m(n.pageContext,"pageId","null")){const a=`${r} returned ${p.cyan("{ pageContext: { pageId } }")} but ${p.cyan("pageId")} should be`;h(m(n.pageContext,"pageId","string"),`${a} a string or null`),h(t._allPageIds.includes(n.pageContext.pageId),`${a} ${Hi(t._allPageIds.map(l=>p.cyan(l)),"or")}`)}m(n.pageContext,"routeParams")&&cn(n.pageContext,`${r} returned ${p.cyan("{ pageContext: { routeParams } }")} but routeParams should`);const i=a=>`${r} returned ${p.cyan(`{ pageContext: { ${a} } }`)} which is deprecated. Return ${p.cyan("{ pageContext: { urlLogical } }")} instead.`;m(n.pageContext,"url")&&(x(!1,i("url"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.url,delete n.pageContext.url),m(n.pageContext,"urlOriginal")&&(x(!1,i("urlOriginal"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.urlOriginal,delete n.pageContext.urlOriginal),m(n.pageContext,"urlLogical")&&Vn(n.pageContext.urlLogical,`${r} returned ${p.cyan("{ pageContext: { urlLogical } }")} but ${p.cyan("urlLogical")}`),qt(n.pageContext,{hookFilePath:e.hookFilePath,hookName:"onBeforeRoute"});const o={};return b(o,n.pageContext),o}var le;function pt(...e){var t;le||(le=(t=globalThis.__brillout_debug_createDebugger)==null?void 0:t.call(globalThis,"vike:routing")),le&&le(...e)}V()&&ne();async function mn(e){pt("Pages routes:",e._pageRoutes),an(e);const t={},n=await To(e);if(n){if(n._routingProvidedByOnBeforeRouteHook)return s(n.pageId),n;b(t,n)}b(e,n);const r=e._allPageIds;h(r.length>0,"No page found. You must create at least one page."),s(e._pageFilesAll.length>0||e._pageConfigs.length>0);const{urlPathname:i}=e;s(i.startsWith("/"));const o=[];await Promise.all(e._pageRoutes.map(async l=>{const{pageId:u,routeType:c}=l;if(l.routeType==="FILESYSTEM"){const{routeString:f}=l,g=xe(f,i);if(g){const{routeParams:y}=g;o.push({pageId:u,routeParams:y,routeString:f,routeType:c})}return}if(l.routeType==="STRING"){const{routeString:f}=l,g=xe(f,i);if(g){const{routeParams:y}=g;s(c==="STRING"),o.push({pageId:u,routeString:f,routeParams:y,routeType:c})}return}if(l.routeType==="FUNCTION"){const{routeFunction:f,routeDefinedAtString:g}=l,y=await no(f,e,g);if(y){const{routeParams:S,precedence:w}=y;o.push({pageId:u,precedence:w,routeParams:S,routeType:c})}return}s(!1)})),Oo(o);const a=o[0]??null;if(pt(`Route matches for URL ${p.cyan(i)} (in precedence order):`,o),b(t,{_debugRouteMatches:o}),b(t,{_routeMatch:a}),!a)return b(t,{pageId:null,routeParams:{}}),t;{const{routeParams:l}=a;s(K(l)),b(t,{pageId:a.pageId,routeParams:a.routeParams})}return t}const yn=k("getPageContextCurrent.ts",{pageContextCurrent:null});function Sn(){const{pageContextCurrent:e}=yn;return e}function mt(e){yn.pageContextCurrent=e}const ce=5e3,yt={staticAssets:"hover",pageContext:ce},Te={staticAssets:"hover",pageContext:!1},$o=Te;function Ve(e,t){let n=$o;if("prefetchLinks"in e.exports&&h(!1,"`export { prefetchLinks }` is deprecated, use `export { prefetchStaticAssets }` instead."),"prefetchStaticAssets"in e.exports){const r=e.exports.prefetchStaticAssets;n.staticAssets=r}if("prefetch"in e.exports){const{prefetch:r}=e.exports;r===!0&&(n=yt),r===!1&&(n=Te),Object.assign(n,r),n.pageContext===!0&&(n.pageContext=ce)}if(n.staticAssets,t){{let r=t.getAttribute("data-prefetch");r!==null&&(r===""&&(r="true"),r==="true"&&(n=yt),r==="false"&&(n=Te))}{let r=t.getAttribute("data-prefetch-static-assets");r!==null&&(r==="false"&&(n.staticAssets=!1),n.staticAssets=r)}{let r=t.getAttribute("data-prefetch-page-context");if(r!==null){r===""&&(r="true"),r==="true"&&(n.pageContext=ce),r==="false"&&(n.pageContext=!1);const i=parseInt(r,10);Number.isNaN(i)||(n.pageContext=i)}}}return n}ne();const I=k("prefetch.ts",{linkPrefetchHandlerAdded:new WeakSet,addLinkPrefetchHandlers_debounce:null,mutationObserver:new MutationObserver(Ue),linkTags:document.getElementsByTagName("A"),prefetchedPageContexts:{}});function ko(e){if(!Ve(e,null).pageContext)return null;const n=Ge(e.urlPathname),r=I.prefetchedPageContexts[n];return!r||r.result.is404ServerSideRouted||vn(r)?null:r.result.pageContextFromServerHooks}async function Io(e){try{await Ee(e.pageId,e._pageFilesAll,e._pageConfigs)}catch(t){if(We(t))$e(t,!0);else throw t}}async function Ao(e,t){const n=await Ce(e,!1);Pn(e,n,t)}function St(e,t){Me()&&Pn(e,t,null)}function Pn(e,t,n){n===null&&(n=jo());const r=Ge(e.urlPathname);s(Me()),I.prefetchedPageContexts[r]={resultFetchedAt:Date.now(),resultMaxAge:n,result:t}}function jo(){const e=Sn();if(!e)return 1/0;const t=Ve(e,null);return typeof t.pageContext=="number"?t.pageContext:ce}function Ue(){I.addLinkPrefetchHandlers_debounce&&clearTimeout(I.addLinkPrefetchHandlers_debounce),I.addLinkPrefetchHandlers_debounce=setTimeout(()=>{"requestIdleCallback"in window?requestIdleCallback(Pt,{timeout:300}):setTimeout(Pt,150)},250)}function Lo(){Ue()}function Do(){I.mutationObserver.observe(document.body,{childList:!0,subtree:!0})}function Ho(){I.mutationObserver.disconnect()}function Pt(){for(let e of I.linkTags){if(I.linkPrefetchHandlerAdded.has(e)||(I.linkPrefetchHandlerAdded.add(e),Be(e)))continue;e.addEventListener("mouseover",()=>{ve(e,"hover")},{passive:!0}),e.addEventListener("touchstart",()=>{ve(e,"hover")},{passive:!0}),new IntersectionObserver(n=>{n.forEach(r=>{r.isIntersecting&&ve(e,"viewport")})}).observe(e)}}async function ve(e,t){let n;const r=Sn();if(r)n=Ve(r,e);else if(Me())n={staticAssets:"hover",pageContext:1/0};else return;if(Be(e))return;const i=e.getAttribute("href"),o=await zo(i);o!=null&&o.pageId&&(s(m(o,"pageId","string")),await _e(o.pageId,o)&&await Promise.all([(async()=>{n.staticAssets===t&&await Io(o)})(),(async()=>{if(t!=="viewport"&&n.pageContext){const a=Ge(i),l=I.prefetchedPageContexts[a];if(!l||vn(l)){const u=n.pageContext;await Ao(o,u)}}})()]))}function vn(e){return Date.now()-e.resultFetchedAt>e.resultMaxAge}async function zo(e){const t=await dn(e);let n;try{n=await mn(t)}catch{return null}return b(t,n),t}function Ge(e){return e.startsWith("#")&&(e="/"),s(e.startsWith("/"),{urlPathname:e}),e.split("#")[0]}function Me(){return"_isBrilloutDocpress"in window}async function Wo(e,t){const n=ze(e);let r=null,i;r=D(e,"render"),i="render";{const l=D(e,"onRenderClient");l&&(r=l,i="onRenderClient")}if(!r){const l=Bo(e);if(s(l),e._pageConfigs.length>0)h(!1,`No onRenderClient() hook defined for URL '${l}', but it's needed, see https://vike.dev/onRenderClient`);else{const u=e._pageFilesLoaded.filter(f=>f.fileType===".page.client");let c;u.length===0?c="No file `*.page.client.*` found for URL "+l:c="One of the following files should export a render() hook: "+u.map(f=>f.filePath).join(" "),h(!1,c)}}s(r);const o=r.hookFn;s(i);const a=await N(()=>o(n),r,e);h(a===void 0,`The ${i}() hook defined by ${r.hookFilePath} isn't allowed to return a value`)}function Bo(e){let t;try{t=e.urlPathname??e.urlOriginal}catch{}return t=t??window.location.href,t}function Ke(e){return Z(window.location.href,e)}Rn();const Fe=k("history.ts",{previous:Qe()});function bn(){const e=wn();if(ee(e))return;const t=No(e);Xe(t)}function No(e){const t=qe(),n=Je(),r="browser";let i;return e?i={timestamp:e.timestamp??t,scrollPosition:e.scrollPosition??n,triggeredBy:e.triggeredBy??r,_isVikeEnhanced:!0}:i={timestamp:t,scrollPosition:n,triggeredBy:r,_isVikeEnhanced:!0},s(ee(i)),i}function Ye(){const e=wn();return s(ee(e),{state:e}),e}function wn(){return window.history.state}function Je(){return{x:window.scrollX,y:window.scrollY}}function qe(){return new Date().getTime()}function vt(){const e=Je(),t=Ye();Xe({...t,scrollPosition:e})}function Vo(e,t){if(t)Xe(Ye(),e);else{const n={timestamp:qe(),scrollPosition:null,triggeredBy:"vike",_isVikeEnhanced:!0};window.history.pushState(n,"",e)}}function Xe(e,t){const n=t??null;window.history.replaceState(e,"",n)}function Uo(){["pushState","replaceState"].forEach(e=>{const t=window.history[e].bind(window.history);window.history[e]=(n={},...r)=>{h(n==null||T(n),`history.${e}(state) argument state must be an object`);const i=ee(n)?n:{_isVikeEnhanced:!0,scrollPosition:Je(),timestamp:qe(),triggeredBy:"user",...n};s(ee(i));const o=t(i,...r);return Fe.previous=Qe(),o}})}function ee(e){const t=T(e)&&"_isVikeEnhanced"in e;return t&&Go(e),t}function Go(e){s(T(e)),s(m(e,"_isVikeEnhanced","true")),s(m(e,"timestamp","number")),s(m(e,"scrollPosition")),e.scrollPosition!==null&&(s(m(e,"scrollPosition","object")),s(m(e.scrollPosition,"x","number")&&m(e.scrollPosition,"y","number")))}function Qe(){return{url:Ke(),state:Ye()}}function Mo(){const{previous:e}=Fe,t=window.history.state===null;t&&bn();const n=Qe();return Fe.previous=n,{isNewState:t,previous:e,current:n}}function Rn(){bn()}function Cn(e){if(e&&"x"in e){_n(e);return}if(e!=null&&e.preserveScroll)return;const t=Ko();En(t)}function En(e){if(!e)bt();else{const t=decodeURIComponent(e),n=document.getElementById(t)||document.getElementsByName(t)[0];n?(n.scrollIntoView(),n.focus()):e==="top"&&bt()}}function bt(){_n({x:0,y:0})}function _n(e){const t=()=>window.scrollTo(e.x,e.y),n=()=>window.scrollX===e.x&&window.scrollY===e.y;n()||(t(),!n()&&requestAnimationFrame(()=>{t(),!n()&&setTimeout(async()=>{if(t(),n())return;const r=new Date().getTime();for(;;)if(await ti(10),t(),n()||new Date().getTime()-r>100)return},0)}))}function Ko(){let{hash:e}=window.location;return e===""?null:(s(e.startsWith("#")),e=e.slice(1),e)}function Yo(){window.addEventListener("scroll",ni(vt,Math.ceil(1e3/3)),{passive:!0}),Yt(vt)}const On=k("scrollRestoration.ts",{});function Jo(){wt(),Yt(wt),ri(()=>On.initialRenderIsDone&&Ze())}function qo(){On.initialRenderIsDone=!0}function Ze(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual")}function wt(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto")}const _=k("renderPageClientSide.ts",(()=>{const{promise:e,resolve:t}=ii();return{previousPageContext:null,renderCounter:0,firstRenderStartPromise:e,firstRenderStartPromiseResolve:t}})());async function te(e){const{urlOriginal:t=Ke(),overwriteLastHistoryEntry:n=!1,isBackwardNavigation:r,pageContextsFromRewrite:i=[],redirectCount:o=0,doNotRenderIfSamePage:a,isClientSideNavigation:l=!0,pageContextInitClient:u}=e;let{scrollTarget:c}=e;const{previousPageContext:f}=_;Ho();const{isRenderOutdated:g,setHydrationCanBeAborted:y,isFirstRender:S}=Qo();if(Gi(i.length,o),_.clientRoutingIsDisabled){W(t);return}if(_.firstRenderStartPromiseResolve(),g())return;await w();return;async function w(){const v=async d=>{await F({err:d})},P=await $(!1);if(!g()){if(_.isFirstRenderDone&&(s(f),Se(f,"onPageTransitionStart"),!_.isTransitioning)){_.isTransitioning=!0;const d=D(f,"onPageTransitionStart");if(d){const E=d,{hookFn:R}=E;try{await N(()=>R(P),E,P)}catch(C){await v(C);return}if(g())return}}if(S){const d=Ki();s(!("urlOriginal"in d)),b(P,d),St(P,{pageContextFromServerHooks:d})}else{let d;try{d=await mn(P)}catch(C){await v(C);return}if(g())return;if(!d.pageId){W(t);return}s(m(d,"pageId","string"));const E=await _e(d.pageId,P);if(g())return;if(!E){W(t);return}const R=d.pageId&&(f==null?void 0:f.pageId)&&d.pageId===f.pageId;if(a&&R)return;s(!("urlOriginal"in d)),b(P,d)}try{b(P,await Ee(P.pageId,P._pageFilesAll,P._pageConfigs))}catch(d){if(Rt(d,P,S))return;await v(d);return}if(!g()&&(mt(P),P.exports.hydrationCanBeAborted?y():x(!ei(),"You seem to be using React; we recommend setting hydrationCanBeAborted to true, see https://vike.dev/hydrationCanBeAborted",{onlyOnce:!0}),!g()))if(S){s(m(P,"_hasPageContextFromServer","true"));let d;try{d=await Yi(P)}catch(E){await v(E);return}if(g())return;ye(P,d),await A(P)}else{let d;const E=ko(P);if(E)d=E;else try{const C=await Ce(P,!1);if(C.is404ServerSideRouted)return;d=C.pageContextFromServerHooks,St(P,C)}catch(C){await v(C);return}if(g())return;s(!("urlOriginal"in d)),b(P,d);let R;try{R=await ft(P,!1)}catch(C){await v(C);return}if(g())return;ye(P,R),await A(P)}}}async function $(v){const P=await dn(t);b(P,{isBackwardNavigation:r,isClientSideNavigation:l,isHydration:S&&!v,previousPageContext:f,...u}),Object.defineProperty(P,"_previousPageContext",{get(){return x(!1,"pageContext._previousPageContext has been renamed pageContext.previousPageContext",{showStackTrace:!0,onlyOnce:!0}),f},enumerable:!1});{const d=Vi(i);s(!("urlOriginal"in d)),b(P,d)}return P}async function F(v){const P=O=>{lt(O,v.err)||console.error(O)};if("err"in v){const{err:O}=v;s(O),ct(O)||console.error(O)}const d=await $(!0);if(g())return;if(v.is404&&b(d,{is404:!0}),v.pageContextError&&b(d,v.pageContextError),"err"in v){const{err:O}=v;if(s(!("errorWhileRendering"in d)),d.errorWhileRendering=O,ct(O)){const j=O._pageContextAbort;if(j._urlRewrite){await te({...e,scrollTarget:void 0,pageContextsFromRewrite:[...i,j]});return}if(j._urlRedirect){const he=j._urlRedirect.url;if(he.startsWith("/"))await te({...e,scrollTarget:void 0,urlOriginal:he,overwriteLastHistoryEntry:!1,isBackwardNavigation:!1,redirectCount:o+1});else{W(he);return}return}s(j.abortStatusCode),s(!("urlOriginal"in j)),b(d,j),j.abortStatusCode===404&&b(d,{is404:!0})}else b(d,{is404:!1})}const E=ir(d._pageFilesAll,d._pageConfigs);if(!E)throw new Error("No error page defined.");b(d,{pageId:E});const R=await _e(d.pageId,d);if(g())return;if(!R){W(t);return}try{b(d,await Ee(d.pageId,d._pageFilesAll,d._pageConfigs))}catch(O){if(Rt(O,d,S))return;P(O);return}if(g())return;mt(d);let C;try{const O=await Ce(d,!0);if(O.is404ServerSideRouted)return;C=O.pageContextFromServerHooks}catch(O){P(O);return}if(g())return;s(!("urlOriginal"in C)),b(d,C);let U;try{U=await ft(d,!0)}catch(O){P(O);return}g()||(ye(d,U),b(d,{routeParams:{}}),await A(d,v))}async function A(v,P){const d=async R=>{P?lt(R,P.err)||console.error(R):await F({err:R})};if(_.onRenderClientPromise&&(await _.onRenderClientPromise,s(_.onRenderClientPromise===void 0),g()))return;Xo(t,n),_.previousPageContext=v,s(_.onRenderClientPromise===void 0),_.onRenderClientPromise=(async()=>{let R;try{await Wo(v,!0)}catch(C){R=C}return _.onRenderClientPromise=void 0,_.isFirstRenderDone=!0,R})();const E=await _.onRenderClientPromise;if(s(_.onRenderClientPromise===void 0),!(E&&(await d(E),!P))){if(S&&!E){Se(v,"onHydrationEnd");const R=D(v,"onHydrationEnd");if(R){const{hookFn:C}=R;try{await N(()=>C(v),R,v)}catch(U){if(await d(U),!P)return}if(g(!0))return}}if(!g(!0)){if(_.isTransitioning){_.isTransitioning=void 0,s(f),Se(f,"onPageTransitionEnd");const R=D(f,"onPageTransitionEnd");if(R){const{hookFn:C}=R;try{await N(()=>C(v),R,v)}catch(U){if(await d(U),!P)return}if(g(!0))return}}if(!c&&f){const R=Ct(f),C=Ct(v);C!==!1&&R!==!1&&es(C,R)&&(c={preserveScroll:!0})}Cn(c),Ze(),qo(),v._hasPageContextFromServer&&Ji(v),Do(),Ue()}}}}function Xo(e,t){Ke()!==e&&(Ze(),Vo(e,t))}function Rt(e,t,n){if(!We(e))return!1;if(n)throw $e(e,!1),e;return $e(e,!0),W(t.urlOriginal),!0}function $e(e,t){s(We(e)),_.clientRoutingIsDisabled=!0,t&&console.log(e),Tn(!1,["Failed to fetch static asset.","This usually happens when a new frontend is deployed.","Falling back to Server Routing.","(The next page navigation will use Server Routing instead of Client Routing.)"].filter(Boolean).join(" "),{onlyOnce:!0})}function Qo(){const e=++_.renderCounter;s(e>=1);let t=!1;return{isRenderOutdated:i=>e===1&&!t&&!i?!1:e!==_.renderCounter,setHydrationCanBeAborted:()=>{t=!0},isFirstRender:e===1}}function Zo(){return _.renderCounter}function Ct(e){const t=e.from.configsStandard.keepScrollPosition;if(!t)return!1;let n=t.value;const r=t.definedAt;s(r);const i=Eo(r);return H(n)&&(n=n(e,{configDefinedAt:t.definedAt})),n===!0?[r,...i.map(o=>{const a=e.routeParams[o];return s(a),a})]:n}function es(e,t){return e===t?!0:!Array.isArray(e)||!Array.isArray(t)?!1:e.length===t.length&&e.every((n,r)=>e[r]===t[r])}const ts=k("initOnPopState.ts",{listeners:[]});function ns(){window.addEventListener("popstate",async()=>{const{isNewState:e,previous:t,current:n}=Mo(),r=n.state.scrollPosition||void 0,i=n.state.triggeredBy==="user"||t.state.triggeredBy==="user",o=Et(n.url)===Et(t.url)&&n.url!==t.url,a=o&&e,l=!n.state.timestamp||!t.state.timestamp?null:n.state.timestamp{c||(c=f({previous:t}))}),!c&&(c===!1&&(u=!1),await te({scrollTarget:r,isBackwardNavigation:l,doNotRenderIfSamePage:u}))})}function Et(e){return e.split("#")[0]}function rs(){document.addEventListener("click",is)}async function is(e){if(!os(e))return;const t=ss(e.target);if(!t)return;const n=t.getAttribute("href");if(n!=null&&n.includes("#")&&ho(n)){e.preventDefault(),En(n.split("#")[1]);return}if(Be(t))return;s(n),e.preventDefault();let r;{const i=t.getAttribute("keep-scroll-position");i!==null&&(r={preserveScroll:i!=="false"})}await te({scrollTarget:r,urlOriginal:n,isBackwardNavigation:!1})}function os(e){return e.button===0&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey}function ss(e){for(;e.tagName!=="A";){const{parentNode:t}=e;if(!t)return null;e=t}return e}async function as(){us();const e=ls();rs(),Lo(),await e}async function ls(){s(Zo()===0),await te({scrollTarget:{preserveScroll:!0},isBackwardNavigation:null,isClientSideNavigation:!1})}function us(){Uo(),Rn(),Jo(),Yo(),ns()}ne();Fn();as(); diff --git a/assets/entries/pages_amo.Dei93Ii3.js b/assets/entries/pages_amo.Dei93Ii3.js new file mode 100644 index 0000000..93cfcdf --- /dev/null +++ b/assets/entries/pages_amo.Dei93Ii3.js @@ -0,0 +1 @@ +import{j as e,c as i,i as o,o as r,L as l,a as n,b as s}from"../chunks/chunk-DjXTsExv.js";import{b as d}from"../chunks/chunk-B6MK7gFR.js";/* empty css */import"../chunks/chunk-BcEW-Cv4.js";/* empty css */const p=function(){return e.jsx("div",{className:"AmoList",children:d.map((t,a)=>e.jsxs("div",{style:{marginBottom:"20px"},children:[t.publishing_date&&e.jsx("p",{style:{marginBottom:"5px"},children:t.publishing_date}),e.jsxs(i,{href:`/amo/${a}`,children:[" ",e.jsxs("h2",{style:{marginTop:"0"},children:[" ",t.title," "]})]})]},a))})},u=function(){return e.jsxs("div",{className:"AMO",children:[e.jsx("h1",{children:"AMO lecture notes"}),e.jsxs("p",{children:[" ","Welcome, to my lecture notes on Atomic, Molecular and Optical physics that I prepared in my time in Heidelberg. They consist of a total of 24 lectures, which I will recollect here again."]}),e.jsx(p,{})]})},h=Object.freeze(Object.defineProperty({__proto__:null,default:u},Symbol.toStringTag,{value:"Module"})),S={isClientRuntimeLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},Loading:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/__internal/integration/Loading",fileExportPathToShowToUser:[]},valueSerialized:{type:"pointer-import",value:o}},onRenderClient:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/__internal/integration/onRenderClient",fileExportPathToShowToUser:[]},valueSerialized:{type:"pointer-import",value:r}},hydrationCanBeAborted:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","hydrationCanBeAborted"]},valueSerialized:{type:"js-serialized",value:!0}},Layout:{type:"cumulative",definedAtData:[{filePathToShowToUser:"/layouts/LayoutDefault.tsx",fileExportPathToShowToUser:[]}],valueSerialized:[{type:"pointer-import",value:l}]},title:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/+config.ts",fileExportPathToShowToUser:["default","title"]},valueSerialized:{type:"js-serialized",value:"Notes by fretchen"}},onPageTransitionEnd:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/+onPageTransitionEnd.ts",fileExportPathToShowToUser:[]},valueSerialized:{type:"plus-file",exportValues:n}},onPageTransitionStart:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/+onPageTransitionStart.ts",fileExportPathToShowToUser:[]},valueSerialized:{type:"plus-file",exportValues:s}},Page:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/amo/+Page.tsx",fileExportPathToShowToUser:[]},valueSerialized:{type:"plus-file",exportValues:h}}};export{S as configValuesSerialized}; diff --git a/assets/entries/pages_amo_-id.Bo-MT0uZ.js b/assets/entries/pages_amo_-id.Bo-MT0uZ.js new file mode 100644 index 0000000..da25a76 --- /dev/null +++ b/assets/entries/pages_amo_-id.Bo-MT0uZ.js @@ -0,0 +1 @@ +import{u as s,j as t,c as l,i as d,o as p,L as u,a as f,b as h}from"../chunks/chunk-DjXTsExv.js";import{b as a}from"../chunks/chunk-B6MK7gFR.js";import{P as T}from"../chunks/chunk-ghC-DV5X.js";/* empty css */import"../chunks/chunk-BcEW-Cv4.js";/* empty css *//* empty css */import"../chunks/chunk-D7HrI6pR.js";const y=function(){const n=s(),e=Number(n.routeParams.id),i=e>0?a[e-1]:null,r=e0?a[e-1]:null,r=e6dJBXK00bZfh;RpzAq;^h8yChW*tQI) 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_AMS-Regular.DRggAlZN.ttf b/assets/static/KaTeX_AMS-Regular.DRggAlZN.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c6f9a5e7c03f9e64e9c7b4773a8e37ade8eaf406 GIT binary patch literal 63632 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 G2<`xUL{2yW literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Caligraphic-Regular.CTRA-rTL.woff b/assets/static/KaTeX_Caligraphic-Regular.CTRA-rTL.woff new file mode 100644 index 0000000000000000000000000000000000000000..9bdd534fd2beb9b878f0219da9d63ffba56677e2 GIT binary patch literal 7656 zcmY*;Wl&tf67DX$xVvkDySoH;3GR!#ySux)Yj8*i8Z@}Oy9WslfdG%(d+XJEJ@wU@ z@0;#EQ*(awR38r|Nl5?@@NUG%0F-}E7M}m|fAjy}lvJ77001oTyQ=aIh=ib3l8K#> z005=~06;-9W_tFqFmid1 zCEkAbf%_lOENs2Z0RW&l0Dztd0N~rN@?j8Jni-h_0GR*sbNz#fyO@pTyZEl{zjM-e ze1shUQCQl!dcJG6@7(qzzt>s?f4k*&nPWh?sJ-EAMtJ!^qcT_DEz7&q-}=@992IysHbwK9XSu%lm>Z)bnS7btW3{tKE9b zP0KlHP9y0(+)N8#um}x~QZoR$04R*t&M3YqkO!VXxCA+d%$$6qMJb>>{SY{(>r=RP z(tOhVig^1CI}w7uSp4u5yQ1+%yy*7yroUG{l`FSG^!nF#kQ$<=NVh=ILZ1yeSEyUC zK6%nIaJq@s)8s{gb8}!oAY&=6O8R)DMFOv^N*?gkrT3T{L-u>|Vbs~-)2)H?V(hss z9hy>m&F9U|4t3L59XIy95V2zWn<|98BmR1C3HeS^b&RUa2A^#wESV6*ZGLAkf*hx`DveDJP z60N4r$c$Dh(3G^92X-Y0Lac`u0`tk~{o2=3qqno|?oLjENvkw&vc_}?`0x5gCi`*W zQSt;g6WU2(Ml(+rEFV>>Jn zyk}~1?Yr6TJCmpNeEv5~^q+_wLPamxeBCNBR~3o7y(lPDhH`=i)eQLNMAR&3D2Z*z z4k1gn9_?9;^5GQ6r1JTbU2jBd1ntyAhyalzFs1ZiVO6iZV_QaWnvq!#{PA+ik5UvNzWMCSUmHT6iS@3BWIs=G?slv)@ z`vN2b=;zXkS%*75T>>lfUvH&+=a*kNrZhgN#em&Ba;zJrn=^NS66vIw&Aep>>8ZJ%>*=EXTl*K*X|C(ce0 z6y)Y~rq-H0C+jv5>KK_gs()-S(2U4(RD?=sD5tFk;}XV5C4QuV2k-A2ZB;9sFJe#} zF%aox535fxgVn8TUI7!zX(-A>n9j;&Ay%p%RU6i9Rl@Y>Tj$H}QjK75T6B8vf^OJO zH3&s4Vd{}S*x`I<7hx*rkX+k>N|LqEeLB^{w?nWInP$!hk2C6=~guEDOJU=A0a zxmULlgF5xWBmG5XT-u6pK2VT9P2G$Vr8kRsZ$lq%{Nl&x#P0)kZ$&IcVV9#?C!7HZ zDztPNys!}UU`O5Xh0W&X#q)Y4=|E(k%ovgu%-~9bJqikB;hXV(td6cH=+q)>LpZ%^ zXzRI=x->&!n()JO8+oM=6X_@@I~(bF?+e# z?G*vtsZqQ^2KJpDhV^7xH7ubZPYtEX^BZjKg6;#dON~wXFX&_xzelG0#=SPvmD5=V zXh7JTbS*_1==S~?eLejC+IX8#U7foV=6?Ax_*F&r1U=0#|s{<&3^Q=s-I3xZW;R0j+>=iy**JX7A58)in&t-;w35|!{`pEdu7bp>MhJsZ zb$^Y<85K-&qU1;R_~fjRz!?|e-@rYuQqL_aLwaf$EVmffa+P?>Q$A}os7hq9K<}ZL z<8G1g#XG7LdZ#W+&zK1&ZMJu!uP@q%Vhk{-_>(dG>nL+reW-xsvh=8llAvpM4fm22 z^HpX3RC%@r-Y0y7+^<%>Or+%J8388ous;Rq(4SH`g_~W~;qEb?`8gV0isoDe`Pyp$ z(v5L+ucJ7n4MlH|48N3r6n#lFGhXLv^PQVzL_7!|22F)D?GfYy${NMk`eLgodTh`QWXw^2`@AIm zStTd=hNU0voqVAj+qf{bqq`j;wxk;SK=9bkT*99^OJrnHWCx8ab@ZWucodP7TaIf{ z#PCtn(ab~zjMX~Xume5C4j+QwU0cZo^2mAk8x+p{ft5}7gBDpXri$&#$N)Zh@hBV= z6EgnpCG%FE(4cXjlPzs=ni((u3hm)+WXvs`ydy(@CUn#o!(>Dhr02mT^yhxZ7Ds-; zx|uNE&#!=v@b)(MKLx1zY^F6bP2|y3z$!g?@fDhz+=uH>@laIaVUoefG+g(%ABEgk zu@yqzbweSoqm2t-Mr$a%hYt?Es_C zhX&TS2WV-(9*P9zBvy3$8|j7PY@l9`wEglj$t3?RTo(t2+Qwxqa9+#bb$(D>%GdWT z4ufZYoogmf==bWH$7;TT%(XF_ozuwT<|*T2Z^zVct+t)ovIflVtwyW>r>z&%Ur1>9 zqTGDU9m5qQ>;*ADe|I!BINrj@)YoVk6Cq$N?Zbmm_<9ohf6sPqVc&|eEiaeAj%mzU zeV4R*vYaS+fYCZ8p=Z}YgE|Z6MdbJL=Hrp{b$IbWKB!TU>Wc9uL zo|%>BWlAI&pDJEt{izpTHum_Qt70Fa|DMbR1x6#Fs%Lrxe-! z{7k73^L|PxFjUGbzDNKT+dbMvUCrMy@>Ls7(QYxMmfX^JZb9BJ8~4}>o63gi#O4EO zw98vIb#{h}45)^_ua8msF(jH}QwxK715lsOKAl_tI@{Sqyr)do<+lj*?Jl`NWYZD) zI?${geuIcGTURi06{5xu@Wh?0 zcqM`Yj|c0l;plr_AY+M@LsCTcHcJN|a}1dY%l&rPO(6?Sdd3Kq4@eX}XL@%%!ANm7 z85>SOQK9q>3;2H2`9ZTGtUayZ;2Q62Q~RX@XDXsA%sXD~Ec=MN^XHP4ENkc}fxSrS z`Spetvj85ehMcvoq-ylJ?dYs0fgr4w?k5rsRAItjD(h5$(>ztuwzx%>d-CxFjezba%ty(`U$1lv=1-Fs z-y*O(oNfedHLSww@i%ndcDa_5TSBTeC7*Se@fKSY?S6?bjK|WMHq~|iJ>->&Hz~5e z%B0L)%ywcq3=OSfrDp7h=SFKgXdjSKm}#^9#BubCj=3rxI|4B|L#CO1E!u~aGwq(< z&f*OBfzjfDT?dcCmJ-q9?VzW4)L2p_*=v_qt{$A}H)|Xg%{aa=cfhFBTAtLvq4GUg z0JYwqKq#uXpzv6ZMP$ohs$sD~G9=p$b!{H_GfBSR!D6TJ*!7?i0F2CD67213PTi^0 zs`6;O`I&d5#0Qp6)T~IR)L+=v&o&fr^qPV;aKD{%*kq86LbyGnLcJ2zjTL-!lZrpX zhGf#DElv17IVwP&*k5RHj^$D3vh1I>vhK}i0*_}j1^L#I&sw-Yxcpar1^mBbumV1IO55}BC6Ga^(?jtrRG?{QIM^@N(rR00BKtw@QG63JP7ZJeL(0wXVVaAwmv*;<^ z84`Yb2&o}9!S$tj%9xTdZ!=^N?e&NL+@4|Ra5-}cl*p6A=vpd9jI&grPd6bio*0qw04p~Uy+jjx zLakFSS_nm`=6m&4`SRstVEF}{lej!Wldh^YD|=$u=VCkus}4idJ(jthoOs}(5x=0} z4i{R$NV05i!YhZ3eQU{=%`8C?C#G__y;%bXdCR$Gyi`rCH5=71GcoIkw@3FGRt;d> zY;|=wn`|%9Xcj9VzJQ?MY1r&QZqPypq_}@NDQL(?HGFYQixIqP&r_l?o@D)dRT(jV zPVwbz4vs6{hcYOk7hC%qUrdYsYgp&_QvNg8kZ?(6c@opo>^tS>rMIW24O}>~S>Ksj z9z-y}A5ni{(xLX%J7)kOq^0Uygr=u|BSL#jqYDB(u)S~=E&Y1yHcT$5b4t_&rL^7# zywsO07OLu=&d}7v5w={Ub!7E?V5GdBmGUt`W*yr|YadnZE354=Zj0?1#8go|dVw8> zN~vXJT6R}wJ>NU}AS)KEtsf|={csULpR(e*0~u39EJY_zhKieCck2DE@7I_Vxg5MN zbYDb5mRr4h>n4K?SDf=rfiT)u(VBr(WFOcNgx<9yiX;+2#)tqA!vn8(Oc{|mR_d_L zG3*y{sH~fae!?n!gKa?@N%34YftW%di54^_5Muxo3vKT-;>WT_PZ1~p?h)|4rSsnW z`QL~EasXq1Pf!L>OCWX7FR%r84%!HM4#o}U0oD+90Zte09^M(ogl7m)<98Ho(3 z1*zpf{V^Z_@FQU_#Sm5C4uA?e{+IOswYS|jC$JL;`(1+rK>c^ca}_z78Y&2gH59Np zXFIZ)ESSu`+*exUP@9r0@o}i$#pr9`?R;VD57;31w zZx3X6_-7!P01s~yk)_iMaSyh%t(=92g@%OzqVed^i#EV8I$ht>Gfg^#lx(Jh{1FQe z5BSD|`raV>PfiE~%GjI?2bdfS$qwrUNV@>Yr4@t7qm6ps-XQ58BJbX=-umB81Feey zfYTeqM$gq6jV13jc@*NRHqA7w^1!U&Q_hI!xedgjZ(JL9&%?E)lt=y#bW=Tk_{t|9 z&z6XZ$v%H_)LBB(#=l8*9jsHa=?3*ngg~89(`< z6xg4P!)I+`bgD|7F*d_$Nxa#pwT53ya6w#H=E`qYBF`0NJSL39#~C6>%s?}~rnMk+ z)Stbm4~w}P__o&9H*d&4HyC-ZLy|7A)#od?{3l0g()GBC6bEtr= zkW$qF$~Ajt@S6Q1ghuED=4m~MCw|&c;1gUyurUag!J>i`@_yc9LqaFU-L79iSQva- zvL{qjg?YEctv!mjgTr7i5L)k?rk5@fw2kS=h_p<(E?rHm zmKUT_BSqx2HkDnq|hrT3^VPKeY=P|Ju zETNCZQT17*Kq_2fvxK4iTQEMsE^FGpGs*W7WY{6>HmL1P{|VUXV7}13&b6Wq&((T( ziRx4=G8COud}>!XCpex@-*|bxY@Yp*Df)pf@H0v5&q!~R_t*38m5J1Hi6`f(`bu&6 zUw*<_xurOgOp41uvC)MM)7b986U4Y|uxQf(wLIyL+a4az`C}|4ZA}XoJAc?T^#VAw zROXIb#;097;~NWlF+&t{oN<{6p5$t66-LysmyeL5EUo}i8dJQq@o3oP^F&T~CYsq! zI}^Jyc@8>dnm^&2O%7^g9f48JD$1sERPQy_)x>qW>@|Z!b!pG6noQCGaayX@rn(I2 zm=E2Fg_j{Eh{2B1=dTIv$8t)J=||Wt9M}bTlk?%n-{Z%*EQ-YVZz=en;EBF656BdD znJeQT$@t>zfT~V`J0`U7q+=1G31)ehjky%Q3~%C(T8fxL=>b%}3>I*tW8uMNt`JgM zSs!-r1f``tt&HvE_#~aL>E4I-gam96Os13a*u#&)%k{S`_%A62F)1_2Lzoc>7Rkjb zcYjyNB>r%e9LW|~Ammr132PRg?&VEIg)21c)!;TW2fuM??CV{RSF$bQ{)FXV{z4iS ze@Nu}g@8MqD7Rx08+n7`!OJ?Sa-j&QfR*epR?TBSS{~aYOeQp)Xm2seQiW~o`AJ3F zGh`jX&AY;Wq`}cidM(0942ogE^>EjU+tT#NNTyxTp(n9`)@JSX2nwtBuU;nICW@XW z6pD4E838%B7{kfeB~EZL^>e-2w2`i{ij*B2uB+)R-#+!mN~ScFm(qyBuf|fOoX`~U zY|7A>Wa&wY5sc)Y#)8FD+SGhWF_kXpUQZW7G6^owC`@;)fLWZ1cD-TBVyiX_it#Ug zs$9IZ9!_Nza=oVVCCfL24Idd(I0Pw)z2^}a7OWnA?K@=DMBysCr?9gxUa(RTgLNxBFYMr#tE?3dhb*hiCs=p7k;qZSHaaf_IAKjehwW!JyRoQ`ctt;97M@oU! zBpPlbxm0Q)%BwNhK2ISn61rn()X=iUQnzU=CYN8Km%g|#TmLzJo6x|18?pVMo_VIb zXfIY4-*EP+w$BUWccw(barlImq~P~WdJ@aO0aI>CIQ&>(<;O)#S9tj>bdA7{4let+ z4z7!?%~yRXv+&s^>=ScY?>Eqxny+GwrDzS~e7(`4J#-2!#&IyERy};k%MiaJ z{pK$ib2z8$cGW+>iBVf-On#HHSgl|uK4z^`Qrs?zbDkLeU=eej8Dd|eL7XS<6_ulU zJdwqT!F|N%BGxpIC@CZb^F)*}eM7IWNTer*YF`N3vdTp@)?u>$NAUJ9(EGL0Ww00X zb{pUOve-_wsZ&!jzx&hFR?!hDp9PVxC~8+B?3PN=Y?rMIrFvLEz^nVQQi>3aYAt75 zlk0`Uo#Wwynf^0KJmvj&mFFtwNF#C|3tHHYM-&i51I@^YL8B@@Z2yFRNe1Z{FxTzn3EG0hDA1Imh_ zoBeP7?Sc6mIGxs;cC!7ZDPN3)#6kd2@r7CWSDTF?kZn^MV~9D#bO+po3uFzQ7%l|w ze_EDD@8P`ybyo-Ep^ za?vGvGb}4Bi??H*g?&rN0n3~rVA^A>Y3w3#QB6(8uBkjtO_me-mxh|)dI`axIR}KJ z59M23YtkKBNvxZZVDtJ1vaBsy}_kq9RP zuwqi*)pe(f9rsqy8=8-Ae(huC znPPvS2eY5ILwS7v<}2OI4RLFNjh^VXCggJe>2Gq~@33 zAs^474wNRY$8G$5Tf#8-A?*4U5xV@cw}ADrxGBR66t)1VcyW;6xe`28TE^FOHP)MB z&>2Ud4~l4@vmQ_MKo%I5JZ;<)9@<7RD{xb9ef|3C(&rNtE- z0cD%s!vl9n)X?zF+0EtQ^7i`v>h1d)kilb4_J$1^i3k~>zYKTz Mepdy)y#Y}F4=Hd9=l}o! literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 b/assets/static/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..75344a1f98e37e2c631e178065854c3a81fb842f GIT binary patch literal 6908 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 CFgb+) literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Caligraphic-Regular.wX97UBjC.ttf b/assets/static/KaTeX_Caligraphic-Regular.wX97UBjC.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f522294ff0f3f8c52dfdaef7ebfaa06ebfcfaabf GIT binary patch literal 12344 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 b/assets/static/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..395f28beac23c7b0f7f3a1e714bd8dac253dd3bc GIT binary patch literal 11348 zcmV-aEUVLZPew8T0RR9104!7h4gdfE08HQj04x0f0RR9100000000000000000000 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 bnfbLfgSm6Day;iB;wah|00962|Nj6Fv8wea literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Main-Bold.waoOVXN0.ttf b/assets/static/KaTeX_Main-Bold.waoOVXN0.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4060e627dc341c1854260cbc3f7386e222a4d297 GIT binary patch literal 51336 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 Y{My=5Zj3WbM|mX<0#Lulu=APmKiR?A3IG5A literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 b/assets/static/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5931794de4a2a485fa70099bf2659b145976d043 GIT binary patch literal 16780 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Main-BoldItalic.DzxPMmG6.ttf b/assets/static/KaTeX_Main-BoldItalic.DzxPMmG6.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dc007977ee709a236d9e82719cf7d4e5577a81b9 GIT binary patch literal 32968 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Main-BoldItalic.SpSLRI95.woff b/assets/static/KaTeX_Main-BoldItalic.SpSLRI95.woff new file mode 100644 index 0000000000000000000000000000000000000000..67807b0bd4f867853271f5917fb3adf377f93f53 GIT binary patch literal 19412 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Main-Italic.BMLOBm91.woff b/assets/static/KaTeX_Main-Italic.BMLOBm91.woff new file mode 100644 index 0000000000000000000000000000000000000000..6f43b594b6c1d863a0e3f93b001f8dd503316464 GIT binary patch literal 19676 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Main-Italic.NWA7e6Wa.woff2 b/assets/static/KaTeX_Main-Italic.NWA7e6Wa.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b50920e138807f385d0b0359f4f0f09891f18406 GIT binary patch literal 16988 zcmV(>K-j-`Pew8T0RR91076^<4gdfE0E4su073x(0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Main-Regular.B22Nviop.woff2 b/assets/static/KaTeX_Main-Regular.B22Nviop.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..eb24a7ba282b03d830fa6c63ee897d92a5188736 GIT binary patch literal 26272 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�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 bkH82T%!~T~dOL3iZSfI!+IWoKhyte*`46Vs literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Main-Regular.Dr94JaBh.woff b/assets/static/KaTeX_Main-Regular.Dr94JaBh.woff new file mode 100644 index 0000000000000000000000000000000000000000..21f5812968c42392a3eaea9b0c6320870b6b8b38 GIT binary patch literal 30772 zcmY&;Q;;r9tnD|p_t>^=+qP}nwr$(?9^1C|*tX7p>YkU|Rjay_TB|yF>U1UU@?v5D zAi#gig9QNpzx#sB|Fi%1{Qoa`WqKw6z~bmXukwE|5bcxVG`2N#001mG003Yt002aV zZ0}US*v*9i0C1}KkHhsJw190f+07ixZ2@XBpBBLOzc5i3*0K1{`Clx<|JelpfdmQz z0^Y*b#p6F-%zv@`#{+elC*ydxu{ZvYXM*vckNZFH^=qeE+ZuZOcdzl=|7i(;=HTb; z3~f#Si}}CYfb##-dgxdCCOFtTy8r+#A^+u71^_^asJbaN9Tqy4u;eOgen$MYFMjKr&ti>na+jqz-Ybx;jUT7rpi=M zufa(yA-TkdCn1q)EGvM2_hiax`gmi(0EflrdclzrY4)wlE?XoOGM65Zbzu31KryOv zDKlP~=VUIvYc(&_n4V2Nx|(ZkU{Ya`SLxl|_7eInvM;JKdC-~hF59%J{8gZ8s*xA(-Zy@VkPzVn;oDCiUoZ~y zd`=a4_!T~VIKf`-zr{LHRR`Z6oArG{z)^ZL&nGLA+uSoxbS8Ol`V7aokBT3Xo(hP( z+9AA$K0@4d8K?G(+Z{kE=#z$hPB}TJAG|HIE* zTQ)h#44y8HVIs_R_t=|UHjp!==565A(?KYTQlro?#(5^lyUz(WLb73Dy7B!}-xD1P zBH1c+Te}vNYtBs%bFya8%x)LtSejr>!emav;;Tc**d7miFAk0r&T!Ij7OY$jnucxy z%HMehZ4oCYujr8myR;h2H!=^$hH>=^?wg_l19r=c?+gwXnd~g$Cboc^n#T;Gt@e15 zn;uQUSO<7RPYBQesCs?#bF7jh#u$!u`;-2GfOQ>eAgjw|dNTNpOt#&dof28b+4b-D z1fmEtM39qlX9b~H_kRdEv@cz%FS=d&YVOA|qbvJy8))2-CdMgS5Wl}~c^%9v&l3l- zS+#zbDbs7Mcu{2*_CV!qJn2B{UA9m%FVT}&&KZ`nx4;WB%$(@KPfUVSfPtjFo-EwJfkt27^E z8Z)JXmXhG|m;gy3`tV#s08jr&+bll_DV@5LksaIScMWbwYM|7_m z*q7eiB(rN%wd`+50sA4=p8%zW24;l;l4=}Qre-<E_K3s81mK+|tN8@qM z@~FGC@FbM5wrjISp(V$f=I=6`o)0`4&8lfVAS#R~s{pImvBny$#a@WXCicNcM3rwr z`-uMJHht8Q6Am=sG#SWExcG^#6K@)Ywm`%UXh>yIZIxgkcN<5=Rp4C$Hy4XsKO|q6 z8Ah@dL1L9~vD(b4?ty|*nqYZL65V+vT2wCqWK=vUKmSi}pA38d*ZRRP<9Ny^nKR_g zJ!Mr2PCX~Dn0GYi;7d{_r@d3urdBG|ab=$i%To_h)LHWcu9_x}06{$Beo8A2s6@(^4B_=o#4

Yqh7OdB% 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�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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Main-Regular.ypZvNtVU.ttf b/assets/static/KaTeX_Main-Regular.ypZvNtVU.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dd45e1ed2e18b32c516d9b481ebed3cb8bffa711 GIT binary patch literal 53580 zcmd442bd&Rc`n@NRIci-?&_|t>YUT0p3ptrljF|J##wFDMrl{lYJ<`$AR#0nAqkX0 zB*_AcWPEL|Ot6Fyw%{5tV8CQ!urb%h27>@|eYu1m8*T6Zo>M&=KoUHD{`)-t&g@Kg zRdv<(edo*JjF0$yKGS!HPw*Yux?^x;=`S{p`+QG+5JwMPdez~Rm4EvFoX_`^?ehsc zFTL@G9K9;u_W3?l!})!epFDciCG}Ic`g|WchMV}09=`r0j)#1{udKsw_2`v1U;ang zqqx`bO~kGc*cp6`!wRHLPmGDvmsI z*~kcup8C-U`BPl8>Lb3tqM!E#eQBTiv=h=P9qEfSTa6JXYEwln7OE8*aqz}_J=$!o z7UQvUjZiC0No_WsO9mo67A?{@M+#7xRgd8%o*f;Adap z7`erk{R?~jMllgDR&oQ=t)6u71r7nWvC}hx2H1A^4g$7)yG9gFg?0n5F_>%`Rl2Vk zS@6aqNKsMjF33eiW)uPv;nDW_Z*UBE0+PjwgdglPjrN%N)7~CY^oQv-@=?5!bvbYW zc`~TW7hP;eZ@5m@gX{wD@HrQlp^w#qxue_+?)KiMBp9)GK>h2_pSM9N-iiqZLd zfhqyNBy8S71ljPe(3JowQ+`SJr4k5AxI&T%er^Wa``V{JLq0-j#9Xz|4Rs5=j&G^x88+PKDM3+Xqqt5z`Sj zn{mbT9x>RH=o#8Lp45f9d{HGU5Gmc8nWti;Sa0+SGNqH6K>DW}&pJ7wIwBGhC6p3- zXK&xk0oPFLbrP8D8@Hs0lXaaeq3aCtpMnui9U5IZ5!DCl;feZOSc

viU|OFj=e4 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 T)YS6}E-Q5R&CfXgJ?`xQe`ny2 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 b/assets/static/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..29657023adc09956249f6295746c8ce4469b50d3 GIT binary patch literal 16400 zcmV+rK<~eIPew8T0RR9106-7`4gdfE0D43K06(+<0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Math-BoldItalic.iY-2wyZ7.woff b/assets/static/KaTeX_Math-BoldItalic.iY-2wyZ7.woff new file mode 100644 index 0000000000000000000000000000000000000000..0ae390d74c9f665cf8b1e5ea5483395da7513444 GIT binary patch literal 18668 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�*w1Fzl5p7;6!0{G0e{P%Sf-;|IWrh44jHEj~>tj!yow1FijR(#jn}+Szkbt_> zQbV;XGcDJkaJK&ZB~`&b^-~zuFJk0%ba~n8dtF!Mom)+b*+oZ;l2Ff&p*bexz#$vA zot2p7+FThMH}g;kPd%Tm)K14PK4*>N3zD zna94=PA1>l^$h4jQQkiqg4j)_&}nCgi242cYf!F%a;2}!`zM)Ogygpz7%k^k4F&D7 zKyr&gYx}OHzwn&dJZ6|Y$1<;Yw_CN=`Uo+!P4{^hL5c9JAsj9P7${t3J)ahZuUqlk z(g%~4k*{V>N)YX2R_0G03<;5NnU$Hz($R#?WV)@n_+{8O&gMkx7=pHus&!%czY))} zfBgEDi;ElU(a4N6y=0k{xyiDT#z#8ChvnrpBE!5Zq6}+|lF&Tfnu#TCf z@8SR}dk1m@Z2W7qZ-ZozI+%(I9`*g%3z&AxxzaO&%uzGK+r*jK%tN&?g+lS`-YNgy zuCqs(p|c@4cjngE^yftTI`2xQ;N}Y$m&_M`k;KA!J&xB&%Fn5oE-*>6c%8uODw*`opxnMLB-x@I_C8hJRhw)8@8I@e;NDoGA;T z-`MtSb**jX=BkUo{|4Ah-YkRj@D16#%^m7KA~PBFc<-E8;w0~BscyxZn=X^LX1vMW zA!&8gvWnkG+>^X_;GrM3Q_+oef=e+z#?)_ln_~E)L_e(rUq^4bJ0LsQEiSPJq#Co@ zOk`Z6l*i*vv|AjFBr9;l6*jEO0V3HHpYR@|yb_NsK+-mWG;)~-19>C~cI%t$aflJJ zyAbw7kpqw(LQ?OfblA!I*v=5~ZCC?Ur(s!jhI}e}Wc$*cyaOPyq|8$$=FQj%xLx{G z9ht8C)g-3F=7}duxR{8T+zuZb;HSOR_CbVTV#Unyvd~&6u8kij!9Vz*_$=DsnN6@- zoa07BN1U0Nz*Pa@q{SH7kDvG68ess^sfm^<`=1<&*kkuuMBYh)vH8K^K93d2KDCzLg`IM7Ps4na>0$)3>@BP)E{Gmr$nxE3IH5CG;13#q3=82llV`ov0{`vfucMBA9pJ72{=8c`#GJ6)}16 z#a*uXfg7W`1}*i+Ki{o$rWyp2*|+$HuIoRrI_|2E&t5*Zh%6e zOrVpSjdg2EVvR`nsaP)-S6|W_#8hu9MKIz3x$WnAql(Uwn;gaWWfr~tHgG_X(jdsT z)^)3!@~#K{ab9AnI)0jVtjQy(z*&Q+-+mOMgwBp(bgLN#Oa?*vARJp}jtLK%HQlQ$ ze|AtzZ|>Z!zkU||Y+7FaaLAp4B&z%?ydS{xh=T*t2ywEub&_oN)ab-k&x#dHNyNBT zO(oRON+5SRgZ8sRPCg2*Q-_p8)fWa(jsY(*NlX#G#Ratm?UmphwdF?$t|^~R`~p*% zXZQ~mK!g>WUZs9~BFNBJuf&~z$S+>^wiER_pBnrTpi+_Y%p>s`ZxMemFotC$=QWGP zXq@R^C@I`RiQ}(x7U#R$WIGrK|0mL12SHtwac&zSk1_{Z30wrv^y5}g3F!zT=tCOa zmZcO78&s$8#}B-|5RCqhLlqqVTUlUprC6jjv5F~EpWz3}4l|3}P(RGj2IFodW)xrF z*IR=AR5Z_^N#4Ib0+EeFPKMrKaZ&OeLKo9WQ9z>&_Z+XIjS92c&y7Mj?M>nP^oZy+SMh65D<^dQeidT@&?`xV0i$xQ6uPyp`^?RR38 zugB!o{yrWRV73%?Edqb_)#Mpy%|uD;>01ZZ^`StvodHr--n&rI>8dVdfiNTG3-%`CqDonvHfRvKpAjZ)0e6(DYNHX#qgaCHKi?Q@AbOD-qv6l%%||s`jxX9Njj& zDH#${EDQ-i(>=9m;4-?AfFSoVE77P*Z$Txs07&wT9*lS&n8{_`GBiemeWO+{pcksa z+tynv9drE{W5Z2>42j6mRNFF_cU}FiKjXvxCw?{nnU8|Z`%7}yiuCdd-5yyqh?~S6 zaV|HxbUH0iir&}bgh8-E@Aq-*IfBKfK7T=+?pkoZeZA%lgBbaM&v{0^O$c|&a8F9b z^)Dhmy8YYb3GeE)r>AiLQ$Y#t!xMZQ>gz9gd{LmVn+?kjgibeQ^Yf5i!Mp%x{jJaO z5DhF^jqeA!czXY$njj8N6_n&vi@PAsQ7>rW#m`Zy9vNY9i{A3&UzJQjOt6zEwNv_| zU}K8#wic!jVbCD$AR%o`tD3HW+@=^YGqU|;7z;tbJ&QuE$V#5!ER5wuH>Gx%{K@8;5aGCXW)ON%~iTv{~in`)uRpV+`x#~NTgh-z$nkrDpmHBRrsx&Wu>B-a!- zbbOUgPVTfUakfofy?zCQ4nmxXDL@mdc~6oflz7I5eNG{{erH=Bn%D;WelO3v+ghGUS#SZfhiBSOFana#w$1tCq2>qHj=q>pQ@-ANX`ze7f{7@B4Y_WcriLCI8lxyMEt`2M2!X`vC$^7$Lj-9@v$R^^ ziRbQa{MFd;q+v;yLd`Hcl$06Fpy#<9Hd4aT_CEFAz~|^3iPtrV?j3{qi5#1mi$qMC1P%sI4bonfEqtV^b!HGa!!WgsFB_H1 zsN2%aFj$d4nE8xbc)PS05-e!DCTQI9bgtW zSfF*Uq!jWbOjzN1b2m3%1j}Zc$1lK%@z_8QWC+N&BTl_t(|8S-`SX4xNndej*<|0i zLv&O|ka{n_U4LCGNI#PnItljD95KVZ7E44a=-%rv+cI348U@fuloQ**%si>{g=tjq zhJ!6mQ&o3e%VZ8*X*>&%_MDp z?lKIwW?1v{!)`)q#1g2s=i8ylsE?dq+0`O}Z`alAm<%MlNt)4{wrVS9p~j?MX^jO( zrercI>@^?M!~W4W7jQ@tmw?Db&ypL-?d>wG7C&{e<|VQCqb~;Jqehgz_n3bC^= z4liyBgZ3J?UQ(WP6@aAq5Sz54K$sIqWjHT(I%HN~=)?s3s#c38ZcW!I7WdqaLhYbX z|FZ>Qy;0Mqqcbqer`)qYW_lnk5b+=JOS2k9fp)VEDwYEwcvLUv%BqXp*R2O- z$D#3Uu>KE$xUOvwy5o>?$qw+IA?mxS_ujn_irE{bv8zCjGE@j|(fM4rw^h7Jzz~~7 zO-UEa#1XHlI33+=JlhEQl`5$^Y7Ag^)J&PF?aHEbxSZ%@9%wk>h{iTJ6IDHjLc#+E z&tEl;fcW4hZiWwWihLR{LRlaD&y&}U7}2mq^>bhC4{1(wD`$)KE0uNP=+-Jn@u>Xm z*Lp@g#f}s0zca_CQ{`bS@&dZtSzne=b$v*bV}-hAMbP8nCAd8Z-8sMx7PuI-hlG1N zYgHtZ$JF9;5~9niom?24*a`ml)RM&tyj%mmwZ|$3j@Bv&efJy)+6T_Mtn3wXw9AfYPEnul zn%IWx#ueJ4A1usv24=eGv>ph6uCmNf2c7tcKo1!-B@e<8XDmF4dC z@r$3VEEQg|`QLECVK^!W;y+MME)a17S@YsQx-UzT)*gx=Hd zd!q48&&%nA%~oeE@UpFvbnpGP<9Hh+g*4rTvWZ$Y*n;+tc^$?)K2H`%5MOJc7azwB zT#Hbaju4PiKJ+6*IDWsczjx7K`5rspby6WawFYLJzX%*&X?(3VqvNP@gYVf)cxKd& z_^nF!Pdtl$%13sZ}2*M)13-CU;f83F~Re_!Hz07{BUyXrM7mb;S6m}pK#baHj+^~ z`@S+XI8uD5p>iSJ1a9BMFb^KmrN5WT9l*m5fv$|y*mMobnE;g0q%ms9hJgQbf``$6}JTf}3J!7XJD&RFsl zzoT&n^LSY@8YOaND5m#Vdz)dLtgnWYJ*JO+hpl$%Nd2~x#QBGK$JXKeTe{q_G0HD_ zR^;YaD2B%JMh!MGph+ci^Wx;!Sa&pLPD8k#V=r8N$sJpFwWC*MrVXDK?~{@P?by#< zb`mrOA-OUg{KAl7q!8v}Dt6NPnj(W(g45)o1;Lh~$R%Nr!ot{Ym;l zmbsz6!mz^ABKHM#BSAtb!{QJRqCs3tD%85Sq79c8SNWT`b-&o2RHKj=DexSVHy6L{ z_KgPIbdPH}mtKCV79~>HWS}mu5`{LcK`cM6M+*8JFe(nfidVim0_k&^VrT$J`8_R7 zN2cE`Eq(eqXBVHP&Y}{Gul1cDy%V&$o{wG9tjlS&b}vBrKstFF{xIbB^E1BPQ40nD zis#{8@;C z{^y!V)mZkC^cU~1_tOMrAMQh}>J~!i(J5ap9Ml*$9`V!s=T+Y=DP3eXM`RSJKrhr0 zF0A`+@c^Q-bsA>5n7FBpBG<0c5<_E~_mMb?SsN5&^ol`hlvy^GIlUTpMvApAdK(!v z6>cu&1$ccaanDi`d$WxFE60RDZyv+cJ~8^AG0T|j z%|RHgMyi=ApaikD+b6Ks^)dIifrQ0#)UqOlJo`nioVE{}LXPpF)!7rmSsdQLK{b>LlL zdMvsD9QLj|<_olYp!2&398;BGF^mAg3nJhue#5=-?bIClPuCuFy8d;6>qcW$oUWa9 zjfcfr7OOo3q*@7l?e2M!+yNB-RJd#u%&qXZLLm~2;E85(b}w}*uNgAZ^aRSf&{xS^ zJq%1N%CFwF90x(A_1~soMZaFI{Byri4P36BJMM1?_yH7$@7YPT!|muA#6b`pWbrI- z{U@IN59Q`Zan?lK#a}cboAD)?F;8)lCSGa!QOm#Dq37{%n%rc- zL!Gk()ny{#Q*>0G7?fKnn)Orl$>)ma+{Je28KnDWQwL@FWyR}d?A)kIC`$e2B`4=% zT-Uu*ffT}kOpjv+JfF;wd$6{{wsX_Itv0(r(fC`aRJ#-boWkqg_wJR}S|(_4%&|G# z-|4>gjLC_quVwikfc-w=HL9a?-^x8NgN0-KR^9zv9y42P8|ktwTg3OH~LQ^;54@Zayc4hV19R zd+S;+Ka7uA$D+!TXMtF`o?-9CAeI&l)C-ize#r}q$-n$e|8Qted0zpL%$Oof#@)8?lXboIqP$y8WW|zaf+kS zQ*~7FUSYkGLq(1*G1}wXM%}-vtosM#wrEh59*&@>CoBka*9aCbQ5f-W)cUhH{F0xr<-H-XUD1-z11hMHr|Nt~wjautK*pUYBIMV1j15XPIcKoGeC8N}}b z%>SuXbpRv+!2VMJpx?j(#C;#}5dN#t{7+E+w`qP45e6g(WCK(hv;qtS%n582TpN51 zLKdP9QUr1aN)_rKP!3oEZ4EsPV+nHs%M4oy#{{vY;)P_uroPzv_ z!iUm~3XU3t`iSO&wv8@QjJn$ zQ#(`trv9RFq&cKDroE)oq=%r7WPo7^WLRXRVf?Ok{h#{>0RW&amB|ee`5pm?VBa;Y z|G#{leo=uBg8u!s0{>@*zB^uPbO~T`R7zMsWKg&??BLsPHdVhgTxuHH%21rw~ z!yoxz_by^@$>0Q>L65ZEo=ecU`VT=+GzD#6aLz|fJq{?i+^F?dEcHKy!`iuV_QxJVN}~11vRxLuP#<;egAtLxltka?)#cjDQe7%_{dR_$HIMb$$pO!+o78>c zEBpdtRO2a@CbeSc+w$6gJin_1?(QF6dw10rJdgIN1s=u`H2nP#ujmt>xHXu$kr?r| zMHx5DR6L|Ve6!t@d@-zRpdZ;hIsO6^y|3YN{ zLgsl|(ddXu!7|O?`Kv-25&K6{en;)IO3h2%%reBo_0yLj05n%l;J^7aH8L|Y`u%1Y zN*rBw@iqAcNf!}JQb~jes3e9W{-5h6CKhXheG`3six8#QSUyB-`(Tiw5)_bRbA5d` z20^>ix>$ll)9gR`gN1jKxSIz8VZ*7)Yv4H1u(00tGlMOnnCbvD%0@=ufQKHWu>WGp zMVDcN0?@(`e|$;8%BO zrlFMwWsRM)M?^1d!jAsp*nE5+t1Bfx4tS=S?eoW0I`w?Ff=x{Jea%s43T5fz?wb=S z0u1+DLjW8DBIhqTwbnjs5@zLc5e5>FuHQ3jBn98ad#zdyf~~cwK+$v@+`@?6PI#=S z!fr}Jxyk9RxidBA{^i!I{itcIC5GE1)0}runYEod?N$sLOvd1`F*QC{rOcR|XSTxM zYSdcCuEV*)FD!H8H7}9lh%%WJgyUfk<;SO^np)TTD{wrRy`&F?x)$`cJ}|Io$h$BS z`J_XT&bK|_$G`HLqc~%60p?(zWE0or9Ixpr43IvON0(2j?gYykQ7- zei%^-(h7ff22pPiW`PABEN!>j;83)3tK4O58S`|6+cjF_>sU;FlH$`KsV`9LYarJ;7q?%mOYwahxHC-;n&206uNTakj29VaOU)uS)*{{$om z+xK#HHyPuvar#1|CV`M_`3ciUc-=S#PCGthNeb(&&CE_A^hq@VA!$1E{tExmIa^9YglhOqbN2QA+l19#j@cYf1hL{j#;kqs}P$8QUC6#^~ z|7)8Mh^`u8tlAFVP>I3vCh^VkmP+z0Z>yxh(o{*21TOgB?ByN zC42m1DI}&PG|>15-xdee31jWZ`0vcyOCC=gKAuU6M%D9YgB0b{jGilf zo+)^qR{mUxu8(&FL%N+g!>Cq>;RQuy;SF*t)ajkNCBwqS zA#ESV4GFLm)0vB>-Jp@3hb8Iuya7XgrmSuIp9@d~^K)UUcsp=i2{@=BmT83C46&ro zUe^$ap6tI;L5FRLMIE)tT+oq8>yV#xXJaA>;XPxLoE~3swT)5Mh^FP9i7==3P1)q6+{KliEd`S? zjbhJlz>>5~()5&c=us=MRHxmmlfPZECSEk{-EK)9`PCDZ=w7=*{(*BAa<9c}Nujn-EZ99({zAJ&+mc;g$Id70#1* z$1Hk8H*Cf->aq1+@j&DMd#;PL*r6bR!ndBFOJK^3umarOwQ+0QwQ={wv~7?&RUxzg z<~wm8P!2_f5IPmZ3IQWgK>`?62pFU3QjF7p2^ug-1E!*42%$|itrAlzDvD2=QHg1m zPS6~kX`arsKxbNHogIoLg@9$&304#WR%yBwYcwED1J-H42I~v$s!f%cwpgEOTP3C) zIzhX1rad~-KAq`6k8yo+0uODJYgQgPTa?EfbQ`tm=p@QZ+?+yh&a9ERIoFvRlBHfS z@;Nfl=eUHPU+Hq<;2L^x13kFawlP`W9V5^0q2~|K^GBUC4xXR~&(MPxZJUziy)yFr z4SN0#J^#=-lmdSz_+?5dHjgaTgK9&w3yjkdBa-rz}fza(bwA^jhb@De6q;dyh%x+~rQ z004N}W55lXfzX7(glXUZA56y?_x%6y-;7C=fq`lN|Mx)t5g=a|$VaGK2UNEWEN%x@ zw+*Nc$cO0z01}5FsQ`G|Vqjq4WGG@_W?*FD1hN+aF@(*?AOhq;*h~y!4BH@VAnC<$ z2Fhk(&|(yWvRN6N7#*N&HY9OgrWD2|D4UPLg!vhuRkB!aD2idI*7=IJD>E}Qb9bFE zGyi?hILtV{py!dL8#}sCQYn>j4J)XSa&j~)ujaVdwMy)1$; z1h-#{WbOJcaC-p27Y|I!C`8y z$tIMuJAgXATIN9z~T$YRYv@T~`>OMdLP!VRv>Wv|ro^>r-^~x*3jXM}k<9^V~NA4G; zjN7dI*rGt+yZ;y1_OhWdB$h~Ja)nZ*)@XJ5)mY;+=vWX#(WLyGXN7CqajH!3)0khs z#qLbo%Y*s|y)gle{#(+_JZ!5+jxYJq+Ly#RfO#4UVgCG689ezAaGN{E2d z4Hf&$3L+hfCZ36Ev#$g!Y!~{~8?nIUewhtPS=jcLr0KyVf(7ykaf1m9ok`@q`i~1AFDJ7}h|}5X7f*R*%m4rZ J00IC101u*7EU^Fp literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Math-Italic.DA0__PXp.woff b/assets/static/KaTeX_Math-Italic.DA0__PXp.woff new file mode 100644 index 0000000000000000000000000000000000000000..eb5159d4c1ca83fb92b3190223698427df0e010c GIT binary patch literal 18748 zcmY(KV{~sl(CGiQZQHhOoZ7bCp4zr;+qP}@)a|L=Q@d}Ud*2WDPS$THGixT<$;#Rv zGCOYa;^F`xz>i4r0^t9vJ!Su|{$Kn57kOm{W&nV%`^T#MgMnCtOo_3rp#uQGkNBe} z{xA(n^1^29>Ou$rh<*I%fH;6L&3utxNs-sXnRKe1A*KR%HE z3!=G=hZz6>Bnkj<%>n@WuAwnb85X97CIA30>W>fme;8v3|FQTn{=7@}k52FdDFi-n zsfDeJ`;VXOPrSkp?GF<0G&c6eKYl#_jj{6|tRy&!wubIMs@uCFQ%mqlgW|L&R{miT3OGXxosjhEk7N2MOo3FTxj0^^rd!OlPSx3D& zi)_yKqvM{0hOWnoi)`hxN*@0JPeQ~O$PFN5!~j8(jc_%b1*Ol6xwQ)m{kJOak7OO? zo{zL!s24#&I2Dk|xg*&C4T4M7%^1(ER%tPdRmlnsDzuJxhRxQ$a@~q~*>iw8qN zo`isapt~`IAqWr=pf48ous4J1ZOdk!yC%F%r$Y*lti8MYsOz}YuBzB<`<8Y}RRkqj zoo=ZjS)s|ICa4f_V{l~*Su5%O&E$CElN%odXcJy+q;O*7qiCm(R{Ir& z_IJ!gfgPIXhF{l3f!F-qFLtqgL%}jwtV&dz+H~yQ4#RO1y<)wzpMd}6KNlVgb2`3`UJK|*zEshFwUNS5 zC6%-UB-j+9Nv*j1g*bCdw689CnRMq$o=Dt_>RN~ny=N{hY$b+L-VSgYoh}Oxdm1q7 zA(jN|8VDLqLu1Uvp-G?}4p2hx?XSFb5GBZRzvh}~+z=onD(%|XJ93W+@~^N&;;EM+ zoVGX3XU)hQnbFG+rR}o>H1s#CTo1eR#W0`C73tZpm06Z8IZ;(MYvtG(z)@_3^R%kO z*3mr+C^}ivsPZUc{qyoj4GkUzHHAE!h|(1Gu{?v5He&J(M;1l^0-w=KLPo;X=f#1$ zi+Y^s>dgr9Moj31gf(tBU2h^N9bcPMrX|kV45d~Oz6VbDCX1fE`4(4q{5`SiwKo(X zHnD0_HY_XZuez&U1H{mO>ieByK<|AESpF(|A z8|i?G#EEiGvsnf!?#j!998j!Ti+dJ*ymUe_CXVjTo^p!iv{*hXzwBv+!s6dFmA zMGW;4>e3l&@yhyJH(!_b-}P|jtRxbpu`EWXlbZw@&E_wT$=YW|3DJqW?TrmVsdB>)ugcV!5AlK6OhU zN&e^H;ERPm@B~}$h}Z`;82z3qfzuiow-|!u*qK(^Vd%0?P`OIgh@HW|5N$P#S?qX8 zxpQ&-iRi|0-7eQ1O9TCag3zUc2W-}EbTRRIUeK~z5>BzzC21p)Azdi>; z$LOq}6sNkv(#R1j)i_b}=bIeWzfCPxp_U5@_dziO-qLvVQG*Vww$v$fX}#u_&05P6 z%bdn$-zL1gtu%XQ)d>911j*Uek~uRi)?yEMvmv`2?P_U}=c)|WYX@)$piwY=fy2B5 z9{c)_BVona!r1CdAe*6;-VR>F=@lyn`>vgfFrj99PeVez%slMu9aSgFY83)W^8uoZ zGgh9%uyzycu}FUtIwHzKxZ~bl4htssZN}<>n$6{&*z8_w2kt~^)U7U#q#rdBlkTwC>v0R@8#85t!F?eq0cq#~ALE5(LZ zI5iJC+uns#YVyE36F7*I9Jz+gPRQhIu(vF=lAh_r6IWDomoLOiYyDX1JWwrz136>u zIkQ7BU|u7u64Se5p2bTp8g7&8yX^>ymykxQg~}mk6&Te;WB~uC=ksr|q^y z&i@aI7?V+sHJ2VUx*Nxi&U6IGni7?na`tk)=($eA)vI{gjTf?{JVS$%_?Uk0QxE_Y zpHLs+uT`>0iS~9JD5`r!J6B!lznm-$L?~LKq32MA2XMICrNlm(eA9=GVF7sCIwk=7 zx1Xwp_6_@uJ%gtfzegVpjEpJUr0MB5ZHpgDTkg<$MCc;0pR=6K7FD6jlfK+ddRxE6 zR>T5HJVz;*y8msK(i|Th#*vUI$8xsZx$XHUGTJI&`O1{KV~6cgVyXqNymL=|`e@mZ}+ z@;n|7F^_)U_5qDoFnlfcJ((4gP4<+Af@JcZ$=EE)$)s6(V|Pa#4)6G2ykBQ|T=0tB zH6mf0&=3Co>Sg?x4*-Pdy+IZL_B-y*?A>U@<*eTO{y~7aNzcyGd1b$fZ573AI#O-4 zcImH{KO>IeB`bRE9HjA8thlDBx0O%53O6{x0XM2wsdT;S-F{Z94Co)P?+gw>loK)@ zk*;(!K&lU*74JnW6Dm+5CK6{uO>J!-vdn%=R9vQZM2_MO+MAku%J(*25*H8a1mBug z!k*|5>~Rt*`Ipk~`D_$3t0;p3kPdH<3XcqO%k4h)3hzH)Bq1A=8>$Qcq$$F)&^5km zWD}!Zzy{dujn&6N2WDfDBPIJ_f$jER+mpJsNnX;I_E>HHdcu*Q&*|R2yS*1e7w*h| zw&EyjxK_1#NYxwAytTWEg`v;6Ph*y#&C%g_dJw-9w0`;p;ie2$5Pu_kC;W%K{}FN4 zg(=7hPJ%k|cvX&n?y;o!`N={6_@7xiu!@3ri!(+%JLY0@W!D!^0?cZk*6vlSq$=N*K1Cs5y=($$Jfb^Ge8UJ^Oht;(?e_R>TSb*&mRHDJKL>DJ|hrZmRM|rGEYLx3B4jgQWNI=8k)nprL8c3v#>>;>F0^pTe5!Fnj z;&oRGn3os4CRVtR1)@~~i~={DcHj;JfeRubAH9;}9N*Rt4B;+T4q*9O{nD zBsEoM-Zo@Q>}7-%O2gd!Vh~9$BthS`_>n*e0sR@#@Ti?fH^)2lX;l8`Zm!c>k+2Ut zWu!pvwkWuO=Vg&4<~s?~LyxvtG##P#kg_VKUCF4%Yqx^aT&rK3na6k>=W@^IL7Uz~ z8TPdFO(S6YPLNd=_RRp?z)@jOu1rE5fYy}a8!pg1cp^5ildqk6V!u;i9~=M9`Py%T ze)&A|7njTTFcMMq$@aM6VzB_X}_X z1F;K)Op2?Gz~=>2fDSI0-D^4>?4;UmwRF_QfTZ#O5yYuAHzD9-Z#rMtwlUa3+}n`* zalq2cVkz=4Z#&+#tT%{HW@NgTCyhM&{~Oh1;A?DS66kw#m-1Tkd7b`OXD3iKCIoM;`;SaA^6N1>_@S_j?GE_+-Be5dSy9|(e3ATVEbo8`xZxLO90*rf)pgA zWdY8foA7n;D@GsT*X1J61YdQ&5&h3Va)o>BhD}lq(>;o@h2FEtT(W z4MYaZXIR@)R7SDy$@@i~an{&+BBZ5&UMW9XFt$0YQyz@^k}FMYHjJyW{@`)a-+;qk zuk*K&iJSP*kZpFR*2l_|VhpzGgm;Q5$G&Z;g{w3VkDxpp@3ax2^jElTp@>vaO6>hc zu2r?$+r5_HN+T5cqJyUV&;Ow-EKK zgqps&Lf`~0?x{Wn)e`G{M3oNuLn&QhP2f~88XD~LdakupFmNWk&WGyj-Wb z^4l29OF_ThS+2~}D4gsX&R_aNb%z@0Yqu(0_2$nmYXYn9$*!o%`sVv(|{qzf+ zak2>*L|1Z_rMZiL&Ukc5`^2oVrP26Ue9fg;B-YsMulFY9Y^!S;rNr)2{i5E{VYGzh z({=bcvv5=zg$V;7##dv^f1r+?REYd$$kGaombM1<0FjyhjZ zYMmybnYFYhulQbk0-BgN5~^DM*lS(vTz{f>YjzqX-_^xL(+=Z}Io&U?lwzx8*}bqS z(dki5+eILOGYq;F=TY)0LwivSPZ#5<0@BqY!7-XTY@ZBxb1--%g}W*6kAZt{fd!!` zL)!(RMOTJaWP4LhZl%Z5sYBOY7zAl7(r3*qs ze$WUa0%1Z{<+ykfLj&(SoZT;HnGX{NGTvI97OM<&PWO`_rvXjX6r`T89>+`;2V`Au zlqu5pEbK4oe#R(sT=@`txH=cW)|D#XH!39lNt6neu$*hlTX$ARM8we^wR2Gkc7^zt zGP`VReVgc-V^s06>@_H{A~ z@u8c8Q;g$}BSIKm%cWkgg*9Aj_F-z5f6YAA{dZKavbh0Wmjy$1pr>1W)PpCE8nN>W z+`LqZQd5W@H`+5s$id)PNc)~!m8aHZg0s51JH&=l9CD1{UpNJHfnZ}fP+6L9FrtIv zK$vBGME!0&4s1r~1(Ew+Kwk;AbGnVj{@9Dq$4bzcji({mZvjhUmZ6VvM-{LUhR{T5R&w-hvD#rbmpCY$Zn>(XMZx8W6 zQublwiKZ>+Fx1~WCbhnjEfobTz_3K1h@_sGRd4Wwm)4K~gaL(hC;W$2&AZz^z8IJT zw>$q>o;Wc5^~a-Nweet)thD7_Rn(*63R#+U zpAC_}WJZ}e#>U%}3>O733cu9sv~eFjQJsnF|H>|j&SW9Vam$S+y|-)BbocLQd@!J^ zf)8xLM3$V|+p3LLA^Y))K>W>im48D%ZU)>BR)5gkG85As6K6k8ihXC(D2GOe#(I_* z3TVqBDME)7RQi33sYdT{$WKdeaWLp?aT1Q-uOK2HxHmYk*OrxAb**mS;)Z*~3yq`; zgLcvba#OyM`zfTOnc^g=#6i*YeC>YsYN*kMikcgZwUYsf5Ar<^rg@hT29&#ly2qFz z0>}&dzC1`L;lVN{u%Qy@Wr6UL*_l(g9pM9tJr9hOizVV@HhSGO&Nnk_Dyla^}<=8~1ftJZZq{1cdl4@#S!A$|@; zoN2`&_gaPpgdF^T_sDUKiMm&Ks>^Ar&=4iPaPwud(_<#AwLQAmYi6EXw` zp4Wmg{&*4YtYg++=i_1NlLfvV&A{(#`vm`v$4$uu4m*rEeMul;K*7pEqJ&U8)r9bLPsw1-pY&Hl$|ew{65 z$EyD3&D*=pn}nTXx&TFmxs*W7n4n-!=IBms@@;S38V+qnH@}kAUlF>B?s_Vpvue-F z9yX!Kt+k&t-fVBz6;I1*l>1t1V%eIAVv6+S7)*Ac$OY(w6M{wDSSDOBQkkZ9m)8;b zY5PO@_=PF0nTi;zeW$bD$D}z~5~)+5aY1qazV$?qX{QOJtHMjCRXP&swbr@*RSCrP;QuBCF zFnA9dDwxtO0fcgnV9Y~<9!gWF0`r@sv1*rmiowv)ZQF6Hz&0{ipS%*$7BzdDffEfU zTjAoGvL#O3yIn*1s$xaqEu?n13}WDsZ|b)%m?;|jSvxs&)GOG>zdu|2ULURtUTZl9 zdry_1<6W#?z3`HjZTcRhihtHkJN0VjN>SUgwRIiS@AfLhKM$u&%hN!&&BA=(5X+lJ zzD~WXoABJ724?Co7zq<6v6!q)@!1Bq=M&}!*)q0s7ufTXMyM_su+^-2?#pU#Hwuq$yVYBp)u&3t|REymN-{|D+Ju_;@xfQ)844 z?cP#S=x2oqK>lXp_)WQimUE>#G-#U=U?CSM~9~`?V$}TDSYM^necCKEEoL^Y{;-+OmNbKe3$o zE>~f`m2HzSj54)aD3FmmT27R)j9rw+Q7!D}%myW6Y=F0;v)r|{`zkuZY?E|^g&5n5 z`(H+4x8@?7$Jssj5)$BWbRa-|A2 z5^Gsftg7Is#N_RUCOC|~wuIKDn&ccM+T=SKa9~l;$|zEnG`d!F$Oq5i#S}a2B;3Mb zE?$di;`X3?86gtW_nKw-vcNlRM8QJGg1De`fb~MR>f@SzwVaCvu{qpgxjt zS*6AE4+0i7$fQ(chNUTs6N>+_@Jx2vCJ(2Vb>#4+KUTdf)o2xHQE{J1_p7upAF!H# z1aL8uky+zdVytr)l5WbCnTaP`wKRsRkg1rADg=={ayRNkgR;tv^LER0)gj7uHO`H< zPPXLQmsMd_pcSn*p`It(%5PG%Mn6y?L9ODEd9jkPiT?U^F)4c^r05K*8hR}ukV$HF z9T9^_#3gFMBudE#CY9`ljswFYY^o$VT+YNHJ)5*V_A3zN-o+ki2VSyYB|bb_8ThvK zVo2i?6IhoqB%7dw4M#ThVsg@3o($5E+5i-4R}?9wN+6#E?nDf9yn7EAF(798llkv` zhV^$OLm1O7+rIYksC|cl^ZAfo+(weK$jZO(A&R#)cnqo8Ue!OA>_r_TJ7MzY*HGE1 zM=DmAzAA3Y6(8bSK&Dp@KJ?*_>qcjx^};Ud<2LJO;_M}Es`v@;GmSqv-H_yPn!=Jx zk77)$bkk5R^JXXy|P0Dd$_72}i zKnDxo+?7d6K7*w8cfVwS!f0V;mpagL92fAnE%r(52D^);Krv75c~`P!sr{ytyn@Pe z-4>tgUNQ^=1aTP2MT;BztE6O2@56n@k;YiZpa<$i;?+imYx@MUOqcCb(QP*ylE4Ap zkt4^_y?C(V&2!C8M`#FFkb2J!Npg@pOq5FzaEIn;zwkdM+sZ2Z7tFpH$ zhI@om4C{vG#I^zEK6Z7q>>|UG%wh6s+(jYU%{B>K#Qfdqw12a;mseP|W}&7pX_nmr zRJFZ2TaTaU-JjoU;4a}K_B4dX z_Q3aYCEL?IbWRUn=&>4wv^pw_OWz@xHpJ!3QljvkHH>Ci<`E5_gPgCLS9(zN9A4xq z(~mp#BJ-?vZsS@TR*Q@^QiU%uH(Qs)+RtHU;vN@GS_=@Gdhlb0@;#~t+xrlEUx*-K zn9^t1&G(q>AH(ibN9^)>92CbyH4eY%Umx21eU#fv$2I`{GyWWh5!1-}i?@_1LQZ}z zyJt=;r1=b8v|qS#O^5aH46DbUxZZ5{Su}Q~Z@H}|Q4-)EK5DZ;lc53%3`{QU+rF&* zhuE{$D$7)a(6`O%B9WBEKD9IDZRjFY+s66KJ;oKahudi50heAk`>(wa8D1y?$_6xn zjU0Dqx@SBl{@ToYWAyZ|DdNIP8p@_K&n|X`0xPuRla4$fW^R$OAuBOwT%iGrSb@>Y z2rWE=D!4_%r6LVcC(FL1Dh$!FuYL$1#ew;N{xcRrf-#(eTP z&hAihMYwI*9beo690olHr5jIDT!GP~R`xT?{Vs%JsvK=h{A55wsXQsNJDIgoKkmiyHZ;Up3%!zhzdI zC{lMD{D#;e5MXUsVy@na6{nSd)oC}8s`*VZTK}FtlRvz)Q)T-Y)llArpA*|G(W3Tn zs}0K1kDNm}&>xAEee>70cCO#Za9KNF{(BNssFu{?mM*mRGoz&V8253qmy37~jdiRppmE{z z&)y6)C(0PGyqPe-V`NQB@1CjzMG(kC`6w6Z5W!$ zl$LOpK2@ua*C?=b0vE+sw;5)|)_!cXSp1s#ISwDlFKwX$JoaZr(&A$CK4uN-z3R+K z+h@_94-AG|XBxEd9K$P_|>j~*tF>%$unchjAgnf`5 zaU2y^7Ef^Ute7q`cv5rRS7>5oxgyl^8v%}kt>_Pt_vN3F8*v5cLpE~eA2tJT-*(6# z4^BDdrb1@u{n(q+N8CypYP5ny{Z?;DjP^Mg_{yss9=GsZNDEIf#iYSb+0wb`U3#4_ ztGbu77C|mQCq7t?r&goCnkd|OD!cfbDx(cQk^-P|y3BgwjSUn?>M;FmUGCt!=SA_1QZVZe1jz$*!p3kmN9%~plY12zx zKr-F;*>xT>FpWMcnGG!0xFHctU_s<kjqaq8EuAq&_S zEKI*Ba3onj6LC4aczWZmXs{bm2cw!d`BwWDQ^f&w44)5?vqS^s#~3BkSSym3W_IXP zIe&(y1R#3UrKi~QA_CQ1?Iv^XS_D$2V#fKXk|b?2`VYQKluXZ1jIq~joL-V2s{$q1 z#Ac%yd8p8ekSx?H4i0lFDk^~7?q)~jJLWeK%<@f7V>PkmYxSU@aAiErQ!9V(dl$2q zi?HM^DUc#5dX(FivsPX%ercMvSca_O?4jTdY>TG^=evh3rlH=`FrOQJ#LH+`m_l*Z z>qU}de5?lKn2ce=cm^v}5p^(XSW@sGAL2X*N}M$B+r1-|VJv1jJsloe{jxR`C?vu2 zGaB)??UQhHNnm%cJx|r^0zQX{%yl}x0us{g`{Q3zUc|Dh70N5(HS_PSAA-G2JYAuB z6(c6b$&9-#m6wW<#rIhugSXval7RhYPneHXB-Jwcio|MqolKO4qwOR>Q+9N#w*mi^ zqDK22t`dg2Je-;Ed!vX=AIO%+LOB zf2N7m`z`m=Cy6MLB27GFueYtY*lOAO6>brQ_n9MFlzZo5T_vc|;L`4XNxt75)W(N> zl#2sv)XfG+vf8$WT57jS#}K|(YnUT1;x1C(IDTUDI8|{b+bGbIm9ipA<2m+^VlF_t zgW?Q(%O@P>AYBapG|Gr;$u7q8+<8kPqVi!(*Xt~QduGlKI0mbk{bVhi_nl;8=?~K5FlS^M37QeT>29amZe$m|c4?J4R z!GCCYKzp$_;$`4gmA=RB+SJL+Ju)F7{bwd~@UF9K^mw*MOaNq3V@2>_P|r71LSpQi z*U^X|=jU8r2cxg~v6a>7r}fM=iwV$C7Bd$K);eB{)d~uAbMj~a|MA_^LoqFO@>P#~ z?VSh1*hxr`#TQdx$f!do>5_#FBm{jXsu{}%tL8X?A^<1-oNDkyM#a+nkD7nj!)e11 z#(~G z<5o&{PFDySNUB;R?p3416uZn3=dd0WpVf;l{yMoVNBJ%-AN2xQIHp;BO3xO@QhyA_ z&77ndsi@Mq^FTHM} zH?QxQ)$!g(W<-DWeOu&GQi*{z74ns@V_iV(tM7fw8>5>nXOg3snBi)lz>pZ+6%BnU(v(MXsk?+W8bBl{ zPvxFT@lI`_iQz{)iCx8(Y?mw0$AG&qT-o_772>!s#m=;xa#PcNpehRw&mq~Pl76nZ zo<03?9*gX}!p)m1A>dYf0FBDQMK<*$CAkIrcW(cX);(=JG-=gDp1gzX6GV#RtA2zt zRQGy`z}B=H5MhJT;Vw%}NUvLxVKaY1p&yjteSXkcyN9EkS-f&QJC{lqAw9yi31u?Z z*+p#Md$M9$eH!R@bG)usQ(R)obj$oqkG07H#B2Ma)Ov}ICnKx@QAyQHYgygoZ9*Uh zj?#7CGpSQ%?IA0TL6dRrj|%rCR^pKMb#WS2s5w%IsOojGVCZxRvh&v)SAztrZ~;Vu zU+T<@>gnKJG7ln!ly*!w276vuC54s{5>Xg-0oC~b=J6VK1WyS?q?{Mxqf?&P#L*z*Lcq8A-1tsJiiT`tK;Di@Nw~ zy3(wa)tYd@Nem4Kda_Fur>mFs{Z+Cy)LThuX`|$eUIEDn9V{z7G z=%sKoF2<$NNVINDOR8FHnK;Cw}%&_vxd{r)jv96hwrxjE6 z@iBKxc7Ox!1%;N>2NgQ8BzuML@_m!yD_vwVO*6(8Y0>)8~q{Jzi>+ zv#Oh`1Hr-r(5oV4DQefsRS^O3qOK38b?-?_7{T-7-^DEOp*+vc0XN>Qb@%O1V8K}2 z*WXb+9=0?^*SoQt@ZaEL`|GFghG4mKIXxs_|4?1%#h*vp;NeaoVAZYG(1@2-)|;aP zkQIw67Rxous(NYFxtWPA-B(vFA8GI@-%6SDXu^So3bpg5xcPROozr@2rA?yVFKp6@ zHV5yHY3}%IMa_V zYV=?sA^et_?FdtQb9#oSinyZuc=w-y(3k?}@pfm;QT6E|00hvxn8dj=(1N~uA>oXz9DQrIIFWqMeJ5qHB{)%f zG6ES56aBS0*j(sQXtB`=LokMW@jDn^>q$0b*(y*CGVRj=rn0cR9CUksy}DdGGuqVx z9`@HKhKN*7!7B0lZCJ5Q_gY6p7A4FbaaxI+Eyj8QEy!%>?$EL!ZEWI%G$B%4SX}x= z=5n?K*O{4_Ka$zY00W%`+zd&Lz^jYJ3i-SoM``P5+WakDq-5SZ5CC@O#&5lUQS5oU zPsLax|5UqI)m){1^b(UHdsqNN{C12p53vw3clf41E6zwAx#J9uN=m|U1cMKE4bs>- zw#LT^kIiv3-f6}!HbXN1n2u1e>8Ul)gO=gN%vcj$6tkp;utvC7D}BOZ(*w$K=_Tye zrDKauZ_iJ3DTNouhXA*pQS!=LVvvw=x&1RfaskJUHV{M}3G@5y zF;ueWkvb{GrSb4|q<1DPp!-PZM%TAAx6ATXy8*jXsF72rHf2SlYg=a>>oEwG2^|3{ ztkO{)`q2-}jTB~2$gCNWv;^vxbBFs$GIjMzIDss5F_i1-o^)=PfZb1A z(ehIQcpLq&B!zYKhi2DHMcsN-T_%4p42i&Q1;LYqO!_ujAYzEgikkPOpdk|XrVc<3r1{Y?U53L9U|rwpJjBp>+=%-qk$zyThUa!Y|6$Rq z{ubvxz}$H=omv&J14g%I(7-6gXgoRt0xsIUao0O(r$BcR3V*tIG_J~NLp!Ykqf_vD z-l<39Rd+Vm@}_xd&A1k9&gD&P;o(v>Nz{*H*ugpdS1uqh*j1qF482XMJaTY4x+L{g z+u$$tX8f=1Ht|f1(Xspx^=miviRj{GVd_<>G}yV;F2khz&Q6t=w7_PRCfc-WvWQLET#qA;=#0Ye zSh&PUaaAI#bAy7l?KHA={4cVwqzU!*Mmf?pxR#eJB@0b|PJz}_W4QQldZ<%tdR}Vq zE(x(2b102`gE*aS1TGEQ9=>M1`lh(!zw7BfLlY+1o%`#>EO|WHb!K28N1Vbxc^;jz z-$*djDB-ucZYOzMyj6&_>KZm__ovbt>f3nI9VXLwrRnGi0S%8AET&2r{G68`(IYM@&iL%a5 z2)Q@Wc~Y+S8&bC8=YT(GIc8l|`m5zyQ0m_51+=Ph);&r1ZNzy99vrq6*@=x{5n zL06TffsH7E>%tNBOQP!_iV}N8zDJg*y$1n9FEUsNM{OfzhS5F^HHafs#3?`(?S18V z&*S8F(H1WST?NJ61MN)7SJPHO6B0^}0}Z(OnDf1Bv6<)iogSnA{sZF+$nKodfN)M4~+vMYY#+=00%hsF3*Az=#+|5w4koFRU8D z;nTpEH8M%ghv>MOg`<_?g}1k9qb-%^=Y)qpw<%b`s=9*@>CEJcJ*Kz`p#~uebk+6S z!Dsx9Mbg`3VP+uZs2ASdjIg<>ZW{5SW^42t9<|1CQBL=ZH*d$8L0I+$zds*Wub#Q7 z3C5gHrr*!+aSnrH!n~It!~7oOI#U~C!8uPz@Sy`i{8I0IqiVR=RWNlrs z&Cda1%BB(L<;dXbC-Mi?rY^BH{HDdSd2Bl71vePr>M)=L?KOsFD2Gm}q0;NTyIH&- znFdwBoPwlisEW8=ofGm{8qD>tD80|>9A8HsQ6wTVrk*Xo$Ds=4=YaKvB40bIE|*>1 zY`GL%le@DJru-N=3#mYb>A@8{g7322-3F_gU{e#}e8f5s12iWy;mF8=Rogj>lK>@-R>g#T z6;$brYnft}{!JQzwnR;6fQ^bR{nFOW*Ua66+|DrT5G=@4c7?mg!D8<6F=9s`(NKZ&Uo(kexI`D(1ScV9`0nkQ|oXxPF5(J5BO$& z*}xPO+(fQP_AKQy(K*!dfv55`FF>$ZYq>Pgf95S~|45YyQfz~{12W`m)lNhodTqAb zXy^xRYKaF~xY@L&pVA{K*?C|rK|r)lGrR0br^=ixxgWm)J;e8~KesynyANvzCLn?0<$ILH^&O07wQr0oeo105bt+0bhccf-HcFgKmI{f;EFHfuBOS zLMlRbKtVyxLCZpaz<9w-!K%P+!)3uE!{;L4BP1ZoA^{;qB3&WtA&;Qopk$&vp&Fo0 zqOqc-p?#spq5s7Qz_`O?!JNk8#Y)2l$F{*fz!Ack!qvn*!87?O^Z1bX83X`=Izn;6 zIwB^bUE**OQj$VaL{eMQZ8AQxPI63g2l5sQS_)f=B}#nC7Ro0o4XSdgFKP+uXzB+V zQ<^`tI<$*)W_0`X2K2KGI1JVdT|cw?Z~i}kX7poYGi1`s1>|Kxx>v_yWs7v$xL;aM? z9romI6oVdaU-=OVrU8wm4TTJIPwAbW3k=VrHP|n@NV!zyyBYk`-(Rh%rR$ruv@P1 zb%$3r?B>T73B*Y1DtFj7-YqsZe`CAj{KGYmzbPpp zQ0z^5~0tKJ=S#M(lqpcy%fPj>MfQl$f1P~ArgkUr8euMGxVSi9;Ow1h^#%>Ro z1Bl{|QbtZjN?vAjwHNyV#1WU&{ZwEO5kFiOg=e|a6+tp+*k}Ol8&dsGpR$o9Sik_( zV1!svGXOIbG_q#UD0Xx}SJzTHz-?+A*urZ!Z1djj8AJh?5C8``;#@TknjiG!TXC}l zjDs7#^h-b_nt2wriMD=>t(s0aJ?<=vQ`+uF!)cU%1= zrL@T8VnUAzY4Js5q`LOQ)=2@=yHzJMK@21~fDR2m$$$H*T5Zj9Qx+bt^5;{5TI!!M ze!&(NxwH*4*37>B_!Om^b?Og-1{gQalh_HF?apXl|PrOFt@+|SiNFI)f^>Ae91 z*!zYrTybb@d{)KH$!5b3#v$Ikr&mb`yo>c&v>XOlYElBDYT3C26S2{1&cNPLj9sff6l~maUl5P4<>#Se2K3A;Cf62);n%UqZ+YMgLGdP+d@< zW~ew95Qr$~@<3reVp$*0sWJXDqdu1k5L9Gt4e2v-^8B0!y!L+aP;0ZJdyZq_x{wj9 zsAz1Xa4L0X?P?T}P2YA?ah?DM5E_8a=HrAJGDD9N?xiwk{#ER_sqJ-HjSE?Ryj^fd zP@F|`IpSrOqk|xjI*)Wc^k2XWs16K>D-_3~6@;p}fr`akPD3oXxnvH0@%|<1P--#7 zDUo|abpAG(cKQ|~D9TzaWYOxR1&IuklN2X^F{O|q23Snx{{)T*arYF^=aFHN_b7`g ztzd?RcuXa^oQLgb!@+Syt^hcuU-JR9pbp_U?{;W6p7v`((JCbch=Ueo#t9ul90E=d zZ4OSVH+z0kXm11$apX{baukZk!0(?@vSI0jBTK4VD=>#fbqP9gM3H31=MQvFTRo^IA9Elh+cOX5qT zSm_vsk#?)9L?UwDo{y8#1rJB1izAXo&V}&%&6|dp5M|-IE;CRen-L|IejER5n-7St z8ey#34&G3S!SW{Y&GME?@+@zwq`=ZtNs;9pm6TZCRY@Pqdn)N?d0!<1ENvxw{9`F3 zrX@7c_y^w>2h|B_+;dou(rX{))VB(cFWJFD=K zjgRO)K2`utxTKphnv?usztY2G^iO&%PDV=}PaHm;Ns30*^Jjw;<KY7k)4Mn>Gr$2pLAzqA_?R@B{!+Zk}_-(P7-OB5H3n0Ig2DqND_z==xRLc00)^8QglX%B0dPFyD z#xm-$^7EZ&+nn<576^Roih%epa;*;gBNX^lI6WJ^85{Y{ti9= z&^hDa6MFCkJ@}3amG)(uE2%2{`}4O$f130$m};%bm8ElktA{hcFYDSLV@v@@c-ms{ z-obDJP@^;)Rt$jQFSc&gsdl?TI6#eaGC((|-M(33?)DJ<{B&^_5ya#^Bq|;}{D%mf zlbo)R*l$s`!D~Dz_V|chW;-l6jQ|=TAuX8XG_V%kvI-R7MVrLe`CVvz-L*XMqTQC4 zJX)a*+^Q)2QZDZUC6t@Gb+xGtzkiQGa zHwN(m%-0`Oc-mrMVBlmZVqj)qWZ?v|7XdMZ&B!1E3_J|mAZ#G%#Bd18W?@ib zWP!3-8Jrl^plmiIabBhr#tbN%kHLib44_rAKyft)g7Ak!PBG~7`15slH*|@+5YO$m zsC8F*qzEPRcZYdev>7Y4LWwdx0-wq8MR$_8>MuWx654?U3UtkF64)mvToBIb{7zui zI7;MM=LG31=RXA2#mU%pmYh(Y0uAZcg%5;JIAv3~C*CSOp}L%NEGef+&v!>j1^Y++ z+JD*)>3`gEc%E@YLEidqX9W^Owf_tCR7EoMb+@Fe(7gE4fmwgFQ+#=4pTEDn)ApHQ z=!&Xiem_;+Bcc~Qnc~X_PULoC4YRawaBd}kCn9FW?+WbsyVOqxI`f392?n;vNL_ej zYEdGp19!Q5OSdmn6dIDDW4#%8dhVJMoz)l4J3ZL5VD%~+y0>YYd((O2mV^5K$bTVv z>t(ld0~rR|75$zet5d(-=t#ziv+Nr8_$Mz-N7WXNsk-DmwKhHBsJ6VWdK_b0`i-|} z&Hym&uH^s#c-mrMVgQ5x%?w5i*gzhDAh!O_Xt z#nsK-!_&*#=SvVg7%&U~003KN+gojX+-IAZnweWzT3OrJ+SxleIyt+zy19FJdU^Z! z`uR@=flwrtNM&+`Ql-{tb^6s<<22}45JS6l)N!$E{Yv34uW39vc&52r=-u5VkCk1oCcjlMqM(2}y2%Nz0r*N zbk(V<^WWD~BQQY_+`?-GQCL54xUaGB=<=@%!l`?4bp6!L8@EaM{}{ygZ{hn_Pu+cI zMp{k%vmo4Y8sBd?d)u`)pX|NxfFPXyHQdCwcH@rQaNH{h_s`=~yY{C0&OY*{+uwun zKMKN$yRSR5ar#tv7Wdkq>xZtx0X4-xg!>=C_ri5I-+Awk7Tpz`|0O|S&)#(Fsf~er z{2-R{FwXzw%^UaL#^UZT;X7TQxn<+#GbeuKfe_a7hk_v8e%q~g-1+T~f8$eva4(+E zF5GtencH6ZW%q9i!tHI$e@fs&1D{{wK|retLetmum7BhNR5@={S_4DPMkpA_=h#56n9r5+IYq@!Fc=7hL(RsdI5=27eeEl* z|Ko4413g!rlIKwi-70pWODE`|kb$(~8wb)W;G5U!T6aK0D`A1M$&X z#lVt&nf7TS3-5`k>ijqnmy)PRchlgcDK3Yj zT`{(QbYfycF@uUPX@;GK=unt6$+fXZXsv*TcnERE%0*y_KSK{%8y^^jz#> zUjiME0ET^ofFVo-R8-Zb7_G2eDwpzkT5@Bk1w`Ty)*P~zOn}&^C#Z2;+0!^xRin{xCKdG<-J?!1-!)y# zO{QgrKjjTA7}6$>8hn4Yn9P846Bj4hpRqp_MubUl?$~G}4$cj?nvKR#V^V6h28l$a z!NHadSTpQvhQdK`PKUSXo0=!G<;yJ}ApWe9lw7JVtCGx_`0BGs&W**zw@RYluUr8( zlCEIfX%@VngDE26FOcv>$J24?54}h9TGMb0 zX1fzXH#=SGibf7KjIWVWbA)8s>>dw! zMh*xTpLMa{hlU;yc7xAmhI(@(>!jfb{kCun4%(!!0R=T6OpQ>}LIR|VZ~zYUmx$qP z@GVXwy?77U$)zifc+Xt5tW@@T-BZ1dkY^}fDl)h3=6hG2%I@irk?{kmuLttoiHN~O zZ+xH}?=zkK>0sFHQoJ)`uT>rM+!!6dV!W1Yxr2=9ue+wJdEKv63S)!O6#I-P7Moct z8)LDaMBmv{xhUYu1GqosUlnGBWx%y(As_&*CfQqPrV^2h?4i(tM1l4ECP5kwVf_H+ zvN`2ENfDT{K`2rDyo~Q^xbdI9J^sajrht36OrMfSaCtl^GEtPB=Hciy zNyDBK7}AX&<_b*e^^2l%F(}8qeaEl87TQbpx*Z|L7eRy%IY=URW!^pwHTP#Za z*vy29ZwU<5vQ7jU$ym#>wN2XxFy(;~SQ(CiC2@2R*NSuyi0K$UI><6yk~BqE4JiV1 zB+3$d9TVLP!ngNpY57)ijF<4rKvp*cmO6i1+ptT zBwkn`YX@VYh%a!pStxD(Lv<9!jlX%L->7-{hK3;e^v&7j$-C5vXzro@ThT#z6Li$R9H zH7Pe6DKSh3iJvW%3;u=NhQc&~{zAUtq$pWXbteYktCh;OPRIgFm;u7_=aghId+$+6 z71=~M>X;evDh{lW%c>$PFmf!L6~&kc`yVh@29&Ar{52EF{+W`lghl0gS={{Yx0VP) znx8PlACt6Nn)HCed(;@?rlGRW>El|p*8#vqRs0vud<7?5Jc1vrFSCbV&!H89F@I9i zf)`=Kn5=tOt_(rlsGIPkum~G}GVj7Np+?-M2oLMez?)mR`zPS;I^gbX+_JW|uy51; zB_W3AazOXZ*xD*%R@ujwj25r+Vzu(wSXbMB<%4m*r5f3 z!^c*@=q#IQjVoCXoD0$+3at7R2YwWQ88v5HnT%pAMlIC&x`CIM2U_B?E+>;qeg|+R zD(u16K_Pg|AyE?{XtFF`6eLwv-HAX-RbKOe!4=ZH3g4j{P6JmV0l1RMq*-i3X5l3T zzY~~%Uo5xR;zNr$ZC+|ZkZe`rmh+ZnR2AT~Jb()nHhcGbf4*8ErE>ZnlLz`9P==2C z#7MliXd|KPbZp7vhEfDKX^NvPu>qjXk(MPXdsFBguX=ff5rL-Z`TV11aHQu-wYQ+1 zkTr=Zk`FjwnuwqXcw%n$bqKqh*P&X|C0ho?`=Dcf1-Mx^Eg5{VU9mwW^NHw9>By!U zXf_e<4i5Bk%LoxZ5#te3wr5&OM^&J9;P^pLS^Pt{$dOBXnN@&HbdMo;oO!ABva-iqo!D&OaVv!6EuYQ zJr|d7Pd(_6Iq#g*u+j_PfLh?HXp@JLXKmX%8Mk0>cti#}TsrN9j@~whpjr$n;HRM4 zJg7FC-;#bCQ}BHnR+tK*HW6tm^qV8h1^;i6=IQ8_0RRE%aw`)a zAi}5^$}X-?1R$=WB)XUOw5A=pL&i9e&bkzFDVJ0ATE;@4w+KFyb+}6~$&B|rS&Oj< z6dRPN%OfGsb9nI~LWymD@A1bpC|MhN(q&SzOpzbw|)_=Z#j)Az(1w z;2>}s>2p#}WCTq1dsj!XP$V_FuaEEdIxQ3Caa0w4pBQ}Lz{I}pTusi#G&R;=+U=F@ z;jb`c)kET8sU5ex8CND&C;IcvYO+h_qMDqm8|;5}w5@nA*7q3JcZKgVDcQ2ZTl#>I zi+`%vfcpsrYVkUW1~IT@r|C3YH2e#b?Y4flNB{`8sMQ!85IuZLCTx$rWJwP_5_cq} zZSIhVjv=?j!3Qyy5Y&v^IN|(~zW{C33i_4N zCkh1^H9ZvGHyzO6^4|U$5CEBxolYQ=Bc>ZD@Vo4TZkNxK67agk18;uKpD`#cR?d1&kg+D6Z1N=r3tkU^V2b9L z56F-3!K49A1rPkhzAzX6P-H`c(?Ng&aKHkhdv`oG=W?q&uxP%6``z$!ytjAIqqx!# zIj)P669%Z@;0au02URdqn|?+5lW(|VvMRbn4XETm2V_tzUU*97{P@`Bke0PIAVdne zweR!4<-tSWzVL9{pH;xTW7(L+mTQl78~;D@G1p zf5VN7dzpDMk-3#s7AD-jpm(wr&h$=?G-Kh3v3puc{ycNP^_Dl>cc?i(zvqFx{^%W< z#8uzkd(r?rHM2PO$>U3>eOhV%QzvMBh=%w-gF3Uql~~{5rQXY3#`@<%O|QUW2}1n)2pHpgWmf zitp;Cd{*P)q(!j-VMVwKxq)K`_s;bDksFZVn02x`9iIRN0-KOff{2<3OW;#tOE+xM_CAZ=A9@9OPL4#nH0e-O z2UojyMWelifkL0`+IPak=F0>1#_@YSY$zfxs=ZalV+lFYwc>25lH|NZeJ63mBmXdf ziU`=Yoa)QC9ZLAVymO4@2I`K%Pv5I&?`ou?)jxXBnYwN;sMV$)4eI%9IhM0{5JUdA+*27? zx)g2O%mjq);HHj2;UD{$`^vte6n>zpsB^OHj<}_gS5}NbB-Nz_uR{hEvaE4W#S@rV z$Yd{hp@kEXW8|h?a#PQ-#o+vu5%YuF*zCgo*i7CV+G4dWeZXD)UHy7st>u$TOU6Jw zolkPlfLk%la@EPFyb-6%tHtyYZzG~|_Ta-PE$nbWFZrji!p@Kj+$e7TCrGY1>*3{8 z8rpLJ`s4Nde+Y-5Jr{$Pk3_hj7#+-Z3E{aia%@m0R>WYLlprxooeZcgrd4exe4gGEM2jzyZe@PKA=1-RtHDA znoE-Eysl>~G@`fyfJvL*b9^#g)p%a=R*sGgy)waD&U9MR#J@+%-V=?@OmpY{rWT$K zvpjb#4>WE}R-J5mS~1k`D#-B5SwI^EyFJf;T{sD7`!3nyyya@!zFCtXf(wq&W=m0G zWJR7ho(+Y=0ZK@K`|`P7UWNyPXi7wC4ov^AZS28^ptc2njRdI?gB^C0(B!BbujOCfcU5X0tTXYznaw5|kmD%Gi_e9PGM+~|I zrW%<|D>;d91CC$*vH1$~Bm3cqrLGET3RjLVbo=QJ@aDb+w1L(#Qv*ZMaLS9g9#;0k zHze!4EV>cP0QY1=$H4`gkia$Ir6)i(lyXiM8eZN^T9rbe#;?RB;tOVZ z{>0~Q(T<)82EoJ0n!>RvRk+PFBm=gGl_&QsU~X$;OH_ti>$|y9bNZ|h$k{V>caXezNk;iEDUPz;yMKYpHA+tNk6MIB;sorGga@uj z7d|SIzah%}Udd^>1eQY%?;8Q#ri=mfH9)mdy#X$`^n*v=H)4gbOcGl*m$RE3qEfd-kB z#YJ=3H|vM1g}kX_Di{0hw{pewNMhCq-H=``FeTvUus7ax#F8JQXH>5`UBv+JpeO0~ z@GSeK16)*!**aPgtF$>^saB!tKyhN8M z8JlBViK6Tiwpak-;|Y~0z7 zkAjK-*s0^JqRz7i%`o`GEpfjB~Y6Ae2zAG9X02~!a4 zmLp@$bk^xpx#kD%DX>Ikq6?D3r4#Gy{l6wTnC3*VOM#^aAF9TG@CRJe{R-%&yJTQG zB`{9;l@q{pneq|EfYsPROl>t)bOJ6?@GYn+#07*WaxE@NaV|(QOdf=dcQSZGml6RT zo<@kz%JV)4rKpZfAF`M(UyjOREZTj@;m>CfD?oD@^@;oa7RM^a@M#?K#!8VJRR?MU zs6@GUMVc`b)*1IN)f^AKE*2kgiYjtWfR0#;DY|^^wRinJa;J8rZlT4cxa7_6;9mY@ zE%7Sd?y4N|)$|_7D?7E9y7JhEo6-ZV!)K z_$`D{%rU>)n~LhTfA|yjQ}#*ZnfAaxoE@qL$v+HGhSFM^<#Jr||AHl3Fh~k4>fwAN zOf+P6C551|-DQA|>KXg&a>C(+RhPIX`NdEsoSlN@#cJz)ihs6}V(LPDbh^>yO}PS_ z&!khytkEs;rZd#tHQ_}d$j-Sozisv~EwDF06%*q~CfpBi3!z|5XRYeISDC)6Q0q^5 zH@{h^MzpFXeO)s`mHFy{qoNm4QrE>Fvk&o42tCLRYR^nm1Jsw~x3wt1B>Z;*feugu zt=14E-4=9&xX2$^x)#a+Fj)bB?VGK!w=iRulIt;I#=zt+UzLpQR~k+33#bxeZYWLh zrxUP8NC=ClS}754B%6z-eJ1~?)1htt0P>kY9nm;4ecRKn{40_P_SLV#Sj&Dl(k1U* zVa^G}`|M46I$Do-GvT?#C2(C1&^*bW6NbTc1Kq@RohAr?(QK5lZsNG@Ra)e+@|!ke zUZPoueYBMHhXP(0J*Pj{s>L#1=alC2c&`~pQO1FgGd6i5=8;KxuQA9i)Ke*eyhhC-~3jwfV`tAb3({gYeRmXcR*s zAv9?7Svoa1syPavjiz2Wuj@aDgl;{_ZGnpjVP1(Vt>RL$R@@{{i^fyfl_h*EjlYA^JuDz2vayS`qO=_ zqc+W!*i8e0g6#^3g zzG_*#2O;U$1ysyzT|pq@3Mi4g<2>v$CK9Z#57|H{CwIASiou?)N}<0HujU=5k#uOL zt5rkypr>~@Ty*3{ic57m_d%s6%jVuiHp}$D@n(EoKT*u0ha}n6Q}oG7DRpKRZXDUM z`+u+NT|=3!Y^ob)NXzLLo9wS3H4Uq~XlAIAAX?a6AC`f#LM$ z=nGf@EV(f7rr%d?=zT7+-_+)sYAz$Y(nk1+ErHQU(DtZfi>+DF(QCqSNc6i!1d@`` zpYiK`MQ`H1c~5wZyAQeE@SqX*MEKq~`IxhhD#AM)D`*t zNH{wIuH%~LST5LGcKP^y_l5MR58)kU(SMp zkqm@Tp8<;j3R_Jp=<)18(Slwig#cH%#k>Y=rN}eZ~B-7 z2imPEsd_HY-14%Y^*2TDzP@OrT<)u|8}W1pRs=jpPdDtjaxmfTej1R=Itfgf)NjUWYSodZGbtx*9tJgp7HN@a|#}<`^o2cMLMAcgN!Q^CCBLo^lQDqCaZ}UE^ApCwc(Qz`iRpW~KU5m%mB6N#v?eJN!bvy;fukSzf>y~+RUWMk zvDYGs5*5iI>tY1{JUocEh{i8)=9autB4oKxCiAL^s_tyo43v;C8LlZ@TC3m0sW~rv z#*LsUiF5?_9)rImOKQtIqf^a4c=5;L8g$?tSY@KK$^nyFA1sn>Nfdbqr1*$>O>1C< zNiU-=E_oF%Qafd2Z^+%V&JavJpUscYiu_nOc$E z0Vy_bMoaOCyK0a|+SRXSv$87{(ZrnQbM83g^u$=d>M;tc|00{!&2lk_9FwAmlJ9QBm=^2=^~l}zaBQhhb30xVX41XnS^iH%0)C+c zt(6JsmsdNKPBLm}NbK}XZ36(4k#=Xasik!B(Z`RWk;3!V<-U?>?kgb|R&a8yu9Eh@ zgjGVB?W%V)WVuY0mK5^z4eHaeQ!S){@>T-LYI(dwBb&opWbw$Q!Od(6*v@@YartAB zfYVvE`O&LGLVzSyEuy)+7@5`Zal6k zp>k%(H2vmQ0Kh_usFg=!k!eSd6Hfo(>Au$NDO2f|*~bvTTS6>(4V7CNNaUUny8f|S zc64{Rxq9P`O2pY+E9CYs2b6;W|cQoVgnB@|$4zH3L+HjJ6mOOCm*T`vrOZ`LEpp=#cAI~=+i>{kN0;@L@0Al*aIk&m{A-)?o< z)cl}H%L-5k@mRW*2BYPc0NNn&9`vH+roq-(#IcK~lv=YzR<*)}H^f!B(XC?-hY^sR z{n27iq3PiHJZm;7dB#xo8T1E5Bj@t_C8vnKJRBC)8w*9o=6jf9(Hn$-aXmBRPZU#{ z-+cT{l(O--0p7|%CBeKdW4Etc*Gaw%^=6-bwB&WY*bMi1A}vj+0=4KcF5r%a#UL$XrL!w>}idF!%D$1;%}klz`l-68Au6PT7R)_?HC9OH#9=FEG86O+bzgJ)tPvf7Trs<2+`D z7kk1QD|m}xIFdajf8&tis?EDYwZhy%uKX-Xbw_a&Emw83DwPVAEE;wa8Og<-^tfH$ z^Eo38zj6O~L)IH9mp@cs&Z+7z)F1G&bRwCWo{BrVuD^`FDRbGw`wD@+yZc>TwFyTU z>5IExrJ|A|oY-NY{LSc&q2@f`HL9lI2Xu*l|+dK;8Vj;^Ss>Qf& zp5LbSB)2g~wn52{A`jZP=vMP%E|*xWcQ>IjBMqmH%yP*T2e_CB_skmz2>skQ*f+4N zkgPd;qY=H3s2~RhuhwI@3o&OxajQ&@g=@1eF1ukJ;lVFD5!v{pp1xeVCuH{e;Ky)p zL;C}l#}i2`R*?2*`ebi$s^;O{zHq7s!M&vkk(D)X3lFEnxDiP#)EuJ4FHQC@z|AS( zW|{WhfY+@^eoK{hB$NP!inW?4fs(<24%hq_;tyFM{<1N-#V=oX2TrQq#lE4wy>Z@Ec`Q{B?hbm3T_SN!Z1Zk^|KUii?vCaB z{tnQ1ICriLXGsgjUrI0RDrb7T{ah*DIzXBs5)QC;yjQX86ZnRG6Sz4F-1IWy8*l=3 zK-j|Fq^QIK4b!YZuWqDjvWM`^UziL;)>vZ}(8a3gS zhrt!7%JV-$k2vK_a-;#RdJ#kfF{d5(*eDpML0tcOnbjNbT13nyB zFXXSlmP!;Ow;K_5^ue=>b}u;UHFCNVUt6SB`^Oby7aFsE_9^(xyf z?$~i!3D>*Oz)aoq7rudBMf3_%8<-3~u#P%d0K0zzLIR$1JYrDZq^PLb4AeBbE?cdJ zwbGD@0wm7~fsBYKVe^U2x1(NwFjG?%pCq#ny@pMU^Ua6Zf4~l-GnGFFc}1pO;$c@cy)=3q~L%0cq zRI zJ4)!QdL{a*t~gjP8}>fIRu+4#$V63y>~ES=9T^E_Lbe)Mz`}c;yS~p>p!^2jxeY z5}qDiYUYoBB6L+@0GrZvF?fvec=o%S-vuj-{<7uYiY&nrA}Yd?$I#dp^@_GXtfQi# zZ+=&V$Z=PoGJL!RJD=#j(o~)7d(_*2z{}~A*fMJJCKy3czm2Y3&_4lP@o7|Ct^`E3 zAD5$sFVcIIg;N9Y%WX9n4q1lTitZ7aP-sgbd|d1A%g-8~o`=}PM|Gz>a9psGI#9NZw>2@P}ejVG=e)~sEfP$EPx)M)@x2T;({ z`b!%I?2r>3Q$WYh!^M!@NkiCyOG{fkO;ofb>AE6S#c_xV;DbwZ}#Jg}{U#^Kyt)iFG`4{w<|{`mvm&g(91zv2V9jw zX7rUu;;NQx$UPZYYiR07Fzkukx0c6t_t48?I{aa$lJd!-($yn%>rQbv_L)EZQ&*Vh|o1b1_d+@0XM`HVI)r_GoE(&)D#_ySn>^!~13u zet*EoGrv=IM&SWrr)IGrife0l`-d}T_I1UYD|5@cPWYjk$RLH5&RT{!08%ed%anbx&84T2&;6X9)2Oy1!NqU;&z^t6ADN*I3^_ zyRW(H38Slb;ZPx1>e6MrFo#o)nO}*>V;FB2(Vp2q*1O#i0PY9}0W;K=1t$a>YK?Hy zIRd=o%4LfI;euPp-cCeA&y@#CgT1niES45M((Dy*g8E~$HCamTb|UV?Ca#D~`6b2K z6I18I;-Io;dGQK6U)|ds%M1^yF4Xh!M>T@k(855}M~Um*Gs#kN&sA<&W!_si+>wKj zX}?RwJ5`KOdP&WTJv(#Sn!8Izoab=leWjj>Y|gX0IK7)-52H7I0$M(Y=tFyEwC1w< z0RV~F5j85SSuPPNeGAYs`ht-^4ATTlV8IJG!7a}Sywk!#2qYmRsk~o`*JGjDF!xAP z2Zrme=9@S4_*zMt<|b>E3d$ft6Zd4$Gq4(yXBiu796u}PdnyM+_vgqFx!-+cJm)EC zYWr(oa_yTvd_lRO(5A5Rh9hFiP04-hVejTo9kO?L<}KGLqj`5)RZ&Y4oEN)z z8npw;(^g2sux%!{SlU|R6t{o?M-y`8PLmfrs!pKD?1I)|9hmB}~zO+9#Isy;s0 z<3RV3Z{|2Wl4GmmQOW5&akh+bh6@GcYCq4vhT7dCs4_RwA4TM3_0&*>5;_tnCw13> zhnNsvIS`H?4De&StQ05!+n*ikioF)-X4Jt6q%h=2i3LTgLHTm5~g$Xnp!nt&nj=buAo>tq*$^dc*8dPskC^2GV|?16%8u;&O&`hfA%D>>gJ* zw)t0^wOpf8^#xT&G@Xm(>vGzI^;c0#|1)S>%2f4 zepE?DERznJ*hR!Lf5>C{9k4^upzNj&SExs*M32+0 zA(dq)rMK-J8Mrzp_xSq_Z!FXA;hHa?8KTF@lYzVmZRY5GpwYVe(^c6A$b)!$%)did zQnnTwNB^tZ2Pj9Rv;c;JumWj6ASFUutspO5{jjR9R*8|{ExIyplil~Cn(EI~KQ2`j zjm?S@_qkN|y`9BUcyoD3)z_ixVnR10OaGllrI0|p4DN%H+olT0WXThe0j?tT58i#LSa>ETz_2fy^1x!0YoOx-o*M9{W-_n-OH2PWoY#>@h6UB`O& z0@w8ZFm$>iBes!$s~^eZEjA>t{jiWdSPAVJQD`OT zB_IpYBn#;y85c0dDONOKw2a55bUPl@Ih1S-s6KAaqcHhMx z@j5yuN`N+Gzb_3QK5Zk!FN8DDI|LkH=!h!CZUE>*KL7Cu`#SR)nm!+OTr)mCK4F*z zO@7nD{AnqWR(1X>E=}y?7e3GHF3sWgUE~W33%iVr+fW~!h4~9PYv?#)u*zLlU7zwa zUg~QOTe)x>Z{qOm1Remzi?Q{h-&1<>?>O;u-mJZSbsy1-sWZZ`bJdP}5B>@_vX6Ktpy(b zXPet?rwB~aF;nCQB66m07?zlkgi2>h++0Ax5V|}S@|H$)Nn@?3FB~;kGN0;=xfYTR z?&=nw7rV3BYWf&Gq8xApP5wzXi`tBwk1PbPyNG*>Y-BA)~*#aWk;4g>AWIW5zb4#Brn3@>^f7G~8y|9}+8C{xp- zkyeYolx9@t3dX|80779;(%8HhPWWV}Gx5GVB8t}&(~zPvuZR1i2GdUNTk2a|GA&=b zi)}&@($>!1O3vE33(4;I+T>}6ErkkVgQ0AfL7-rZI8hCSER{c+?+UsjKCPN56-vQxrF8aor8RI2X-MPP%-To7awLA+Moe?F zAMfcM>rJ1U&vzH{OC%HNi|=6X!1_iY6MeK}KWx7>ZJU=ZB|}J5NC{fYA}I)ktz#W2 zu%P%WU&!R=_!zxN?9~T@k$N@+9p}tsm+sJ6g}+-e!q`LN3--BGMGGy4P58|FS#AL@ zKyWQz=azg zyNmhG#!+-GZ&`BKPN>Y*(6b9iqOoHGkraFETp+ECjmzfI;oaf)UoqBQ4r-P1P^~-U zbRM4{92v$28Ic)gTE{!E`ffWqjCV$5S1R4>#Yj(oUuCV2u;;z_Z^*+uDO7;HPFD!= zAsDgqU{Vs6x+6`}!B`IZ1T6Yow&6s3PH(^5D#6GZc*9mRkWVQe{D2%l3G?GDo#Ara zmDN93SPkIKYuXUrrla|1d~vFjgj_L7?|tyYvIj{Os!F579aU+1$Cggkdb^@-G1j)s zfV0RCQ@5JzY#|}NcgbP{PqtqQ?Zv(ojrl#n$u*zpe!|N{t?)B_1JQwaw!4mUVP9V* z7_96KYALrQS@ree@>u0HDdl#_6*g+?msOLG6au|nR26(pZ?&%ZZrU9;D+vReNJ2%@ zK8=edegpV&7~S89hQ`p%dO1uvxD;SXi}<8>tpU7m+s(G#onpIh1Y!7+K-ql2elk4H zeS7z;B{Q*%m+lUsLbuKbCO29d6~7NBRuT zp4&g^_nz6mgx9b9hA)IZIoEHJn;lqR3M5`Tqe=Sk)rnBl(@OZ5KXj~hW3}{amHNtJ zZn?&f^o>wAYxLp(Uj>A;8?j0qAAZZVunh__4piyvfMcg1tkNf#2yl03S}t2dJIxA{ z12m9`g1pLnKub*T%{g7sIIQIVLLZ*V`Th4fvgKUJ9YcdkkY3J|^LstcL+NC~hGy#%H0y4wD4XI{+cptc9P>nh0S3h>~t<+H=7P!Z)4k<4~2w*(U6c*%vf zs!rSN0HSZVL|l?oj*`8e7(Q->SFp*dcQD|+#TguM>nirm`F1&3PnV(83us)>OuHR%o*)3=aE*;;tfWS*aJ>;@5+0V>OQWv4EdeazEk@{vgC5;;f?)@r#a5BsmWjN zsk+31Zd9via}s55DP27f4)&$Ic#9Q;ms5W)A4JS`5d9$9GbfJJXs7>nZM)DgTxxB1(ZtQbSp3mheA}A8yxufTrv@kB%)zsA~m)$ zA~}7|dKGVL1sGxiJ?ISFI^5OsCW(imKhuJjuC{oS#l;ZP8fk7^t6-yB_~cSD zTpK*HCPkz5g}ECjfp^Qk(Gdgtml3B+3G7w8`s2m;okqfU^vsJJ^ag9;=h@e~i{a3G zRyB6@VAGrKyk;_hv@PCw+T?SPjRtn^9YAcldwygn!YDSiEt!?6-ZHb0fewqnv_Q=9 z*N#LWK z))kdEOP_rGDtEA<1iQld=q0y~UC*3SAmoggik4f=_Gn1 z?LZKApaQWk5WbkXW!EqR76T~z+OGMkcZa9=$hs0dh&R>2WnhZK=pDJ&@8rloW9gc% zn@eA`d`I2qEoX|QQt-EXhHHNYe(Jc6*R(xsk3-iJYF8+(yR?8aXcz`IdN@$5{|fn% zk+GRVSA(2MX6)ZF zK;*x@O-EqZr_*G&VSVUsP_5lLVD^x05KYo+TVkD~}8hRhtgPt-yodN=QtM-C*Sc%voxmx6GM@ImM-`h!*hR7u~2-w8KDMeC1=+8+I^2yYjD z!fs_>>`9F$h#6OaDNq;WS%O6(`DSxlttsT@p>2NsyK;Nss;C!X?E5;GyFI>Oq zHr?;@q&#o)?)5R>Ip05-*O*`M$Nlg1|0J*;_;PR{_^#k)=q;hY3BNA%ZKY?*)$+~dZ*--)p6U8Y_iFctyEl6ldmiukQRPhKTh*(oe_T6T`|IBI-mmw? z`)=&R|3+ZJ4;)DEeg41+&-jl8kNEc;xVJyBXP|^PfPD=IC|0rm{1mc)KWra<{S==+ z63X~@4F9V5*Molv{A+Z^EqqpJ%zr54`M(Pp{uQAijtg1-H$s{}B&0^N%6}83k`P42b(}8>O|gxC<3fZl2q_#J z;XWbDeoN@W|C*5F8peN&^?hGxvA+;>J}uPQn&4-@gv^)&;~t?T-hz9r3PJW=A;-|XEWzcm|q8``F|J)*Q_G$K3LB`B;{L?u3xc$lgO6X@>^tY~g ztswlfSNO+&+PcBY*@e@{rDy)8C1x%T3&+7Tf1VM9w_HO>s!xJ0f{?MEM|UBK3*a|B zKOjiLv-s@6c}dXmdqg;nH_m-Pe7pE=@fXGSi60PuRs4|n5%KrMKN9~`{8#bEf8GB# zt&10NO$Pag8Fa{fKzw4y++PD9p~a{d1Z1_1W`0FgJU?D9*L{+>v`TZ6lAt+{Wp)v~urLu)?@a zJ9{RPrK3;bUFNfi42JpHr~J&1bNRNgvU+CisSu-?wYF4kicXMUw@kZE=j$}{`IXfSuyJl9)7Dp3*Ks66=X4qk(P(HrzP`4$76-Q4#@wm4aA>tH zEYsvHzQ>o_DH^4gH=gwhr)b8rvT$;3?exZ4n^o4{_iYS2GKlwp82z zOzPaqYFo|Ewzd2$D1b}WYi-3sH!zVoeO^5|o1v2gZrolz{ciL1g;Q<0CySGFnRA(Q zc-Hy4Tm*&=uCA}dHx8|>=GU@onfCPIRh)|xUOG#uwbg3dF;}7g+Qq`UhOhbAJlG{a zyV2$+&$ihqETpaW)Y^_}hF0qaSdwrOQ?TCY^);HZK5wm7uRi5)3v&yzJ=tx>aaJ#9 zB*VT7t6&Lp0DV2Pa4x?=M75AD#EBs7OdN~cS|v!E-1Bd6Ap= zKR^4l%Mio`kSLzduJwS4J=OD^FSJi@%-7o9DnQ6&+Mc;R1Q`aPP}@u24&j^EqL&Xh z@>)pA00*bA@V0MmJ#%h7)Aj*vwYFJZKC*gVIz7KuXuHnj@2$1{)#Zb$%ZKfQ@hpz} zt>b~}dBL1Jx_aI;=h|#zw(YBs$bq$H&wJ>X7r)vp1X_s2mDTekhd|ftIZzmn_4Z`* zxNK_-exUPo2_%`$t^txotbY+lFDKT^knlX5vpkSI*A^z9VvJe*5UdLLFMSq{thUYk zY-XYD2K%`n*z2>I_1}p^nBc=U!P(ha!axA$*v9#QR%t(0iRZxHA;1`{)Y{?dc}AZR z;F~_9)$<~K#;WHf`ixi4%k-J3o>%BISv{}PXR3N$qtA5pyn{X~Rba!$e_L4xrt_KJ zHoKanrPi+QI2qbL`3n1FZO6&d_Q~7rlbNc}_EcULP5||c4JyI86TU3q%V1qOz(=2X zz(=12z(=1&z(=1Yz(=2Dz(=25fR8@A0Uv$#06zNct!Bn8LF%h!*4vTw43r*QC!W~A zXS(4Nf6sYz8Z4|r zDH0W%JJ9oTa|WuJL2KoMxSM^Sg`ZUu&^|A@S~@O-K5p5v`N{n7`2iLrSciZQ0PvF6 ztV38fhHLFswKqIoYY+cdQ^DA$Fnt6h5<^S3?H;EEYdJz z!2mEk3f&cIhcQipIxSk$&KtsP+c{S`bFMd^$&8=FJ;yGemg%+c*H-egTeCCmb>dV5fDQL!@+{QXeGGg23adw zgoxiAO?v5BV3zSMTx75Uxzxc$ejI3;*gnzoCQjp?>2=lx!M#ay*LTG=^a>!Pg( z&R5%Gm2+S};<0m(^p{&32-@4OV~GnE$i&7a8}l1*&}MDWiJkM1v|dP_4bZOYc^$Tf zxZmRZ|1*|ed?^O|f5XLuZ_;Dq`QdnW2ft+3I_q470v@ewVPy&5#wuB&8R4Y^%{B^l z0|h}_?BSh2!u`GNAxQb2mpQ(S+p&PZ-NKx`)%FNJ_7N5rfbPsL7~w5!?XMC;xAy_f z2dYmA!Y&L}Fkmz|Sbd6FM-E|N9XU*M7IEqb&7r|jnnQzQG=~OPRG)@6oWp1pBiMF~ z)~Zh<4586+jO=4q(mY1TuA+I?=xUm0jjo}2*60L1a{<%V>6tXxpl8zHBt4S`r)bU+ z2B&Eb4bIRU8l0s$G`QAU*E~koS?i+F_13y*bc3}n8r^8Ei$*tD>!Q)k*1BkPi?uEq z-3lC!Zxiq~>sxyoCthI>XE3~-kWSOuv-oxgY%PW~=T3V_bMCU{&!_K+sL3Uep7@Aqo!n{~g}*h8BBT6;*-UxzCv z?fX4w4{5?f_K+q#jJZ?W_j|qd&AQ(s_K>E(!5-4|H{!}E`+kqwLz-~T9@2!zs!w6l z6+GLv5`PNYwH6RG!IrJfR@&N`wpduXcgvvH1O$LzIs|u;y&1O74*707FQ~Im*Aw{9 z*J$)iUh`lBwLPvW_>TiKSmdi_5NABYxT42Q(NCL%bxd9%=-lUB#uv7 z^FD!jpJ317dy~Ffe;mT?6!A-F3qsC~asV`Di2py>8FRr9KG7MAc&pjxI%5fW8L2at zg;`eWjFlb7UHmk=u5;Wi42WM9=I~DD+l2e@)a!+7@xRvGiEKd^_N#W|vw^%p9eIYD zHR{JWgPmk&@a`6xdkelD#?0$+n*#>$p4K7#Qo-uk!?<2x~LH-2vjH{sc*gk6B(7JR4A+p(@QxK{%!pw*6A z_x;)HYnR>OrJiv4jAOX#?H1hhtc=i)`}gCGY8gEDPP~(7L%0i{w_;`2TWcX4-fhhq z#>^(L`CnnX6vz~{aAZsTMUEBOD8B9}k$#tz*!E~DDc zCs*<8dw?0DTn0Ub#6g75yYc%pj%-mdWBp%hH{&RA!_QKUxJm~v5SH(_?7G8%^DORv z53ai1y562)a|rP#J&~Su7skX{w_{A}p=TWiH|)jd0Z0PP-MON@7LRS+f#~wmyg+Na zw6e>eo58B?#=q;qu^Ylk{QiGByRx2yfgs$WwDpR3AOSI60g<4AT8SaX2Q)y88Zk)J zs1FM?u(4NYn;2jH8U9%Pwitc!$u`a2Gqbxhn{;P(R$%=d5f)*rLuV>#2H@HmP$oFb zL%fXF$Jh!9^^oUdR)qvwKeJl~|gqA$>aF8IbWRY;TXC^QxgQ$KccxaCQUqwr~RB z9Gb8TP=1A(zlQ$c2HerXICe40caZo8>~TIyPtr5gt+0L*c67MIW{Rfab#|8KaPDND z60|^zv_#94q!mixxL%qvv`Sf8lRj{KZ=E)1leTCZ-nVmN=M#qN2m&6N%xqC(g6x#c=?d&K3o&nFG)HHBH;h{bzo zr3?imWnfwX)67Zr_!|mjQ5Xooaqc4e!aR?uR)k{$=kzS*gt1qyxi;^Qfn_{$RbSxM zl_-z{7HZ))2_8u3<3mz$ZF9)f2)G_cfv!e5`UEb#Rf%pI&8i3+x)G%t2L@DPVr~h$ G#ECDig^RoZ literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Math-Italic.t53AETM-.woff2 b/assets/static/KaTeX_Math-Italic.t53AETM-.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..215c143fd7805a5c2b222bd7892a1a2b09610020 GIT binary patch literal 16440 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 b/assets/static/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..cfaa3bda59246b49e94298478d6de3b3208066c8 GIT binary patch literal 12216 zcmV;pFGtXKPew8T0RR91057-z4gdfE0AMHp054wv0RR9100000000000000000000 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 G>;nKVNojrn literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_SansSerif-Bold.DbIhKOiC.woff b/assets/static/KaTeX_SansSerif-Bold.DbIhKOiC.woff new file mode 100644 index 0000000000000000000000000000000000000000..8d47c02d9408d34b2a9d566c0fe0d42bf82fb735 GIT binary patch literal 14408 zcmY*<1yEg2%`|MLIM|9?_aV`2pW81BEMnqM%M+)C^+b1-oR z02t-J_%;9l4AF0pG{Vf&odf{j(EgI~enA%k0e9Kb*~$R`_y!38Kz9KE$cU!j-uM!YNulfxf+y*_R&O*K+_*|A8iuH^jlj`-`Vj{^Cjg z1K2m@UyddY7GG;l`LfFf03hSc0MQOVBk-*T0l>FVHohd{)5|V?PooV<^uA$cod_o_1%ml;qh4G2{qm)r+>18OHin z>I_cWlI29|Ww~f#6k@VGQAf*1f6x4m<0g4C0m~CIL?g-|3-jUt9a-?oZMVb?mA6l= zB*hqm9E3oMXThfvL!xZ<{?1SWODlT~d`nI!5W~e(O<|=W*SfLn?R)61-Ed;kub{#zCPDO&r0C}-^Lf=g%M5I*&~Aqd3~kFIepCGuh1H@ zEA^?&JD=V{#c5QWoo&W_HlFSNmhBj|{1P3qUB_}}nW|o$g@E&!1et<8B-v@|-)dU{ z@P@&yCMueBg+%HXpDG6OY?>pZ1BxS4F4NUdxmA z<-OC>-hj*0wEmApyLpsS^_NG7aw|AcC!Zc|3J6m#ri~=37p+jXkVd2NGLNpea)HbP zF2y10%(iN!Oe>H*$d_>~6UjuEprjF9Wkwy7&CME;CG56ef7HbZp%jvYWk|^oJ%YwK z^>k7P9e6EFfkjbQsUP8g+%Rdy;R0c^g% z4i*{XiL@CsfxOCs7r$N6u6t+Fv};pSDVr%Qy+#KIGx$wIJ|5E`0awk+Rh8kG!iP?Z zY28d*Wh!Eo+>E5?mO=9;D;OQh2yN`PlZ+UWL)<2-I;BOCwixT=}?hl%~{j(w+vs zWWWqu%QF}qQ|$azLP)kJ4SJd~ADV%E0p~)WRSqVsQTb=%qII+#+xcT}N0C{ogRIh$ z%z%7$7PbCvP%1DQOn}-mu+_C?`I${=lXa;wG8@K=Fbly4J<9UW#)S8P4v5*w>K!iA z=a(|-Ak;K*bBVH?A;&NhlvTf{eoQn62;aG#EMh%qD>Qj2mw3W}kkJ#x_7xge)uadw zgY1$6&``g=9BjgB*0qUh$R#z{skq^462>9A!C!@%#%C9xeQ_Sex;=Q4PH1|fQCvl+ z*=#x~KAqi6nqkyTDGc)idSSyUx*=FGWA)!JH+kkViDm>GWb*FNc|m?IT)9aNF_#K9 zjOC7#CpnI$N<*8LfnXgit#7%wsxEwOmSloCge5eQn93~!V&ivlLgrqXI3E#A>knI} z8$)WX1Ut^c*2cR09Faq6<-^5nOmgBIaQYGrgHhZB+h@&Q80yW}$VhpeW3hktPXCR7 z!tTVF;x>6+{$z4nr$eIzTHeMy9BpE$3tMx4SL-^0=}YZ6437ogK7K<>`!x983HsOr zWkXAb*wrHCVJDpOzYU8K07)YyH^I&7b}vvThVPby;c~F2w`g**GPvr-e^x-|Au4Yj&>~XUR~y#!P7B{ZeidFJ>@*^(Ea@k%zvPiIrH9A z@!M8$anuOj97k#0b5wz6a<26~n%xVO<{k>`m$%^Iy?GHaT*(GAvGe+i!ZVCrZ`odC zg>03Dd{^f$Zgg)QOO5tv-5(w`K@UP9v>fMSnJGu9eApaS|F()vT8Zg3Lrv*W`f0>d zBIf}|<#G2lkCszrlNjx9^9=Fg-bdv>|IPel7`*R zkD}hLr33lZ;*B9yoA}@a!&riiN!Sqe2{O>_On2da`HSx2^tc(ZgTZ=|;_`>I2uV)} zm69Q{`D3Hr#O+?o{Y)r}`FxiOgb$LOrjscq-3@YDRZqA#&|z4Z@>29z!sS38(BZ?P zz+k#;ud}SYY;#dA_2lC9AQ@h)Zf%N&P7?v< zXUT^9bQ!I~tQcv|u1m`AZNTl}9O%i~T9A28Ns?j7d8Djh>2W_pQ9X>_@`)aLswCgS657RpC z4hUtxHM$^=W=RI9CTA4<{p-Kt`I-0C?aYVnN zDyUPQ&~SHw*8X6mn@EZNwBj`IgpOMITZ#4O6Q-W}Zr}VxpViG?aiDDOK(HiNmX$R<^dD-+3}PDh2dtgkVCa^ZnoC2d zouT$hNoa%Y_w0n{z+$5j=+V;W_E4Y>?CE9Dh8(*;Iy#wIKD`l}-(25gHct3jLnHsR zzW(pXp3*D0`f^yi_)5>;uwD`|dLKoJ>1WlFVg(82*5D{`eg@lFR zVE{D)CWS_?Km?27(1<)H?quI=WUI*ETe)Zh+19bz$1jv_ur@e4koXT`<4%`M+!Hr( zXX@e=U1nlVYk0C`24P=P&RY_WMyDQ`zKpaTnaVr+tXW)qlnInOZRQ%;euIYI!=FCD zPG(<%Iug14aAbs~lW2~#X>Y-zN9S6#@_`qx&3SPaFF}{4@G)=ndnEO*GyEn)x}>Z$ z5CJG5OM=;3Ne>!YRN+GNYPUaWs$mFMsQWz=`?k|}0|f@#TF~MegR}UN|z$MaJtG#piC?BeE&jt zL{R1gA~WunjsG3Ic2@WrUz3ICMUAHt>S@NIov~J5Z)Mx9LU$ajt;Er6=2!K8YPP6C z75|3ZjUS+jtGNjKn_3b=UlIWo;%!&7ZNDQTtn?t~Qz50e6~x`LGGNHulr^!sV1JKQ zGj(xt{`mw^$Em_Gb#}!pmf(Mmf3Qk_D<6+J|Ag{r)ELO>-803@i$)+^30d%LtI;b= zu5LiM_ZWcKvI^8SsH)*-wiLWBWYe?-`!QNwXoVQDs>)4QNOC);B9bU#;FzRH!G7A^{om8x+kpVy8iqw3HAQ*NZp&4>}f~ zg23@JKlq*opW#RP1Ewi|li_ycJi`^s!@0;Ki8!O{)55QVCmBK3=qXW^2!IOF%xv+H zZSC7)35nWd&fndo1I((dg5W-bLp#diZ(XL%>lv1;qYmvX%9f3Be1?%>q5}nt@6qNM zZJOBwj60+U+o`+I2))k+;ni05S+G6LPS-JSQr`~GEbSV9_e);Lt}eB*qDxI;`rq*< zKz6WHfGe9lj{JTGOcAeg&mp2U;clx;oV_1hdScnsU%I;$BVQvy5gMQ)%Uc{Lk8e|~R+o@>BL-d9KCZ)LUM$=-W8hGgq}!5<5q7^SZMhknPLfzc zl9~dnfd=)nZI63(aT8gJphj zR^VY2Ot2hW1u>OGXNRGvEVYFE!o%NcBF)(SVR+z{sYTcU4FPKCnpT_jP+2fx&DO#D z`lJ1%5u)T9!tYp0?)X+jl)z6bW?P6 z*@5Er)Yr$X<{*k#SxRVFYA=IGILZ4^`pZC}^KL8YV&FINFwyXiyQOaLY~5Nge7q41 zSjSH^6ZX@qbF*VXsXuIv??bWsibNN4{6}iq@H;BUH4@8;CRi0(lmrRM@;149Iq#qc zlz{n}H3R--kKG_aH9>z+kjGke>*gUTbupUFuUkJ-4fRE%G&#%%E5SgM!@@)0w1I!x zJ`*v<^l8#FpEToj4hCwxYwR**<6N}GtVCEoD{i&yv&dSf!*mJBF)!!D+b?_KMARc9 zsr?7ywcb5Du7AuGoTK%q4wMY=1T>(RHbFW|2N|r>gY+r=vc6~6>bn_5X_Q@6h?@YQ z8?wv2wfg~l37(P2Ai3hiS@O$|msbkx@Fi@{hhS7PbTbjiNrk%%b{uZhLs%PSA|l=c za}=nhHXH5k=fx$gMJ?fB;CyiY;ah}zM*z&fgIEL~3kkXc9xNgy0=X$^@$EY``XZUi zr};e=4-@>PA2suXte_%LvTT;2{U>+=7fg@n1PlG)v2IUglANZ2!`%-o%x`Erh-_Dd z_@nTi-ciuI?Xe-SOAj?tZlymKoQ?nLp4#kKN)Z-vd4=L(z5j&e@~U0{qev6LR5HVf z4_oVfbtl+cE?qS+NoCYh05X{wyuRa$_)}iSexB#!@y>lT)|!Gi)zQyR^?Pcp$y8#) ze&Valo?s!7)<=&uXjH9E?uuOeP&dFZ2;~=A$PZT!JQ&U^um~l$hgy9OhJs!GBOmRo z#`lJA-i*QoUqNDVI;J$+3iUIdHh?T}|AHhjiibJQq* zam6z@$qb_zA)H z#d4ks>+D*(tqXnB;3lNVIO=Ex+1BR6{RsT-MtkaFROX9|6ROw-xl~U$cMK15aWxi< zUk*BZWmy9=x*k<78s=?s2V-f*Otz4(j&97aN22dmZhu z{$m<{uc3;^Ee7enKYt(eF({)d1f(Y~^MhW zI#IMY`~T(=s@6u#k)ZbW?cCKW%<@%t!)tGWAwLq$Q_8JEb|-S`8;`;tZCN5im}S@I zu5r1QN`a15c0YH=Th}6PP0I4y;aJYju3bqG zxv^U`aK}YJ#0lJ9&>Uf}|3xH$%CcvMjB?^!`EKw$JW;@4&iKt2oPd_KSDy54h6Bep zZZ}H!Yh!|00^(Mgx`SfVB%Kz2+eWqojXID6*ARVM!p94Bd0xGx0nAK09A zQdkrhaV@(0Ar>>byERZMS4#3WmKH+bO8kiX{h=0S64Kote`StI_wCw&rlf);tY$lH zC{IkK&Kw8-ZJZ0%K-5}B1WRMwbpb@)aD0G3lT?vLoiCJB_YU^vk9g?iGH9A?hp0xm zz=IsJKt9oQ^MuogcwdWEgIVX0l&GMceMP!Ebz?I)FYORVsfeg1AToX|C@``1IUC4N z@0nAd_hJJ(4_oDT!ZKJ8Y#o#TeJCk#N|o3;s5)=7g!J<;xGN)Ko_e*H(Bx--%SmvX zPE9L?`?X;G=H8GmjKT_i=D`!acldszNlydrpHEJQzt1IALtv!a6{cF_BZ}u z<;WT1p+zyMLD=hFz8bAjXsgPSLdaaV#avYJ#TulFOtGl4aDfgPkQJgy(Nbx4MO z*p@UyV6dMe!fUVH&kug#cUn#bghMNzIPQlQyr6Zbq6dXmx%T;yxn1!;fV%s4^p3p zYX89N8!|-}dU_{bcbbtB3|rhWCuNL95v7Ye!2P&rUIGHg$^HVPvrH<-#;$@c+<9>2 zqb`+76J~EOrtf5jBZE%pdbgR66490ZlA$(d{YhPr7Uy$l{nIdm5INq05pV+c*qiiY z8>NlEO>Clnm;kqT8ncq=NHmA7R$|{mD%yWwx=oRPA+ripG*b#%&*x&w?kkwjM2;u@ zX3330xr5pZAx|*}Ma5rMCG*X6(jpbl)H&3C<`g3rq}&*?Z9j5v%4IKQRSh%4(+LOc zi>)Yun2T8uC z$iZ^)ZcvG1EKgu571qV>3R+nSBb~P%`_cKYT{D)88rA9}11Vib%Tp0wdlb)Dd^SxW zepnc7B%~FFR3=B3QF9!4V>nQ2O( zzb*+4+dSB=r)>A4_CP(!;m`+(rxL3)oH;ADmzd_s9Zmnz(hIF7k0pCn6rkSH7)?NF09%f9Dy61n&utP8ZZmjtZCDK1rD|-c?Y7N>}@S&$I=9D{hq-5<@P(?MO%6< z8AOo{L6#SxO$6lqHU|CYx({cGf&Yxu?pxN9X5~L0cqA1d2?q3(IzCeCBGP{F@~OU1 z2i_BtO7m-4!g@_ZRzvrL=Mbjf&MiD@!kFE_kvWvAbs5A99=NwlB93-)ziXVNWg6}c zCzk8qSQ@3c+WcwMJ{C9mW1Q_3JT6*POG6kF{coyA1VW^xOp44`tCWKDI|K`66Onf< zp#+54ZwS2Lh!bl}wj$5N<@usBF2QTCc$|Q1vFOm$u|&G)L9JAmqxIOp&l`M8D(JqG zzpx>?hQ=gB@TX^0IdIXvU8?=%0`ab_c8fHMy?s_y*l&1Lc=jJ0sbNbRgD}(;2=AsD# zdNbFGwy&rY4`K)#@Jt_qX%KAD=@uiN;p z-y$a`saleu+Rvvj19W1_f6aPP&pna&Zeb!*rSRs#HfWZ{obzk5(KC*B%Gx@Cn;?-g zsoUcx`PX+(hqTQ{&Q90wXl=cVqpIh9gB`Ez=Lx-|wqa9bgPsM7tV#+~WR9UMZVEL* zgGlMm#A3~LS2hXS%(bcNokBT@M>0Z}K3H_SUI`!$sfGf~A$HhJD$E870gh_9u|xK+ z@-r$-8K{T{;&a6QZ`KJQ-_&Wx ziP!3+&(sZK0es|BVIPx)#Od)V=z0sJpXrugcPWvt?2eMc(o$r}!RSoy!MDcOvx<0~ z%2=}J<*-s+P**`2TcZxF{$&bBrE>9YXg=J2+enC;v)DAuCOElu5K0R-U4jOu&W<{^ zG3thrqqAiBs`NAHG-$H0! zI-4%%0}eX(x9#vPPc7*4ZEMfKF3g4tWjUASaSYaNJK4<})Pox21q*s9r)>1MF759K z>x$kV?TB`9mESJs`be5HIC~O@7PVeBlQJ0oHON0&)2VPmKb+rm&)ukH>Azsw>(2b;-o|!6@Hv6!wss+L2(JHz$%XYV2Q7ryXO+U$|>H%s;YZinY>T;e*JS%`^4AuNFWHr z53#wsI-=`-H;Rma$Z763BsFWDDfIVlCyIJ^wn)9S&DdnO=~^Q7;BTowq_XTN;o?%g zuAW^=nTpB5FY0?_>7(~M`9Q#O_`5^z)z?Z8H$%1qpW?YRjIjTqa^{r)D)adc?6`AO%3F2+cD#IYK5~UB zGHAFi5vKU%pgC<}-2S%J4&lbl7wUf7;}WSLYSd*0jRO@kVp8aaI4Q4K zUvAZvW;UI<`)16)Sy7D5v&-OsHFl==h+gEv)otYC&5Wmt6&+{fbv`ROHb6kNGAozY)@7O4Vi>o6Q0hsax za`gMYrdRLXF=i2uRoX4knyO1dnD^+5_`=Zkv-zes*P5rP^{`Cy2Ne_HbiA-1YS!Yc zi<;4;pFCV42>qS2X?_Rqdf_xxb3XV%4F9b4n_wZ;h%WEquv=czxipY)$nj_IHYPS* z;JZ|4_EBcTnLfHIM0v$73Vces?SPZbnIT+y+7V1s$6Pcut ztC^^6Gt>$(`4+~csRIQD0@2LwfMF!0&OsiR0K&NbbAP=XK%FhgjKIQ7GCy%O9LBRU zkoc<*lQr$+gRW?Use$6tJ(0S}=&IhH=X3x?X^8Uz((X>0yE*QZG>1{kesV@pfFtzv zrOYAhRSr;u+XsHv(8n(uxH;0y^F2(l7|+6U@hdmI_29?@BOy9z+n<1kXuRo%zpJq3 zxp_!PXkegE`;{_>?kIDGvvL`QZRALclm3Y#T_=q)ZwfXs(FDr` z7ClwUS8AXnuPFo=WQdqw9jq&w1ET^jc}bx`AG+9G&fkFI|4wNs2kp--L92b2TDyU z@SLBK;ypV)=|>_znr6?tdNhK>gsVPEy>INc-?CjcCy^ns3ZlkI9VQ(_#pj5o9 zA%=4!_Dxk%3jBU!T*fc%9ijU4J_2tYR#V#;mBkGDQ&x?T(ztPfjydRrvf{Wu^ZP+= z&6fmEjQlZ%wfk5(jOn0Wk3bU*=1f~R#9@g+^s1K{$CG+J=pyA zf57e2SU|9&DKtbv>F6x1KYF*x&Ab42DKrS76naN49r(8VVKBx+`^4=F(NArR7zs-~ z)W_2v@4Ibh*qTijR|JYaD~oXI1$TQg{%je4E17GN<@?((V=D%L0~wiZ5>_*L}P7=BjN=@Qt^XT-jk`HkKBL!43OM7^oTT8hSLimAQ4XQ z_BXzH8{UxBJao-*U>Zp&>sOxZ18@du?EBMXAC1nCt+TFfTFB!zx!>TeiG!D-C_tvY`+00w442Mq~QsZ0Xt2f8;i6MOu_0py0tz2P# zFHR26qy;eD+bonjayy_O5g^0Me_siBf$J8 zIr6l1OwWrZMvn*aVh7uwIQ-pdJ5us)u`xbMd4{MQkB09e$e>;_PmTVIM_>CPB$Uyz zP`EpKE`Nk|LRPv$YUt#hy=WEm9qV|3<$wqAVc6^p@Uhk3(uu(+bb#O%@G}lX+M-+I zDwT44nx-CQ^l~pFeoh0Mp-_J7(JJX1<7+k)Uv43Yg=gbW%(W%)uuSMs~ zlL9{VNT;yvThfr8`5J<7<4-Qs@q_RgEldzL{`Ua{A!XFsv^IJ&T4_Q>(ZWGAU&OFN zCX1Qn{e?*MK3A1Oa#Iz^6H@}sXct0MV*=@>RvZvY4&BSvH;4x)KWkSLEyH6fx}7toS!oDgGvtHg zz47p(J!Lo>Z6AA|faAufx=x^?vOc!Jvl@czxVmC+&gXG7BOQdD44OPR2vE);toL$g zHZ>yrozrXS+Tis5Qez?1gwS9ez}x#Etaim4xOu`!-z!d;u6NEU^%2xDnV_@j=$R{W zILsEx8vl@+_^9}BZ~!5lP@;N&os0ar;s@9bFYwnAUV%p8>n(|UUFX!aVK_tN?$t8! z$41|A+&Q92HwH&(6sukwP*R2!42!(&J$YP_ZdbVW*BC#U_vJ%3J+B?t<$Jh3i_;zO z`BVV$`tE-od}_sgqELZ8_y4DM)DPeefcmPA1OULlfCGsA>Pe8l>N)?1&;bA2GysKQ zl3=6YV&EGPun^o3))32($dEjcdXWB*g^-U>EKo5}yU<+FG0=xFbTDx+x3ILZwy;^S z&v3?Y&G7K>>hKBhX9%na0SIFVmx#28A&8Ag#7OQ)9Z1i}HppWrOekI`ohZ*h7vM4~ zEvg@CHR>iBA{rwa2yF@-3*8*O0{sIc6k`Sx57QNM4D%98533q$7n>0~2)hdh4aX9v z1?L0T5Vs!>15XVv?yD{0!{C3zSHt(gZ^qvvz#`x#up&qy7$yV|iV%7d_7I^EX%Vdw zV-hAyeNDVqAZR4$!hB{=2qBeGVg z{$!ipoqoR;yvTYMxf>ff;(bcbuZe=djyTVo_=;ogfOZ^nN&qGpz z*EwAJI}D@T6JR5OlHApbAhiSaUv6%uaT6gcT%DGq_Cgo}`$GF2LQi-Z0Du*rN|E*oCs8yy;O z3|&X}FjDtpUTd1L>%#9ml#Dh!=~^=%S+(lnmGxDmh#M4IvyQ6Mb`vMvO2LCkSiH7o zCTD8YKmW|KSQBp6Yp>x}<6RQw6}$6U6v}f(nf?(%ZQz5yc6C%sv zmBDAO{Ogdx1(Lh%;71Wy3)1Z=RIOo{B@SeWjQviXWB&4uN|%Wh=;08*YqZkOsepK| zV3H1QyK6))5TdBOp8yp4t^K#1gVbz;R(kzXA7fYWvp&J zon0RXZ6%#eRJ3!BF_>0FeN5_IACtF1sh7SEghXG8gDqSfwkJ?{HsvT65(**on^4Q9?z2 z$FdlKBNQb7R|GmBD^_s%1*%#*L87?qD+jvPRc+e8I(f1c+a&g6ozl~xCi`wFQBiZ? zC4$gB`x0C|xN!GsU0y^BsX`L$pW*&Wd2et-EAk1N$-tjgPfjS3-pg=+k=m%fE6n9M zE>beehtbIG$`xv#;6x;PR#u3Uxo+mfC(l8lNEL&~lO(6YuU{uKBhrBuJ00KHlu0vD zDN_USKkYJ6B5UwWs#cLVm81G^sct53(`0WMoGOd@=G0{p4+v9Jv^O{{Q2M=@(NdI9vd=uhY+=DHz?of)JzY&4XE7@h;(jLMiog*xG7Zb*^;jz79?AG) z?LbtVf$f;l!V&-Z5f*QeeO;eL=Fjjc{-mvlE|?ZX<SUob}|T5{pe>O024 z-&{7=JTBr5kyP**_>x9=gE90!ykKUULzYA@AHwD!loe4dA%TNYiY> z))DKArVW>XkvZqRsvSYzsZvE zfGFgo(Lnzq1+B7=#lICyN$j6=zETKGNqn!H-vgJ{%Q|%>{TW$ukQ2pR`k=6~U$j1) zn!^Z{%o1xl?bMglBtLhb;(n|`U#DKWQJLIp&_HF#ezD;wL-f3Wo_cK9Df$uOhUHp2 zY$q%FU1xm=e|3x13!FGDRFc(B{dlt`x8X8fue9niyk1MfIvn9a1C9&h+bYY#2%BWy zH;>{7PUkc-{)nupBlQvgu)(>>yt`mo?a+vPuV^BcU2NI!``uJ1Q zq7&v+viB&1uQ-?e28t!Bl$krJY&PVaJecX3@7NBR zNeA7mw{J+kAIJiqGdz3S=)Tub0#9-9sSg&J^yPGKuXn9tLBH-<(rv4Mrxv>fRsLY> zWjb3WHj@XF@?JH)-t2b#u zOwx#{_LXHR@`l*WNSrPhaWl488-AFDrlm`BtsV8}9j#!)y}@kh6hgKD4twOV4L@u< zAb)^9;VZ}JL!ux_uwjFMNTvbiK7YcCv&q8@&_vLbI0)A}#FXOTe5{2WpnxBsux`G5 zUi7j=q5!JZfcO995vIn*+vYT;#+JtBJCF_7U@T#iV ztDHfsrxazPAJdZM{>^Wmd})I5TnFzIUt8v(k|2R#VbOCWvF+4au7>_}W{P53Jt8_o z)tjFK=3A!n{ z080H|vv)ct*eT?EQ&*>kBaN%f{>gDAac)VesX6uz7LLZ&R6QG1>ZKfnZrdoyLT|4t zFh^YuRSIe=<9*T(ifa3N1rVPul1997;j$m1ckOp3NP2_E^gb13=7*r8-l-xVE4kh?Q7}=?1J$pU-iQ%RXP|qLOUmF?a zBl-|KJK!YK9Dij-{9%zI=b|BT@FtqtrQ21L{IIFPSyN7~IvNp6({|E1_k7OLXTRh% zNbL>`MYs9CWZiq!zTZrg!WaOUd5jgXTN^pITx&Tac+cAM`01ZKkvtFOs|4BhjlO-7 zE;O<%y)CRLr75N=t1GmC@3P~l2ZqRZzn(hB_plw?(DxwLYx8xxP)YE0x6-NSb*I!Q z@O7^?Dd?k8xm>mxulaP|Zl+8JqYFG(g(z#0D6hFF=f0>QhUjbwW9NhYn#^VuJJa93zFB}g zK5nL%wUwOa)KTo?xhc{4@gBsB{cEoCAtSu!n2G6y#sVHrtN9yc4cP&^L_ dc`{EPH+n(;EE=F?jkox}V1NO@K0g5{{|8v1?6Uv> literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 b/assets/static/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..349c06dc609f896392fd5bc8b364d3bc3efc9330 GIT binary patch literal 12028 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 ZM6wWJqL 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_SansSerif-Regular.BNo7hRIc.ttf b/assets/static/KaTeX_SansSerif-Regular.BNo7hRIc.ttf new file mode 100644 index 0000000000000000000000000000000000000000..537279f6bd2184ed32f1a5168850609147d58ee6 GIT binary patch literal 19436 zcmb_^2Y6#wo$op4O7}`vz1x<{m1Rq|CAp~D9*>(`#%0{cmOagFS~9(5Qb;3&WKzh& zQW8QEN`_D#$QjZ|D9KW?OJK9`*wC^hz%H<`Vc#aO`@xL-e&t zXrJ4Cc+Y{w`t#QjlKdDZG45G7b{O}qgbe)*rEbsut9O5ay7r*{YeE`-y?58b^5Wlj zf1i-(8@QL;iyPv93SF4L6xUUI4;(-Bhhp#h35kWV-fR00EiKf2t>PphP5*`V-yc{w zb(l7o@4@x=aIG9%IIwH!yEktGJYOb6^U&c#$ByqjJp6S+2In#Uro%^f9p3dEyOofh zEc!o67>S~Mp1FW6u!`AYwqVTWkG^j?8fC8Yzlzco^f`z=FS5spfmn#{F_Tf&uxKb1 zXNh>!aU*4GCFX2iZ5Q;Ia|hXnIhS@e>-e1UR4kgX zr;@R#+v8-CbN$NY6eV27+)hdK`z2g>q8_))Dfug147Vx+iFh&vP%gXl<9;dzAXENe zK$}V?Q~ANo=4-B*6f{Q3NXO`oos)tni>4ZWUS{jl zqRwnNe%wq~^g6fZ3w*>5y2B(~J0N)KlnU7_ z$2Mwv=H_|^W_t}5xot>qNNqM~9+2CDNA*-Ht5oRup2Nnb2D8Z}vCUMf(f`nLY;|4n1UsSUQcH z`!>WwevefoTA&i;`~)ijbUc;x1pJjMxUneM2VjGNYAzR&NDBN;C5bvlRIlH1)Za9Z zH&=%@g^J?U8+C%)Y%X;Rx)Os{YoPDc81+WVa%rtr)EOD2PdQq~TI;R0nqHgfP2JgR zC${X~7?_E6EwqJ4SZPIfPb-sK9D!;_%c$O{*PY7=8k3HRjQu`$&B@74SK7pmc%W&1 zu_5)CQMSDuBWfW7V5E?5@vsm z=uQNa9iz;8jjgz?S>reMRZ@^;nBueXkRj5zDa>-8C@ZbA>jj&}Tx)mgsCm4RdWu=O zzf|w+NJ|zbSAonzsYc&iQ|=##nY|UZu1yCvhL_WJ-R4DebaRj2vgMRU)VdfGg^wRJ zl-nm*L$ImAUA3`AHu{T;yxQF8mN}=BmNr$U^g;!pWR|`}o>6s>cveg4rTS;?&8h~< zk_@hjbTeemK*Y0p0b|_OR4OKkR*%OY96VzimhZn`9=3I|CTI71DF~;*eI4Cz#|y>ycEQ zw$3@Ox;USM9(AumeFanNQk_a+uLc7hB{ossCJG*_rHF~!B)zS~ph?6%WeJTzZK6yl zvRU8M#`ZdjHC@-69S-yLT|$w=YS5OJnk=PSgOxXwmTnLn?l-k@dNr?phJBm$6Blr> ziNGNlPx%rYa*xdi&Fiy?l|h@Y*-S%J)lyIyZUzW3|Um^uk!3-JF(8Qb)$e02J(68q5}4Zc$N}CkV^Pm1}cAkU;wRiuws0^ z^;SOL+#+lghh3y!0R1hT*IYhmGUj$m&NXF0==-%Moss4q)`~L9ZR}?oZy|Qf3 z$-)<4lY*=NN?%}Sh>Zkblgb==)y{GBFVRe?f@b0>mn$b#H=Sr1*bq6exp`!Fb6ha} zK(uw1mN*@CR+rNjD=YD^11%N(|MlJR=GmE#bXLBrjQC=$H}`|n}ES2 zSnwIF?f?c7msSThJ?y#5mxv|eesy~%cD$`s@?4wyWSN1lI=84Z$Fk!5T797W|ds)8};r-PzyTu+gR|Db_}=GLOV} zFw=m(E-(-?+<$-WNN+f?!P`WiZ<}oEwE8Md*O`5t*IUfpz4|Jpx6weSM|&dCMCAr9 zN6>BbZ-GfWAZQ72F1kS|Zf}A?eZd`?h7^6MXSrbE;sX;61~i<5jvJ^VzsTYR;n>Mv3dSn_1 zP{wrTjkPtQ5=TU-V5~~6)6uTD!`&Jys&ooX!;*RW)RoxAtIMNDt4)d`f|IJ$LC zEK=%c{GNd$MdnRz4Xw0VwN*_7IOnfz9+f&+7til(@btidFS zA~(~j&y|b`l`8xIpF@1XT+>K0L1{y*ea6I%h)9zIqSy zW07kU70!UpWH5$`?NDhCJF2UkOIw)6M71=EeW*(g?OpDztF8+^xO~G?m8RTJac`=5 zuBpn%m>jJd?Dt1i$@?uN?;dpzsan7R{UM2h=mPihVwaNY=!5b{ebSOfSM#9Oz|OGN z=~2`3xj(c<44#38-<%aqj6%nRAjQu^iv6UXY=DJMHP%+SSl;KlAgB_wOhHmrw*`v? zK^fR)RlYePx7Kui?^z6FHiR+lYE6TJ&wDqr+Tbtvt)~70> zvDBpAage?-u&=+R#A9?1R%sjq^|EX3`0+WHTtDCdL0y~MlTGoKmUz=gDh68jdDuHT zFXCpHbgSGnT+m_pt)==`V5iC`K$}d#D^$739Sq!1;gv)H%(=;XaNq0h#?;18iM?}g z*JNK(PwkGTu-zEiXrdY>cTCxgjr}@SRPO#_aamIfd|+)=v9+kk?5mLs>}G$ty<~g# zslDkME%W)R1;a$UrpTnxZ)Aq!UCy$WzF=vcCmqwz>jTZQNF~c?T=DmC*;F+?eFof+ zfDPY7g~&rFXnqRypF5*QDXO(m`|=n^uf3%2TBO3QMIk;Z3@wBve6?nBGy66@N@T+0 z92Z=93z(V(N+rz~2k z6(o&OhoFp+6gK}u?8}g)AZD(va)|28fgn6PzNzv`?_wz}s7D@UO?qjtt*yq;H{LvB zpd(Z+9$+%FHN^&7Cl*;J9i$pZ8P$*WZfYEw7k%Zy=Gui$rl)RS*k6DCDG-O_w)$JP z3{^S<-bi!IT(jI*Q595+PGAZh&aQ{2XeA0Tt?)38Y0LrZ;;?(5(}F(kD_7SG!5{)y zAS^kfrRQioe*N26GTEK`1#Q#PPD7oiR8RF=w6ef{#vY@&kLNzl*b_`RV_fxJ-8bi# zw29Y^rIN%5q!V(=7O`dtsa17FW4NLWIt1(5V%SCbohKDEx=LhGa_~?sZwoo~9DzWH zsn?)9zcF|FyFG`a#fGXw+Ti|Dt<5#t;;y{;N@-+pVA4BWVeBpoRz@2`{nJ}LjXgS6 zX=jg9jcYI%C@Sjr8-iP$R)1xv-2lgn9ia3TD#4X-Mioo$D>nT(s+HrFvQ%4Xht}Kx z*%)Ha0(MxXV(u~Ina+8hSLxt77!C1IwFeJJV6B0Ui#3Ec#jVoxhBjZYuQuA;TMu0? zggd4_x!8Mf?1Chb(#w=U(1v~#es@>3-p4;|Lg=0UBb?ew!*!+Ue8RIrM=D(6{f1I5iqc08rnobu+nK4R!^C;Uiee#h_JQ&q>m9?nKWM|Iif7(-eCI%|uh^s6K?O}amG3{i^zI_L0Plf9{G@u; zJX7Su8y<&kdN1wYyEpd~dp!4j8azM9(Z!e<_}gE?m<#?k`p@iTkDnhzE4Pogpp{1p z(D=XztyVw{8R4F0Dy}*Mv|<+(cMJ`T*aeM7Bh?OVvERfJxnJh~S?V3}>D?Y+D8-=d zsVV_?6lPq5(dD7gH`t_ZhsWQ*M9Gy|rgZGc+m&vct>`uL!7Gl-W3}vY@M!1lzFxb% zCig-2Ls`pI-K%*F=RYXl>f|j z(ayLZ?zag}vw#>d$b!L2n{C@|T57QA?ln^Tdv!Jg)!x3HnyV{^y{?(khYb+4$IU`n zy)(DFMZcN8%UNG0m_gVk8Zkw$nEl$O)Byc_n<4jN?(f$yzY^=)FJ9k`fY>%w% z@_t}yB^7|rb;&O0;W3BKZ{xbrc0o60?tYhP`jFOqa7dn;d03hl9i5Q&J84lR-`=K^ zLv~O1c0J3z#uZ)e*Oc1lM0bM{;p?SV->%Z5n)GA6u9TZ+KC8i6e;}COdId5R3~@nK z1B_rikU-cES6o%dDv@w|ErkLF$ckuFi~eeV*ysx!-j*j&%R1#OU5*O*mf0&5g^Hp@ z)4p$7G&OB0Ni2`cF1MCxsGs(Y%1u2QIkQHw%5_p68ZRo*6|R84Z@ zWS7xkj5&A2<1{n#*N>VeCnmNPPk~(y(3a|*C0iOd>?{(U&Mp22k(KG_)vxIf`WsFQ>n=f41aNmxpfH! z!uAb2%gT&4YoIAK>){ULTsq~G@rNx;sDLTKw zp%slAYdZW$O<0UYTiXv3)rhb%3D~L z=mEQ!&nt25kL@m1vH9z--+Miq9~-0RA7l$^1UG~Il>ycL=wG^)hf)zhgqz~tG^{N5 zD_nV3O2vIVE7hU#=j`ENmFq#45omjI7YdY06)1n_cbHrFFy`hFsef&5uK8RZ@J^kc zYe7_iTZ$hS2!cPz6_O+hl3!rvXpFhb#Cb|}#mnx6va1lS>8}z!iNVl^ohsc{cbwigM%PSG@$qUL6b79hqxY@m=s^g znc|KQR*so9k^~9ilC5dm*z{opCWhdFh<+cnczt2_>0NhJ4BCM1!0To$QV6cLhr7(w z6Kv}CeJl4X>i+xsLnVA2Ln;$hd8!GyS=OII)1ThLJ~Di+Xjm9SzfoqP4+BOuD|LYuZmAO4 zfgos&6PDz=yN9|v1#HfWKxc&*i3F+zwmdO0hKUCQVggwJczD=8t9R4aSATH9pKt+R z`ufpfK*UI3^>_6B^abQ0TA|Mp_2x@07XtW8T%{C}Vqk#kCrL;m1riP?LJ=@1k?>>x ziCeq+E5+onp3WKCx43n+QEEzTI_aR=P}xwYATfxW&=9SxN*c6=j(Alm{bVIIY;M-y z_ko~P#|)cdR!wb5rM9?K>kHR1xY6(}G`W|(KBdG|=43{_gF`*E`dj)F(5D#QGa|cE zj|o~B!3LaTHK+q5YCIJTs$6j7!=+@w=1ONqw-!6YEk;Xct-H9l1y+G=pA+mgicL&3 z#~O|1Shb$MH!8bNZEp5Q2hF+=1ySMF-jf?EDWQhZ8z*E|t>e_K1pOWW{Td)mRVt?d z1vC>*g}C~?;7~#@!<&a;$ZIIHJGzWT{1k{Wx1E_L+7csHeL&}OIh_m%0UtH(9~Dcyx(QApAK-##Nt~*k zsw~Rq)VO0)U}!K<2sSa5rx-EtG=VaS{k@+tNRXnlE}3UZ#_yD-N(_wGIaW%^96 zhp^SJuExlh)!rr08ODn;Rp`w(B?zo;iZ}?4eURBZH;4SGsUuR;SZQT~P+k?asWV=| z?79DXHEOSk+f2G{oXcy9E4ePl))WceFw<85@mv@R{N8k&j{KOJc&oxk5|`%CZ+B zX?0i^r(#^5-S8c_HoTm=myz0)q>W9j4rxQ?GKycI{Y(e_y1!c2c`5xbaDqP9+Ofu6 zz~JRDXjJaz&lcVcgDv(@s)wH+9CBU4Xk(Z!jZE9|*)Co-x4UxR# z3en;DQx(_3`787YS7Y?0>vwu}=_RvtY}QyIPMFi}P1QARr8ORFhPFKOPG;KP?X8%- zL#F1J`ltLgW6O08t&+Dc?ewR>#Ra{^b6K{FY$EsYRYAeY1nj#*U5ckfumhzto0eSq zc;}Y1=-AYvgWL*Ai%r|m*_Vt3^z^S|g7uxF(>Ggao%joOy)*Z%I5kYQwQs9}CE*&o zoj#?mT7^}WBBKl}Q){?+;3RO>jkqEZsJ>uWfN9FNz1L7Cw${n2*7n-sy|mp@8!RrW z4iCgzs>L5|zeP_CRl1h*SN%#138MAp4^`I~9h)1v=Ayd1bkTmS%un%<`BQf$R3P6I zc%A`ReyV#?lAEVwM(4KBcXUr^dJ_6mSJCJAmR5EAUT`Od(H<^+jwn)^5+_I@la<$C zD%JRd5u7=Bt;IE$n*EM_abiG{hSO1#SSB|$dQuME%*gP7-6Hq)cUXiHQ)ArOkYCyTwL1HE2*)A9X4n)+d#?z zpN&gqHP5(0*{iGbY!HG6pzBgKZ7fM!9ZKs4quChLX*Q2d-Fhp|JUm)cXtAG}T~bMp z`}C=S8*Ugld6gloXR3!afEAub4!jsEI0{~!3#ynS3cu)Ln>(N%*` z1F%fSY&PpMwis)!y*Jkr)I{`-4%N3nlt90Td2N_iP(5%Kj3e&gDT<_>hXul;AEosT z%s#KD+bZTh2Kj-{5YOd0d{iE0EY}DA@Hpmv%))bEB`SY-6oW@m;8LrcQ5|e(DGO7x zEE1^0s(t1yM6`mlM6eUrqf&eCenlvk%?F<}~hS#_OJXlO{&XXM;#(|WmgHPZ1P zEwVt3Rhz!jx_r&cRHmf^vJ^OdPtZVL1|0aKF8~hi-`hErQV1kGDim0c=Y0@Jz$*&! z)ss&@wyUkptF$&X33n>fuKF@6@9HvF>GWm(j^(HS`K6(u%Gx0+ej>QLI9bVz8Ap?B zsAEf%qYzWgIfeXC?l*3VGMNpHS6_l7R*wZZ8|z&=7X zMnP9<|``K0ADu1cYXp+kORi%>2XsWHP0fwhn zJ88x0FD_6B!DSRAf<#v0>^J$@sz5-iu}Ml@omT6(VuBeAA;&nJOhXu>Roe*qUS=Cr zt55S*AFVuJim*Q#;t%Vj#uc4R-`BOri>r^wd;iK(`IJF^EYy@6_- z&WA7(C!G=7IOQb9=t+zYUp(5ulK^f+Gu)}!!nU`Yd^%lqpw|+xBkwU`4;u`0+!k?R z>;OGSKZ&tUF8_Qt+ChJaSKg3v3xEsvi&H6KI1#K3r6ydCVS$aNf_iOy%HwX0)C9Ep zActaxbs{s){k?*J#n0)G8Hbk#3H>o(2#Y(hqM6*wb9M)CB6L8G3wBK^%XOrjK9uk8}7Zc9VG(8K1|Ys@0or^8hGfV5U} zI)PZPz@v z@mRXc-MtxOS-J7V0~Sj6TZ+HvH58?%<*vvkGC*4&q%;Z!}%`almisHQ$Q<>0h%!Vm^{;*IM# zq~0pycOBVt_(&?Lp`JVS%v*N_i-gw*!Kke5r=J}+Xo?o^%Y9L&o>GF&>@aejJW4Tu z4tgCwQRh!I@H|Z6-N4#%8v4xnRe+GmWO6^5naO=EgTuM}N!bB#b3M1jPmt8}Bj(|! zM`zD(W_!-xi=I5Q#n1A1W=m521@0vTgIL2K#EB2zuj<1`De)EI_zAZ3+G~27End8P zZo>G(AIh{tV0Yd%Iz|mnS4a7^H=VH2ErnS*A9-|9EOX6~_deBVP4(k=*o-J{%`8EC zafh789_$3GDfc+qWX)dDKBHK@!glSpwAI{GZK*jnGl8dfmL~grP}?n^H|+xx1`+)WYQqik>|TK6e9R5BD<)I<9a& z1a@=F$-&M))5FP#-HQF2&)fi9G;z%MvsL_+i1(I#XzzQr^-xV^I4ql)fkj;7=QLGT zLxaJ1cy{W5jv7(5R%yRNMvMK}i__+=*{Y&F;kwY+ z(rlk-4%LPC6jjZ3nWurRzj*Xim)9BKINN!9pbX{(Ak_JlCnV3O~QRRrq$EegPaa0)IpPNkE7(Lvj02k zO8j}ZBCA2j`%)KHOCjsDzVv7GioUS)bGphmL$R<94z&9J{Ks1`O0yM+_N+mY$`nMS7>(45iyqgK)0 zs{J(N=Ad|s_^|kG$sye)J*V^OmUR#5p4NRw@6bo|ZTemMyY(N@|3sGL8TnoEIYXD> zLBkV<|7WZ)9x;Bx__9edc})$bEv9ADm&_XTnE5^Cf3nyt_gbE_eBUZtQ`SD~ZPv%F zui0vCyKV2Veb+A9qxLQKd+pzHxEu+`5?-eqXB=O3{9ng8XQgwKGvmC<`CjMeoqy~6 zPgk{T#I@l1E7vdGE_cE`=sw|o(qr}P^L)ee1J5suG)3h_!$tTui7Hc|PtOfc8+KaS zeoHLEFI0+L^Z^f46n>7JKfcGJQjfR&Uj6{ zdIuTAJB9llf{b>4Z!i;VdZ2-xRPwc{S12r<8LUGx1tP_F#80l zf|Z-WShJ8NW?tg0VM~DBM|R-t1{|Y!6Z$F%FfAE^UtWpQhq9DLi5G39xE>(CA!%w@ z{VM$>a%#UJgF*=z;P(sdL+Y4m(B%e<+ehqb+c&Y^r-&KZW`ehwo<$qz0$LN4d(d|r z>zwBEsdMLH89`ew-e2c^@gCqf1MVLeu6L<;cab_yH{inQRmW)qdZlnLbx|3{7{Vn$ z@}SI%n84MJiH|QT$LO&tp8n07|vnt;k%5TX3yaMo%xc!LYgSw zb?bjO67m}>`Sri8-5A@AZ&7s;MJW@M)n;(>HS&9fkaz9i$qD}SJ^>7XK$Sk+gC~w` zf?8_GzoTqMy9T>@1J07SlAYulay@y7JVLVMN!r9x?Cb0s><8>+;je`c2p<$45FQdf zDx48Mp*WRdrEGN-Gbk9@fh_mJWh1}F{+4}@{YZGvMI#>;9#I@hky5(4y86@ApRB&R z`pW8$SAVqn^y=qU|Ig}~)%slR`467I@BH28?>hIrbKgDpopb+i?!|N8I`_?UFTAq! z%KR%kRM@fTU;dXRVI@npWO`>6W#~y_9v{kzlXIDD+?%bLo!_mT-jd0(>V>Ct*s4oQ z{zb3PmnE}VlJ@sJidEC|-H|K}XO;Qgkt_@QeSTjgD}DJ5(4qmo`&&T7U^J&ODcrpfwtmHPPIN6jwUU8)A6I(Or z>^+@PvSVYo)j8``vdz5KJUgqbY z$-I{2wdA~aes*@&3u7^{0$YjY7@9e|1cPLxVYvn@=Pg=K(bO@B&!cA99lEb(vU@T0lb~_v%JfE zj|#0EepGKJ>E7---@4!!!j}q?F+U3p0faPApI3TM`xiJS!)<5C`#6n z9^{yz0uE)Z{AvPMR+V2iOk`DwqJRcV06c3;&nu_rm8=b9i)8KLp{dM@X1Qm!Dr?&1 zKNZP3!b9Vkp~?JBuMhVf>V0Q;h1kjYn{)JVQY2B18?U;u#!g)4+O{2+2VOWGer zXsgPDD@^c}&fcj^*6#0Cdb4JTp9vd#zFV1pqNs=>N$Vip-QAo5PPEa56{jwgy(8qU zgm}Awqbn52dcrG|mqnmAFN?z~0xwI#D;i#U!z)@|mWEeEUY3PdBwm(>S9H9r2(RdQ z8480MdHQF?c~IJ~)Mx2-zFQ*M@I{U8^~NLl#>hpDf%V3t`9>v7vX;-f|6~t{V=TL=jna3nt=BCqtNpE#Qizdvh}q4 zn^)r0#c@r79zfuaj+w`1S!j-AQ{j3~TO`~3=ek0$m(aZhEF$h|rC#ahDgmS&IDNX` z-wzd(f#HMJg+*$n)a3+)TcNw$Sr58tpiZmRZYxI8oi(IGyH3~p6{YPo=G<^;H>Ey5 zUsm*Yuk}{4^IWHNj%Utl6s_Vts|jdJX1lqjm7%n;J|OV-&1Xe$`_k=-okc@=tE5TK zFZ;7v7*!}cO?ttL`ur^P!{uWZ02=hazi*-0>&FUxz!QbK3g-JGivSR=l0_&HFhdK0 zg9W(^63n>3trZ7Cz-K{|URVpl(zZqm1rTTh1zPyqK&FlBO<5VrL{a+u{d`f*#rCx} z6`4Gxvt%k$ue8CSbLd(ACMI2HMOLiF)c~5-eV05F-z<6a{sOn4`6JnmwbfMW7uYq= z9h}QiUSn}5^hZ6XVqeyi&Ww3sQ4Ono zqt-~63v_lf$UGW;l#o7D#!#WWG9G@Es&^((QSVIhKK*E#;(d5!3-7}#)4UI_%!JQE z8>Ugqpa$EH+H4q)SE#i))bjVX@_v-JZsYyb+IHSgt?l6b)Y?wIW-q$U^EG*8fv?Fc zi+oL9S>k;*p|Z^T@X9XUhgWv93Ky>( zP~qaWgDPCSb_g_XTW8>5^(xzmh9miE7pg}&(RsIQH?EGs)}qS$9M4yIpA%{y-oX2u z#NdtVvtFfMsUuG1t9-=O`6};z4d&UHpYqy#m3O!O&HmppYP^;m3Mf1zREk?g1#N=^Swj8Qs=uhU*+B3nXmHhw_#*Qe!koDRo>xr zzREk?5q{L5dbU~7`>2Kqy$G6M%VxVnS>3LzP&IaH&7emJ0>I}d;7-!JVe9fC-{BP^ zb)T(43{b~wk9l<#e9FCHHn`4aOWV(UC3T5$Q$u`J-!|E=VorgiPYN6Jo_<()fX^YAzheZ0ly8g ziyQ!CL#R)oo&%0kCvmP57-<84!k^y`@1k(6wq+UTh%rG z)LfCvX8Y4CU*3CKg^AOK!=R8RtlNZqjskd&lih&t1j<9ea-Rw#r}Ig*S2KFXK=D6E zu}gWusr}#O24AaG-B{@=%yd+pDc@s1 zdU82Fi2nIiPoU1_@F>P}$oQ(0knv%Zqu4jR@5QhUUor#d&>xoy4%-FDE?rjvR44J? zr^@sqKKZH_XtSWM*hR)saz3_VF1~M%1D;kq1Kj}VmjLlTTpvfh9&bL^8nqh$c^@$N zpNwI7C52zNh~{gTeO`xad>aQEMuRLWey;{eJU!qu;6%p+y=B3-pKLg(a3KHb!YQu@ z`mz{Lvv~1@P8oEZf^R_j@y(QK{DwmiGFyui&k*!V1kg8N7dK(u81zPhByqae4Bga< z9oB}-XFK$N7tYOkNH4JKC!4^fK}g6jH17y79s|85z`H4e{5nqOGh`OuUEPZBzae9a z-0t1v?c|@xOH?4=Bd_9XD)^!X`62lcd6|44d1#61s2)#K8Sn(SiJI~22UcpsZ%~~j zkCP|J=g4EyiG%wZ8@n3S5?^A^m+6*5*;OdJwfzeR4lJlwv6i@YYVWS&3*zv?fyLzo rmf6R~_Gu^g?LmhvhmY;sf9Rkvws)T}c5GjMKo@>bh|`xM-)s5*)si;6 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_SansSerif-Regular.CS6fqUqJ.woff b/assets/static/KaTeX_SansSerif-Regular.CS6fqUqJ.woff new file mode 100644 index 0000000000000000000000000000000000000000..31b84829b42edae20d0148eeec0d922dad2108c4 GIT binary patch literal 12316 zcmY*ZYjcwbulTEV8$@`t}$2ry4J=0ZF)l+l# zpT26!T|rzN00Q_HCOiPbe|MS7|EvEu|NlinnUMtmARGL)Du2U3tT8;o*w)Yi03gTu z)*Ar;5HJBcJxF6W7a{x9Ft`2on*;zLx&QzKI3tFCKIVqb-?2<+ z-#$?P3nX(JPqXiJL;(Pzx$kF}-5}`Z7N&+K001f5w-3jEFq#owv-mcC=Th{o6MlmX z;syA_!q&y(+t21Zp6eUe@7TDhHulEfek9*I;O#%q3=_K98hU)cm*l^kiT(o!BSM^= zp{?n6&N|<5#Q*?Up7GLe9S3`77XW|}?A!Lu3`l^!gY1Zdlj(OXUD$VA+BX_Z`$0oI z)|jfCMS4MbqPtJrX>HU7Kz77vT9+W%9Q%sHF^?#yVi6AVJVXl z-;%?+3k~e0qQknqT*k=JMcfHe^lphUw?@FYwL#43yHlh!H!V2hU)iIt7C3VG{ZM`n zuC>lH-?X>^TlRrjyH>v;5$Q1%xJd3XRT#)|k8bM=`S1y!-rnpESowWYY^{_7Q1O< zh29LgOFxY10>PiqG;&Xh^CLVB)$~hna!3=JSRZTf)LRoVHa1a*D-x!qi>%b+%T1GfWKU`8 zk-aOT=Z5BoG~{a~JU)CG5IsLWY93UTSt+x}IH-pTx$|{@d_`nEq%42E*x3H^efB#Z zgciSwlHjF|7<&7pqc?z7p@}lZ%2%U4@n_**&bEv>XNWPXrxKkIb*Grql;3kkXoPC5gq)=Ar!V*t(IKMtUraZmN^l3_p;+~W`5YMvl}oPcyFIjCs2c-zhF&sq za6P!$V7b0PWgq=z?u8esctZT=yPj1rEY*=Mxu#FSAdW=B{$TCG2RC&vLnTwjd z5RMA`eIyoE+0VP2H0jmZ_#|_q(+9m$9G)6Dxvlgjm7uhmM7eDDx)~m`{iqoZiL^u{wTK z?_#^-OM~IuT5gn%FgLj^{Vo>Si!4>`6vO@6PnzgN1c#<;CkP~Wf6Qi@^f9x?3_8+{ zSil^})Ki4{X&dDz+;)i<-??p|OYcF#+RxEFxcY`jKB(Xh%h)gU8793|iCiIliGw7> zi9AP*5S?KdbLf)}jNy3BDo12xSogA7xP;T){IN5-4_N&n%+J3ssvo>NXT9#iLR24- z6~d@xtv+z*ystY*FhVjKg_9!5ex=SeWf09x!m2*oLg2F9IRKM4`R4R0(n^46?Taw1Ua4 zonFj2OX)(mtVAomg6xy9*Ap>{N;Kog0>-0DDrZ~sp3b9)vzYWqUY4c<-YgEJihHjN z9f8`En)3NM^laCIujiQu{ENyP+_0{8=qJ~$_u(FfS|XM1=ML}A1dZQfaJ{H$9gs4; z3qn-J)=Tp}4jkE2qP8#71YOOMEA|XNr)mI+f{B2ZcD&YyPoK}=lK@2!C}}y5Y=uGz zYGAE$B@&q=TW_Kq>VqCe$)jofQ6w`cLbQAHla;J$oNc>a_86XMOxLQ(;le!-5ludZ zqG4-E>eXh(XvUuw&vCOL1k%pALZr~B%CAW`BzY}9MTKKNIy`X|B6lF+(GYK{-MUpS zVKDxhViAkWmtu6J^;Ptw0JfbzFEi!+OZu3v?iw;Q91sa*aeFxAm_|Xy7hjmUT*|*M zYGfxFLA1-oDMDS{E-i6?6;wFwpMAkQH6;2V#;%H|5r}~`al`|4z=-Lq!*WUfV zcSH;r&h0#4*b572LF%k;S>3Pmz0lI0x8{E0wvZ#WoRe%iAXxhCwf)|L$3M3ySy|H2 zqB_PjF`_ytu|h2@<@=KGg=8WsY&`^RU<`)fC6>@Y7mkAjpN%mo9i~tOd1G~;o?kv? zPMgIfqMnq=M`L?>-v&_9g&l^i7r*hHvrWkN!b)W(7q0C615Q+jfg`1eN@aezP=%E} z%JkZ%x-@K(I@`e*7hyRxxuHrYm@=o)vwvGipoo;?3q6*KT+d?66l8tgw-P}JfOmMG zb*_|INKMO^ajDQ;5>p-Q3O*L4Y&E&;3ExLdJN1JT!7|ospZR9abdbwGI0;H}RE}VW zz&3(29npU0Q+81CmHN}B+?W(w87V=jKK#yNyrm0s&lyW!fg8rd;bWIOeQJ6? zbJy_fpW!DJDI4G9_$k}DR=TTC%WbYMeM64@`+;&6Fg~La``}*FW=OFj`Ft3A-O4`d z@6Y<<3M`u3=Z(~(-Ds&aEbLzu7CT@`^Mp}w1P)6^UyiZ89x0xZ@DZmeL&4f{Txr5| z+2>vpZt4;gTTimOG`92+IkbDhALIwwsvY~eVaz!`m4_Q`#~JXsiy1Ef&>a_jhV-+` zNwOXF)SC`biCX;C!YMFz6Kmy~!8(3LxXMPXj!}0vh5P`)y1z%5V2OPEZPK`kk#4p9}*#oyTrkPn6ix5kP1`6hg9ea7rS)b;RZ8C?#5Y5N7 zA!J0d%9Be~=W` zV&R`_t_y}R0L4;(4{I!ZU#CQL-qUISdUc7L>2uqr#fRQ*^jTZ|#2L{>Xt2ir7}qZ)L~ieMGlDx!dee z598RDMXT=5nrnaYz7s+%m|qyzZSy|7u*H|)gPH-GM_&kpqaZx)4$ zBBg4EiwlbUf(;&li6wqy7R^<28{mww74_tJ??T!4wBcr}S8fWnR8x$0tFlm7Tmpz0 zcWABaKlAmV@Q<~I+APhtJ2gFGiL*A`$Pn6e-BrJ-mgnK|_GP4oYD~3mpT%yvVhggy z>sRGeD2G^0N>+4x`k4ON79hzB!_5X6<}}0!==D(HNbRn%C~8+Q1DQn!2!aw>T>d zYrcBR`Cw~MqsG4uhh>6R;BE|)y|EqRn->$6V?{{UqHzyxHnu`Yqfd}5E_X2=?5lTp z_aAE*R~R=ffrQCFGWuFrKaRI2Hl^lfSBr1uTOpa7$um67gmiyu%^g^xeYm<4wx8us zoR~mKv(?YCe_Wsq|12cYu=hj!Sr(;_Ep&gx?2sT^Ixb*@V}0WhdN8;pACxs=42gf! zC6$w#uDR=cL2TT$)0;*#bFkw1ly^~+j7-_Dk(X@`vau!5<+%IwB>ILf+X~Gu#yzc? zOa__R!}KYw-GlyG8Y=)j5FDG!9hj35XfOW{K~1_*g-^!oh|U%~$M3_D33i79)sI8< z)d>1P_3{_IM_1}4;yyJk?oM{WxU=O?4kG3dwJ7%U>Rq?vw+H&9(JPS*Y4k! zxilX}F?R|o18{_)cLyV|GkL7R_JQrJKL&@K)f^xHk>!ZoWH)-@Wv`{@^-jmu_9^(j zQX`6zd@K$*4`oEV=wBKE&KW?jcTN0;~`K}p$O*=EFfOMD$~ zH1(7M;doG=bQE9b`7Nx?NnqT2;k)Oj1IZS4d-@MfVYy&hj2W#EcxnIsLGcM2+N(9X z4W0BnHtSqg2o?Xm-B&ruF#Oa)t4mOOaqGdBro<0>J01AYTrgOL$J<2q>f8T;@#Y_1 zv=$)384|eSt06MVO(0j5JL(#xulzbRRJzF~8LQ)U@5m{6zYH zCT>)y79MT=(!Eyi^jozyD~Usm@Ceh)9P@Re8z~Iw#Z8CvY&n!eOyv~_?Gn5L(#Fa4 zOWPOL^x)14HcrA{YOFY5u4lfGiofY0sEw`_dYQuC>5z^c(yZ+WKLx{QTU$-cx95< zX^A=zL#~%YT+p*EdyMK3otynU5?affK3RxmwVltEn4#ccU>|uE1L81-sQr?Y_e(zD z2H)a>H*E5tmFq3FGvp0Shd~@P_XxTdc!%!2f(AnE~V>yCK9aINf zZqhdWAb|(v`dWmYJ>r-pftx+)dSziC;cI=%GBo{Q#wd_$|Xt9XN?>|4CQYP27 zG-_id)m+%LpO+2*N>!F+-in3*jsOtX@OU)`hyh5ApI- zoVdtN%1rmH{sx^<2F>vufh?<#Q>YwkqWp!OEQ-i^-%w_(2pJQ$WiX4R=vnQg+^EqH=eTOqe$mTnc5DRK?Nut=q%4fiya0g(7~Y^rT_vND6Hb z(*!6T18c!!mEb?<%tlxopCL{93*H?|2+Hm~c2S2B6vh5fB}8vSAOiQ<9qRQnWH!EV zqb&l3vh`o^NCTaN(FJ@Rw{w?+hgu5eF0+1T6_HTeI1fDP?HTol;ohuR9ms|EVJ&4R z4=>O9zgabt1fp_GSS5xla$A1Zz$-m`JUpDP@|Icxy9`b6vjNJ09-ak6d!K`7Ou~s~ zJN(sOyS?61LliDY(W7@L1v|X;5QMxB%dP#FquS6Ea3wDcvb7Kk3%0U!!lTxPd{9SC zqBIE~WMeYH=5d2I${|cV!%XNPoqUB%h9F@%^ z4bPGDE*HFxe8tDo6~4%Iv_P4$h4gbp#vIkZ`o#uNFxZ0kX}? zW;6dBX>P)D#Ia?ho16onLZnWC&IVC5dlT~gdC!*S-y68^e^6I2j6pKJ>;b#^&A2Zh ziWy_RruOtP8Qdyq z!0gl_tf+Habx9)g2VF>QI=(^=Q%bTYWa~=0tF&z=+QKh1HSgYGqS{cO+?SfaKz4`A z4{^_)BF4CpK+GOPT-lYawAn~>=qfHaB5%hhd~nLTiz=g5%)+q&7_4s?CskDg_`FAc z2knFY;QW2(4Rx?0Ug6P=44`s&$wMJ36@vP^HCjKLnC%!IvisoK4TXgUF>=(XquN|2gal*U zlhX&~dBukgjpl8IQ{UnQ%3#a!q=rUs9&AK7_FDuuQ)wqk0WW&xk*rdLbs*~;!Fxy} zb;394p$)t-BhX#sYFhNSy-3bljk`Xk1Dkwh1*slxa=#8AoIc4G-efRx z<3+)%-rdAMdi_@&(usbWBKQq(X!YCc@L(&yeG*9Fakm_Ix|UX^;M$2N<){X>QO80n zZ&><*7@YPVXgqb<&MtzLNmY_ZH~beSRrUu2i~JD{ggkP1r`A-HT&t?Ke;y~Qp{~dI zd8_UNDL<0L7LQ1KaLN5N_mSF$gYasQGk_#UbHyVZA)x`eH%4=%N8sXfrfTd5E06mZk`+fm{-C5=$HYEO|DQqnk| zoa9^Be>0b}eT}D?j{e+tcNv#|GAl+u)xY)TW@uyIUK`|r46RSxpPZZIvOtV{0ULl$ z6w|rtDeg7OCTzFMPVXEF_OU2!pR=%H!8uy2kg;~ZX#|s#xUW)VMMW2vPVnmQ*WBD_^6Z%!pbBM2d0lX=Zu)n6Gt3jd_XZ-?>uz`0eX_gn zyCPj@DJ_Q19ehO#ptn5i9Y}D@_TC-v=KgLBMuxfi9I(rHOXBZakue(A^ zFTk$B-&qCh;{BtCze2_=I9u0{ZdC6=Ylr=MK1k{$F60g(#y~=iiqjAh{@{#67ct!l z6roV3gDxa<&qzzKw|Y9AM2CIA`$t8OcjYebBdMZg(uJ7C*V5EP!7{@-4)Uua#*OM~ zeCs(KC*=`{c@0g;A?+<3MfXP2(nRs0!m!?`-}8mA#uwH!hZyz+FGXc3r;E+hXyy=q?+Fy#8 z`iw1Y7*G5n5lPRNX9ZiHL3$cPxE{}qd@IA(vhhDwy5$ELi+epLUHO!Yd7aC750@A5 z#?ECOcK__47wuyh#c+>XGWl$LnL8i*6zb^&Xsliunxy5c@Zd#d(u-B>F(1Zz3I&*1 z>-Z);pIu@6ouz$Chg;yIj^;z4>=hPjR%U88kAf(!)lWI>_a?C8QoY^~27`jWjJp=8Fc-)lWm2!D+(%b?c*xBB@g~Y`t19^7U2JG*w5&@cV{6X%TXON2cI|~@=4xH zdAb+8%ap`#Wja4(_AZH;RchMceT*hQ*#!cB=J?!8<<6J0ZGPnRhmAFb<@n_{$@nYm zy0R7jJ`AyJU z8AqUzTus=}db>v6T#Zd@tnVz3*6fajh2K!iy!7ue0dSerak)K0ij<{$-Ms$lz#~^% z2e_jMwzI|!X;j)nq%C0U*qHxHl@Es?Z@IbYY_We6kVG1n>AEXiZJ%M&#M!^ z&#AF7$pbP6LN-Q(V-iWt2Qu<@;`V1$+}5qAXl>RKGy@yy5Y5f5v$g%@=o2J;Y81zr ze4n6{_sak|3u||s=>P{=3rneDM#BnYKT;}3GASxoMaUBuC)eA5Hy}ao<=j#_;M=h7 zTdE#Euxge87JxJm@%-R87KIOBn-L!i!4dxwt&8*9;4~L0&WoV`E^-tz0MY zXX|?e?(c%Wn{2aKX z^ZZmuyOChpLHN)C)Xl7TGMX>+A^|sA!#6{m7sFtMu~@(V4HZlQ1JYKBaH;hXn zZ5fmn=?bR=Bs7rrhszcm4thp@^Ab-m)i%FMx&)=}iI`9dH_3F(WjDODCv%S8Mt@bx zVDKli<7QTa=bA@|H>OZGq?2#$EX^C#6ELMkrMW+N$LCbN+$3QV>to7oUviVQ;5`OTlyFcj$enQPPX z|K^z1B`#g$$pURYr`Xc&z9cf1F2U(@c8tx|jK#X=|5I?7~ zITd>8gIQJ_xwfBMnZsl@yHbI;`K2V)IIQjC-7x=5@8(O(Yt&XpX-DX2qZc?QAbB?{ZM6Laqn6me%Mo8QFYjDh!c-1C~k-QT|KghW5xu%u|$&Sl)ap$_* zi@L&<3(4tgi5?}Y(BN@9kdkmVuJZY_Fm?Kp(Z|WU6039$Yj{B4&whNkKN2UW1j6jp^xoz2eoC+)VhXOp%GpG>sAOh@ z0-=36-N&C)|C;i1K!N7&Zp^UO*4DwfRW%r&j<(S>xx|LH_ufsKe1gI}-27fv<~aBp zo(koSt`$uK`&aQr(oAxltreL6l1VK`_WeZlo#}brLIuMzQlRy^>hpYFI#C`MPIJ7? zPlTS|-mL9=9<<<7WGYek6Sl;D^4w(2V>VxKIR!FKFywFe7NC{C&o!6jtGzr*PC8C^ zYu!|oaIOId7+lGY)j`DUj3E*0GpTepNP@1TKCd5gzh(w;u~P*ZB!QKq%yVqeHLM@! z{-SdyCY8hZgs_FH>+>3@aZC|+`>@Pv5kbhCA&l6nNw+CeXxQ{>`2@iC-u4Cfx|r^h zPg42Sf zg;Aca9or+ZIg*lS3(pG#2NzdEOu3BxJh`7=ateV!Sn`OwH8qscZCClh=d?(Sa4MUE zFa`slb!!oT{L(aFH*fpn_?%M*qfGSZik`!{dp{9>kunfteN^Nxc!(Qym7fu#S?ZhP z&+UhH;Tg7gmyD$jm)+7KbxdY+P*4nZ06qf!iX1;Vo+R@=mjN03=c*TqDPB}qDLzWe z=Yf%xIdzkQR=t{0m)QR|qb~FDk*7YaQ<;*HhMA(n+rEhL1wxOhuNeoHDTvx)-;>6! zMnSpf_30Z{DF-Kc47kxn;5iHc7k+x1N#ly0s&n`QpAQi~87{urJNr*&1`U7lFV8*Y zx76ZN+*`Tx0}W#sKbi%xzgHBksiR%QA;Dyx0YmMkW>?*w!c~|uMS`TFdSgTJ&X*rwulm3*^iIACjPJ$2N2S*6!2v-ib1rG_23(p9z3U31c2LTM>Cqg2^HX<@&I$}TK8WIc= zCzAMgeX0fN8kri|3^^Ei2?YX$1w|Dl9c3C79hDu`_}fG42W-!`cKVefn5u`c%$Xz`?o$N%yvxWQ4%w9#Vg zz2;#!Jv@=sT|7iRX=xdzop$A%Teh+d5YT!#@jemsYyc1WxL=t;P*FNo+9iBNR?~suFN(vb_wr#!+$f2gV9#z`@ zLLmcB4^$a~nV>dp6IEUkM(90szU(@={_tgGA4 z$fEWVCN3r_s!)Bd?KLnSg+N!5Hi^Z^Q+TJQQ#UaR96a(&zV@Ix-@{As|S; zU$T^=b}87IQQn6!$O>_`8^=5w&)_`0K60x;cYNO+L~y+i&K*6ixZ40SVF5<{A|iOr zQ4!?v*=R#q<27^%=q9O77m*j8nW@d;?9C}(zERSBYCjYc2%)$TxWl~NT<5@+vxw`q z>r`j|&>;~Y^4UqftD&5$F@me;FrE(XVN9ma-mDndqL>K*+9D$S% zqP-t@vsWgd0RIa4`0t#n)K_7YEprsY1z315xbo7SWpGs76x*Y(_3<je3ZIP+Z z*(uFfPo8xv_zxst@K_leUMN$hPRub|;BVJ!Y+zU8T;t~zyYQM8%5sDoO$fsAum|$v z(@{-sXe@aFHoFAc*~VK%cR9wW zJO2Pk9m}E1C029-vrOOVJm<>=kZ>KrxY~|Fi$Gf7@6W+&^@7Z>zyhRf_Ui2NSML@@M zv;durr!g}W#%?9NOJ%OStC&$!+w0P57xKI~yP)>KSc|4Iq{~c42O$u3UgEGMk`i?-FewrHJyB*rPrwZ;MaCzK< zREF6}ic6q~>W3mGcytBY>`A;~{0mhib+tiAh=(kBdsgU`#Xz5&DH3Gw0b_c#eh~JS-5ybQl_67!On)$reGrg45ei$-*8C(ed!7pHp4cw#~b}8*8y; zd{5RnEe&#_*Ny@OB|A=hB&u6)oRcdj_Cc-Vn{XjTK%C8A=miOnEiMRoUIAk%n2YME zNqOQ&DRvNIOQnBu^Er0Q={!-6HbH%#hPZ{)@PCU(0z%%YRIDsr2L}rp)-df zoCx_{>|#JjE$z(;MsHc!UQAZs$I4rI8y_8eDj=W+kZUW-WXVYUF!(b+VDhNoMK3Qd zL!f{skRuf#zVu)oh<3CPl|$>BL+z2H_NfzI6YDNOiNmqvRIj(#1NFI~5$`<4S~#wu zk3=}zRpf`pli_?@Y_+N3IAX%g;8G8svf$fqy?^XyYmhJtCa!?VtJGX80?z`Df)P)Y5qb0^}| zu#%&kaHi5{xwXTh&7tHRdhkT%XrmeX-h?LE`Nt%eQ$^Z3mC~)s#6P+X6nbn|TXs?e zf0s~`PxU&5KLeaGoN9-xrG*1EHwSUocUas(2~&QHvskN~Zr9{CT&HQ5R$T|ztBY9# z!#=A*bD}Y%81WKEx_4EqEP%unS#_)Ba24#~R6`BR?IC%jc0 zx5F|&C1@3att@()LdIVqKN*Sca$!>;O1H|d_9@&cwvnK#cerT@qlXN>bh+*hwsY$Q z)SspQ(Cu1-k zRR_Ac)$C}!+3ff-)MOjSqe|TPbNgc00x9q@dqfDDil`XnNrk(KQs=L z6tJYg2r6HWy&6TCh9*KGQ!(5!MSd19+cIamNyuEwBpW}1JlNlK8CneuRL!yj-I|R^ z4!CUD3vmH^RUwz0)}oPXsZCyj&-0_xrG%enK_L4~DAv)}2^7&b$y$woTRUk4&jq*n z{FH25W;09Je!42Yje8{>H=$UM>7JWq_M|N+NB_)ee;3Eg0m$FB)WWQ}jZZprlYfFZ z`yi3cijb2BIWrrGX`7jF)Xj4L0q^yR!2dPNeXxt_bqmh_8UvI3Y??`1PV@2p&?@pP zVds(LKB*!fpwDC-}_i*-U{Sr7@2b)(zuJ_pdBg=~0SNFj5a%Q&e+mg#KB|G)>i zX3*jgj0#hjyiea6~%=9REJLT7zZ8h^O$=sy}TL(EhyU1}Tc$f*z10u7J4 zbEVU;+5A{+VMCUDQ0;*He%iS2vqdjF8Bv@iD-f7Sg_IjG3+E_wI><7S4l#z_GUn%G%b-FY?~WR7|ze8U7(nX!FAe=+k^8#L^g!VK%C zJtMl4)6>)2TjjBSK~dW8*yGV1&}ld}HAs9m7YgNPs7%pRN6|RpsOX3cTFNz~u$fsz z95huHjSoNlbp^7@3{z6DOCOKkwvp&l7jkZ>>XEsFQd(7L*A+j43*6>$T8Kvh!e)&vCQIGOZ)^Qt2mG(pDhwvUm66lhx9aS?nILUN+jH)Vn z7L%BHHu=?4ynHw&4ERg%{TVDc#ciKD^JhV0s%v&Zg=53B?oivx}%G%#2(Lm>v&^$-t3kiHwU&N=S)MPE`M?qNJv%s_Z^)X`bae?TM-5GG?l- z<2nW3y6HBe`?C4cD-z51Jg7Xw_tGx|U)%LOtbNn<(kGGY^E{-!^Y3=S{@2IT%rAPa zX3Ld)1|dJ2KEH`H$<4@BVRA|i>>-L?PD6x6Nd{%j z2gNy22_>C`B^{JSGmv#507e)#g4Ox{Aq~jFk`9buCC0&{2hqI~sQo4c1OW2&1wi~i DqysK0 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 b/assets/static/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a90eea85f6f7bded69ff5d40114447a6d8b48cfe GIT binary patch literal 10344 zcmV-uD3{lFPew8T0RR9104Qhx4gdfE08C&204NXu0RR9100000000000000000000 z00006U;u&y2wDl83=s$l;$X`j0X7081A}f0fqDQ0AO(pa2ZI3&fifGaK4piDbvuxV z6#5b(Dmas7|Nm{dAu`ZEP~ECnb|eyPwiTFUR5y*Mx2Ne~jX@c8uTXpvCb3wegGR;m z%=c2Wc%sfsG@ovJqNOc3b(O8mWQ$5aQt&6euR0L)w!<=-Mo2Q-4$p7%|J(~)E-8qF zjfJA9fY?*gpf8b%N?0{@F4INkf2*e}_oBAFibc9tdw-pWYuQY8lBF!cG4Br*%mc*Lwiq#xeHSOGr0 zb3DaLRH-%IWLxZU$ni)jzs}Tmb-AwfieA&}dsA=e?Y*n_u7vzZe(VRLZ(9jDAAg~< z{-(~=#k$(dkGQkKjyzQ`)$g9TN+Uh6(FO&9*7@)=wBO=IbUWS1Wr7ZL3;5In&{ouKr^jC~kC6N*wp;O?) z3D7S;P+b2CTv%oIF)ooGAILnNYNE-vh3pz@2_Ax4+7TexkKPf%YFRomh!yLo0K>jA zcX`b>42T$gVRMZytzMGx+X|FM#wHD#E(Iml{*pw z7WQ zIZj`BRFq{Z4eVMa#dW*I~SqUlfrfocRB3HkDq$pXxlk!f8y-9NoqE^A3>wv;wqSRw&jw+~g zG6HO4qBYgc3kdN@iLA9GwoR(d5Z3`k3v4b$-t;j$bRS7t=AB< z*o!nNAci4QlH@U)ksB2TLq{Om8nakk<&LpTD&E!F@)yP8HQ2lW(B_8N*qG|~tuaw{ z`(TY&UAK-73hUYBcTLLCMQ{Lg_@3LpTIQ8*3aqN@D&ny%V357wgydUpRP-2;zl>Rv z$XhnFqF zS^@8V3-rySqivp+krj`4oGzUaPcDl0UV9Q&O{_{d6nu}>yXqLD06QELrbtrCNRBEb zPl*&LCq*hqiK?VbHBzDac>@Uct`z0Nw;-s9uPuf7d50NYW6#HNM_t>V&pWJ&HO_{P zQ;5~!9WIM>gBtLm4hjuWXo5lu6xyKB0fjCo^gy8xni&JNw~~oHGA(H2tTy&!%vu<( zdWKs#!UNNEoC27^k!eXA(y6zfDU9Z1F1Sw@dtf)%I^wihc$)9R1JzKSH_dFYGYh~| zrO#c&+HxVg@)E>QqfJ^GIREfk(7u$7vXJKWyhE0N8Z*^Rf|{7mE~C0yFN?L3k1-Sd zqZL+Bn8c0>GeS~J$-c|8efwAmVb}DyoiIPHq%?nN-Ej>B&UfMs@^2uIS)`mxnw;$A zu>o~nffHD7KqX42C_+GX5^w!U#huHrPkKSkKIIE5>U-H~29XKv?$XFGzrwfiq zC5Ukla;Aa&CnFgYv6pKV9!mmclPuG;VS>%zl+2fagq22YgeJD~@0f6>71j?oL3Z zddf6}XY;+Aw*)QNW}qvM66WudwqFqW&?Ac*td`|AWM6X!qCo^%+Izy#o4E$mT9qu# zO*+TlJ^kGD3*Rf&ZtxA>2iKyqrU&49U61x{#c8Fe#J-h$1> zr?8AqMI{@elSe3qj(ao5{rL+q3t-d-`><=)vSDnfG+I@W9G?e8fe1gz*uBxp7Bwkq zKAdXon2(Imy2BTxZcELRa+WOwAe2b^6&g=ub7NJXyT%?2-b+cic~ z0(Am|A~9tEi$>UN(5Qn;;>rLXjorsS0Z9%52}#%kAd(_t2n9`OG^NpuCUSY8&;r+_ zlmRLlQL{m(4K7J519WKAu1X+FJ-E~dSsK8lAzT{4r7>KZz-LWSXv2EyEM<`Qo;e6& zVer5T#PG5T0A5?IK~UFhF9>2YnHYhv^)RsWFxq|vA~^tn_Z&g+oIoV!$;66+i-(1) zhlQJmg}ahT9$t{A7yJcXIe2?G_;@(@dN}wgOY--E44ru~^NwG0R@;PPb)=r{&_S%R zs(wPPOJ%EH4b(0!4nUy6ha9i+MEs>82bNW7?i3l2P2O1Y~_ zBG-??&bBS5!!&G~)+nYy#xHr3)&tKiIDX&vY_lgRjQWqrWZTivv}l^DVHJ@lYF$f_ z)%3M}Yg*F!enh3~9P=^Hz$i8C6@mb331l>akR}K-8m$`UHpTPdQ#MCIR=I~Ft5{3S zN;(IYuW1%y)?yB&@mzViE)*fhXa<)2eayJTmZoW6a=Mn_SkzrrMGf~eZjeQsJk_d& zAfVVd+K>g!Qr{h-5Cl~u!62dTDHBt9t1Co(7FKrYguMU{bu|OP#~%|G(gL66nL9LN zED-zrech#*cn+*fDEN3)H?a$cIut&aIsd6intT6lha3Kud{e@8eNUbF*%PYz?3C)< zU_Q0>TG-m9vb^ov3q!C#ekSfktG=WM;y#zA$30S}a9a+2Y}ic{+lBRGdx2(}b1=A8 z;rE-Si@aoLWF{uq1XvGivM5aCv%zo8CcKvYjjqtfqcetz4Z&};ddk!GGzvvGyk*3s zqM2SHSj;(cWVGg`(aFR#)kt&>zT~D@uR;OzpKsQ3{S0>GFYd%k|y|gtOUd_7KlCW+eEzfhz zLnt6fZ0fKp2N?N*9a2B6VXduPnkY^tPG`pr?F}>Yy{+c`^NVeZ=4^mTLbz!YB{q6> z*Xyo7CfuW$EfdX+Q^dW`-M&-ZDZsQ1*Hx~*((HgmX*32DEabPFW7m7Z@{e2zu2aOD=UkZ$ej<+M>G&4S_?pEW zE;wH_Smf$n?e#mpGfv%e3{uxInR&(772kEA-I(Op*Uvjr`WQ(Jn4cT~phT8Q)AP8N zvSrOL7xy)WFN2b8^&x@x%j2G^z6t}eNccqk0Q9K^eAg@rVyEw;*gDxD8#fM@h_<%3 zRXrkE<#ltyK2X(bq0vQb**0CsDt9cUH>~*h0IS(c!xTYCCWREWZSmEJO@F7rg%f+@ zi|be1v>mGU_Scvaf8i6(aDcSohPX}>`yKVfw+X^$wU4fsZY?pI2y`p%`v)9rsbOeK z%u+R3(lr>V_W3JVfu2QqoFkj4_b)i)oq7Wjy?0U6y(bhdVA?}$UsfzijRI!*tfMas z!%`InG$+THB`_a@nn0gLP!}6F()mo9XZ!;rSG2TiP(WEH*LM@!7;C@vjIJNA!gX2Z z5qsCv#akhj`I-;*2Kr4Dayw6S_F7wB1T-<7VjP7&3KF79P%=Ud&4EHn^HA{TvMoSA z(6L*X9|LND1qFa6qzWS)!X%Vnq^D@u6qd;)<{hD$k2Th^Dz>OVjhhaM0#Z2 zk%xcPKyNNrThv`tWGfFbQ>+E_AD}kl*VoUsC#Yel{tke$yVy)BDcR21#BzlqQ{D63 zoQq0cum=2hp|*w^E0t;{A~@I5sW0n)Flnn@abKtAr6pDq1bYLpmZTlVxYrsIs-*m$ z9U5b`#E@pCVvbPW2#uJUM6kDGkZip7i)_PE=p%zgQmB;qPD`k$P1HMv9g=C8MecQT z3^6Jv`^{BgbmK$f>DHHh{!Uqpdt%E347CJVBeEGE=^>I+INp;PV|{I6?XNJcIz$ny2vAhJ~?n@BIQPY zbFzvD{0$>LP)Dw+0?kKgpS;;Bn0IV)X=VolMV@XQzFD{N)~n9Z3^tBpp~(}Si3D?; z$RMgPhG0Yf;2)qU!iw~QEssZFR(Hp)QHZ~Z&vbxjlmQ=3{$w~?8w(ix-{ zsiNMggF!-dh-T_1${jEj4)d9BMKMB1ey99_c+UswwrjTJc2=20(T250Bu(@+B^xLT zHM$;6sj72_#r*aEK)h|?Vv8>vQG~_R;&9n!zNu0CyJbky#U||Hg+59ZKt^C9no&@=bZVQz7R0)yC1!C6vcY4pAd{tGEaLdw<=v+QEe2EUAtV-ziQe7k||V{b@1^rTpI;~ z&t&xVXw%vOsz&Lfw=}<)(M^VFpsvrinRw9An)S(tvvy#Zo!O&N*{Ly9ZN!p5SBOj% zp#aTaV*Zv1nCXtGu|!DDC<^WsdBGqttJTkS*rfu^9G2MDo3lP%hGHPV%v-gtjTZy; z3DnG)?tYKGO$@{z?c5vcyF!=Px=k}+3Ee~i%$bR68#07@^BBd5Hi_bPkr$16(@IHM z7w|TwT`my!K2+vSyb6w{Q6o%~82rRUW=-6QYjhL$?x$7MJMSvW25NNOoBEqrEF(Bg zh8wZgIdWQ!-n4>?oNi#+>z8F+=(;|`Q(yp1F&KX7Sg%bOvjqs>whjPSc824XCW9#Y-@7pG2ol98}`e$3*(Mx zi)2}Ulm=#9{&B0bB+!97|0;63w9AP6%7ny#kgr3!TNYvY0J9#8ev1^}TqF}PFPl8w)~>s>4ldrR{qk%r@e~h0-$@hcMBr_reB15)_(}0L>D{{k4m)~LE1K`4ogY6Q zvgRfgP>ClHyjcXGn%cW(?iD>FtRt2jPa(iy^R#<(t?uJ|c_JAJiN(%KBPjQ~& zmjP>7m9?Fxg*`px9{>Bly*=RfLpv8vW}Bs_OL86xE*DrUEMI6v~bM z4OXcUbQp!%(D7H{vkJ|9w#vempPw<)G^Mz&C3T~CKg+{TAz5isHm%r@uf`{SQf5!+$FcDM(nmlL%!adf zb+qsML0owlwmP#?KZ{9^o0Tj=3$IM)<&VeH4q^6e4-}lixFSgu9G@N`SH+P%RxF8V z<-I%i0K>ZVJ7<5Jtup}RYURP)xpO@Dt5qPSjjT0HWOFex*@2pb*C>^NwE#9Yl{ z?33w>+kVu`_A#>WHzhh9$LeD;k}8n=yHV#eR)LipNVJah^jo}JKeyf<)t;V#c7>wgCXkX3(aXY__R3sZ4=?ZSB_!sRd65kz6k%rOhs)}g-OM8e8?u5W_Ysh#xnN#M)VOFq*gHD^YZ zTZ^*43zILIW)MvnL!+C-KKbOZSgNv8Gk1Ayr6zmdda%K{*sM_xD|c)qBY6v-`^AMh z#T7-l67}AZY=Hn8fx5Z01H!b|=~C^l2h24v6L(IlA;Lf7aq@ryXXO;Bh>vDSE5u|y zLU&H?cXyi2^Fj!HA=I|B%22hrW;1LU`&0kVoGrb00_s@sIB#-95@biO=N8C~kYb98 z>!I_irFfIl_c3`PQF*@Uy-6;}XQz%bE(j-gdk>@3wLQ@)!yAr5eN({UOAGUOk z%vRtX$*Jn5Q4a5&#?nO&_Q8x<;Bxoaj2G5B~<_>q01EI;7#WAJP4 z+L?!6m-i4Atk^zwqr>B}^`~X>vdOU$Zz`v?Hwc2C7 zsgrI|DHlpW>C+QoPbY#hrh%5WIwR1HXsuwEp7H0$5mIIR zkAh+bPn=Ql*69VISL&SZNTQI*Bxe=vuZWT{>Ktg1vDnycrwdGF{29^$4g1y};dK}xc8~mMWNR=UT)M91W z{4s{#2s>&rLYa3P;s#Dl>MgAiR~pll{4%eKhv36}K&sZ31j6cEq`viC!Rn=z+)Ida zs42A~wQ0_(E7XX~ysbk>+|=B9ZZtyB_>6k3kHQm$a zK2&NTsQ+H*kB;WeJqI_LZS!sxeRniAgLMxrNcGTMBYc3?vu5palxbM8sE2j{HqIOJ zNq~st4NQIJ@IxQCX*qjTFMysAS5q{)vS_A=3NLcxAd%xZ1Ancn7@+9Vh5>V zb4z#4ZX2_k!|uiy{@tj1Xwf3@xr5r#rw=cuDch@c=u)pMd`DZI1(+ku7Ess9WO)dj z>?tuQHxY=-3QY6H@iWv%NrJ8_R}~AIrpnh&dWQl_{r~D2JlH)AYI*ZEyJJLFVxH33 zwA(?!XcBwgYMHsOGq@28Tgv7rU@?TchvqK=Q=57`qwL~hYmI_Cxc#WqF7<5^%K+qB z>s+%U_i*dyR$#qvtpc-bET)PrV25kb!_3-!HQ`^yQkl=HsA+QRrQ@Ret*I*SDE>OO zqSt7483ct8qYflW&1KQKGF9d-b~qjXDe~gS54EW3OFUC1hhk>9C}wd8Nvg%_u*s8v zzsWxdAkNR9Ha!EM=;oXas$y&9F)9Rf?){ zTh5nQUqR!I?ar~#hJDYvp~UVjIoeVe1kD|qJ2X~R+|*OaODFGX-4A1V=7Zh34Z zMMZ)N<>B*o){4C zUPVGhBIeZ_=Ai4=cvE*>a&Wo_Bo#Rf+*xf!LLZ(L8G~2skJZ0S2r(ECGZmke7|lpb zuH9>hjiB5tE;xejTw#(_MHUVg^cxF~+>~nE#Z3Cz5ovctE z*tNsA5p2X?(kJEI_aZZ=`G&lRO5XH#*2#yx!>H^2Q?qAfxEBQ@kmbx@nQ0GW&@g2L zl#p~WSqhQ`H8NFNNoNEY*?;~b=L?1>&905^R#5}hG-XS?XY_!ZM2*KRG}`$J zm912w>c>JSj-+v)y5iBD%PXWo_H?;?w%KW)rlMo4%6Wazf4<4y2w3u@kg2#Ww~Z<- ztIEr<%|ZEBeAP2FC?ytKw|sS>cb@Og%F9MLnjqIqE7|b(oYcq(stiN6veF|fRJzc8 zGnGmk(Ms;IsaNnof4}z&hZZ^gowYI!YHZLatEK0vsIfn;AiZpDOX}lloE0WRWdavR zH?P#BRmlHILt{6cds$RSC_WogsMdU=K#@X!cscxTMKP5=)J#<84vaNwu_^W`v$eCw zfH6@Mnv}F{NG0Wv?+`d>zmsU*qbE*S>l^l_2GybtKF?Z1M2>7b4&bb8n8~Vz7J({K zoF4YV+fN|0Q&mD6ljtCk@EZO5tB$yeM@^A9K<%Md6n+`$jtwS{Q(fif2p!S*N)jSS zo+n&9l%74Jx{93q`{VQV#kykM)|Z7k2}qg0=eeW4@{iA<_4NwZui|k7XZWSA(8-&~ z8Ble#`U-%u#hQ-P7=*}>rPc1 zh6uZL4U+an^|J~;9S>^ow~CJAlC1a^2Gop2uaipPa z21f#)0H}4$y6q{cNA`26G|q-EQqq>M=g_FzslriWVOksdQFD?-Ab@p6p6l@|fyjK-J*x5x*^RHN@JN^-H#rjIVETTy@H_uh#gC!Op6N;!F z(O?3_`0*6Pew67e_0K7Xt`NY}9I1{#elpn`1SA7NCbKon%E-4A8d3!W14)25<89TE z5lvRZDn#VNgy_O|Y}K9YEJ&bU&GBCB4RsyefUR2#LddsOn>=mbUp+T_0CX1u-DPYu zF7nn_J9mwMo49Km9B964^^u>ZP`a4f5iGS~EhWGfv*_JQ+pm}=-$gwf8+W*ux$zKv z0;#q95ifhspV|dA-CgV5jPA&c+VWW2;$Vx|Sm@1B1R4Y61yx<1#!gR{2hPU|@tpGc zAE8(jo)_g8u5DIwGet0x<#La5zln7XyFj74+)Z{Kh7I*i%d2YCWgZ$bD#4v$%rLF_mB66DpRp~@w{)B$$^B$^R>S@i8CYk)V{da4 z%Lw$06Z^9oc0WmS;}rC_P7C`p_%p(76UpYGp z3j~l~{New#hQ!-uUif)kZvt?3{?M}^@aq1TMkV86X~rOvMu5n$U~K`~*<%H{S((vz zoHRp0HI^64GLpCq1Q4nd_+6&*xTj(2HxI_s=q(R)*%Lv=GHBUdkNLM05NDaHg5|P| zthT8GoEbIJ^j5yraTNjuTKr$mdd-L_G}WwSnhzn6p8BvavNYyvH3Q*0+|ZzZC1C~s zvtgx#(4uLse;i=3a@|9{_^PLxw!boe2Q^2Ho>Ac2U5*K*K*2IIvWQfaLa8C^0|vNJZ13RGwel`n*PheE~c zg!XeLDMTOUTLLfne{R|-g%p#&@i8`$k?mqy4iJKdLkOTS}(zoh908lUhW;qjdUZuZ7F5p%1t2M!E zkuJMKC**ZmXirC;;CI_x#MnGZi1%&cc1Gf6~4~UsJ zAq^QKeT~He#qAg6*LnpBV)o^&DWJH1y+51ZI~L5!GJFb%^VlPHzS}ejFKJL6DyWH6u8A%3K~me+Y^I^cj}OkYL3`Dq3xS zUS8_~btoUc?*9yjrRykKn!-}`@UYVunQ|r348rO5AJA(*Ity@)<|qcL4O_;%QD<2) zY(Nx>Rn*|71Z8jrYzb{R>et^$tMxj^l^`9nXa%tn>A3iT=a=*56Cu(I!y|;VKTmvw z@A^>_wIECg1Au2?KmH7rfHHt&G#qG%1h6f59s`N9Z48X=voSa(KaRo6O3WAnRdn+r zv@x{mfEGMeI$6J_)~U-lqcv;Pq!(YBAR)Ju5)&(wnQ)2C=hLXy1LGYTw?$^5o(E?x zDpc)i^RkeI4v~;S0oV6czd%sN{6ds#H;(=Q`!u&&HYV?3wSFCIVBPGE`n2&Ev2vX~ zwU_YGl3FiE%~E=EitxoOATybhK-Eb_T%^vJL{{R(8}E(0q0jp`)~PAhcOapT0q}yf zC36Vfu%tu@ib#yo|CYzYI8{S3uv2{kBjP;mQb>sS(zw8b`c}q zWqI}|(Icoo%XzQmS%6|fNZ<9dnUyoZqp;UA{4gV_NfZAmLFm5|eCL89A)}z8p$o&n z6pkeV8wVFpq$ts1#EQe0C`qyu0;$pnrOP0aDN8mn38@@1x$@*IP^d_;QA(6jP*Tw- zQ?5cKEgd}rBNH=>g_Vt+gOiJ!hgX$qKK{U9kr}SL5FEJZX7CUJLckSQU31Be5Fr#I zL1c&mQ6U;chr%F6n2tDV$T1%q9PR697K@b`87R%k@18Yi?|oa&+}Hw{>>lu%_n3_F(PJ`6#Nt`0$e zVdM667!VJSrU5Md*nBWr3&X?YWO#~TS1HorDI&lFFbZ`;84eT_6+glOnwMmpd*ME$ znCnhRh^EDlqhO1f>8t3&+ewp?=v2^<=Io&TCcf@{Fjiv@!SwVG`7mp=@P$dv*MtxP GG{*pT{>~Tx literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Script-Regular.C5JkGWo-.ttf b/assets/static/KaTeX_Script-Regular.C5JkGWo-.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fd679bf374af72f2a183b97b40c9c7e9e51fbe5e GIT binary patch literal 16648 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Script-Regular.D3wIWfF6.woff2 b/assets/static/KaTeX_Script-Regular.D3wIWfF6.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3048fc115681ee6c1bc86b0aa158cfbbf59daa3 GIT binary patch literal 9644 zcmV;dB~#jWPew8T0RR91041yd4gdfE06`=G03}%f0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Script-Regular.D5yQViql.woff b/assets/static/KaTeX_Script-Regular.D5yQViql.woff new file mode 100644 index 0000000000000000000000000000000000000000..0e7da821eee0dd05a0a6f0b16c2c1345dc573a84 GIT binary patch literal 10588 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Size1-Regular.Dbsnue_I.ttf b/assets/static/KaTeX_Size1-Regular.Dbsnue_I.ttf new file mode 100644 index 0000000000000000000000000000000000000000..871fd7d19d8658f64d8696ed9cdfc82c821ed76d GIT binary patch literal 12228 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 a^|k5z`r34UeQg~YeP3G~_EX$#+W!Ytlnjvo literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Size2-Regular.Dy4dx90m.woff2 b/assets/static/KaTeX_Size2-Regular.Dy4dx90m.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e1bccfe2403a4ed770c1697ae7c15b9e1cd9bc4e GIT binary patch literal 5208 zcmV-e6sPNVPew8T0RR9102EjN4gdfE04)>%02BcL0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Size3-Regular.CTq5MqoE.woff b/assets/static/KaTeX_Size3-Regular.CTq5MqoE.woff new file mode 100644 index 0000000000000000000000000000000000000000..e6e9b658dcf1cd031ac82b6b8f312444c55d4fc0 GIT binary patch literal 4420 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 CPy?p` literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Size4-Regular.BF-4gkZK.woff b/assets/static/KaTeX_Size4-Regular.BF-4gkZK.woff new file mode 100644 index 0000000000000000000000000000000000000000..e1ec5457664f438ce5a1cc6dd8409bf60ca7804b GIT binary patch literal 5980 zcmY*bby!s0*S*6GA)V3^1JaFjBaMLMNJw{w(j^EAlG5ERB_R&d4bnL{fOIz^{muLS z-haM*pY`0c*IE1S{hUAUS>Bq8iU0^e1-UVR|IeE>;D7l)>;E5`Iz0RUfIE+3HBc~9 z+|&rNbT)Sb06bPy9)Uswx2x`gQ53EP_m!Wm zxhJZYTo3j?@Xo`Js>%)Fj^I zgZQD39#1VgrPpjVxJJ1MjxgatXw0@C;UVtbgXSVF#w(h!qF(Bq-&gnq{)-45c+TzQ zNJ;(G@3kY2mI$Wypu1~5HHb_! zZxFs!r7I@rc8$SzI}F&8I?B<#tGy2OPrSMH=2!h*NMvN4q$rnVksq)5G_eQ5T`!S2 zXrtPzx=_dU*`k{H0MgBm|LY+3r#m-V2;W`=GL>if4kNm~Vopf)d@CC#3HCH)e zjgFTh#2O*%neL3xMsLA7TkE2<0JbfX6N)%bMys?G?K)$2lDCGe8-UlZhz$FAz=<(< zuol;hUZ2M@;!7nl%{oGji6NoNOTv+Cl`vv;Oxjy;=Q7Ut?qtAaVwJt7ekhvB zlD&*LaXpIbz-FFk;3?XCM7eptGjIz+^3CsBqfu-(b)GArmGxkI3Cadb=jf;!?Pzym z%S;4r*aqzm%s`cPB_G8LFqL|4WYmR+3~U-s*Oq;6TKAhOP_NTYX;24#0T&@g<~3#$9-{aSWy?5 z*>0ZcTyu1MOJ9@AtHe!G5L!Z@Vjl2(#j8gu z0RXgLi+|x4d)z3x@%~q}ScuTG9FB_}gMr>s2f$+1C-l}`C!841Kbu00@{s6|tB|TB z2Ogs;X@=ngG>dvWbhBRSU%ElbG9_Dn5wGgQY9qc}n&fx#!>YN`(uW$D9TEKH={SNg z{NaW`o}+G&&=?N)Zz5^21{zN(OZY32{7H#9(@7<`@f43XvvuexijtOwDSnWM^5dd0 z$IV5G+|fvZxoA4+L2_==b>s({7{qA4JKCBZa&6j&qT!F(CmYUkqtZ@Jr9E3k!<>;>k92!7mpB{6n49qjE7r# zQyZy8nRtK<{P^ak0Yhr~LsYFhm+{A&cv6N?+|*2sryP!p+U)6M#ZIrU8C-f-v}^ae z6theCAQ6juC%h0rAg}M2QNFM>!18S_dxh^cD`hUC7v`tzp@C>RpDZy+Y8tno^!xqC zIk9r)e1wa^MU;^AP}E;gz^oJqnP|P{@>aYknjumYg*@}YT84oS(2eYubR}`U6Eg(8 z76r1yzrG^2N7Hq2u0Q|K^IjBNIAqcHWVc58Yk7LTrPrgqL)by{XkeXLA-U&_xEoXK z-vnA;2q(7BX#w$`;P~%a1;3Nl=Uos=L@``%WFJh^2ch)riH`G`lBqx@~wDkNQ;v+ zzYFm=&hmEKH5{666!7*(xWLFPqqYq1=ucO=lHsIi5e}1f>G5j;wETNX14em(>VDtg z;J3ha0~XqP$u13SOoJXQtS5U_f3s8*%lc|U^=r^P&5)xDA(tK#SVfjNluX2lgQvP} zt`_X;wu5gC>L|)~aCB(Q%iyKs1wPpeOkb`^3IyC1zTK(&98uR1Zhb>rap%)7bF`-< zO-ZjY9Y2}pFjwY$iKy$-G}S3c+A$8VNg%Y}ep|3}np3bdrKkCqYHT<4ll>a->9NrZ zAS7?WHDP7E<85+_yz3K^91y z*&p!_m0kU=73uKb!87}RLLcBG`TqHRIz^sDRjJAQvdUvzk}T8~;(B`Dhq=lu0zYO6-F z*Pp9txI{Ir!D0(SmO)B`9c8wM8W#NIzw0b7vu}vP1)=l4`B{Y`Y{X?fuGo-na?{ne zy&QvV)DP5Jg#AQw$F8sc${)L3Tl>aUA&1sVJld1dN$Ia`fZq_}4aFxJLTFt!GLog* z5GR&WzzwNNE!{n4pB8$X_hq-Ls%o?1OU4e2R62DVQ}rC@3SOjmtyH1I{yA!$$NJ@v zs76)+>byrsYrCJnr;cXwGH%w#5D?2CqYt#-P`zGdC#cP+wsG=R(TN76o@&M}|2BUP z4Y&4aBYYf`L;M<%fVIv*7pu<$y*JeFL4K_MrKiGT!RUOVj!$Qap&p}%WKmFEfrSkk zU2G_acl6N-HFa`WaoaOKUsuhUI%R*irO5ViOUZW-At7RO0*WsC$qA8}nvL}Zkh+tXOzgwYS7?isUo1JqjpynG4hbbHEPB0<;WTMuVW4 zqJ^U^gGs^6;Adb3upT%9Tn%1^5JSWuj*tMzM@TxP4AKbch1{WQqlcqcqpxBJW4L1E zVvJ(kU=m@nV;W+<$NY-9hI#a_zejm~aIc?(DS^ZVKmh*7tN*|Fn{e|4(*rI*K&thoiV1 z0`INKuaJ1I@h}Y^!?W$~A!jC9=Gm-1B?1+`)V1Cod7ADnU{BaxzS zY+prosJ9vp%5qdM9T&b-EEiRBB)2}?{CqQRh+MYWZUa>cpd9#r=Lr8}6w44LdD7qW zz%zdq!dTWp0TkzBO#ZuXF>999(J|D~G2Pn`85)|8DJLLh#%pC|A%lj8i+hAlvDEth z1UzZ1LqS79`Xqvvw zLb)O>q(UUg7OeNfr{kD+<>BEW?qT^V`0gR&;qKw)e(UzlgX4MX<>4jV*t_D06zQft zo&d+J&*cRG^ds)_f99ytpYvN($EU4mF-RsY2}vK=dlnfrg~aJ^5JFzu416hK-U_;8 zAL|ID)Y|dBvBQZ^^uNl~;|=5Q5bYS3%LjVfj?e+upbrxV!Z5^LW!#v07JgS8;n7W6 zrIPfGLc3k#dZ_&?Ry0yW7q4&zuWd0q*6`!PFi~bMd(kw5@%yYA-S?GsRSdXDCW8qV z?J>uZogbPZ-HDII94yWEbXZb{C;04Wm+D}PlwYV0Y4eJ`#H|a}g+5vgOXG??3zMYf zWF1+A%}8x^XUv*lk|07J7Q4EpO~t4BKKwC!k|MF(6(Bi(m8m&uvk!K0PH>26b&oah zlm%2aUy!}{Tmc7XS>JH_PL@j%QoBP$zHLMnftv76chPHJhucsF-)Vw^q>mL^^7f9t-g@B!U)V0s%EVit_?vMq`(~lapjr5A+-Em)fyt z_bLaI5{to9cb-1Y%RZ<5)}a{TXtQx995wD}?%u~(7(rn%lsxiyuV=i8&Lw?9V`aDl z8<=|=SfAdbRzr$;LyB()hkCrqys_sndBj>oZGN}{rQ%|T+}P02Xm!lQ5?8$w0i-~4 zT_Gl2F%1aW8A=K=gr{v)VJD?_DW<)McyBH9&Lcmp*PKv0@4?4Ug(00ijnJ;LMt;PA z_9tWFSOPXxt!V|>LU#0XUn|(UJcV?3xk$pu5R&JaVV`$@=H!whs5|9pM3Zu9I4gx0?=z9=_J&0~ zrPooaJw;2Gp9fW96xUb7X?cr`kuUoGI%c(vm#NS*83lEn6TKFW4V{V|gC%zPISPE$ z!3xxVA)}n38~nMUH1mxL4hh3h;@?SDeX$7hB4h=7!iTKpt+gVr&hD2xs~?^deJ2cR z_njgnDd04ov&LYz5-2E|bX^N}J_AkYK|kp&c2cwR!IqfXUM*>>^qjen#^~cN0n9~#b2!Af;r#!G=yVNJ*+IQ=82hC(NaESQ)ZL&l|$Ep`Jt?# zmVb&x9!<~Tvad;e9AgZSc_T?5z{&jE@+$tgu8Kq|MJGINBNvNq*uJa(bPTn|{cX9R zRhxvr4^^;tjmTqme%74CB;;dbOD0u+LWJz^$Ig3{>ZPOTnMk*9;FtF4UZtjY&~9+; zV|TxR%0!vpy;FQaK*oe;@t6Sm*wj!i$Hc|S=+^V@5<~9UXasp@Fg1q!NEetX)}&xcOxOrfo%>rXFW z+7U0hR2Y8}cPXea*(O*$Qn9FeGO<-fl0Bd>-SR;q&^x!NzXc65)z28PkJd5aUMHSt z_$5HJIo-yVnUw_pHu<&KjKAdN{uLf9F-0XKClO!L0X=26!T-%^v)XJ=bjgoJu0d$K zUjZ@F(O^K@ZB*{C(dUJV9dC4|kNl0%rp8LQ_PDZ5Ow_^3HQQcn%bTIy*A)JG;ridq zOq1Q@e;3f|I7?VUcC`&0?7+5cU6uno0UFjLN+O&{Trq;OaAv!Kmcy$|c1q4^6YMK4 zDDt+jB#loY+(l)waJQ!wCfht(qT2HgX}Q7EVAR01u%R%TU9v*^=GpDH*}y z=s=oKH}{!Pdz-2+VwCHU@!z<%kz9f{v~;oZb@-|Xd5OuGLSDWP;mhFe6~Rl(1AP`W zV`q;bMCeYj^A#5q{B592PP5s8{G3SN+)>BzDp8nS$cJfT!ECb46d25sON{Ci!IOe! z*%(f>ZR6Dl-H-Os7wJuU7KnV31~pqmp}@gZI{rDu91F|wxMGXVM#5JG-x1m7mzA*^ z1+6_l+0Hjds6J+TX16fB+C_)vLcxKtYTH-I+${Lj`Iy4vVMfl>pErbS8sVV2Ph4^{x zWbL>~{aC10 z&}exj4=i;wh!Fp={eju-^7qhUZzxIFu+1!~5C%CpkVM0d`S1NLgR(sM|9BrC#Fs>L z2Paw5=VRXp?%jO`yipOIZ~hBuEBZC6iavV4LEBjDP;N25#bl=D8pQVAT8q(z_gWl3B=nTPR= zU!1suW{bU-LH8OM-A{k9XH8nvT{defKwjK5#+67~`-+=DC^^^e2=2gNa-EXJ%F`P$ z8caU+F%_0#`o8=x=s_@*LW>0&sd?%!+1yxp_s;iMJ+<`Iyy@DeMzW{ zce7wl^tFS+3~oacYh}Sso1dMYrr@FHMR@wMNYHM{*}H^BBUK)G(`&simM$$$uiYk-4#b~SrugCZ7a$gZ${4SZ!FnFp7aWEwPmX-DD?g0Z2zR=e8gffDP>?XH9 zqp_Lm^C!`^jT-k{+sVnBvc}%#8Nc;?B;vfcS+J-v{nR;V?>25K>lNl?Ngdn=;nb-I z3PYLB33v+}{&>EPMIoNsDxah%6s=VW4~PmU*INpiE}OFL_{1Z9AKo)NFz{uOzR`ZT zi5C86U)*hbppK+;Gz;#wGt@}keE7@%czf_GdCgMm&G7=aQHCQJQa}N8KU;i$_{zHt z^AP{6F!-YPOu|`#>T1X0bN`=O*yvdQLbC-oC63ViJr_)D-@W6+6sG$UEEtf%c*jy>}D5p3D9{3<%|aBkkUWyhw5cW-6Pdkjs-meihI=yx$TZ!e&A%l2C~|I?AqN#K8E ztl;I*k<{?UiU|0*2hrC)iVme&cnJLCXjhKz*t_o&UvL3;--GtE+sB4dsqc)u43?PB zMt7w4?PA|`rqF&CZFOgA$H>O#Km1kbvyw6C(5|sPdpqB%e1);%(7N zgz@0RpnsSNtQqiW!4GQ{##-Dh?wS_2*8HjA=4Qd4d83)98E0=!lndwNU$OvbeTr65 zQ(eQ{F5Vt)Z)qv?DY7WIU0zQSXj~pH*JS(n$vIxZ?UtRVQhWBKPEFLwG8Y^8o8rHS z-{AjI=H;^NeKq^T?0Dvd%&)TJ*&n_NDZz;{p%zlg;JwzCmgb_uBIe?Wnd4tlNmki$=A`)Xuav2elXe(c&i@4WUgxBL?uBxSwlk7hj$BF_{3KjTIG zsBopw!;kW!pZVbi)-h2oeIJs1XtXyM`hBurW(veqx3#vnwKM6yyb>?x6Hf>>m&3!k zG$8-T;dXF|D`yW&4v(EM`$5KeK0MP2PVgOf2mPA6#n1D3>l<%Ol-s}7bN1IgGo(SZ zx3!(@Vnsd@N{(bTt<@c_e6J!%1DtytE}Jm%1n2T8yVoI|J*+^I-Q$q#2Nf=Ymt~@y zFEHhK+k)<3TZ`MmTeHu;A>Z3`wx`El1)5{f>3-1kK_^8+tZ=zSdREsoh^;U&+>U?Y zu-ApBfwdGt9R;q$<#y3iDTMoRxm_kK^n+*6b6`bNzQ6_1>fO*OKqWD+bA#6^qDyhr zZVS#Y49eWrxMoh7%(;Di@2W-fip$sAInTSYVX2KzRLQm_qgQ^&!SCb8U1g7(9f;^^hn=Wuqxx(-k{N<{Fx2mg; zi8i~-7plHJh$QFS;@q?nW(xwB#g&_!77ka)a}wcRUx7y!<(8Tau+_HCU(+_fsinrh z&c?ZN{VGL}zvWW$3g;&8_LVrYd$M1=a_+kO>&bMB%OYEZ`uo?-y)yfy>~2SiZ`<1T z>O9$?0-ISb$e?=tT#8DeR|d~Plz47q`bjVq!ex961mthSGL>c ztSQX1+NzEFJX7P;hsPxH*@GM@u;qte|1NftCv>4I+5x$W8Cn04;s=rn56 z4JHNECJmKodyi3<>^tAXp#?m6eh=4(!P$>fout~9o6oTi1>5+%p6n+lM(sOM*`R@z zxk2oe?x0bW@yK~U{%(PYT(65_nTh^>ewQNMj#Vo; zv!^qzto(3Lb#N?SPs^X47mN7|Hqua=JjefD*u+X0vsB2~bSh9j+p62zTw(HTb74!f z-|gd{;hsRgBVe;h0ur^$?$75ItaL6q_I-&rh!W>VvtKxBXnX(~-<#7IYX~|Qc|2H4 zQ@f~GEw;Avc|unmbaj`1?~7RaUT#&gpS(_$xO5M=I@GiOmL1KEpLI&2%&j*5b>XLP z^Ntn|`Mf-HgU}71%$>1kdJDZ&%uSad39w<-RF}K$PVnX1iLXV78uCgXJzlPg(#>|T z&92Bay_0>W#e*^jnQ#4^?-f?Q(OPGL9nVaj6S_apFGBRM^b0G?9Dvrd{30t@@TSsK zkv-n_wpRX}&=EGnm%UZ7a(5w$iCTXA(NZ^g#)#d8*RnM>E0-llUF#dzxMtTRVql=?qnERtWpZu`t_gUcmL|KZ_Xw%7GVM(>M%aB$^rn;?o-+O7m!^tsy{ zfA~GZ1J7JIC_KmVD9fi$G`TfNO5-*!zwn%_*&n{D4yO-EY^`;HGq<{$4k|Lga9EZH zAH3$;yixZHDS*Qo8ylZ#37GiRqX_jnEeWVQ>>T^h+Esxw8UqMvdIxpYZ1jU<|q?wS$F znE{&_$XO9KBZ-)0-+fQazHA0`R+#giqDS-P0qvTRTkB#2mgBJ=nW&C5qT$p>GY+qRQX9*D)yYNxr zRq;_Hs!mBmCbJr)x(1t~$Ln|{f}F$`42su{YCaunQg)u;Y@x3_}??33g5z>hpY*=(f%98*$HKy-X}a>#XRGS z_ndo2u%i45PT%V6HwNB1$Gt9}LwM(mM|fE{E#@PGye`{Y7s6*UHJMtQ%j*_})8M`Z z+#isC!HSVTINIUOBnvI;`g?G+Dm}5dEhT@OToDrXS z%V3xZW-2^*1Vx;fg>T~I_^NON!?q_?)R>NN3#UsI!)&LMH}mHFg3R9`yNFh56|QA= zS{dOWUigA;xuQn+rsUx33JS8{QA!k{&mjS1e(ZGORQlRv9e?2=OO3t4j>>A^dLoU0`=SJtd7^vTGg z$#dZUBKYGZ0B^LIiB#mL6TP{dP$_F#Tk|ZE{m9LSuCmJR0!1qCSbJdULYKf7mz4@D zdyY6YguSCKR-6wJC8Ra%dzSZ6l@Y_a18`9xTs@_>!Mmn-Ha9L5tlQXF3@N-D3>Vaz z42}9HSNaPeh%^T87r`6vwy5n!!c#dnswvbrT+|Lj_|M5B#f=-+6_^gmJ9T46IZneK z-e-8Ez+Xw~7M9qoGPhq>y8sT!@qZ8=LAli0g8n@IxqbWaN`M@~OFdh|K!l(9yq8d? zgP!<#a#xJq${t~9_B?x?Z{nxVQ6K>=A!fnhl1;uS#yLhv5;LnKLSeft;Uv}|^!ye)aeT@-s;fKUq z*yARgiL=Kgm5o96J-D|>Dpmz<{;!j-;XXGFk0AqKzx>OIGPYhxoj*SLnzGaI3Mo4E zYhi*oj~}CxhcGVuGrI3FA^$CF;%4-6w1*h`lZ*ZF&8eyVn`6UlIa6O56xGQNwqE|F z^gETYk6nk1$o*799&w>QAD)yQJ|?lx0#-5=n1tsQY(Be|?PmwsXN4aKFNtDBiDuWn zqcTlPx-q^Ddt?=tIKQF$Mx2LJ};5n ztd6gZ>q1rPDJ#-uXh_=>2nKbQ&{8w9Kk~mSwiLzdoLb_O|`=fD^rx!+}If8&Xtm@zH*QM(9C+6||Xly8^%dvP+ z7poEj8{!}ijK@{IzaL%869HB4Agm*iP}3$gG@6I5Tuap(X}pmrzug~K;f?W>s^|5` zlju=tERV2u!rGI8WFnCWz+1W_I;69KxXyZsIEZ$jS1%*1tT%Pa#fFIDl!a|dB!*K7 zo!2E2ISUf%FznGHiF(}D-6u_4`38^mB#9aqO8E8S?Rf`?Yell_6zKq9Usf(cb$z9x>b0Qn`SO1-Xx zbX&CU1j>csbt{@$L_@l0k(4fM+N|>-D55L1^|~#jlD1BmC9zE)fxgR=2_i{$8QSKB zPS~6*8jI8hrxV8>nw>}vlMAnd3Q?GzRAb{>ih^o5n*}H!x*C9zQ(7XlTB^$wk^er^ z^-9dbBFh6dfgR*3970WM6V>vfFMG; zi&_I{xr}(Z!N_GeMTHNBpt$aiCe`tzs=MK~dfgN19gL@?;jTobolp?+c}wC%QJC_IRQ?PepWh9W6PeRwP|O4;LOfFGMWFs{VMI)*;*#8ApU6 z)>RwSFl`D)KF~N#!Ahpl1T5)>{@v)E9jx~WVH!sy4NgWvEj@uFxRDS35H>U+HW=4E zT11WMPNZKxBA1M)$*&a`bLM7V7Kud213rxLRN7~)(?41ls6cub!bX2xy3}k)v%9X4eTR05B3qf0`?KCg?$7YLh52;A9dO& z#P?=iQp-gPmA_tJHYLsQelA=|I^bMt@>GbIqkc4y7gy*-(RhCVd#buP(U5NBKCIi$ zS)&7i{#m1uS))^PXY#vrMl_@^teZ(NHEBv_eynfBM_XC zFTq4k&u$dpg>_S2S&7!7x*)}j{F1X~+66suf!|#AIGtdHdmHq2tnw@0r@t5MxX-JH zL333|UjWcYUW~!r>I!VaQ{K8dL_I6;2&`G>*5Vjte*|&k{IQ4yq=nU*yqBF4Th|a(^ zlFS&$k|dLm6v-rH6UiiGh-g*<873M+Mu>)x%|t`U7DKNtV55d!gl#qSBJ6rYFT%DN zdJ(qW(2KAghF*m2H1r~D3_e~w9l%{iOJ9zG8%(ql=x%a4k?9e%_F%6CN;G>-lxS`= zXlQ_FZo=dx(_C*hTE>ihCQ37IF;ODF6?~SMEccrz5gag4A~*=zrPKUAY_tr1x0xuB zA2LxQza2A|n*8oCQ6e~OqC{{fXqQd%J7Tm9es`HDk$=QQiTo&LE;ISvZK6alZlXl+ z(a;IIakACrzzInZV|Z!8UY3Z|>DCcltnA-6wV~HDyZ}Bufa4^;4||>Y%C{@cln9Q0 zwIc%DUJH+hfq~L~9Kj0zSfa0* zWKea0vIU;~AkWP9IeGQ3^*YH~%x*TW26!(8O-9-EfcqeO40>;2OQFI4U36wk+?I=B zYE}eiN)AEx&F~EAr5gU*bCm~q1=n~buTpN@ zxwWyev(bPpjm@^bTelC742|vBL_N(djU73-AO|~hFk-?5Q!tuqcjaI#2UnQTl+fJL z*_3NH=U__?w&q}44z}lDI0tijbmsKv%<0jYli!(>-wskWgP`VGARTa7qyd{-^_Z(>>rKmY&$ literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Size4-Regular.Dl5lxZxV.woff2 b/assets/static/KaTeX_Size4-Regular.Dl5lxZxV.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..680c13085076a2f6c5a7e695935ec3f21cddb65f GIT binary patch literal 4928 zcmV-G6Tj?tPew8T0RR91024p}4gdfE04S^g021l|0RR9100000000000000000000 z00006U;u$M2o4FH3=s$lpb(dJ0X7081A$BnXaEEt1&II$gDMPx92+(xvye7xR)-Qr zuyF+D<2}WHmB5qvtDzk>iwqJnL*(fZs|06Yb!k(1`ETc1I4-BI5fi@^u8fdm)_=e` zdp}9j)YFz0DG~@_Kr>cMHY70C!K^ZDLNTA1b7Br>uDhMiy#E2l3s-l)|7lD20$2hm z@RXnGF4_PYHl#gB*k&mx`PNs|E@~BRiaIk-Yp%L*)p~xqH)tK24LDPq+9^`k`Cgg@ z?wr3yPQ)iMi`0C({fo<{L5l+`f3Eib=1O^!+?5mxbFzfbmnAs&^Jiy+y`4!4(_Cp% zqD;z%tlFv-x2E;!;w zVW0LxIo!N76;gG%@Hb~*66P0cigm@!%!Cno$kKtF{J6eOf$5?ZhZ zGxUV~z5L(+ewzJn*7bz*N{9T6&S$7sY0!Etm|_zlZIG>ifQcfRwh5_SQlHslg9^@7tlD^wLmOxkR|-Rl>&iBW8}oeXg=l3PGl0WW7UOHQ$AH=-*sQ_FPT5-1d5EJQD9Pn$NP z=&ex`C2L6`ubBa-+$U+ol!uAv{MKA*F%G6?$zgGfC`t3*GI6_Eb;)%5MJ*?0ruoG$O;U?7n^){QDYAVGaEVAHLqZB9$dHf<2?`{n zLBa$`NQZCJlm;XxcSy38uj#vUF*`Hs$Te_xywo5!OD#vP&QtM_|MGmbfNp9M$0RSK=0_8_ zABCw>{ZyuM9=Qack^&VKMj|Ak)m~&+sFoKh!y*qw(#BI)DONKBw}KKQLVnAX zG1&USa_<#$+$JX-mDDDeb~MggE1*$BlEb77LoKF}k$@k0xv!=(a9U`DIxRMzDx4M- zby_$y8F)ug0CH(Ej8jTz)P`gfLQ@?uVB-n6GIj$~)F}})=^B$un~SNqEM_044HB;N zhGmM31%SFVDb>`A0h1#dQO?j~Y^-I)6a-yTPH)gB2)PoKXk{Nguv@^n30~1Uz4`%@ zD`m4i&uZq$jbBlIr!`;~fTB|CWScMarV3S1Y6Ge}8#%>J_FVVI{x3$o9E61rv-C=)ljThD#+}}^zAw|gQO7_rj>e?#e`;j4(=L3iD8l>nvKp>+j@jEgyUwZEikoU zHWST>2naBxf=JYIC;){c0_HLu-=J;+&@vhwQB#6|W=GUg1Q6yqqWK8|7C1^ROpF?C z4J(R71hg?xdm%6l9Zb|25zxhC-Rw}!J;^ooCJ5+rWc?5T1CD4gLBNosqr+-OSs87_ zHo}VL7ojq>IQPjFsy3FWnUJ(p$So71-$xwI z?-zDt94hM6EP-*1I$K5)wa*E%kwg-TMNvt2=HcQl{g&m$ZUSxtJ5FpQZ$aTfFJ)Q^ zKqdy3I8BgEQ0@SJBhqaonQ$$rn0XLeCP8yU{np*|Vs>g`NUiHm1r*-6C^Ak@npARd z+~sMJ@odvPOygYR7IQ1sqae%e#;7iVVvO(o1Ck$0* zFd;Bmk#K2Cdlr&B;k#c9JTX4=Tb+%hn~s0mmbsT+pj5fN?boKS1uqw}iVm{fn@Pzy zlBeJ}FNK{1rNjm{l2+_Gjs>rRH35$8i)y?pjmO2P18mc2)B)8;a&4%GCor|!ue2l0 z@X11NoM#Ltr=3&ntIU+uA7Q!Dp}Y!^&Ni{D-6snT!|DB3i!jgBoFj`Q*i^tK&VyE& zvw)M1orI5?t@f#>&HD zak^D@rlVy+5kEoOn_MXLu0H+IQn&56%Sqs?@mfCVarak6{Uy;q{3a2bl}wz`wDWW2 zFe_eM+Gu$l-T;AwdpZ%+8c>Xjj9L02w!{{t3%dFTa16K4; zIWgrd&P@RPxY}Dr-k_JC=$4!E7KBmC2$MP#w->H5!6_>Pr9I@t|HRTurr;U-+c_17 zle`RDGL=Dw*u?=Af_22JyfNP9Y9`_6ee?*coA&SST${*$%I)9i# z>QCny1#6hw;;UEI`#w-TSOu)Bv#Nl9%?K)BC3UGOY|qXa&%vaQ&-k$DKw$9Uzn^>N z;eYm}h<1CJ|M-dDT8kDhn~;uxfl>{O`#pnGusBQTSLWLp4DhWwVxo*Jch`sW+*@`` z_ak7SJRpZ@zrTH5oMa}J_!{pz=N{2)H*N16;-^2s^hBQjFPN0S{9v~~X*yzY_B#zO zZ`@+Co5ek=JsDu`K7U@w>p@27n{aZ>nzEX1pWoc#*^kkriEAA7%^NB*>>W^ey;Zpi zK!h)^cg;i*qx(Fqr!ofnW(o(Jlf!m9yX8!vY0LMzT4C!J!MLHRZ~Cm6X}7Ig@)HLQ zN4^)s3V-w0A8ldnFz_#kX$F&6{MfvW3#FaG49`9U;jg#Mja*)<+B@LVi8>dBl55q- z<(9ei@FTF_lM#&RYYcTxSBh`d_^9v-bF)Asgvwz@xrQ-KuWBg<$S|DWP7O|s(zdQE(#);lqcVpr9 zSKNgW-))N`jHq|DB)ATJ8H}+79&pVt6y$wTZJe&42aC)hH};_9m($#@|E1)$CS3N4 z`O|W9wY%3hVY)?s53f)8=JJ$umzkl$!eV3YQ)MfaYwE79zY^UoH*1k01Af^b>H%ZG z^-DO;E}HCzW9!w$_j~-7$l*4@;Rv(b4R1>?|7ShTT$e0)e4>665*$kjchBvGYlW zVFf{88Rp5xs_ysr^`=9=Fi?M47nbk1E?9R>W>`1R@MHqzN_m-wSvrhkCVj<4pSw2P z9)=TJ^AcaxXRvNtuJ_T1AAF?ccXZ%oE_l%9(r`;hs!%jQG?KAQ^?y|NMm0=%m zDp3wQk=5Rfussmr&7R<7&lQCop?gBz@77;ie_dPVir%j-KZ3*88_esm=dk1WcPGAg zto?*Wm=AMA!|Wqb!MEldKGJdgGeJxdqsAN-1>yD|6?!3WhqDhm>PHM>j@5nhx#9SC zj^p2-XK{?-drRD44zlS_--hSvOCM?YJ?{7N{K3&Z!TxDjURSqu!?e!HYXw&1>@L0Z zZ=-jKj*UzCrvgQ_uG{h>He8n&ugf-VTVA_iTHV%la@cN*S^%7Rg7*2Tf+kR*!tk*_@q85UwF!pw(p|nk`ns4bNmF3u!6WrJ!9# zT^44B(E|fR(rr2R^(;aba*?6@{ZjXVY_1F|9y?hWL?q1gppPxAM3zE_WC}8Bbh)$x z{n%R~yGzrnT4THQvNK6vTcWBi$4ecM>e*PrOhhnvRW%Hq7FP?Yee05N4RUnp3c%t4 z38w?h+SS7nbYPivurP_2byCduQ6FY!VI<&E`djO1pk75!^k?zAa`GJs5iIxC+f{{a z7`Rzd#v*CwDlx~hw-hBXRw<4;5_Hl%w*>9g(~%NK%i=IJp!MrN39~R2^?_pyOs5yO z6ge2o{ae&O0u#(|U<%4nfdyzK24CVUVu`~Yq$8g6B#?oOWFj+J$VxU6$xaS(QWUw! zP0CfBZ=4xqAJKL2sICSTTqTeI literal 0 HcmV?d00001 diff --git a/assets/static/KaTeX_Typewriter-Regular.C0xS9mPB.woff b/assets/static/KaTeX_Typewriter-Regular.C0xS9mPB.woff new file mode 100644 index 0000000000000000000000000000000000000000..2432419f28936aff53ddfa2a732d027e6a6648fd GIT binary patch literal 16028 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 G0ssIW}E$%rmP@UWH#*azT!5^S^@#OiXi?5ka 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 MzaRX}iWL5T03x1QQ2+n{ literal 0 HcmV?d00001 diff --git a/assets/static/katex-afcc0501.C3UTweSs.css b/assets/static/katex-afcc0501.C3UTweSs.css new file mode 100644 index 0000000..d3df715 --- /dev/null +++ b/assets/static/katex-afcc0501.C3UTweSs.css @@ -0,0 +1 @@ +@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/static/KaTeX_AMS-Regular.BQhdFMY1.woff2) format("woff2"),url(/assets/static/KaTeX_AMS-Regular.DMm9YOAa.woff) format("woff"),url(/assets/static/KaTeX_AMS-Regular.DRggAlZN.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/static/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2) format("woff2"),url(/assets/static/KaTeX_Caligraphic-Bold.BEiXGLvX.woff) format("woff"),url(/assets/static/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/static/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2) format("woff2"),url(/assets/static/KaTeX_Caligraphic-Regular.CTRA-rTL.woff) format("woff"),url(/assets/static/KaTeX_Caligraphic-Regular.wX97UBjC.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/static/KaTeX_Fraktur-Bold.CL6g_b3V.woff2) format("woff2"),url(/assets/static/KaTeX_Fraktur-Bold.BsDP51OF.woff) format("woff"),url(/assets/static/KaTeX_Fraktur-Bold.BdnERNNW.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/static/KaTeX_Fraktur-Regular.CTYiF6lA.woff2) format("woff2"),url(/assets/static/KaTeX_Fraktur-Regular.Dxdc4cR9.woff) format("woff"),url(/assets/static/KaTeX_Fraktur-Regular.CB_wures.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/static/KaTeX_Main-Bold.Cx986IdX.woff2) format("woff2"),url(/assets/static/KaTeX_Main-Bold.Jm3AIy58.woff) format("woff"),url(/assets/static/KaTeX_Main-Bold.waoOVXN0.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/static/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2) format("woff2"),url(/assets/static/KaTeX_Main-BoldItalic.SpSLRI95.woff) format("woff"),url(/assets/static/KaTeX_Main-BoldItalic.DzxPMmG6.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/static/KaTeX_Main-Italic.NWA7e6Wa.woff2) format("woff2"),url(/assets/static/KaTeX_Main-Italic.BMLOBm91.woff) format("woff"),url(/assets/static/KaTeX_Main-Italic.3WenGoN9.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/static/KaTeX_Main-Regular.B22Nviop.woff2) format("woff2"),url(/assets/static/KaTeX_Main-Regular.Dr94JaBh.woff) format("woff"),url(/assets/static/KaTeX_Main-Regular.ypZvNtVU.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/static/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2) format("woff2"),url(/assets/static/KaTeX_Math-BoldItalic.iY-2wyZ7.woff) format("woff"),url(/assets/static/KaTeX_Math-BoldItalic.B3XSjfu4.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/static/KaTeX_Math-Italic.t53AETM-.woff2) format("woff2"),url(/assets/static/KaTeX_Math-Italic.DA0__PXp.woff) format("woff"),url(/assets/static/KaTeX_Math-Italic.flOr_0UB.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/static/KaTeX_SansSerif-Bold.D1sUS0GD.woff2) format("woff2"),url(/assets/static/KaTeX_SansSerif-Bold.DbIhKOiC.woff) format("woff"),url(/assets/static/KaTeX_SansSerif-Bold.CFMepnvq.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/static/KaTeX_SansSerif-Italic.C3H0VqGB.woff2) format("woff2"),url(/assets/static/KaTeX_SansSerif-Italic.DN2j7dab.woff) format("woff"),url(/assets/static/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/static/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2) format("woff2"),url(/assets/static/KaTeX_SansSerif-Regular.CS6fqUqJ.woff) format("woff"),url(/assets/static/KaTeX_SansSerif-Regular.BNo7hRIc.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/static/KaTeX_Script-Regular.D3wIWfF6.woff2) format("woff2"),url(/assets/static/KaTeX_Script-Regular.D5yQViql.woff) format("woff"),url(/assets/static/KaTeX_Script-Regular.C5JkGWo-.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/static/KaTeX_Size1-Regular.mCD8mA8B.woff2) format("woff2"),url(/assets/static/KaTeX_Size1-Regular.C195tn64.woff) format("woff"),url(/assets/static/KaTeX_Size1-Regular.Dbsnue_I.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/static/KaTeX_Size2-Regular.Dy4dx90m.woff2) format("woff2"),url(/assets/static/KaTeX_Size2-Regular.oD1tc_U0.woff) format("woff"),url(/assets/static/KaTeX_Size2-Regular.B7gKUWhC.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/static/KaTeX_Size3-Regular.CTq5MqoE.woff) format("woff"),url(/assets/static/KaTeX_Size3-Regular.DgpXs0kz.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/static/KaTeX_Size4-Regular.Dl5lxZxV.woff2) format("woff2"),url(/assets/static/KaTeX_Size4-Regular.BF-4gkZK.woff) format("woff"),url(/assets/static/KaTeX_Size4-Regular.DWFBv043.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/static/KaTeX_Typewriter-Regular.CO6r4hn1.woff2) format("woff2"),url(/assets/static/KaTeX_Typewriter-Regular.C0xS9mPB.woff) format("woff"),url(/assets/static/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.19"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/assets/static/layouts_style-b34a8e57.a91n6qlS.css b/assets/static/layouts_style-b34a8e57.a91n6qlS.css new file mode 100644 index 0000000..1c303fe --- /dev/null +++ b/assets/static/layouts_style-b34a8e57.a91n6qlS.css @@ -0,0 +1 @@ +a{text-decoration:none}#sidebar a{padding:2px 10px;margin-left:-10px}#sidebar a.is-active{background-color:#eee}body{margin:0;font-family:sans-serif}*{box-sizing:border-box}#page-content{opacity:1;transition:opacity .3s ease-in-out}body.page-is-transitioning #page-content{opacity:0} diff --git a/assets/static/vike-react-b64a028b.BcWtY8Ol.css b/assets/static/vike-react-b64a028b.BcWtY8Ol.css new file mode 100644 index 0000000..1f671b6 --- /dev/null +++ b/assets/static/vike-react-b64a028b.BcWtY8Ol.css @@ -0,0 +1 @@ +@keyframes vike-react-shine{to{background-position-x:-200%}} diff --git a/blog/0/index.html b/blog/0/index.html new file mode 100644 index 0000000..0b243e6 --- /dev/null +++ b/blog/0/index.html @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Hello World

Published on: 2024-12-02

This is the first post. It shows that the whole thing is working out nicely.

+ + + + + + + + + + + \ No newline at end of file diff --git a/blog/0/index.pageContext.json b/blog/0/index.pageContext.json new file mode 100644 index 0000000..0b7b6c5 --- /dev/null +++ b/blog/0/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/blog/@id","routeParams":{"id":"0"},"data":"!undefined"} \ No newline at end of file diff --git a/blog/1/index.html b/blog/1/index.html new file mode 100644 index 0000000..e410e61 --- /dev/null +++ b/blog/1/index.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Ideas behind the blog stack

Published on: 2025-01-03

Over the last few years I kept writing notes and code in all kind of different ways. Sometimes I would use Wordpress, personal notes, markdown or Jupyter notebooks. They get saved in some repo and there you go. But these days I would like to bring them slowly together into some more common structure, i.e. on one common website.

+

My rather heavy reliance on Jupyter notebooks and markdown really mostly ruled out Wordpress. I also really like the ideas behind static site generators. They are simple, fast and can be version controlled. Then I had to choose the appropiate stack. The first logical idea would have been mkdocs-material. I have made great experiences with it in the past. It is super simple to set up, very configurable and it looks great. However, I recently started to have a deeper look into proper web tech of the type of React and it is simply sooo much more natural to work with those components etc.

+

Having settled on React, I first thought that it is totally enough to work with create-react-app. However, you soon realize that there have been no releases over the last few years and that the project is not really maintained anymore. A cute little solution was then nano-react-app. It is a super minimalistic setup and worked well as I started to play around.

+

This got me far enough with a single webpage. But as I wanted to have a blog with multiple posts, I had to think about how to structure the whole thing. And this is the moment where you need some kind of routers. And this is the moment, where I had to learn what react meant with the following statement on their website:

+
+

If you want to build a new app or a new website fully with React, we recommend picking one of the React-powered frameworks popular in the community.

+

You can use React without a framework, however we’ve found that most apps and sites eventually build solutions to common problems such as code-splitting, routing, data fetching, and generating HTML. These problems are common to all UI libraries, not just React.

+

By starting with a framework, you can get started with React quickly, and avoid essentially building your own framework later.

+
+

I really wanted to avoid this blow at the beginning but with the need for multiple pages I had to dive into this. After some research, I settled on vike. It provides everything I need and super flexible. It also has a bit of an indie vibe, which made it more sympathic. Finally setting it up is made quite easy with create-bati.

+

So here we are. I have a blog stack that I can work with. It is not perfect but it is a start. I will keep you updated on how it goes.

+ + + + + + + + + + + \ No newline at end of file diff --git a/blog/1/index.pageContext.json b/blog/1/index.pageContext.json new file mode 100644 index 0000000..9953ae7 --- /dev/null +++ b/blog/1/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/blog/@id","routeParams":{"id":"1"},"data":"!undefined"} \ No newline at end of file diff --git a/blog/2/index.html b/blog/2/index.html new file mode 100644 index 0000000..7243a01 --- /dev/null +++ b/blog/2/index.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Moving old lectures

Published on: 2025-01-06

In my time in academia, I gave a few lectures on various topics. They are saved as latex, markdown, jupyter notebook, whatever you want. But to get started, I decided to move over a number of lectures on AMO that I gave for several years.

+

I had them all saved on a website called Authorea and could export them directly as latex. So what could be easier than just importing them right ?

+

Challenge 1: Loading the markdown

+

It was really quite straight forward to convert the files through pandoc with the command pandoc MY__INPUT_FILE.tex -s -o MY_FILE.md. However, once you have markdown I have to import it into the website. And it is really at this stage where my little python world crumbles. You have the habit that files are yours and any access from any script is identical. However, within the world of javascript, I suddenly had to think about strange things like clients / servers / build times etc. In the end, I chose a solution similiar to the one described by vike with a little script that converts the markdown into a json file. This json file is then loaded into the website without the need of any fs.

+

Challenge 2: Equations and references

+

The first challenge, already existed for the blogs in general. But now I also had to handle equations and references. To render them you need a surprising amount of extensions to remark including:

+ +

Despite all of those packages I needed to write a processing script that removed equation labels, equation alignements and also keep the spacing right. All in all it is nicer to use latex for long documents ...

+

Challenge 3: Images

+

Now I was already quite proud about the result, but then I realized that the images were not loading. Remember how I was loading markdown into a json ? Well this messed up the references to images in production. So I had to copy the images into public folder. Further, I had to find a way to keep the images at an appropiate size. This worked nicely with the img link, but to have this you must allow for rehype-raw. But then it was all good.

+

Conclusion

+

Building up this kind of content management is really only for the curious. Otherwise, projects like docusaurus or astro are much more suited. But now I have a cute little system puzzled together and can extend it at will. All of this with a very limited amount of complexity. FWIW, the code can be found here.

+ + + + + + + + + + + \ No newline at end of file diff --git a/blog/2/index.pageContext.json b/blog/2/index.pageContext.json new file mode 100644 index 0000000..88ffa6d --- /dev/null +++ b/blog/2/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/blog/@id","routeParams":{"id":"2"},"data":"!undefined"} \ No newline at end of file diff --git a/blog/blog_stack.md b/blog/blog_stack.md deleted file mode 100644 index 852ed10..0000000 --- a/blog/blog_stack.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -publishing_date: 2025-01-03 -title: Ideas behind the blog stack ---- - -Over the last few years I kept writing notes and code in all kind of different ways. Sometimes I would use Wordpress, personal notes, markdown or Jupyter notebooks. They get saved in some repo and there you go. But these days I would like to bring them slowly together into some more common structure, i.e. on one common website. - -My rather heavy reliance on Jupyter notebooks and markdown really mostly ruled out Wordpress. I also really like the ideas behind static site generators. They are simple, fast and can be version controlled. Then I had to choose the appropiate stack. The first logical idea would have been [mkdocs-material](https://squidfunk.github.io/mkdocs-material/). I have made great experiences with it in the past. It is super simple to set up, very configurable and it looks great. However, I recently started to have a deeper look into proper web tech of the type of React and it is simply sooo much more natural to work with those components etc. - -Having settled on _React_, I first thought that it is totally enough to work with [create-react-app](https://create-react-app.dev/). However, you soon realize that there have been no releases over the last few years and that the project is not really maintained anymore. A cute little solution was then [nano-react-app](ttps://github.com/nano-react-app/nano-react-app). It is a super minimalistic setup and worked well as I started to play around. - -This got me far enough with a single webpage. But as I wanted to have a blog with multiple posts, I had to think about how to structure the whole thing. And this is the moment where you need some kind of routers. And this is the moment, where I had to learn what react meant with the following statement [on their website](https://react.dev/learn/start-a-new-react-project): - -> If you want to build a new app or a new website fully with React, we recommend picking one of the React-powered frameworks popular in the community. -> -> You can use React without a framework, however we’ve found that most apps and sites eventually build solutions to common problems such as code-splitting, routing, data fetching, and generating HTML. These problems are common to all UI libraries, not just React. -> -> By starting with a framework, you can get started with React quickly, and avoid essentially building your own framework later. - -I really wanted to avoid this blow at the beginning but with the need for multiple pages I had to dive into this. After some research, I settled on [vike](https://vike.dev/). It provides everything I need and super flexible. It also has a bit of an indie vibe, which made it more sympathic. Finally setting it up is made quite easy with [create-bati](https://batijs.dev). - -So here we are. I have a blog stack that I can work with. It is not perfect but it is a start. I will keep you updated on how it goes. diff --git a/blog/hello_world.mdx b/blog/hello_world.mdx deleted file mode 100644 index d003bf9..0000000 --- a/blog/hello_world.mdx +++ /dev/null @@ -1,6 +0,0 @@ ---- -publishing_date: 2024-12-02 -title: Hello World ---- - -This is the first post. It shows that the whole thing is working out nicely. diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 0000000..6bcf5d6 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,29 @@ + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Welcome to my blog!

It contains notes about all kind of topic, ideas etc.

+ + + + + + + + + + + \ No newline at end of file diff --git a/blog/index.pageContext.json b/blog/index.pageContext.json new file mode 100644 index 0000000..741a949 --- /dev/null +++ b/blog/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/blog","routeParams":{},"data":"!undefined"} \ No newline at end of file diff --git a/blog/moving_lectures.md b/blog/moving_lectures.md deleted file mode 100644 index 6071cab..0000000 --- a/blog/moving_lectures.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -publishing_date: 2025-01-06 -title: Moving old lectures ---- - -In my time in academia, I gave a few lectures on various topics. They are saved as latex, markdown, jupyter notebook, whatever you want. But to get started, I decided to move over a number of lectures on AMO that I gave for several years. - -I had them all saved on a website called Authorea and could export them directly as latex. So what could be easier than just importing them right ? - -## Challenge 1: Loading the markdown - -It was really quite straight forward to convert the files through pandoc with the command `pandoc MY__INPUT_FILE.tex -s -o MY_FILE.md`. However, once you have markdown I have to import it into the website. And it is really at this stage where my little python world crumbles. You have the habit that files are yours and any access from any script is identical. However, within the world of javascript, I suddenly had to think about strange things like clients / servers / build times etc. In the end, I chose a solution similiar to the one described by [vike](https://vike.dev/markdown) with a little script that converts the markdown into a json file. This json file is then loaded into the website without the need of any `fs`. - -## Challenge 2: Equations and references - -The first challenge, already existed for the blogs in general. But now I also had to handle equations and references. To render them you need a surprising amount of extensions to remark including: - -- [rehype-katex](https://www.npmjs.com/package/rehype-katex) for compiling the equations. -- [remark-gfm](https://github.com/remarkjs/remark-gfm) for references in footnotes -- [remark-math](https://www.npmjs.com/package/remark-math) for compiling equations. - -Despite all of those packages I needed to write a processing script that removed equation labels, equation alignements and also keep the spacing right. All in all it is nicer to use latex for long documents ... - -## Challenge 3: Images - -Now I was already quite proud about the result, but then I realized that the images were not loading. Remember how I was loading markdown into a `json` ? Well this messed up the references to images in production. So I had to copy the images into public folder. Further, I had to find a way to keep the images at an appropiate size. This worked nicely with the `img` link, but to have this you must allow for [rehype-raw](https://www.npmjs.com/package/rehype-raw). But then it was all good. - -## Conclusion - -Building up this kind of content management is really only for the curious. Otherwise, projects like docusaurus or astro are much more suited. But now I have a cute little system puzzled together and can extend it at will. All of this with a very limited amount of complexity. FWIW, the code can be [found here](https://github.com/fretchen/fretchen.github.io). diff --git a/components/AmoList.tsx b/components/AmoList.tsx deleted file mode 100644 index 7272515..0000000 --- a/components/AmoList.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import * as React from "react"; - -import blogs from "../amo/blogs.json"; -import { Link } from "./Link"; - -const AmoList: React.FC = function () { - return ( -
- {blogs.map((blog, index) => ( -
- {blog.publishing_date &&

{blog.publishing_date}

} - - {" "} -

{blog.title}

- -
- ))} -
- ); -}; - -export default AmoList; diff --git a/components/BlogList.tsx b/components/BlogList.tsx deleted file mode 100644 index 26794dc..0000000 --- a/components/BlogList.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import * as React from "react"; - -import blogs from "../blog/blogs.json"; -import { Link } from "./Link"; - -const BlogList: React.FC = function () { - return ( -
- {[...blogs].reverse().map((blog, index) => ( -
- {blog.publishing_date &&

{blog.publishing_date}

} - - {" "} -

{blog.title}

- -
- ))} -
- ); -}; - -export default BlogList; diff --git a/components/Link.tsx b/components/Link.tsx deleted file mode 100644 index 8ae6ae4..0000000 --- a/components/Link.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; -import { usePageContext } from "vike-react/usePageContext"; - -export function Link({ href, children }: { href: string; children: string }) { - const pageContext = usePageContext(); - const { urlPathname } = pageContext; - const isActive = href === "/" ? urlPathname === href : urlPathname.startsWith(href); - return ( - - {children} - - ); -} diff --git a/components/MyFigure.tsx b/components/MyFigure.tsx deleted file mode 100644 index a940c1c..0000000 --- a/components/MyFigure.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from "react"; - -export function MyFigure({ href, caption }: { href: string; caption: string }) { - return ( -
- {caption} -
{caption}
-
- ); -} diff --git a/components/Post.tsx b/components/Post.tsx deleted file mode 100644 index 1e185e4..0000000 --- a/components/Post.tsx +++ /dev/null @@ -1,41 +0,0 @@ -/** - * This component is used to display a blog post. - */ - -import React from "react"; -import Markdown from "react-markdown"; -import remarkMath from "remark-math"; -import rehypeKatex from "rehype-katex"; -import remarkGfm from "remark-gfm"; -import rehypeRaw from "rehype-raw"; -import { BlogPost } from "../types/BlogPost"; -import "katex/dist/katex.min.css"; - -import Giscus from "@giscus/react"; - -export function Post({ title, content, publishing_date }: BlogPost) { - return ( - <> -

{title}

- {publishing_date &&

Published on: {publishing_date}

} - - {content} - - - - ); -} diff --git a/eslint.config.js b/eslint.config.js deleted file mode 100644 index 4a9893a..0000000 --- a/eslint.config.js +++ /dev/null @@ -1,65 +0,0 @@ -// @ts-nocheck - -import eslint from "@eslint/js"; -import prettier from "eslint-plugin-prettier/recommended"; -import react from "eslint-plugin-react/configs/recommended.js"; -import globals from "globals"; -import tseslint from "typescript-eslint"; - -export default tseslint.config( - { - ignores: [ - "dist/*", - // Temporary compiled files - "**/*.ts.build-*.mjs", - - "styled-system/", - // JS files at the root of the project - "*.js", - "*.cjs", - "*.mjs", - ], - }, - eslint.configs.recommended, - ...tseslint.configs.recommended, - { - languageOptions: { - parserOptions: { - warnOnUnsupportedTypeScriptVersion: false, - sourceType: "module", - ecmaVersion: "latest", - }, - }, - }, - { - rules: { - "@typescript-eslint/no-unused-vars": [ - 1, - { - argsIgnorePattern: "^_", - }, - ], - "@typescript-eslint/no-namespace": 0, - }, - }, - - { - files: ["**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}"], - ...react, - languageOptions: { - ...react.languageOptions, - globals: { - ...globals.serviceworker, - ...globals.browser, - }, - }, - - settings: { - react: { - version: "detect", - }, - }, - }, - - prettier, -); diff --git a/index.html b/index.html new file mode 100644 index 0000000..93b2e3b --- /dev/null +++ b/index.html @@ -0,0 +1,29 @@ + + + + + + + + Notes by fretchen + + + + + + + + + +

Website by fretchen

Welcome to my website with all kinds of notes etc. For the moment it is mostly a blog, but let us see how it evolves.

+ + + + + + + + + + + \ No newline at end of file diff --git a/index.pageContext.json b/index.pageContext.json new file mode 100644 index 0000000..623c3bd --- /dev/null +++ b/index.pageContext.json @@ -0,0 +1 @@ +{"_configFromHook":"!undefined","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/pages/index","routeParams":{},"data":"!undefined"} \ No newline at end of file diff --git a/layouts/LayoutDefault.tsx b/layouts/LayoutDefault.tsx deleted file mode 100644 index 18ca5e1..0000000 --- a/layouts/LayoutDefault.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import "./style.css"; - -import React from "react"; -import { Link } from "../components/Link.js"; - -export default function LayoutDefault({ children }: { children: React.ReactNode }) { - return ( -
-

Website by fretchen

- - Welcome - Blog - AMO - {""} - - {children} -
- ); -} - -function Appbar({ children }: { children: React.ReactNode }) { - return ( -
- {children} -
- ); -} - -function Content({ children }: { children: React.ReactNode }) { - return ( -
-
- {children} -
-
- ); -} diff --git a/layouts/style.css b/layouts/style.css deleted file mode 100644 index c5a3d28..0000000 --- a/layouts/style.css +++ /dev/null @@ -1,29 +0,0 @@ -/* Links */ -a { - text-decoration: none; -} -#sidebar a { - padding: 2px 10px; - margin-left: -10px; -} -#sidebar a.is-active { - background-color: #eee; -} - -/* Reset */ -body { - margin: 0; - font-family: sans-serif; -} -* { - box-sizing: border-box; -} - -/* Page Transition Animation */ -#page-content { - opacity: 1; - transition: opacity 0.3s ease-in-out; -} -body.page-is-transitioning #page-content { - opacity: 0; -} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 5383188..0000000 --- a/package-lock.json +++ /dev/null @@ -1,9696 +0,0 @@ -{ - "name": "fretchen.github.io", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "@giscus/react": "^3.1.0", - "@mdx-js/mdx": "^3.1.0", - "@mdx-js/react": "^3.1.0", - "@mdx-js/rollup": "^3.1.0", - "@vitejs/plugin-react": "^4.3.4", - "mocha": "^11.0.1", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-markdown": "^9.0.1", - "rehype-katex": "^7.0.1", - "rehype-raw": "^7.0.0", - "remark-gfm": "^4.0.0", - "remark-math": "^6.0.0", - "tsx": "^4.19.2", - "vike-react": "^0.5.10" - }, - "devDependencies": { - "@eslint/js": "^9.17.0", - "@types/mocha": "^10.0.10", - "@types/react": "^19.0.2", - "@types/react-dom": "^19.0.2", - "eslint": "^9.17.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-react": "^7.37.2", - "globals": "^15.14.0", - "postcss": "^8.4.49", - "prettier": "^3.4.2", - "typescript": "^5.7.2", - "typescript-eslint": "^8.18.1", - "vike": "^0.4.210", - "vite": "^6.0.5" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", - "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.3" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", - "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", - "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@brillout/import": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@brillout/import/-/import-0.2.3.tgz", - "integrity": "sha512-1T8WlD75eeFSMrptGy8jiLHmfHgMmSjWvLOIUvHmSVZt+6k0eQqYUoK4KbmE4T9pVLIfxvZSOm2D68VEqKRHRw==", - "license": "MIT" - }, - "node_modules/@brillout/json-serializer": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@brillout/json-serializer/-/json-serializer-0.5.15.tgz", - "integrity": "sha512-iLAyV1HNC3nG07ypBwCJohFrajY1HeZdfBBgGuRtMH/JPddgG9bPmoSI18A1RBx67vRmY6/8rgisjR5YfTvZHA==", - "license": "MIT" - }, - "node_modules/@brillout/picocolors": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/@brillout/picocolors/-/picocolors-1.0.15.tgz", - "integrity": "sha512-VrgvPtfnKP/i8kxCAyQVd0DWg6xU8OZJndbLf/lrywd96UdMhnGL/PK42HhHhhwkDSkaiQU+zc+OPWpvqOe4Cg==", - "license": "ISC" - }, - "node_modules/@brillout/require-shim": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@brillout/require-shim/-/require-shim-0.1.2.tgz", - "integrity": "sha512-3I4LRHnVZXoSAsEoni5mosq9l6eiJED58d9V954W4CIZ88AUfYBanWGBGbJG3NztaRTpFHEA6wB3Hn93BmmJdg==", - "license": "MIT" - }, - "node_modules/@brillout/vite-plugin-server-entry": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@brillout/vite-plugin-server-entry/-/vite-plugin-server-entry-0.5.6.tgz", - "integrity": "sha512-lxgvTQhQBucZehhkvq9x2C7IUfrkAhp+YkW8S0MVR5EYkf6EWBg+bYZWB0//mDfbmUcc8aAEe3uRto7pOg35Ig==", - "license": "MIT", - "dependencies": { - "@brillout/import": "^0.2.3", - "@brillout/picocolors": "^1.0.14" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", - "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.5", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", - "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", - "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", - "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", - "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@giscus/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@giscus/react/-/react-3.1.0.tgz", - "integrity": "sha512-0TCO2TvL43+oOdyVVGHDItwxD1UMKP2ZYpT6gXmhFOqfAJtZxTzJ9hkn34iAF/b6YzyJ4Um89QIt9z/ajmAEeg==", - "dependencies": { - "giscus": "^1.6.0" - }, - "peerDependencies": { - "react": "^16 || ^17 || ^18 || ^19", - "react-dom": "^16 || ^17 || ^18 || ^19" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", - "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0" - } - }, - "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.0.0", - "remark-mdx": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "source-map": "^0.7.0", - "unified": "^11.0.0", - "unist-util-position-from-estree": "^2.0.0", - "unist-util-stringify-position": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/@mdx-js/mdx/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@mdx-js/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", - "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", - "license": "MIT", - "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/@mdx-js/rollup": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/rollup/-/rollup-3.1.0.tgz", - "integrity": "sha512-q4xOtUXpCzeouE8GaJ8StT4rDxm/U5j6lkMHL2srb2Q3Y7cobE0aXyPzXVVlbeIMBi+5R5MpbiaVE5/vJUdnHg==", - "license": "MIT", - "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "@rollup/pluginutils": "^5.0.0", - "source-map": "^0.7.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "rollup": ">=2" - } - }, - "node_modules/@mdx-js/rollup/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz", - "integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz", - "integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz", - "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz", - "integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz", - "integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz", - "integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz", - "integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz", - "integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz", - "integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz", - "integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz", - "integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz", - "integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz", - "integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz", - "integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz", - "integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz", - "integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz", - "integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz", - "integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz", - "integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/acorn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "license": "MIT" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", - "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/katex": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", - "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", - "license": "MIT" - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "license": "MIT" - }, - "node_modules/@types/mocha": { - "version": "10.0.10", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", - "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/react": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.2.tgz", - "integrity": "sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg==", - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.2.tgz", - "integrity": "sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "license": "MIT" - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.2.tgz", - "integrity": "sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/type-utils": "8.18.2", - "@typescript-eslint/utils": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.2.tgz", - "integrity": "sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/typescript-estree": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.2.tgz", - "integrity": "sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.2.tgz", - "integrity": "sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "8.18.2", - "@typescript-eslint/utils": "8.18.2", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.2.tgz", - "integrity": "sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.2.tgz", - "integrity": "sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.2.tgz", - "integrity": "sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/typescript-estree": "8.18.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.2.tgz", - "integrity": "sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.18.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz", - "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==", - "license": "ISC" - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", - "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.26.0", - "@babel/plugin-transform-react-jsx-self": "^7.25.9", - "@babel/plugin-transform-react-jsx-source": "^7.25.9", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/astring": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", - "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", - "license": "MIT", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "license": "ISC" - }, - "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001690", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", - "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/collapse-white-space": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", - "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "license": "MIT", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.76", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz", - "integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==", - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/es-abstract": { - "version": "1.23.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.7.tgz", - "integrity": "sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.6", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-regex-test": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esast-util-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", - "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/esast-util-from-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", - "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "acorn": "^8.0.0", - "esast-util-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", - "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.17.0", - "@eslint/plugin-kit": "^0.2.3", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz", - "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-util-attach-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", - "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-build-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", - "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-walker": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-build-jsx/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-scope": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", - "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-to-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", - "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "astring": "^1.8.0", - "source-map": "^0.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-to-js/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/estree-util-visit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", - "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true, - "license": "ISC" - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", - "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "dunder-proto": "^1.0.0", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "function-bind": "^1.1.2", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", - "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/giscus": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/giscus/-/giscus-1.6.0.tgz", - "integrity": "sha512-Zrsi8r4t1LVW950keaWcsURuZUQwUaMKjvJgTCY125vkW6OiEBkatE7ScJDbpqKHdZwb///7FVC21SE3iFK3PQ==", - "license": "MIT", - "dependencies": { - "lit": "^3.2.1" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "15.14.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", - "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-from-dom": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz", - "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==", - "license": "ISC", - "dependencies": { - "@types/hast": "^3.0.0", - "hastscript": "^9.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", - "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "devlop": "^1.1.0", - "hast-util-from-parse5": "^8.0.0", - "parse5": "^7.0.0", - "vfile": "^6.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html-isomorphic": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz", - "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-from-dom": "^5.0.0", - "hast-util-from-html": "^2.0.0", - "unist-util-remove-position": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz", - "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^9.0.0", - "property-information": "^6.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-is-element": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", - "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", - "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-from-parse5": "^8.0.0", - "hast-util-to-parse5": "^8.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "parse5": "^7.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", - "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-attach-comments": "^3.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.0", - "unist-util-position": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree/node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", - "license": "MIT" - }, - "node_modules/hast-util-to-estree/node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", - "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-text": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", - "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "hast-util-is-element": "^3.0.0", - "unist-util-find-after": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz", - "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/html-url-attributes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", - "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", - "license": "MIT" - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", - "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", - "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isbot-fast": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/isbot-fast/-/isbot-fast-1.2.0.tgz", - "integrity": "sha512-twjuQzy2gKMDVfKGQyQqrx6Uy4opu/fiVUTTpdqtFsd7OQijIp5oXvb27n5EemYXaijh5fomndJt/SPRLsEdSg==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/iterator.prototype": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.4.tgz", - "integrity": "sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "reflect.getprototypeof": "^1.0.8", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/katex": { - "version": "0.16.19", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.19.tgz", - "integrity": "sha512-3IA6DYVhxhBabjSLTNO9S4+OliA3Qvb8pBQXMfC4WxXJgLwZgnfDl0BmB4z6nBMdznBsZ+CGM8DrGZ5hcguDZg==", - "funding": [ - "https://opencollective.com/katex", - "https://github.com/sponsors/katex" - ], - "license": "MIT", - "dependencies": { - "commander": "^8.3.0" - }, - "bin": { - "katex": "cli.js" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lightningcss": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.25.1.tgz", - "integrity": "sha512-V0RMVZzK1+rCHpymRv4URK2lNhIRyO8g7U7zOFwVAhJuat74HtkjIQpQRKNCwFEYkRGpafOpmXXLoaoBcyVtBg==", - "license": "MPL-2.0", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.25.1", - "lightningcss-darwin-x64": "1.25.1", - "lightningcss-freebsd-x64": "1.25.1", - "lightningcss-linux-arm-gnueabihf": "1.25.1", - "lightningcss-linux-arm64-gnu": "1.25.1", - "lightningcss-linux-arm64-musl": "1.25.1", - "lightningcss-linux-x64-gnu": "1.25.1", - "lightningcss-linux-x64-musl": "1.25.1", - "lightningcss-win32-x64-msvc": "1.25.1" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.25.1.tgz", - "integrity": "sha512-G4Dcvv85bs5NLENcu/s1f7ehzE3D5ThnlWSDwE190tWXRQCQaqwcuHe+MGSVI/slm0XrxnaayXY+cNl3cSricw==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.25.1.tgz", - "integrity": "sha512-dYWuCzzfqRueDSmto6YU5SoGHvZTMU1Em9xvhcdROpmtOQLorurUZz8+xFxZ51lCO2LnYbfdjZ/gCqWEkwixNg==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.25.1.tgz", - "integrity": "sha512-hXoy2s9A3KVNAIoKz+Fp6bNeY+h9c3tkcx1J3+pS48CqAt+5bI/R/YY4hxGL57fWAIquRjGKW50arltD6iRt/w==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.25.1.tgz", - "integrity": "sha512-tWyMgHFlHlp1e5iW3EpqvH5MvsgoN7ZkylBbG2R2LWxnvH3FuWCJOhtGcYx9Ks0Kv0eZOBud789odkYLhyf1ng==", - "cpu": [ - "arm" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.25.1.tgz", - "integrity": "sha512-Xjxsx286OT9/XSnVLIsFEDyDipqe4BcLeB4pXQ/FEA5+2uWCCuAEarUNQumRucnj7k6ftkAHUEph5r821KBccQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.25.1.tgz", - "integrity": "sha512-IhxVFJoTW8wq6yLvxdPvyHv4NjzcpN1B7gjxrY3uaykQNXPHNIpChLB52+wfH+yS58zm1PL4LemUp8u9Cfp6Bw==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.25.1.tgz", - "integrity": "sha512-RXIaru79KrREPEd6WLXfKfIp4QzoppZvD3x7vuTKkDA64PwTzKJ2jaC43RZHRt8BmyIkRRlmywNhTRMbmkPYpA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.25.1.tgz", - "integrity": "sha512-TdcNqFsAENEEFr8fJWg0Y4fZ/nwuqTRsIr7W7t2wmDUlA8eSXVepeeONYcb+gtTj1RaXn/WgNLB45SFkz+XBZA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.25.1.tgz", - "integrity": "sha512-9KZZkmmy9oGDSrnyHuxP6iMhbsgChUiu/NSgOx+U1I/wTngBStDf2i2aGRCHvFqj19HqqBEI4WuGVQBa2V6e0A==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lit": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", - "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.1.0", - "lit-html": "^3.2.0" - } - }, - "node_modules/lit-element": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", - "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.2.0" - } - }, - "node_modules/lit-html": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", - "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/markdown-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", - "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-table": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", - "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-math": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", - "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "longest-streak": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.1.0", - "unist-util-remove-position": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", - "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", - "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", - "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", - "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "license": "MIT", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^2.0.0", - "micromark-extension-gfm-footnote": "^2.0.0", - "micromark-extension-gfm-strikethrough": "^2.0.0", - "micromark-extension-gfm-table": "^2.0.0", - "micromark-extension-gfm-tagfilter": "^2.0.0", - "micromark-extension-gfm-task-list-item": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", - "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-math": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", - "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", - "license": "MIT", - "dependencies": { - "@types/katex": "^0.16.0", - "devlop": "^1.0.0", - "katex": "^0.16.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", - "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", - "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", - "license": "MIT", - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-md": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", - "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", - "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", - "license": "MIT", - "dependencies": { - "acorn": "^8.0.0", - "acorn-jsx": "^5.0.0", - "micromark-extension-mdx-expression": "^3.0.0", - "micromark-extension-mdx-jsx": "^3.0.0", - "micromark-extension-mdx-md": "^2.0.0", - "micromark-extension-mdxjs-esm": "^3.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", - "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", - "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", - "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.3.tgz", - "integrity": "sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", - "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mocha": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.0.1.tgz", - "integrity": "sha512-+3GkODfsDG71KSCQhc4IekSW+ItCK/kiez1Z28ksWvYhKXV/syxMlerR/sC7whDp7IyreZ4YxceMLdTs5hQE8A==", - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.3", - "browser-stdout": "^1.3.1", - "chokidar": "^3.5.3", - "debug": "^4.3.5", - "diff": "^5.2.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^5.1.6", - "ms": "^2.1.3", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^6.5.1", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", - "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", - "license": "MIT", - "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", - "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", - "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.25.0" - }, - "peerDependencies": { - "react": "^19.0.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-markdown": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", - "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "devlop": "^1.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "html-url-attributes": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=18", - "react": ">=18" - } - }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-streaming": { - "version": "0.3.46", - "resolved": "https://registry.npmjs.org/react-streaming/-/react-streaming-0.3.46.tgz", - "integrity": "sha512-Apk0mkMQb7+bJ3jRWsgr3+VNa6h0SLIIK6GIJMa/ZFlmJYn19k/hvLAC9EKcV1pYe5xt4Bq9emNIRiRyxYLC+g==", - "license": "MIT", - "dependencies": { - "@brillout/import": "^0.2.3", - "@brillout/json-serializer": "^0.5.1", - "@brillout/picocolors": "^1.0.11", - "isbot-fast": "1.2.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recma-build-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", - "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", - "license": "MIT", - "dependencies": { - "acorn-jsx": "^5.0.0", - "estree-util-to-js": "^2.0.0", - "recma-parse": "^1.0.0", - "recma-stringify": "^1.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", - "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "esast-util-from-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", - "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-to-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz", - "integrity": "sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "dunder-proto": "^1.0.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rehype-katex": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz", - "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/katex": "^0.16.0", - "hast-util-from-html-isomorphic": "^2.0.0", - "hast-util-to-text": "^4.0.0", - "katex": "^0.16.0", - "unist-util-visit-parents": "^6.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-recma": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", - "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "hast-util-to-estree": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-gfm": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-math": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", - "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-math": "^3.0.0", - "micromark-extension-math": "^3.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", - "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz", - "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==", - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.29.1", - "@rollup/rollup-android-arm64": "4.29.1", - "@rollup/rollup-darwin-arm64": "4.29.1", - "@rollup/rollup-darwin-x64": "4.29.1", - "@rollup/rollup-freebsd-arm64": "4.29.1", - "@rollup/rollup-freebsd-x64": "4.29.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", - "@rollup/rollup-linux-arm-musleabihf": "4.29.1", - "@rollup/rollup-linux-arm64-gnu": "4.29.1", - "@rollup/rollup-linux-arm64-musl": "4.29.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", - "@rollup/rollup-linux-riscv64-gnu": "4.29.1", - "@rollup/rollup-linux-s390x-gnu": "4.29.1", - "@rollup/rollup-linux-x64-gnu": "4.29.1", - "@rollup/rollup-linux-x64-musl": "4.29.1", - "@rollup/rollup-win32-arm64-msvc": "4.29.1", - "@rollup/rollup-win32-ia32-msvc": "4.29.1", - "@rollup/rollup-win32-x64-msvc": "4.29.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/scheduler": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", - "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.4" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/synckit": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", - "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-api-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsx": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz", - "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==", - "license": "MIT", - "dependencies": { - "esbuild": "~0.23.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", - "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", - "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", - "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", - "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", - "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/darwin-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", - "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", - "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", - "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", - "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", - "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", - "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-loong64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", - "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", - "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", - "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", - "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-s390x": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", - "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", - "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", - "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", - "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", - "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/sunos-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", - "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", - "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", - "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", - "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/esbuild": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", - "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.1", - "@esbuild/android-arm": "0.23.1", - "@esbuild/android-arm64": "0.23.1", - "@esbuild/android-x64": "0.23.1", - "@esbuild/darwin-arm64": "0.23.1", - "@esbuild/darwin-x64": "0.23.1", - "@esbuild/freebsd-arm64": "0.23.1", - "@esbuild/freebsd-x64": "0.23.1", - "@esbuild/linux-arm": "0.23.1", - "@esbuild/linux-arm64": "0.23.1", - "@esbuild/linux-ia32": "0.23.1", - "@esbuild/linux-loong64": "0.23.1", - "@esbuild/linux-mips64el": "0.23.1", - "@esbuild/linux-ppc64": "0.23.1", - "@esbuild/linux-riscv64": "0.23.1", - "@esbuild/linux-s390x": "0.23.1", - "@esbuild/linux-x64": "0.23.1", - "@esbuild/netbsd-x64": "0.23.1", - "@esbuild/openbsd-arm64": "0.23.1", - "@esbuild/openbsd-x64": "0.23.1", - "@esbuild/sunos-x64": "0.23.1", - "@esbuild/win32-arm64": "0.23.1", - "@esbuild/win32-ia32": "0.23.1", - "@esbuild/win32-x64": "0.23.1" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.18.2.tgz", - "integrity": "sha512-KuXezG6jHkvC3MvizeXgupZzaG5wjhU3yE8E7e6viOvAvD9xAWYp8/vy0WULTGe9DYDWcQu7aW03YIV3mSitrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.18.2", - "@typescript-eslint/parser": "8.18.2", - "@typescript-eslint/utils": "8.18.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-find-after": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", - "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", - "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", - "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/update-browserslist-db/node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", - "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vike": { - "version": "0.4.211", - "resolved": "https://registry.npmjs.org/vike/-/vike-0.4.211.tgz", - "integrity": "sha512-W7HbzTqwuIhLm/HmOl5rjCX4ZuOhxTgI/h0bqBkVOeCwrO8Ixo545oQJeXQ+3MojpDThLQFMeBvwdN9T03wVrw==", - "license": "MIT", - "dependencies": { - "@brillout/import": "^0.2.3", - "@brillout/json-serializer": "^0.5.15", - "@brillout/picocolors": "^1.0.15", - "@brillout/require-shim": "^0.1.2", - "@brillout/vite-plugin-server-entry": "^0.5.6", - "acorn": "^8.0.0", - "cac": "^6.0.0", - "es-module-lexer": "^1.0.0", - "esbuild": "^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0", - "fast-glob": "^3.0.0", - "semver": "^7.0.0", - "source-map-support": "^0.5.0" - }, - "bin": { - "vike": "node/cli/bin-entry.js" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "react-streaming": ">=0.3.42", - "vite": ">=5.1.0" - }, - "peerDependenciesMeta": { - "react-streaming": { - "optional": true - } - } - }, - "node_modules/vike-react": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/vike-react/-/vike-react-0.5.11.tgz", - "integrity": "sha512-jZ3f7l0tkin/55Sc0O3kyroqozFufBU1ZMImhHoQNmAYkpfYVIjSKWkB5piyLG6oJKi3HbFYMLRDwVJzxDzdTA==", - "license": "MIT", - "dependencies": { - "react-streaming": "^0.3.42" - }, - "peerDependencies": { - "react": ">=18.0.0", - "react-dom": ">=18.0.0", - "vike": ">=0.4.182" - } - }, - "node_modules/vike/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vite": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", - "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", - "license": "MIT", - "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.4.49", - "rollup": "^4.23.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" - } - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", - "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workerpool": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", - "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", - "license": "Apache-2.0" - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", - "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 4ae1a45..0000000 --- a/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "scripts": { - "dev": "vite", - "prebuild": "tsx ./utils/preBuild.ts", - "build": "vite build", - "postbuild": "tsx ./utils/cleanVike.ts", - "preview": "vite preview", - "lint": "eslint .", - "lint:fix": "eslint --fix .", - "test": "mocha" - }, - "dependencies": { - "@giscus/react": "^3.1.0", - "@mdx-js/mdx": "^3.1.0", - "@mdx-js/react": "^3.1.0", - "@mdx-js/rollup": "^3.1.0", - "@vitejs/plugin-react": "^4.3.4", - "mocha": "^11.0.1", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-markdown": "^9.0.1", - "rehype-katex": "^7.0.1", - "rehype-raw": "^7.0.0", - "remark-gfm": "^4.0.0", - "remark-math": "^6.0.0", - "tsx": "^4.19.2", - "vike-react": "^0.5.10" - }, - "devDependencies": { - "@eslint/js": "^9.17.0", - "@types/mocha": "^10.0.10", - "@types/react": "^19.0.2", - "@types/react-dom": "^19.0.2", - "eslint": "^9.17.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-react": "^7.37.2", - "globals": "^15.14.0", - "postcss": "^8.4.49", - "prettier": "^3.4.2", - "typescript": "^5.7.2", - "typescript-eslint": "^8.18.1", - "vike": "^0.4.210", - "vite": "^6.0.5" - }, - "type": "module" -} diff --git a/pages/+Head.tsx b/pages/+Head.tsx deleted file mode 100644 index 56db280..0000000 --- a/pages/+Head.tsx +++ /dev/null @@ -1,19 +0,0 @@ -// https://vike.dev/Head - -import React from "react"; - -export default function HeadDefault() { - return ( - <> - - { - // umami analytics script - } - - - ); -} diff --git a/pages/+config.ts b/pages/+config.ts deleted file mode 100644 index 2600c31..0000000 --- a/pages/+config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import vikeReact from "vike-react/config"; -import type { Config } from "vike/types"; -import Layout from "../layouts/LayoutDefault.js"; - -// Default config (can be overridden by pages) -// https://vike.dev/config - -export default { - // https://vike.dev/Layout - Layout, - - // https://vike.dev/head-tags - title: "Notes by fretchen", - description: "Blog, notepad, whatever you want to call it.", - - extends: vikeReact, -} satisfies Config; diff --git a/pages/+onPageTransitionEnd.ts b/pages/+onPageTransitionEnd.ts deleted file mode 100644 index 75af2e0..0000000 --- a/pages/+onPageTransitionEnd.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { OnPageTransitionEndAsync } from "vike/types"; - -export const onPageTransitionEnd: OnPageTransitionEndAsync = async () => { - console.log("Page transition end"); - document.querySelector("body")?.classList.remove("page-is-transitioning"); -}; diff --git a/pages/+onPageTransitionStart.ts b/pages/+onPageTransitionStart.ts deleted file mode 100644 index 12c344b..0000000 --- a/pages/+onPageTransitionStart.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { OnPageTransitionStartAsync } from "vike/types"; - -export const onPageTransitionStart: OnPageTransitionStartAsync = async () => { - console.log("Page transition start"); - document.querySelector("body")?.classList.add("page-is-transitioning"); -}; diff --git a/pages/_error/+Page.tsx b/pages/_error/+Page.tsx deleted file mode 100644 index cd01d65..0000000 --- a/pages/_error/+Page.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react"; -import { usePageContext } from "vike-react/usePageContext"; - -export default function Page() { - const { is404 } = usePageContext(); - if (is404) { - return ( - <> -

404 Page Not Found

-

This page could not be found.

- - ); - } - return ( - <> -

500 Internal Server Error

-

Something went wrong.

- - ); -} diff --git a/pages/amo/+Page.tsx b/pages/amo/+Page.tsx deleted file mode 100644 index 4a60fad..0000000 --- a/pages/amo/+Page.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import * as React from "react"; - -import AmoList from "../../components/AmoList"; - -const App: React.FC = function () { - return ( -
-

AMO lecture notes

-

- {" "} - Welcome, to my lecture notes on Atomic, Molecular and Optical physics that I prepared in my time in Heidelberg. - They consist of a total of 24 lectures, which I will recollect here again. -

- -
- ); -}; - -export default App; diff --git a/pages/amo/@id/+Page.tsx b/pages/amo/@id/+Page.tsx deleted file mode 100644 index 779b56e..0000000 --- a/pages/amo/@id/+Page.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import * as React from "react"; - -import blogs from "../../../amo/blogs.json"; -import { usePageContext } from "vike-react/usePageContext"; -import { Post } from "../../../components/Post"; -import { Link } from "../../../components/Link"; - -const App: React.FC = function () { - const pageContext = usePageContext(); - - const id = Number(pageContext.routeParams.id); - const prevBlog = id > 0 ? blogs[id - 1] : null; - const nextBlog = id < blogs.length - 1 ? blogs[id + 1] : null; - - if (isNaN(id)) { - throw new Error("Invalid blog post ID"); - } - // select the t`th blog post from blogs.json - const blog = blogs[id]; - - return ( -
- -
- {prevBlog && Previous: {prevBlog.title}} - {nextBlog && Next: {nextBlog.title}} -
-
- ); -}; - -export default App; diff --git a/pages/amo/@id/+onBeforePrerenderStart.js b/pages/amo/@id/+onBeforePrerenderStart.js deleted file mode 100644 index b48b23b..0000000 --- a/pages/amo/@id/+onBeforePrerenderStart.js +++ /dev/null @@ -1,11 +0,0 @@ -export { onBeforePrerenderStart }; - -import blogs from "../../../amo/blogs.json"; - -async function onBeforePrerenderStart() { - const blogURLs = blogs.map((blog, index) => { - const blogURL = `/amo/${index}`; - return blogURL; - }); - return blogURLs; -} diff --git a/pages/blog/+Page.tsx b/pages/blog/+Page.tsx deleted file mode 100644 index 913b084..0000000 --- a/pages/blog/+Page.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import * as React from "react"; - -import BlogList from "../../components/BlogList"; - -const App: React.FC = function () { - return ( -
-

Welcome to my blog!

-

It contains notes about all kind of topic, ideas etc.

- -
- ); -}; - -export default App; diff --git a/pages/blog/@id/+Page.tsx b/pages/blog/@id/+Page.tsx deleted file mode 100644 index e246a79..0000000 --- a/pages/blog/@id/+Page.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import * as React from "react"; - -import blogs from "../../../blog/blogs.json"; -import { usePageContext } from "vike-react/usePageContext"; -import { Post } from "../../../components/Post"; -import { Link } from "../../../components/Link"; - -const App: React.FC = function () { - const pageContext = usePageContext(); - const id = Number(pageContext.routeParams.id); - const prevBlog = id > 0 ? blogs[id - 1] : null; - const nextBlog = id < blogs.length - 1 ? blogs[id + 1] : null; - - if (isNaN(id)) { - throw new Error("Invalid blog post ID"); - } - // select the t`th blog post from blogs.json - const blog = blogs[id]; - - return ( -
- -
- {prevBlog && Previous post: {prevBlog.title}} - {nextBlog && Next post: {nextBlog.title}} -
-
- ); -}; - -export default App; diff --git a/pages/blog/@id/+onBeforePrerenderStart.js b/pages/blog/@id/+onBeforePrerenderStart.js deleted file mode 100644 index a2ef704..0000000 --- a/pages/blog/@id/+onBeforePrerenderStart.js +++ /dev/null @@ -1,11 +0,0 @@ -export { onBeforePrerenderStart }; - -import blogs from "../../../blog/blogs.json"; - -async function onBeforePrerenderStart() { - const blogURLs = blogs.map((blog, index) => { - const blogURL = `/blog/${index}`; - return blogURL; - }); - return blogURLs; -} diff --git a/pages/index/+Page.tsx b/pages/index/+Page.tsx deleted file mode 100644 index 6dff1f7..0000000 --- a/pages/index/+Page.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from "react"; - -import BlogList from "../../components/BlogList"; -export default function Page() { - return ( - <> -

- {" "} - Welcome to my website with all kinds of notes etc. For the moment it is mostly a blog, but let us see how it - evolves. -

- - - ); -} diff --git a/public/robots.txt b/robots.txt similarity index 100% rename from public/robots.txt rename to robots.txt diff --git a/test/blog/post1.mdx b/test/blog/post1.mdx deleted file mode 100644 index 9965fc2..0000000 --- a/test/blog/post1.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -publishing_date: 2024-12-02 -title: A Test Post ---- - -## Test Post - -This is the first post. Can I write a blog post like that ? diff --git a/test/blog/post2.mdx b/test/blog/post2.mdx deleted file mode 100644 index 143a375..0000000 --- a/test/blog/post2.mdx +++ /dev/null @@ -1,3 +0,0 @@ -## Test Post - -This is the second post. Can I write a blog post like that ? diff --git a/test/getBlogs.spec.ts b/test/getBlogs.spec.ts deleted file mode 100644 index daa7d74..0000000 --- a/test/getBlogs.spec.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { getBlogs } from "../utils/getBlogs"; - -import { strict as assert } from "assert"; - -describe("Make sure we can get blog posts", function () { - it("should return an array of blogs", function () { - const blogs = getBlogs({ blogDirectory: "./test/blog", sortBy: "publishing_date" }); - assert.equal(blogs.length, 2); - }); -}); diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index fbcbb7d..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "compilerOptions": { - "strict": true, - "allowJs": true, - "checkJs": false, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "sourceMap": true, - "module": "ESNext", - "noEmit": true, - "moduleResolution": "Bundler", - "target": "ES2022", - "lib": ["DOM", "DOM.Iterable", "ESNext"], - "types": ["vite/client", "vike-react", "mocha"], - "jsx": "preserve", - "jsxImportSource": "react" - }, - "exclude": ["dist"] -} diff --git a/types/BlogOptions.ts b/types/BlogOptions.ts deleted file mode 100644 index 1a8e08c..0000000 --- a/types/BlogOptions.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface BlogOptions { - blogDirectory: string; - sortBy?: string; -} diff --git a/types/BlogPost.ts b/types/BlogPost.ts deleted file mode 100644 index 5c258fb..0000000 --- a/types/BlogPost.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface BlogPost { - title: string; - content: string; - publishing_date?: string; - order?: number; -} diff --git a/utils/cleanMd.ts b/utils/cleanMd.ts deleted file mode 100644 index 31ae489..0000000 --- a/utils/cleanMd.ts +++ /dev/null @@ -1,46 +0,0 @@ -/** - * This functionality cleans the markdown of useless math mode commands. - */ - -import fs from "fs"; - -export const removeMath = (fileDirectory: string = "./blog") => { - const blogFiles = fs.readdirSync(fileDirectory); - // go through each file remove \begin{aligned} and \end{aligned} - - blogFiles.forEach((file) => { - // check that the file is a markdown file with ending .md or .mdx - if (!file.endsWith(".md") && !file.endsWith(".mdx")) { - return; - } - const blogFileContent = fs.readFileSync(`${fileDirectory}/${file}`, "utf-8"); - let blogContent = blogFileContent; - - // remove any \ensuremath{} from the content - blogContent = blogContent.replace(/\\ensuremath{([^}]*)}/g, "$1"); - - // remove any \begin{aligned} from the content - blogContent = blogContent.replace(/\\begin{aligned}/g, ""); - - // remove any \end{aligned} from the content - blogContent = blogContent.replace(/\\end{aligned}/g, ""); - - // replace any &= with = - blogContent = blogContent.replace(/&=/g, "="); - - // replace any =& with = - blogContent = blogContent.replace(/=&/g, "="); - - // replace any line ending on ` $$` with and empty line in the middle - blogContent = blogContent.replace(/ \$\$\n/g, "\n\n$$$\n"); - - // if a line starts with $$, add two empty lines behind it - blogContent = blogContent.replace(/\n\$\$ /g, "\n$$$\n\n"); - - // remove the \label{} with the text in it from the content - blogContent = blogContent.replace(/\\label{([^}]*)}/g, ""); - - // write the new content to the file - fs.writeFileSync(`${fileDirectory}/${file}`, blogContent); - }); -}; diff --git a/utils/cleanVike.ts b/utils/cleanVike.ts deleted file mode 100644 index 1eaa536..0000000 --- a/utils/cleanVike.ts +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Removes all the content of the server directory for the build directory. And moves all the content from - * build/client directory to the build directory - * at the end remove the left over server directory and assets.json file - */ - -import fs from "fs"; - -const serverDirectory = "./build/server"; -const clientDirectory = "./build/client"; -const assetsFile = "./build/assets.json"; - -const moveFiles = (source: string, destination: string) => { - fs.readdirSync(source).forEach((file) => { - fs.renameSync(`${source}/${file}`, `${destination}/${file}`); - }); -}; - -fs.readdirSync(serverDirectory).forEach((file) => { - fs.rmSync(`${serverDirectory}/${file}`, { recursive: true }); -}); - -export function cleanVike() { - // Entfernt den übrig gebliebenen 'server'-Ordner - if (fs.existsSync(serverDirectory)) { - fs.rmSync(serverDirectory, { recursive: true, force: true }); - } - - // Entfernt die übrig gebliebene 'assets.json' Datei - if (fs.existsSync(assetsFile)) { - fs.unlinkSync(assetsFile); - } -} - -moveFiles(clientDirectory, "./build"); -cleanVike(); diff --git a/utils/copyImg.ts b/utils/copyImg.ts deleted file mode 100644 index bbda382..0000000 --- a/utils/copyImg.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * This copies all the image files from the original folder to the corresponding subfolder - * in the public folder - */ - -import fs from "fs"; - -const publicFolder = "./public"; - -export const copyImg = (imgDirectory: string = "amo") => { - const imgFiles = fs.readdirSync(`./${imgDirectory}`); - const destFolder = `${publicFolder}/${imgDirectory}`; - if (!fs.existsSync(destFolder)) { - fs.mkdirSync(destFolder); - } - console.log(imgFiles); - imgFiles.forEach((file) => { - // check that the file is an image file with ending .png, .jpg or .svg - if (!file.endsWith(".png") && !file.endsWith(".jpg") && !file.endsWith(".svg")) { - return; - } - const imgFileContent = fs.readFileSync(`${imgDirectory}/${file}`); - fs.writeFileSync(`${destFolder}/${file}`, imgFileContent); - }); -}; diff --git a/utils/getAmo.ts b/utils/getAmo.ts deleted file mode 100644 index cfe6a2b..0000000 --- a/utils/getAmo.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { getBlogs } from "./getBlogs"; -import { removeMath } from "./cleanMd"; - -removeMath("./amo"); -getBlogs({ blogDirectory: "./amo", sortBy: "order" }); diff --git a/utils/getBlogs.ts b/utils/getBlogs.ts deleted file mode 100644 index 1124a11..0000000 --- a/utils/getBlogs.ts +++ /dev/null @@ -1,81 +0,0 @@ -/** - * This function is used to get all the blogs from the given directory. It saves the results into a json file. - */ - -import fs from "fs"; -import path from "path"; -import { BlogPost } from "../types/BlogPost"; -import { BlogOptions } from "../types/BlogOptions"; - -export const getBlogs = ({ blogDirectory = "./blog", sortBy = "publishing_date" }: BlogOptions): BlogPost[] => { - const blogFiles = fs.readdirSync(blogDirectory); - const blogs = blogFiles - .filter((file) => file.endsWith(".mdx") || file.endsWith(".md")) - .map((file) => { - const blogFileContent = fs.readFileSync(`${blogDirectory}/${file}`, "utf-8"); - // separate any front matter from the content - let blogContent = blogFileContent; - - const frontMatter = blogFileContent.match(/---([\s\S]*?)---/); - if (frontMatter) { - blogContent = blogContent.replace(frontMatter[0], ""); - // remove leading and trailing newlines - blogContent = blogContent.replace(/^\n/, "").replace(/\n$/, ""); - const blogPost: BlogPost = { - title: "", - content: blogContent, - }; - - // strip the leading and trailing '---' from the front matter - const frontContent = frontMatter[0].replace(/---/g, ""); - // find a line in front matter that starts with publishing_date: - const publishingDate = frontContent.match(/publishing_date: (.*)/); - if (publishingDate) { - blogPost.publishing_date = publishingDate[1]; - } - // find a line in front matter that starts with title: - const title = frontContent.match(/title: (.*)/); - if (title) { - blogPost.title = title[1]; - } - - // find a line in front matter that starts with order: - const order = frontContent.match(/order: (.*)/); - if (order) { - blogPost.order = parseInt(order[1]); - } - return blogPost; - } else { - return { - title: file.endsWith(".mdx") ? file.replace(".mdx", "") : file.replace(".md", ""), - content: blogContent, - }; - } - }); - - if (sortBy === "order") { - // sort the blogs by order - blogs.sort((a, b) => { - if (a.order && b.order) { - return a.order - b.order; - } else { - return 0; - } - }); - } else if (sortBy === "publishing_date") { - // sort the blogs by publishing date with the most recent first - blogs.sort((a, b) => { - if (a.publishing_date && b.publishing_date) { - return new Date(a.publishing_date).getTime() - new Date(b.publishing_date).getTime(); - } else { - return 0; - } - }); - } - - const jsonFilePath = path.join(blogDirectory, "blogs.json"); - fs.writeFileSync(jsonFilePath, JSON.stringify(blogs, null, 2)); - return blogs; -}; - -getBlogs({ blogDirectory: "./blog", sortBy: "publishing_date" }); diff --git a/utils/preBuild.ts b/utils/preBuild.ts deleted file mode 100644 index 1f10584..0000000 --- a/utils/preBuild.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { getBlogs } from "./getBlogs"; -import { removeMath } from "./cleanMd"; -import { copyImg } from "./copyImg"; - -// prepare the blog part of the website -getBlogs({ blogDirectory: "./blog", sortBy: "publishing_date" }); - -// prepare the amo part of the website -removeMath("./amo"); -getBlogs({ blogDirectory: "./amo", sortBy: "order" }); -copyImg("amo"); diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index 6dec90c..0000000 --- a/vite.config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import react from "@vitejs/plugin-react"; -import mdx from "@mdx-js/rollup"; -import { defineConfig } from "vite"; -import vike from "vike/plugin"; - -export default defineConfig({ - plugins: [ - vike({ - prerender: true, - }), - mdx(), - react({}), - ], - build: { - outDir: "build", - }, -});