From 0229ed08d0fe97c23c2cfad62859c636aaf5234e Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Mon, 10 Nov 2025 14:42:47 +0800 Subject: [PATCH 01/58] add workflow --- .github/workflows/docs.yml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..ca380dc03 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,38 @@ +name: Publish Sphinx Documentation + +on: + push: + branches: + - haoti/docs_update + +jobs: + publish_sphinx_docs: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install uv + uses: astral-sh/setup-uv@v5 + with: + version: "0.5.1" + enable-cache: true + cache-dependency-glob: "uv.lock" + - name: Install dependencies + run: | + uv sync --python 3.10 + - name: Sphinx build + run: | + uv run sphinx-multiversion source build + - name: Create index.html + run: | + uv run python redirect.py ${{ github.ref_name }} > build/index.html + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + publish_branch: gh-pages + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: build/ + force_orphan: true From 87b02bc6b96efee1e00203845b23cef4677f41fa Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:45:16 +0800 Subject: [PATCH 02/58] Create docs.yml --- .github/workflows/docs.yml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..ca380dc03 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,38 @@ +name: Publish Sphinx Documentation + +on: + push: + branches: + - haoti/docs_update + +jobs: + publish_sphinx_docs: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install uv + uses: astral-sh/setup-uv@v5 + with: + version: "0.5.1" + enable-cache: true + cache-dependency-glob: "uv.lock" + - name: Install dependencies + run: | + uv sync --python 3.10 + - name: Sphinx build + run: | + uv run sphinx-multiversion source build + - name: Create index.html + run: | + uv run python redirect.py ${{ github.ref_name }} > build/index.html + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + publish_branch: gh-pages + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: build/ + force_orphan: true From 66b9abbc8b565afd67ab5af97b1237fd458924ad Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:47:30 +0800 Subject: [PATCH 03/58] Update docs.yml Fix wrong brnahc --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index ca380dc03..573f238f5 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,7 +3,7 @@ name: Publish Sphinx Documentation on: push: branches: - - haoti/docs_update + - haoti/doc_update jobs: publish_sphinx_docs: From 6a46da7e355a3d3622da4a337ef36ff9cd14c450 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Mon, 10 Nov 2025 15:05:21 +0800 Subject: [PATCH 04/58] Update docs.yml add working directly --- .github/workflows/docs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 573f238f5..d3aa4acc1 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -21,12 +21,15 @@ jobs: enable-cache: true cache-dependency-glob: "uv.lock" - name: Install dependencies + working-directory: docs run: | uv sync --python 3.10 - name: Sphinx build + working-directory: docs run: | uv run sphinx-multiversion source build - name: Create index.html + working-directory: docs run: | uv run python redirect.py ${{ github.ref_name }} > build/index.html - name: Deploy From 1ac12b0275055cdc563a8ad43399e46c5240b47f Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Mon, 10 Nov 2025 15:09:34 +0800 Subject: [PATCH 05/58] Update docs.yml --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d3aa4acc1..fc73315ea 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -27,7 +27,7 @@ jobs: - name: Sphinx build working-directory: docs run: | - uv run sphinx-multiversion source build + uv run doc-vers - name: Create index.html working-directory: docs run: | From 449bac82f291a64b339d724caf57ad808b04ec2b Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Mon, 10 Nov 2025 15:28:18 +0800 Subject: [PATCH 06/58] Update docs.yml --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index fc73315ea..452ebd4d1 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -27,7 +27,7 @@ jobs: - name: Sphinx build working-directory: docs run: | - uv run doc-vers + uv run just docs - name: Create index.html working-directory: docs run: | From 3d2cb0062925f6dea2c5b21a160ecf78206c1cfb Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Mon, 10 Nov 2025 15:29:12 +0800 Subject: [PATCH 07/58] Update docs.yml --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 452ebd4d1..cd52c0901 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -27,7 +27,7 @@ jobs: - name: Sphinx build working-directory: docs run: | - uv run just docs + uv run just doc - name: Create index.html working-directory: docs run: | From 578ca2f2ecc9740b2af6307ce3493a77a1c7f0c3 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Mon, 10 Nov 2025 23:30:44 +0800 Subject: [PATCH 08/58] Update docs.yml --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index cd52c0901..24197291f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -37,5 +37,5 @@ jobs: with: publish_branch: gh-pages github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: build/ + publish_dir: docs/build/ force_orphan: true From bc36d154c1902546040cd1ee5a303917bae3061b Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Tue, 11 Nov 2025 10:07:20 +0800 Subject: [PATCH 09/58] Update docs.yml --- .github/workflows/docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 24197291f..a618374c5 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -37,5 +37,6 @@ jobs: with: publish_branch: gh-pages github_token: ${{ secrets.GITHUB_TOKEN }} + external_repository: Cytnx-dev/Cytnx_doc publish_dir: docs/build/ force_orphan: true From c01d9a691998656d445b65ef2c6f88aa84ac6d52 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Tue, 11 Nov 2025 10:15:35 +0800 Subject: [PATCH 10/58] Update docs.yml --- .github/workflows/docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a618374c5..4d91c7698 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -37,6 +37,7 @@ jobs: with: publish_branch: gh-pages github_token: ${{ secrets.GITHUB_TOKEN }} + personal_token: ${{ secrets.PAGES_PAT }} external_repository: Cytnx-dev/Cytnx_doc publish_dir: docs/build/ force_orphan: true From 27e23b517dd3d9738ca433f6d05d5ebc2cae1544 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Tue, 11 Nov 2025 10:31:19 +0800 Subject: [PATCH 11/58] Update docs.yml --- .github/workflows/docs.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 4d91c7698..26be7a7b8 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -35,8 +35,7 @@ jobs: - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: - publish_branch: gh-pages - github_token: ${{ secrets.GITHUB_TOKEN }} + publish_branch: gh-pages personal_token: ${{ secrets.PAGES_PAT }} external_repository: Cytnx-dev/Cytnx_doc publish_dir: docs/build/ From d809170c4955e5d07344e788ca04d7e583196c3a Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Tue, 11 Nov 2025 12:01:20 +0800 Subject: [PATCH 12/58] Update redirect.py --- docs/redirect.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/redirect.py b/docs/redirect.py index b05905ae0..d424c3fb7 100644 --- a/docs/redirect.py +++ b/docs/redirect.py @@ -8,7 +8,7 @@ """ -line1 = r' ' + "\n" +line1 = r' ' + "\n" line2 = r' ' + "\n" end = """ From 821372421292603eac17788bc3a64628961c9596 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Tue, 11 Nov 2025 12:07:36 +0800 Subject: [PATCH 13/58] Update .gitignore --- docs/.gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/.gitignore b/docs/.gitignore index 42a6755df..79c0e8371 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -6,5 +6,4 @@ source/__pycache__/* tests/__pycache__/* tests/build/* -build/ *.swp From 267bdbc5adc727105c5c3d25848f0dd4056e2f47 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Wed, 19 Nov 2025 23:45:04 +0800 Subject: [PATCH 14/58] Merge api documentation. --- docs/api_doc_script.sh | 58 +++++++++++ docs/api_docs/.gitignore | 4 + docs/api_docs/Makefile | 22 ++++ docs/api_docs/home_source/Icon_i.png | Bin 0 -> 148857 bytes docs/api_docs/home_source/Icon_small.png | Bin 0 -> 29359 bytes docs/api_docs/home_source/conf.py | 127 +++++++++++++++++++++++ docs/api_docs/home_source/index_temp.rst | 8 ++ docs/source/apidoc_redirect.rst | 7 ++ docs/source/index.rst | 2 +- 9 files changed, 227 insertions(+), 1 deletion(-) create mode 100644 docs/api_doc_script.sh create mode 100644 docs/api_docs/.gitignore create mode 100644 docs/api_docs/Makefile create mode 100644 docs/api_docs/home_source/Icon_i.png create mode 100644 docs/api_docs/home_source/Icon_small.png create mode 100644 docs/api_docs/home_source/conf.py create mode 100644 docs/api_docs/home_source/index_temp.rst create mode 100644 docs/source/apidoc_redirect.rst diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh new file mode 100644 index 000000000..3458cd9cc --- /dev/null +++ b/docs/api_doc_script.sh @@ -0,0 +1,58 @@ +doxygen_build() +{ + VTAG=$1 + echo $VTAG + git checkout $VTAG + doxygen docs.doxygen > /dev/null 2>&1 + if [ "$VTAG" = master ]; then + VTAG=latest + fi + mv docs/html docs/api_docs/versions/$VTAG +} + +branch=$(git rev-parse --abbrev-ref HEAD) +echo "$branch" + + +cd ../ +doxygen_build master +crit_ver=0.9.5 +versions=($(git tag \ + | sed 's/^v//' \ + | sed 's/[A-Za-z].*$//' \ + | sort -V \ + | awk -F. -v cv="$crit_ver" ' + BEGIN { split(cv,c,"."); min=c[1]*10000+c[2]*100+c[3] } + { val=$1*10000+$2*100+$3; if(val>=min) print } + ')) + +for i in "${!versions[@]}"; do + ver="v${versions[i]}" + doxygen_build $ver +done + +git checkout $branch + +cd ./docs/api_docs/home_source +cat > index.rst <<'EOF' +.. image:: Icon_small.png + :width: 350 + +Cytnx API +================================= + Cytnx is a library design for Quantum physics simulation using GPUs and CPUs. + +* `Latest version <../../versions/latest/index.html>`__. + +Older versions: + +EOF + +for ((i=${#versions[@]}-1; i>=0; i--)); do + ver="v${versions[i]}" + echo ' * `'$ver' <../../versions/'$ver'/index.html>`__.' >> index.rst +done +cd ../ +make html + + diff --git a/docs/api_docs/.gitignore b/docs/api_docs/.gitignore new file mode 100644 index 000000000..e2e384288 --- /dev/null +++ b/docs/api_docs/.gitignore @@ -0,0 +1,4 @@ +versions/* +build_home/* +home_source/index.rst +*.swp diff --git a/docs/api_docs/Makefile b/docs/api_docs/Makefile new file mode 100644 index 000000000..935f763e6 --- /dev/null +++ b/docs/api_docs/Makefile @@ -0,0 +1,22 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = home_source +BUILDDIR = build_home + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + + + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/api_docs/home_source/Icon_i.png b/docs/api_docs/home_source/Icon_i.png new file mode 100644 index 0000000000000000000000000000000000000000..52ca03d5adb5b5a505cb1778647815f83de94275 GIT binary patch literal 148857 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ΜH-10+I zH2n=#87V4l1v9@6Zq%GoYoEhAMEDu|)}Onrens%n3o983Y7`DLadF|(($W^Yy12Of znw@&QQNQ}uMy(u!s_Zvuuju`mlhZI4C&^D=^2xS-B(Aj0TF&p zvjJiVA-f^z+`)uHyMuWgxesHSD8} zK_l9e31N9mS0W6I!VH({Cozs^I*8) z^aaTGTS=1=F{?sjN86k%~lQAP@k55bJ6ld3BG zyw?BxJm?f+n8WU53gm;KC~CVZ0Ej1YC~S!!d#S~fT)i3uqm-`?d3}^H$n2kqQkaVs za6W_viTV8C2|vBu5n^a)sFtI_lDoqTgglZkk(u!W zw)?3T#9`Uv&><7SD$>_9g#$}OWMtSPA{80|+*X2o;`ofL9WI9ASrWfzYkM48e?RFr zvX}5O0w_)|n(!#zSMlNZrwN-*LtXU_8u|oeXI2e9FD@}WO#dn4DX#0UG2_Jbd0%0- zTQO4pIcVXv@;L*r>>fU3K$tsNl1AqMx#0ZwA@U;JhbPA%5JsLI;w=HsP9`q2^VRXO zFFvKf1uw7dJuCa~>F8j9aVD3*zCexiwm&cA|!#0@v8ia_RzDozU`e)|Fba(Bd# zVOJ=jTL%$=fbcVTb}$?Ef%6PnVJ^nkHZnLsi;XWI18K7*eT|XR0~T>0!%~1%(@Ibk z*8LqLu~D{~$C!Oi{6+`q25PWAM9$K=^UG6;VeKCd?`*SG$e8wD>we#Nyiu5Eo2t5> zXQFv$&!kF(xbK1B>R-YBua+d$HM)`nlK(P6`qlE`RoGN}m4YIh-5OLQYi3WZ3d)y~MAoPTuGtIl-WbDc?i zage&!E4u#mdO_}8?*_9OJUM;uhEB^HR4a}npV7VRj@y=?kq0xV&ynL@Fe}<#4%5sr zW2AAu7RjB}P{*P=tsw|^URR3ST(8++l#noTSN*8`8d(gUJ-Xg9Q#*q#_noS-KV0yC zXsJ7&d?PfTe54(YH~mH`woC{rDSwm^+!QHb7jJ0iVlb5jGTEx;*zksnXhg*Xxpeye zTkCm@G+xYpf$#M<)~jI1{4Qi=*zpMP@>hgk-GBA+zrXD*NjW+_2Zs$$uA=1|&=8uN znE?UDS)rk!(Ok1ppUb`oO-?IN7pWt~dD(Y~1cxO=H$RE~4`ePGk5+Gr^wAAqS8}hd zc|}WCd;IHZGJ>t9M^|JV`Bhw}1sV0)_KwG=Lb(Y)m@qlBise?Z3@LsEW8yUU$ z11pg^JKw-cIz-B=PzKr49)K;v950I_5FIPtzn|8~siF7D{RNUowI*S5^bVv@ef6Gz z(;Yf+kDChFH^wCr{#m(M}~WF)_JHI=a!Z2%kWC6np|C?*Y}dodvWA5A78(vcc33CB--rlUdyJ^QQr5qIDKwhK;e94VE{NnfPwK$VkB@Vg2=j z+}P7hr6VM_zxn+Ye`=BcvS_}A>&bQ6qv#?o@2XtL-(OsFG|nPr-KT7jR(Us1(h?ws z5wylrXO$Tp9sLJ}f!RCtN*@vbce*q-(p>h+t%u2-4WKN_IsfohyMa+_f!=QZe)d0+ zG-580`om5jIgq!B-t2CYd#UT#bIG3f^WMH!9Ia-3ur7|bJ2#}`XbQ`HwYQG8y~OaP z&5yX2hLO9KCJKw}MAy5!9s4qsBJhqdVnag{3AgjF>>~KgfGf)56?&En&WLvS4afY%zb{`(?tqvb4UAe~!^cE{Jh= z-J>SzhD}`c0tupOxLf5|Fa(Eh>)zZl!mTro2J)n`rlzY0giwK?^xodymPSrQ^kpS9 z(7-)-eSRJQRXS%;h)3T6ED&~I>IAf6F!QkmRuocwEbd4R*+q07svRq_K9o(HR?(!T z_>$D0?#kpCuIS3#6sE1S_1M@VHxm9(6ESZ-{>lOEb}j?ny^kJKUONj)$OPy)x||{v zkP4_8lv8l;@9P=70Dn=`iR}~+y4(R%Y|U+LJA`PA#dkq~W(I@%;Vub0M&Y1Xk?Q+o zq0c&Y-w=Jg#>DsK(;$XcuSauEpT?tl%Lh6{-*_qv3Kj3%Lx^?@>k!+Df1&_o@3e>K zF*uE55WJR`K154u#FN14D&T{id60T33SL4waDO_BWLK~Lf-ZDT?+#}dP=|$vRnH)) zLWWo!0^XS1Yqs_B=$8BkVx)SI-?7NjQxc(nHiVX-Q(*J(Swq`BkkTb|6~!`}PTpVC zT00Wm$Z}Qeu5^5`u@p?8PBC{%dLg{fK!=Aq!i8 zPV&4Ina95tr&b{&AS6T@SLgRpRrsUEM`gCU+S77&eHhD$JVUQpU4H$}ip z7z^q)FjZXpF=tZi8GDDBv8Dn@X#`TeBL+M9WWb#>%~NyRiK}^rJHZ@@w<}_}Ja50b zh)GVZhqi&X^Ntv0)r+M1(RzZ%x#@L*>Zz}$*~6u3+w8He3NM=Re9(Hpq6#Cc%P_E< zkh_OFJbh~H_UH>-*yj5>P>uwlR_eV#C%5%(Yipn4kMqNo159Y z=0}@8q4_@Xc2pERj6DHl<8miIKURMJ@sczx`>6Kq-Xv_=^hjk2NxF$fC=h{jHbg_PxyGg0+F*~@i@^fP1^Uc#6?ALcsBH}0S>v=V9n9aY5k7q z6P_v5m_$h7ubnAgvF?(UaF>^xX)l6XFNM3=q@kbf7g&95fBN)kD#+P`ff=e^guf81 zp+>)0#zNP#%!?gIsc;b9gHd8xYMvr4 zmk;^O5mTqz+C8ZcX&VN+>yx^f&Cm9tGnUD&jn5hKw%N12MLi~ZO|c+F-feWImUr}9 zf!@yp9)t`IOcJd*08uq4p{=bASC&>)?Lj+j2Gts>fkM$1pIJ;M?vH90!B0S}5OGk} zT|l6dVNxjqHpa9rdox@RwjX(#o}T`q%+H?e5+5(kOnX|V+n$eaa9iEL%0!)*OFdfQ z#?9bm?4j4mxqQw8=ySP-j{WMm4E&8ASnGTz8M=F4)lFNb)MwN708)DmVXzdHnwiPG zI#H9jK?`AXH)Y^roW5`=x+wgX(}+-MI0TQ^rM$M8xs(kmt`LhcM6^7Ex)Q)Og9#Ec zvf#P7ISw~x-+;9kuHpjD;oZMu&l^;76`ogTc=$`4iRVa$;v~mNgTf*a~EFr_@kFb z#ni$hfj5*7TuP3mAeJhK&ki>P1O;2}^42jA4CK>U?l)cHH3jz41**I<+RCd}F$+JU zT{p(S@XIaq>0zUMkw8z)wPIYj-kYdU@T-gI!T0aOL1?@p7Ub~^4b7`sy^lPijXay} zvdp^E5(8~=h~|ZSZGf>U0&pJ^SFR8A%Y2~i($d!6x`+?jE|On3N^4Ba3fugQbs8mB z0|Bmwe{76l1)?n&VT5{2dMRl4Lc`Dp(8$fvoLLv1=J>1W*`w325(~tQC`LO@>~3w;=ohhOp(Q1R*RFgNI@>7JFH=V83CJsljg08>kbtgdPA)|< z2DWe&b=Sc`0YQjSS6k>G6tqfj4-p9igwIS<7!%5eXOmyBx4kW+um2WB6C!j%-Ee_l z@G{>69h2E`yq7phk*%$QweNSO?JAyAtk&RT3@%Q#ST>ew(Tmds3Y~1UH8;0sXR~Wd zKxS{dNax$g2WW76n3LwU%bMj??=LS+Jg%7dlye4{>KuefjhM8w09Fv_58fEKNb89P z$?cV!+slTuVBJ#EL5DvWXzLjiOvl!YjWONH%Z)OT0cJ^4)D(AinPj@UrJHX4`u6ed zRP!fDTrRL?3gzv8Fi&3lcgzkSNv0_;;ao!S7T$A_z1Ac(LY|sA(wwiu7Rc zKb5U2c(-KzXU8vDM0*iGwNOgDukyzO1RY!VtS+ zMB?INrb?qI{OG&1rWB@9e+eK1OEC29D&;Z4%BbN8hhPS{Q=P#Q?_JxV;NT%Wc0E0; zZ<9FAf5?)bPi<^*(C+m7QW@l6U_Ly`lQS6bZ>gq>!f;&Ad&h_L3LvV`+Eq0&HjV;g zotZdE19$zdnC|UrE2#8>uch{)Dg748h zlwc^7HGoc{PQTC;6rgDm6H^@>dTOT_mumB-;IdPvFmY^taY+d#te(w5WkG785QKF! z1#Eh1__YZbbCYK2V$`dTO-xKW z${N%K2N) zO#wQCTP^c5c{C9j{+7WrvH}H9bGP&lM6poo9juch}d~M@nr- z#>dB(|A_V)KT9ejK94?}oJ8b&mmbO&@Y>(cA17dJ^5D3DBHRt{dK%=`__}sXPecPJ z5ad?Oxo^VM_4LBP%U~KxWKAz}2n9H%^f@_a@UJN@GS#GHWDtP>=kl!&3%$Y4!y^yS z_cyDR#c%GgKLZB$3w9VR8s0tAt=(h<-L`6yOS{%BGy% z0}Y!<1%YSPRYpmAV##2`mTGM}G#^5^@)C%4Kz4DS;0lcEfVsj!5**U)_XX7N+}!D~ zqh#pVWm4Jz@1e)*bwB~~(i5v+&dJM@gNI#UQsJ-l5G4PfVLWrJ*XZEeMUmXlz+|Ou7+}RYb)ZtMvb@v$emrpRJz6= z!z{7$_ir#Xw%sTA%weInLvIAFn-THYE&>DsRa3B&^HT$(YwE?wUWm)YyH9DG&o($G z$Mwyi{#uqI zelONsd8~3oy5fHeuePeh{cAh8Nwn#d;Rfm)K{q0Vg3en8fv1Y6$CB;T3TA0$jzyjr3lCT+1ndN3hO`jx(;K} zFqIfH#(=yMG=+hpnEu0th`+!4FoEukfj9Te%v7H<#wTK)H*LrG`QJ|)p3m(XF;nTL z)eG0ch2A`P3MG+cS;_%2T?n6-l6EgF%W(qTc2pEZbH+QW*Ax#A4}4etl{@nC*yr)CnkDNpb6Fl8E*kLYzTS!z zrS>Bi&|rji0jd$y9XOI#V4R}3deTCGfr$wd7!P-`Nx?*Vt54_)oy&HHcd%wKtQfv| zCWwq+BT=Z+ks&DCpTOODG?H&y*?6ts+9<#}Zy*UU@yNACr4hC8+4a&l!^d3pH!{QRh)QJ7DrfzOzI&F$O&8-KdACoM>2UcNbx zKMxDa7YZYToes^`f@7io22A-591_%`7t9B0)YaOLvWe7$u5EHE^C_; z&Q1ZqbD_=6a@rD5(YKJ?zxA*}ZM$oVe$v~dsTW7|symiV-6TZ`jEe4YKTaACP*h9omt{&B&>_OaCT0IRb^^MC#g`pP>at zL?8M_yg`jnEqsR)VCX}$BUS%=WUI_YC6u4!>+!2!c=@J2)G;X-E z(*ghn128^~scm&&2)uao+D^ZUMn1k_`)z2?H*GCb&qgS6tT=`~ZeULymH++P4!>=E z3cPUfv7Zl0=;`Uf8uDu$HAr-^jT{gS$RoOPAdd*8?StnR^rmFqty}$ zN#DwePY!o+xqhM-omIL_7=5Da>-8aZ+*WZ|Rj$W54=rn_SR?yha8od_Xi!n$s;iqc zDDnFBYlNb8adjQuj)HG6RzIcq@rR}+8C4aAcc*boH?ZQU8I%lMn z(tzK#x3?n$u7eVzqp%Du^cS`#Trd+?L2>Nqio(BYN_wyr3;?uBU~K6+AZbu}0e@e4 zc6zi%rEFY{9s8Mpox8App|v_J!Z~?GJ*&3Du`riL!x{ zC;%(!mc2PxUsh{OvP*V|=>Bk;_nEdA(Of73liIg!g78k;hV+2f-=@~iRpaQz_ zz1LUCeASc?#c{Nx>$!!_q@N6oSzebp})o@M6MYv7dl^5sjd z!4k0cUL7locnD)c#5S$c{n+@-IrWl1(P9!4+n|fHPyoULf(aBHWz|_QV1i7&lc8SmZW@kOb}2ef?@$OcYy`ZC~tuN zLLg3@7yDXFqLx45a!S3nrWd{7%La=b_tm5%0n2byDlwCMI!tT06SC}4KUF+XtZJQN zxwv%-VdT#4p`^ZRss;vBEe)x8$$b426Er_7976!38kE4o!a_{ZI5|1@yOEP2)MSIH zB*gnrWR?o~u(MXT4pV9sd;N5*5 ze+86zy)`cL;e!&FscuNa5OvV!0QdOXOJ;liaET$ECvpWD7+*2tzW*k(v$XO>KlXE+ zco7S2Y%R5rZ9FO!^Z{modz?q6YyO?qnOnnG3|?0PEG&1ldjW#y_doXh z_c~@%1Y&*&+`NJYz1_iFjKiQbeTT`d(9kDybZ7e^iYhAFgUIk2tS*^ce{W$)8dHip zGlw-_eess0{Qbhm1ObIXF%-W_uB@p{T^~Amg0EYAS!Sq@Mt~~P6UOqOhJWOCAAUPz zE;S8}CPx|g1Ik&IQt|D*Piy*z2<`-Np5vpOx;imZ&Gyu8cV34GL!vVbKH27A8v&}c zlB1%;cuY-AdY(D<;oW}$!sGYRpUOq6C%gOiiWWS{{)LJjjr(9E29Bjr3_FaA9z$Dx z%)|m`d=Sr?hGEp?uGD!N(~~XE&c-2&ctIW;s%Q-Z&(PGuN=AFP`(RKI6CcmK>vW8D zr_qi>I<-llMMe?-k6z&4PjuAVv~D}c6m_)~oI{4~=vRi`YwOXh&+b4)*99J6xyxQK z?^oo$rvLBB+NHP!Wg@*0oIrU+01p@$PsSPo8eoMyL^5PpAXb64?+&}y7L{C+ce>WJ z&~ocxM8x-|-6YwGPa%XKpn6VB_rdIwte*gnsYSlP# zz}>|vL&|JCFSKx!93IKaWjaF9NFsG?dV(WEPEKw=R*DM()-7+*QxZL*uxk!^+ ziEH)N&l3!K_jRsqa(m$Ma$tV?h>_^J;y?n1YM=)pC!(UVb-QnA$pRcp5Oh*y#|}(@ z5|1^jJhpEXf-m@%gv8_Zc^oB1M!(#=yk?jf)jFwl=+DH3GVj%{3&BOz+gy|0=H%Y{&eQ+%F-=DsyItcck z8TxJi4Np_P0$72dF@B`=s$PpSH&_g5G#lIKDhD0PN7I$|Ktmu{G<|q&`3`kAh zqpSgzM+E*3G9CFQGONe(RST^+&0^t9L~CE5#;}maz%Yzga4I-J+dtf^zRYxTeEbJISDt zlL!};>lLyUh98P}CUj?A2%b3>wazC5V2JN!^e9k6kECCYn0I;u6v`kQjO>^E*SEL@ zGrUdOH;-|my&qSs6iF`DVMB=E z7&?X!QA;W_v_)FK(<43)%Nw+Jk72<(0N$+UwKd9>n!yG$ijk?##m#N-25EFJfEKfF zU|$PpYhqBn;Q;4=Qb|^1QB8y3o>E|C%m>50%whTQ#jPr%sG{g$tK)9hM6>QKE~HD* zrs?JJ@bFN8${kK?{(47mZyW3*HWf}jP=Q1t=N1*1d6{C2C=HON{)p{ua3Gb-rkbBD ze{2AY{}h*(ZsCPL9oBeSyD~Tobpw<`>jEdbS#3i|6SnQIfYc2!p9%7n*EZD;fl2R# zZKK)CloH-IdH@jZL*Ok7atL=+k@6}hP@(y{C??)x9gyKZ?@s2D2&3$EFJ@ALbc+=>k?kfYFdwQ4V$fxfanUwgS z9Cm%!QV@Zln>r1^X38?LAvxzrZWBTIR`|Cd`zCjp%YeNC|F(r z<%#l+q857wlg|R@jY*A5r?dvn;|)^{Wl6EjyGZjjSIb3q36?R$CMVmu-3J3{*y4b? zbWv4?Yt;QbD*P7{7}pmICNgK8Iks*h9SjiG`4<&rUXuncNs8pNb!YQj1-wf3g~r+4?gtn>)HjlLZ@NV{;sB1g-Q%c zYuM#e0vIt23pj`J576N2_G@ZyqxHE5POP~oZ-_8~(CDAXpv+511n2mf`M@v=#!t|G zwUC=!g?&a@gS*DY#z--mo144dW7&O?$mFcRaG-OIp3yf^M*8PsQf{`iVIx-%WiRK@ z;|a{wal16WVsK8Vf{jP0N$cJevFBi!_3t9rpdo-S>%-xpJyIs4=xPqhbPR*X?MMcKLyO{rCF4U_+{z3{$l>@c|EAk7%S`E8%Ceq<&P+9uv_1U z-R`1@Hazsn3nb)y4_;m=>HhpKG~53TP-gpJpORkyQ)P(VpRcd)6AvDw{&l19Iv`87 zm0Bu8->cft*)5~n>69jnCM2~}wLlNEA$qO-SL|$a(@D(duf4WJn*SjO6!e|vFxZoj zf0seRT`W^}c6KAAIVfe!-0s6{&L(X6{k@IJP(fsug%tFtLSmVWh7ILXp|y%-yUBB; zSZDIW?-?QbhZ5ee6Mk-tw?)$x+D7(5U&6r3${L-v29GOK;XLNWWWt--NhD*;I9!D7 z8)n;c@R0=*(nW#GfpH=o9=Qwsl_7NH>Ga!LX4z-A#uvQrZP`uO9O9n%PU+-vuwxkC zMc*!%z2uYXf%xOsivG_%3vNiTcz{$_-#QH<*^l`w+S+`L%Q>P=bq1p-cYMhIyZD%CWkIBW=g#|0O z$L{XJkha@$5LtDm0dgb%=Nhl#ufWV+_y4Vl-!AkfjBO9_hqC;1SZy+*;Z2ljzR27( z%(5YM>hnML0=1T(hY=@?!Nx01PW}tVC3J>^gMv%}nm<;9X%xl@GkTlZyAs4m;C5k# zE-esp7Rno08wE)E(%-Ms5hnD)z9>VIN0l#Q(Q!AOIIz+7;iI3Ff{%WfRFW|8JS*t6 z>5^hNt$$F(`eUCh_@Fzm;;y9pey`k927@C1?vTcHll0v8?-5Hi#Qz(W3W|^qQ1s!m z0LG!{fmGc$@$T8BD`^>gvnu)IFI3|JD|^k~@;!Ve>b0FYxC;_uIlxriXl(OO(PomL zcM9cC5HK=4xN{If<5(+**rI^L{W7#WUDNy$T5!)iGI|1f2tVr1;U41fW;LhQdc zD2LRiwjMo`MdlZk@7|@EIaclj&`9v`wJ9jQA~ z#loYz>0hp}4Lw{&GPtnI)WiNNNCfNSVE}_qhc5msr<{v19vY1DL4PzxL_pc!ohD_1 zEYQ^%zQhm%O6bPMMo<3-Fw+?;;e1)?n$uOvrPrhO#$Cw!J)O1e1@1}M{%K)h;h+Q< zze)T09xE!`np*f0v!j5v?l3fX>E)1MfqbT)^bTFg7* zh#Y(MFlzZFTQ|o~EfZ%=Xj`gBVFG4OmQcdNtqu?#*bt9^OgG1>un)|pkBOf~XI0mK zr#E%J68Ctuy&W?BB+0OhxtY?a^VaExZ(kt!mjxMYxL;UHI*c)fE z{+0xF_GqysEYgVnsxtW3<>EqgWBf0)pN9rP7$s)(Ml_p_u5edG(Ct4MEOD7v9(Vuw z`1~_!=Rw}lhjzt6ShBjX&?-}o zr&-XIkEe5dMq_~a3R?#6qM?{8^i_2*3zb)}x3eSb?R^ur_BH6ilgRElf6NH6rKA-0 z$;22oO8J93We%d?$uEFuBLz9R3!R;v)XTSCpczLzwV#ryS|2VBDcT&1*m#n>sHg~_Z&_F`DGs(g-_!v%kkeX3fF6M6yg#wT{Mp`~!GhF$kv8Di z8754tC2WBE3d0ODAbA?NHM>xTVz9{YMe$s1rSDcE9KboBk5Taqyy4R|? zK;#EHgcRishtO%tZ;wA7FkC3zk@JTj|AvP4uDtMtFt!bUe)#nSIWKDb8~YKw^^M7n z^-E3f}zQOY@K0< zFrW#DEn!BUmnuMhg(Rf%oP~H!Cl0j4vTmQWd>Cr56~)9BIS3P6z+uq2K#WIPMc-{vxjYUR}d%l=x?WtD@r0Z{sW625@^& zMppo7Zoh7cbW|hqQPdoewQaN|pvaWb(MgbvjH+#*nX4p^w+rX?*G-nXIGl@1Q>gQT zK?sBb7P}j6@|b+ru^;^$FOum1YqS5r*sU*bLlB@;Mi`8DPMy-lrKMV$Qb79)0%;;Q zmjXTnEQwrtkTAKqF9Y%6n$5QzWfe0Jf`5Cpmivu$~-C1|>in-vUZBYR;GT<7h6EPK^`!hi^G;np=-;L`_D=P=#K3$C9<0qO=-10UXD* zPqCPuO4Buqca|0Fa)m}k$vZd{3`)SfnhXpOHM~b&)DZHb6k^r={OSRc)q4C4g6LsP zQW87Z^VlMv`4>1HYP!0=`4%bWB3?u&VE9iC4l8neuG_SvF8rOhY(XL70$ocrazw-nE9!><>$}j`vgk~2|~S zNgVs!>sR2#IS4OWyAXQm5Kn}!$5@>MG)Ynzn$IxfS0uT@Tk4Bbg-@>4L|~gcb_j+G zamxnk$uby4M(y~n!uEO)ykswX!9pG)TG}2pq%^dRggmAHsT3n+NO||@;P3A4JTJYR z96?i8*Ci;6`9KM~cMOy7$g;DqL9uWY#IcLDlUybeTX=uv#w`k+7;KnCw{6S^Xyz^b zph~)h(;v%vz7l{@P*8Kw^)&$4V0z*I3Tf{1k#mAV;myy_zcoG$`-6gPqZuGAjfTKk z&vmO@KH4K5qPr|CEb!B$@7#GIo03Mixl)O z_#o%YqZYPLLZw1qHUld?2n5R=zX`?=PUaiBqGlZ6h@f8)a@E)7GxPiM#4y`FM_1(6 z!}KZHC=z9`0eHX#{MtGG0#n7U|DGi^FrrQn0N)Hr_fJiwA&}W(Q&W?Ltt|?b3No&% z&TWvdxJ-(yz%guGCN*KysUD3CM>>ov_020Q&*&z_j^smY*5@l)_roA zAt`llN|~SmrK~&SJMhQOo^lV>FUOOd|)6mumg?!c45J*q~L? z*(n}l4*8uj3u>7`M?^Z{I}^sHwTlqK080??-z>H>Xjj5? z4DuV~DBm}Gd`f*)-*!*%dKM=>$3cl2!$fXAKh@LbN9ii&Z8$8^F!g*cQ?Ujm_V1|% zsq-oa#g7!k$bBJ1@^T?;$nC(oM3%h_BZZeGk2hsQaF{k8VT&>0@v+ywfBR6z_LR#o z-`Vc)4TGCP^OtOx1~;Klz%t4QSWIoQg2 zw}Ox{+h5?#JtTI7goF%AfV{I6>^!I$&tu2>|6)h*@lyMZDfO&2_fm)*2K#Ylk!d1) z0T+mVJx}#+7}8M2zb4FeURtIC07wrJPX@%H9VFi-!*k=aAtWA({Vp0<7SCG-6}QH>&2 zE}SG0>KciAhXJYo55g^`jC|QQ5XuKM*I!NfHkTNTI6(&C}AiPji0LFp^2zm!MKd9n^ z324HhX*WtsBxOdqK99x0eXy;U`X3|Z|It{Eo{%8 z6sWv}>T+d&Wvtkp7Fo+V{|1Zc2&1n0w^V!zoH1nQd;S?qQwtV68hL4H>HGem6b0t< zzn6pWSa=VQ;rr)@vQeI(oLju~HsX@7!+0n(OSwKg#fCHA6ycHaUFk|Ru`rd=9k9UUDru*Zg3i|RoMSOE3~s-~*s zsUmoonTLMEdiPTTnFkTXA0wq)Mb5$z6s0JHbjmMC)L`V{ApqS}GHP*Wd5p}ZzwsJ_ zky|)-y>4=1kW7Smt({SheQ^9SvzFqXt=&s(dVcIj1G-c1=YaKVfzAgcaGacYAP<|N z6F^!NQYfg+=#{EZ=R*UTiDSQ3gT`tOUaj^n;^u-(2o_}7PEB5QIV5UK-~4M6jJvXJ z%~*p9lbtBJx3e~4$cIIy)j;z9QT5*OT>ty~xREHktZbo#BC=OxtLzb3**j#fWR}cG zva*uB$rjlwviDvY*_-eEsdLWn^ZWDM-nY~1={fF?`~AAE`*l^MU(q1Ld|>@$L%|MI z&oe&w!U`ACH?RnLpM(s4&w}AAAOi&eNMml=J-+qfidLzmHxM-aLQ6(6ub_|Kspm~O;5D52W1W|ZceFHEE9L#6$_fWDKrQ$FC9D_{Btja?EVZXS9|Tj z@v#8_;4f`$r+MxpKhzk5-WrZzmH+)MV0%Bp+EiIZO;r^ofNnrZ_OJ0_9NqL(6r9@7 z_6Uwd6UYs1EZDk-=W*`I>Oq-EEWteBi-EfBZ&0ShYheQ?#~KH0WlEc!enGUP1R!`^ zyf_64-@yk5$Bo5Zk|0FrBhyWWK%@y^c-ac_8^E+-Da!MBjb}V0Waky;Li0_&ITE*R zcNIY#k?6fl(*4b%8R^x#9?)X%iP7~iE!u)!_GO^DIlg$tgSIFUD|mLrmw#FXU+Q{D=n}b<`@S(20A+@d7*>B ze8q!;nT(nDFM_1kDbcaCo(cuAZ!tO6MYAHXc*Zc zZswxXyD9OXFYjr4u@zS>5nyKAz==kKGYoL3t~;iN#>Oj-mgC>j>1bBIJh!iyv9`Pu zhjm4fZ6oVh1s$Ue3G@#N*%UiWf9rjYa2dV8uOK`!GBtBCN?k`ZQP_j*qBk#rxes3X z<#E_Av|I-Pe@3R64(fk^{%gkvO z)it$7z1VjSWm<|JsAN;@68*|5@_dAx%YhK)J%Z@nk*o_MqT;a0dHAk(CP4ucURx`I zPSIPEoy{8S2I5^vAN|yx1^SI3HvN0|AR*J|V(eb*PDGM(9V(C8&&SaDszU9aSVNyO z*DaCJ*nVf-UR0F;nikQwjp-xgbg$o{zwVko!eIoU9@!5wKi!3$BEXm&uh#yCFMO%C z23r7Ba90?DB~vnWX#-b2e|&fi1s-0LejR9jOhIw5^#hZpxMJc(0WCj2IXKhnE^WH6 zo1ycWO$EQq;cq0-&F++|-_3lOUNNZ7981UO#ofWKdT#AvaGkc;I=fq83kt>z=xWsZ zw}FPC=jZ>dT!#Gg`OB4u96aiyDESb{SECnhZHCKG9>PGVxVAi2UIfNR6`2Wxx?WVk zrKR0VHyML6v-gW4NzrFg5bdJEb5;>Kz*p@JEIzpu$5rOA;^qZ4$B`sNF?)0WGRaR=z&kRU?a8>z zRam$-$UxnJJgpykQ#>M2a!#?)WpI(&X6p+zR2X2l#}n|;s|`j+M+4o71{TN_0;IL) zxZRnIX>}p>1-xn#empdF_-P)0U2J_{JkcOvcj9$q@vGX4KxF9L+$1DHjVlSzP8-0C zOv#AAKcL`Ly66Hy5A>N^2v87lm2G6izd=I-9R~ot2)VT`Ddqb4wS;Y0Fa^_~hYF=n zV!P|+!g;KGkpI+ZM9n*{G9HYt_}&ke{#u>FyiNei8L%V*PC&C@v1)LEGoipb$BGH9 zjO)kf=zR%jyE;z+2b)D?X`&!&9jk>y7E9lw^t;=>H5dRYIq9eNpfEH&EQSBI@6q~U zNLlbT&v~tLo+%Mtl#_b)@(2lxKT1n43(ug+-@>C7G(F`scmN+iI^4&qL-^a~#=H$3 z9UT)sp22MK##9}IC^lNlQOBKs%}$4fRJD6~FaLtYH{pnqPVB*?Eo9)q5dQCjCI0%W8! zhT(vBS7oID3|fk~WJ0dR?kgGTfV+`%U4`3RK|#T@a;HTnKFZ>$`dDx$hB93mwoMIM z(W^(Y6Rgj(Et52O4iu;SsE@E2A-v-z7)d7WxuJr%#t6BSb8~S=cYENgx_!HO0U`07 zG|^;$ONZ3kH?`~pgl0(M7MRk!P!$4u)n-7z9Y`hdTrX|;VMbZpQ|E3zdILjHZq=b0 z(!8|FizTEby@0ys9l*cD7Wo|XH2=c^!1fAo0QY7v;s#y%xrqhzeH>v7)dGN{eLaK5 zZxfW7W_lp_Nl3^wAFl#!F+zY>VAIpAUAl4XYxkrk4Rv7Qc2eI=V{D!nR2ZeL2!)$j zUQc}il0xAR_`?zjhtL0T0C*34M|M@_Uok<}uY&`1{K&(n)UW7?vYr;~G=8pfX~{Ehp|J63kLoO-6CpJIuBv750EIKf zdmwlh2+Z#_fu*mw|@NYw(VMeoJhRf{8#$kAX# zq1w+0Cf#XxOOXUPcg5yEh+aROJ4QzGG0e0h8P3XFKvZgZ1DN59fryU|cB{~2P{4a+T8?OW0BjZ?Funt4VML)>=v`LE0|qq^ zBbB`l{kSeW{I0fNxV~uEwm&-c*A)xvRT3c#lTIs_S&O>qt>aDW9*_~l5qCUzz zOnD0ZJA6K1*6d)9=Q&aLhL`rCK1X0A+GuX=d-y1ve_Q;*XO!1-+N5p#+=TnurGR&B z{cGavJtn4yDk?;onVH$^P=PtY{rUjY6Xu574G$xr<+O*-t_(2c{v~RtT8L@vjqBG_ zGEE@60DV{uXPS38pD5N-R8QSKvX zUZtfU0vUR7=<*S!<1;|m7T0cozyH>qo7x}?uc)XgyrP~f@Z3|x zQHQ1>R;L}#HohAsoohsYTpcg_3x7>~V%=fP31$iZ$UAssNLZpY07Wx5b~AH{vaX3wbZPE!~b3{GYH5HmG(sCKHinI{f;}BOXwi#-W;@xw^rg z%jZqxX7Y<|g$S%q!P{Bk2aSs|h(dK$yWylq3|HY+qEq{??uXfR&bKWLg^8dWf9LBv zwY4SuUX(%OI@Uulog_?9UyzXZVmWB;;_LjT!E1%jt=R zAZ+fda+`t|j8OB8N%I5s+NDFyOGG{u?sDkaE!wW_3Xg3P*2l;UXz-=zMfT4#B;8q|6W+ngIYaA_;Crufwk9~Lx7yWr~|KO)Iih*YZ{z((BtZxKH zQ|Eb78PdH@JzMKx`1L!ftNk;VpwPJYA^q#HhaSEWpj1kL9EkYL1X!+1f_~7w8MIKD z>15JkqgXPpDMrK2sDxZql+UT0#tLH9!=ZONJU%Xa41G;d&~BbG;QmyI;bss!#{(=o z9o8xR%$kMsjjfZ#yN)gc6i({s#=Di+_n^f0HgvuoJ{=Vp`y4T_YDYbX&H4`Wq`F55 zzgZ9zbci*2)*m53!7#8r06OI?AK4iVAd`Lr6~_x1avwtbkItQWbbXiBO-_eXXaB;)F%Bg%q zF0l^4Az}-19+U;VW-})$Lsx{Ed;i{d*s`=D9nJ>`37tU(w`5o7{fjXp#>`@Op8mm- z$)%SO-$?{-;G3Y=$j)3$i`J=!dcP`6()}BdX&+0wpm|!6yKn2|(?a>is+WfZQG6=0 z+<0OS=BTi0%;IIF{>s=s@VvK{qhT+_sV7O4DvD_XnVTD==1wVz56rGnyUY>#BUH^U z4!Vq~)}w2%eAz1!f=DR%009UG88vJfgVUHk=oKCD>4RZ%Cog;glN*g}Lfv|@D4vte zm^SVw&ivE6Fpzh&j|bl9o}7QV$dXo9`iE^+!G))>BG<}W2Ayt~oy!9bv>6CzD?W=R zzR>Qy{qqb4x_(X^22^lQH*-Z~WUfxo8~>Z>5M9sd?#$fG8(65jbm@}DID*21H^$w< z{Q_)+Oc|bcoUdq@-=7^%zK`ePrL%tBdRJvFcGq;2z=PkPe~fQZW6}O<*XJk`&Ye}9 zpF5@Jw|EfX4u}KjApfBpU~ut0feXF{57)c}M%YzR*3n70n3~UPv!zb}h~eIcBsLtR zD-08#+W~rumBw|6PF2Kfc4p=!;0hUg!g~ibVbzsPgK@dv|9lkS{iE8vfJ!!2UH&!i z{_d~<;nJFO>^I~)S?m}#@a!b6CZXM@ht{ax2$o*igmi`uH7I7=Sd%xsd48!HM)@|7~IStAJInAj(}kBYVph zdEXl$q%Fhzs>jA>3AvxPiVeE1GJUMk_`rjIsM;3f6XJ5&`LFeHKm<4f&46Vd=wQwJ znGr~2gC2PmP|#azO|LNc`1k+^?Mx^$Se#2g3|ZAsjqEg$^|SA`^kZY$_cm<09`%?w1=d3y;BL^c;zsT3)s#5TfUp?fHdQq zK$zM%c(}OmL6e}MscAkqyFNs2xAldBPQ~F}8e7En0$q3SFS?B<$Wu6ZxJ`cg`AYZ1 z6)_j_OWO?q5ive6+zA`wa5L~iyytX_ zFGZmI0z*3;@!k^H=FlExa|g`3MP_$>T&o6&Q+9=x~ir8 zP{(<*M1_=}bku$|uk2e*v!1f3Ke%nli2mh<=1Z^37}TJ9E`tmTXzP|Y3CzR}#3 z-1Cl0w1!7ahDQFF`VS&R0P&vXg%ANGxl_~AKWLPYd+`qLMOPeON=70*Ln|Srp!2T< z9YAFu$H@Kx8X;d4XuS9EadAs3gxT2eAru#uCJILH12c~;iQ+BX=CDB=T%WYHj^}2> zKmOHIeQiTt<2-85QeQgj zI4?elcnMF+!P!YkguJJ?$c8`V57-(0nvwXs^leKFgyD(_?~mET_RaenJ^*S|28TQ- zN3#!j#9iKK7nVpQH4P&tTm%#@Y4R`D>TCP^@y*|hbzdIILP-cl7h>Prd>P;wBElT< zL*A&G$YO*W9T`rCHhFx2##8P1%q6GV4W#8SXq_&qCte`j8EBqv!uk^I+M>(YUD8Bv z1;OOso7cjXO@|B9kg+H;0dlJiz~;gc8w#nO8jj(p77qDIQZc?GDX!zvG3TDGgK|k8 z$w!0bToDCDvmYH)0eS@*iTb$f6O{4R*e{1HU{2qwx8;5AS^HxAbnUe*+YorYz(M*J zu-LZ$i|&Y&Aa@8Gz17Pe(llb-v`Wkyv85~0xx&Ej>N+%k{cf-owYkbQLLq!oNU=QPNq z&nWKxE(KjNvJKmvCGENgCqp3kRKy0_$wzaz4f|E)wRr1@UA%63(Y#;oK*94MSC_Vn|(%J#R z5dgu-ET}SQpL4w6o&~WMoCW56SfIXHz!o9w*NPW#`Ut8&kQ0M9BJvQdl}i#mQS9m( z+PI+5&|iR3d^@KutxXvtJS?2*`g@fDbgJ&jxNhGWN4Pfam;R_*ZZ?ioF+9(^3W(kI zgI}}O$9@s9+*a3MXHB&qabHY={e5>S=uhkj;9PiudnuwSFx5>n-D(n&h(Q;k!Uj0R zzfsMhq+${Bf)JC9@%k1iezB11#u@<(RZ;0yIkC5m%}E>b0Sjk=ee7^J96!}PY`efy@Lqe*)$)PT4B1ea!@{HF{gP1& zn}f)W+7R6C;N-Y>@2P4x5Qi@zPrMQ*+Jf*ZAIs&JTxz-oAFZWZWBr1n?oytez4s8L z?4-zy%RHT?Da&TLm-REQmPXBiHN~|=vR%(6p!RDz%X-tt`nO@<&Il24Pb1n7)V(W= zwTBB7o1mWjwt_g(RyeM;A%$Fe5#IP%SQJY#ibO~5RqfeP7JF`*i9rtK?d52aK zV51O+il0bn;51ZBgiTMBlE4|7(f`2s0w<^UZ)me;>ALkRm(&W{N%Yqi{XL~`xm$P^ z+Uvx#-TVdfbAQl=_don!F=7Q@|ssRpzO|sEQ zX<{PH8y}y;tw$C6kO6P8vd9naZMxtbA&D$mSmA?Tn#y9s?Bm?JxaqJbHU*S(CXL}k zT1P6?-$h_{Q|A&ILGD{S+kJygOexjf_kZjKK3{ej2>NrPxXFH^G9Xv*)rwQ^h(Owh z%F~S(T8~c`m@qU3v#=gG;|9LmJr|Zi1{G)Ln<6$G&y0xW0*77%4ecwbtoEsC$w-S` zQ%R9fWTd<1=43@EcWGK%)~uv>#I?+{I1LY-h zo}}r#?;Aq17o#O7=_z+-DkJr5xmp-_Xr|eKF3L8j5}A^!di<<1bh3f%s-qhJ$ncA< zFiA;#Vh&O<=>ul^tBYG&H-aq&37jqd2Dv26A(nG%6V+OZi0Sv#+FEBaGAiEq`DTu@ zFQHhw*3$#;W|WJ$lk}Dz#Z3+;Fn|JI&XVf$NKq^L@Th0a-e>LKLa%7$*@WB zybK9$p<|U6o`oWw=@?RA6x-o9Qo05oj6K2ImQ@fQARB4{=z8-O_pZ{DZQ@Q zWkRkN=f@RY*jLQ9!&00|0uKuYhiDzY6{@Y-giI*ztTrcOp>~WqlJjBk5A(&Juq2uM zW+vI@b4lKAYU?{}>5t}gzpjtoL3!mtrYc+-c;76;az^27e0)48XK_Ho?Rf?I{U}0K z>9g*eD&NdUb5*lQD5zXCep7yyzlg;CO&)v^_3U{a6&?%Cuf~p%k8ilN$ zFnpDI#DYV*NxAy^(7<~{Rkn;NCLtjNUX`U+TR}}gmHdQKSS|;J``ddx(Jj6{aDg5g z`T|D2&sP;{_}gLZ#r)%)9M}2 zD|8WR5a6k7)qUu7w}J6L5(b}SCKIr-T!Id6a2ZZtBb2Nw-9HwkBe=dhZ6v(fUU>3h zTS!QVkbt00LWnR11Mq0DN%+EK0w0J*wW~u034L|@Bi0a<=W#gASo%J5J7(WChgx1N zq_Y;Ai^#EETCf)KbI;Lne44nRN=T+KoGdKhwdl~a_x_5c0rPis?E2|t&9=qy#-Bf> zW%-3IEiLn{$N9gPmv72}>(>&70o*9C*#E*TLQDJFN7{HAI+4t+VGs)}Jd9vK0%$>= zU1$#`pzPLT-{I-4&%gE~e0X@%oKe?AV#ZJhGw5^5H_}&`j*7V=9Zi{uY!C#&#e`!0 z^y6-Jy-#`G3*9}vl>1!O-WUdSl(L&%+FAWKAu9})*bD6er11+CJ_;212Cq}K9=z+# z<@PHi-&v(2%7KPz-uzBe z_~s>TdaXofXhzP+GGE&E^X`)4+?mz2SHqjcW0Zd#Y1#$mUaIerokWd}o4)tL)!Spj z8da)l;PpDIdf;*N3bLi)-vvpR2BJ@O_0|Y;4*`jrj5)PV_Zx;7Y~(U}ff)~k^`?KG zxJZnk5{sm{r8gfP0V-E;GgaH#Tbe>2R&&qCX8mWSzFH-TX}?9R#s^mB2J>_*W`m+v z)bhWTUlXez=wOQLwlRCKp5|YdIw-pz77L+VVqoMFog4?5jdg>A(Go~OBK5^+U4$&- zI%v+Gbmb|h<55yl^1>$;FXX1?dU8j1{nRw<6E_9V)!_3Vdsdj2oY<<9Q{l!phdlB4`_MCKW`{p=Fi8`Q}_o|B00UJmP^b&K@N@(=Ry*mB6 z-^_kf;g7+Cd&RfezdTwdW`q!nHWrU{3s4yoLe?6W037nzb#Or@U2%$0-KAC>q?V(% zZp!s#DBnh0H(1)h!~O>{51Nmr9hC$)3;lBLK(}(pmW>TSn>JP4HjvHQ%QbNN+rEs+ zwkkwwy8EeUmuScJa5w8qw8fWaPvnD+-Hnj)O%i}py?I^+jCnLgw2q=3e678(z(O?7 z`mFF0Od7_DNEwPOpf!8_nF^2yumHik8RG}w_Y>7K7+vZ`8Im~~8yZsffN9q=p!bTg zhuB#7Kd1J+3#TF%6~}!*{UK>zOl(AOZb|#Db;zx~Y)lcqoDsPizWw^i{nl8sgRRim zEz*$)-||P~4Wb4va_i0fHVmmv^zxCMC+9Z*so$;=t)TCcgR?i1YGZ2ZHMns9fJ{fI zL@KTtVGkaz;kAM*)k}g_RwN1*wBsCnwNNqLfm@Hd0}JQ1N>GG`H(}}o8r=VBI!hGT zsNlbF{QLVwFx{c6Nw#dTL}qS8W2gM=3N@LPB-F^GgJbOPyBeNaUOBS!1QY$;H$^O* zN=ov%?~-fko3Jk=UY}E}wp%7*gj3Nnqnt)t8eNj*JUOmI#1g}yEb_{DWf21-=qCg=zCaORMMNG^*GL#}f0>sc1*7#4dN_~(nDB%!#GsdShl6?}8)%T&rM$?{TKSX_<90!LH7Ba}awOK1IK%KyTgZ0f!aNX3Jc5m*I)+%Ln zPf9LyQ628AXA71w=jTUj&#!t4+R8gtRX1I>4|w1o?B_^~MW-*<#PFQS)a*g72MW8H z!ZM{DV%=s2T|c)z|abAtlQn0TZfb~H(d$i z;^PY-6?HT?%xp8Fb>bOb-?#!vQ!P3 z)NzD^r{v}0vs5F}7G0Wwzjc43GqqMtlx{zemUY7~D{*+=RDE=fpfBguy9k@A&87jM z79b5Bwvu1GxM^wWoQ0GIrGva|LVN%ecc;9UbHosiJ}2icW<b z@G22a)wbj0(cfLW(xGmngqQVgeY}EwM`Xd+YgcxxmA52XLCA-TedUU`!pjG)kV?c3 z(IV@}&IL0x#3Z6mMoWu|I3ZiE&JQQX42T-7gFbp2c@iE#SApyXu?L*cG0Je2JB{QN)T=YnJy-r0F%bTwV^l zIx(a+(ka^RcW32+01>d0J5j-Q}d0;e>fNXw_MA}86kT3*&+0%=K6)=0K zq)WT5t3bH*a~;5gWWEcrs6&O&bV*-j<_8_{bx6bgaE%SM1pjp)xuM{#M;m@o8QbA$ z`}sqB9BHaL!XB=br3OjC5l^8c{1->RvX8=TS@Vd{hIG^_(xzJ8;m@ z%s;v-+QA}fFEC7yhWEb?;G`FPx0#LMUQL7SK66W}*z|`eLs3$x6_|fdP=c*HG1PV% z%`{o!;Z0aVAOm6Tj;qJpn!H<{1VvIpcMHiP@|+~a%vlqbn6*|Z z0$!vAFQ>)+J;jSF1GTbRR5w+G;nO}6hS6d(AK55op=s%BiZbB6MgUl}Vk9RxgN#+V z6p2G;zT+Q=i?Pb(Z}93D?R^iDb#n`?9m*#PLz(fPwO^-QO>EF0u{z!+!P9nyY?;=H zEv+)tDJ4pM4>{;@`LUUL%YZe7H$d zS63}RY{Lyp`WF9wNumO{=U1Rs{9UVHY55Ci26^OUjD&722-(0?e5#~$4b~Xjubno3 zPZkJa#ld_Y{L1mFwDi+N{~(Nyrv_=Yp%ju%Dg&8RZ~!S0$Ej$mT|xcn>2UR8`m$Pa z*4O)EPI5jh^l|^Hqme)HE?<59%i>per}36S^&l-vtxPX-4P-YMY;1WFCnP|;GE*bp zK>F_t*O1iMSPIAmItXHp!7Zs|INn)qfX3olQjcjE3~I0yGRz0+nFhekWQ)lTySs8f z5(ha`&UJN2Q+EF`?Xfq^D-b>Td+XOw8_m{6XB9vWPRjNLmZ60MYi4;z4WkV`Ga?Pg zcK%a?mb3U8Im@^|{l&;e&9Xo0XGTCB+vTtv~QS@mx-JB@Fc$i{0h- zY`>wmY5xEz^qU`b*`IdatGkA63g=TT-o($ItgS>nr7lIE;XJOwcio#j!_&MG7AIIo zw>;}s6$!W*ozv}(_pHo%Q)S-SUB;sf1Y;fR2hgc9UuH!D$Z6rUl7m((82OZ$Ss$GG z{s!tL1+M9N_I1Sq_*_usuSnivFwGdq9WL-I$pmPC2vHIv3n`trcO`6qFOcX^Q*}bq> z=nZ8-99Gvb?LKAH@Dy|X- zQuTnjIm4mh;X6lV0^HoCKi`E%TzX86wrNKgJJK~@_G96FD?xo>;%zJQtUdYkb**Yenjf^jKJGvVnvA#k;%=n?CKx7i|T*qhYcrrw5MCwOtaDK*`I^sijzg63SM)9Q_a_^?z!8( z*VVo@O^4@Z_I%IRd6>t|s2&O0fl6{pN}TwoXVwFNco-~n#Ec>0#ZAAr3MG(uJ*L@*Sc#NNKye;J32wkd=vi^&8cOL$?*dut`*zRMW+ z#k$FWdL{FP>d12U^ofM#xb0jR->i!nqUCaA`Z9h6-0|euF>c% zdpo#+%OEhlh2+F)M~J6F$&E@tw2q2h_#!8-q0NofxL@dj@{?gU;1d1+cNQG*6%G#R z)zqu4jW=&Rdj&l#GG4!{ZqqC?!7;^RBgM=jOO&c$MgSD|X~P5m#>>uZSXkel*-5m* zxg>M@XeV_kUT&Bms%2~qTsVlCDby|DK z{>#!w9buAcoWk(TUs!2Ac=e0yy=^}FOcP2?lPX0ZLOE+^0KjHz1J;(5+?!F%1`Em1frXVrXI#8#kH#j1zh< zd)ih@DDP}aATVe>gh0@x{wz|`CGpfxwY9Yx02(F70iEu?+po^3^geqjgdV#dRlR{K zjUX&6P8gT;>SwJ+%9!5F>gG0N+U8=!&ho0sW-=N0f)eRekgz*jP^JFYL(Nn%QHm8u zN{%!=!UZ2HQ$aB(VkP*HF&ns>K|#1zSMzD_e0ZAP0A#k6T}?^~J)*nzyBZS=p#I76 zENd)P9RS?Z)BJtD0r)!v>P){%Ty3B8xbUd3;TS_<-LGDPRda*{rQ0Km#i^ zXMi78<3NUS^ZtFp2nKIpF6Z<`l~5sq3i%RfBc2T-J_9FkyuLJHC%kiwloS+b3*rF& z@bZ$y#Kbh7=>U-DqEFC|97x@K4Sy}V9%jYRmzu{uO(#Xh?yC+^uiUt@-sA=|YxVPb zd>{^?ckz}q_#<1b}Q9 zrbQGjEv;cbL{1KUh+L|a-3&@#GzCQ{U+iQ>%OhUa&hOR^3ehuR99@&GVN|+5 z`cZ!$A8YlKoi2ub6Y%qtoINVR)WK(sNuEQ#A?+I0^YX;5t}f}PPyOTLsm@zKX8R5R z5;W)vKCDmjoRXeFCzAq3<0t)*9c?gCLnIZrZN9sTBW@Tke7wr3SY-TUcoQ5gz)nRB zM3n`#(Z3Q1(D}(i%T+b-DS83G8Q4A@sB6YeiXYC@rhMh<{V6B?OMj~_NzF(-rZ?(9 ze?@$rQ`5U*XTe@oE^?kyo?lrGo1_Sb3zlA2`m-`OD+Iv}SYal5~j=1=fJhm-n4+J4KY zEquewsfE`Wr=T(973x*Jvn7QRe3$+9B`D%260IQdla=LW92y#;g-^`d+WLeZoJKfy zHW&jQ-YCIny`TYFSHD?}!bP()$jm&v)^k2qoCo@C}X6I{w*`^YcRjaflwTxb|8HLOjc}9AHi-6 zCA>Y6@$td%Ut;4BybC1zFZIQY=Yb&Ug|ALk+u-2uG#oNVBB-dSumSf}vCAaU!yjgm z8jUh7^_R^bF{WQ<6-|@TF}TN^ao;0)P*&l>F|T4(YRwPlr6g5V*>6mz= z#-}E=T`_f>O^|YbV&1!vP-9uCBh*E^#=X24gt8KRpv43K3%0>CDB#_CqP>@D&(A6| zPe5e?h+8%mT|VNgJc!76v*5&$9MT@`f|5t}1JmVU}$+%Iz|1%sZdPapKf2;5;B#&bmrK zaaBM4&cq-!{9`@9NwkFQ@9g}9!{cBHNyIh*4CxI3>X{dXDSV{V3b2}2D}8STE(Kx* zk=(t8ND8TRH8cWYlABvtAQ^RgnUB5@>i12%(Rqw*80vP&E>(w-iG|N$9*af)+2&87 z6X%GWk+1wNoVc-g6Jb^PDOyK+|FcWjTgZp`vcGrDi;kgbk01RAhWpB_BJG>X}TdG zXpQD61%=*%bf9F(`(~YOAB?`PiHoR=3>He}y0DEg{G^ucoh^{UpdAZ(#7M1wi06 zocKeT+V4Xqr5itrShs~lGte5pG~gZ8TD1SXz1t-%9ol$Z+bG3$+T(RXPEa0G41954 zzR-esOIz0!EUY@PE&GlKV+|U1#4Tm5Fz`j-#0>A~0=t?tNF(@Gae1`#ZML$h={JR= z!$e-&o4_n7T51s;7yFToH#m3DYZGTb4U(vNS=iAUT##66m;GBMg+S|7o9&A4vry$#%EK* z)hKC&xq}%DZ=j*0FG1#Lsjk}^S1AkOvlw{hZ{>v##TC0iIRQ=cbIZn-XmYVCt|8~g zr4v+FGHhG=+~9pGP_0~Tx%-Q5FYC9$ukv6*D)TQAcjdFFiUKM!HKMplG3x)4KQh4X zxPnSPz*LiL2yyZ|qc*jzwTFcTqJR~&0qoLR`wAAU0R#EGG}rn;NmA0k^$?y7!sK{S zF&3r36?Asuf?Ln@q;Pl%>jO(mu)@Fs!SgU52yI0T4d=ekxZk;gv`Ks1#7Tp(oq>CLcR zDa!8-zB9`anHCW9_!(WskkPm+?oOoOSMj_-1JE5gZ_UYw*;aW5w-G=;EagUj{uLWH zqStu3v^1o@>-YCuhp7$vTGI}-wcgF?{Y6{0yXt3?ZjE-IhEj4>Lx=w%o5M@qD*xC< z7j>fcdySw6lKF63UM-RnvS;2?@&wPDS?~9T zL`^_`H>*PbF)0u(0$p%q6B#a=-8X5!Bat(j!rw1m^f^II$Xd!Cz2LSS2{LlQ|J{G^`vtiJTr&=kK`Te)f)z zlHh@|y0!-Op3nX=m>f4My=Ps->YxcqiVFJH?v6CQ<=Q!p36@rmE&GLSL%rtG=DPpU z28Th%=f&0**={klJbxTcK62KXKF(pT8zVsa^r{5_{wgOc7;8Hxz?>K{)&T_f{MXyS zmX&3Mppn$*=86=`t=?=I|!c@C|A6Q%Vb7RWY3I!aSZHZ8nFh@0fUw6p%9CI|5 zoN?BXO1a;;g7RB8Ane_AdRSjyUm}d=*hzYF7R@14NOJT9J^?&Tm?8XN2N+Rs13sT7 zM~cS~lLivZtTvm8Dn4=^>kbUwaEuj53xg!#s^mBzIj7(o%9KOn=C11qCkVE<5h?&k zT21@aq7|1+-9}Yt-O)aoGd6!^*H#9fGQTcWR+h;=WU;GP+QFxTL&b?R`YMYgSJ#JYY)5V z{N&LpzoS$SWi!6bi`|@2ejr|jv4JWJZUTWOj$4}ZJH((Q8WM6D1tz+>@DS0Co!tx# zKkTOCk}#-3HT%asb@T$R#8BdO4jB9|(+8A~Z(}y zu@qeRSM0sjhMw&T1}l$b#w)j|t#Rn}blFSGL{C;|S4Lphqo2Z)+d@ix@V`<|=;57^ z(@)B{y}f-OHm89@Y3bVB-*1M*>+gux%egr2T36S{<(YDGg(<# zr6}EUJ0mCyK3?bIBrjl4OZGa4Y-+@59|V&b6PZKlcYiKX11z(gspp`{y5;AvAqEeR z*dVIZ+{?p1XT<2Cu{GUHDGLiuDDKXq2J>|_5yu;@Y}t?FLs_c>evn;Y^qM>hx{-pg zL_`F;W=x1X0a8ONU^dN$lZY8aY8jp(h8GlKM=w0wH0Wkk2lYm|!;SuKZ(j$lPc;&; zkw=QiJ;_oFtjz(v+512RApG!S`bI1ZJqvpM+!;ufKCJh2%?f9;ZOb`8WNH}hG4Y5_zMU1 zw~Nk86^si@Z6`96y;$ffikoIcY}fF2ifnNh_uv@`s6FAUYf&0!%?`b&`Z+(y zFa>BmaTIcrE0RBHUadVl?pqe@u8JyAzc1D>N9zjkJ-Snsv@uhBoLHD z(90Os!19_nxK0s|rv^YrPf!1-|IffToC2t&#XOWL*U1^usslzx_|-(9mVSR>sb?j@ zhwTJ22P?;XOhUN!slwoBln>_Ab59DOVR7hi@@mK1QL!7mw{jJBQFezwWkn?jKyEpH*4#7paJBUcH@R{nwg%DLsCml%YBf8%!eR&olHh}y@o2ol z!Nm&z2+%&azWCB_ZaYjYu;h z)obN3A)bG{q(kZ%rOoSnJ`{fA?e#-8ieNJ}%ui?hzMqXlVDSgpdghOR>i87Al{Voy zY+`Cb$0H5A#RmwKex~XP`?ga{OD*0EMXw-YU>VjpGIQ?(5<_kM$WRhsdnO;h%zG&emEIO5q2$-E?is1BqhIy7jrXG|gQ}gqT z0*f&CU}0k`@0tcotrPgXcT%0nEhV}3+xQX7Dz74Yj;dQv2&Z#otD2SlHWMce9M0)X zi=7F(3b8q(=eKn?-m7L5NcXF9kdq!V|4NBkmS_dZ1q1@q{a>Uu7#qAS6oDO+gm@Iy zsBRytmN>8>&;R@i^p>1k+I`C+(G z+Hn20KHu@Jq$|C7Q_Vz{1j=I=G#ILMU?iKgB)!NqjJc zA1<%xd45SafrVJs-oDr5{M55RssNkWDZhZiSs>F1d8)2hYRnyZ#dX^FYv>I){cR~gO zkea-o#ErzEUu=X%6)5PxX9;`{9-;1Pzjs8J2=SXFgPZ)xmE%)%*y5(2c5iV`_ap1hf)NM+K|< zlU~g*p+8}kJRxEhK#Et4mb=~RA`@+1IB-GSMprudxy-Za5v5Djp1=_TFzw_9S zG4%pAH}>0$$mJxItaWQ0%+AmcZ$8~C4ZJaiwK{gDs|%iltyOpc*bJh6#SLILI(d9J zVcC<60Y>VFvv=Wqxl6(zR|gcY%KSE8gyA~GL(w72!2Mi^g*PHCOM0?{h6`EOFtI6J z$hAQ0pL+1|dBp1&dOFQMF6wlFnZcdCi#EPiXqkO@8>IELaHyue!tO z$n8+Y{vB7V?A(Nvj*icRJePzU%GMBN;F84%9S;Jl6@$7!f)BV`YJR8njuPbTV??eE z4nEa+@C_h`p>|>BO~(kZ7Am?15bHrHolKevga3)h2x}f94?Qds0zmMI(IYq z3aO=c{h+e4O0jLwLG^#dox^m4f`a7~HU+nA=KeRyKLy!H3>9*DP}fpnruZa$hnpK1 z!=mW8I94Ig6ODc@=(H|Kf66DxN;;H)14G5QfOhTo*R^3RVdb9ReN!P?HPGYS@n3!P zDtwWR1CsU6p*^jQm;2#l*;&Z>p-dnvQ)} z_g>G5BxNkoy!+b3gx+cI>}&)O zQAN9!XJdZ!FfeOxRBeX<-V#a0<_k{rywoC|C%L_YD+AYV7N>81y3KEcH0;kk z_?~ugHeEiVd#In~IObStu64bdAaL038Xv}1qWn;423igfqk&66AmIn)ktKc{{?79-|Z`x>;`<|rj&GgaiQwG5aq+QnX5aB`a+ve zx^9?N%2lz=K$>{|CELLb7G6~xo#v*5n*S>r)pvG(Q2OvOmcpQvi=rJk-S$F@p7j6| z;GByBGOQj-UV8T=6KESLMXc;RaaKIu4gie+(WS;VkJNNGY3O>M35DQWk})1TRFXjmcUzfr*9& zbO2TSe(JaZvv8eN`ePU@JDq?~HZ%7}sa4@6WD@oWzQH+E@lBOob^KM1@Tsp zxU0IuFHB6k5Q;&$hTFX4d-<(dk!|&_#OvFXPS9hx511PcP~F$>)zxFw{U#ode0~glOb&E>w7w^r#_*~B1!Q+q>N#8#HeA$~3&nxw z1z~NthYVBkf-Xw^T%ddM0T3q!+cNoDU$vVPNPyFrZiDX>2RY55`}pOoK6lN*W<+va3_5u-Z0_OmM~-5P7-HNA&RD_d zpz*1GdNr}B7&<;Ppr7FQh42xio^`^fX9QRxqbZPRE7rW`gOae!`~3@T(f+VWVn&UB zFJ{&CaCfkO9*0c1lyChuaOFtQA~7+2Je4=b^rvaSMb|26 z760Q^88SNvwW^YTSby&e3SJzch#{uFm$gXB{atr&mm~smztF}6euvCguv0(0`Bl&r z46>Ib;2paJoWrvov>6u=J=8&0T?PZdGW3=JqU7m{Jg^)J!*ET$mJcX!^?y;|`{sR2 zusNY6!c|%q*8_0QD=+E}58_%w{OMFO_EI^k#+;E&%l@zDTV6S%n$@duUAQbs>P5_y zg7l7tAq^QP7pDTo*IK-!x%;7@=O^Q{V~7-t6{e*{0bcbvCnzstn%)>*QLdB&i0U856KWy6n@ zMcI>m)wuGgd+=Ee<8AyuqP{XJt95Ie6a}SAQo5xi1(B3eItA%aKtM!N8tD!}N-2?$ zP6Z?%N)S|9x{Cebho{&1mxHumIJe zCxxjKo0U9b?52na2~X1`sHtJBM%HyP3w?w{8V2ofw{An;I)sW?A7hP;zBOs~fey%P zq}1d!#B^}!j5s+teE~KXG(sKaXl3Qnz}bW>B;fZpy`%=gZ8+VgC?lb{)4h5A!z!V2 zVM$%t(4~RU~{p?>oYiV8$h_dU|L(7quDHDCVw!sBw~n2|gT$ zE6jHuVm8z!nk4>M{{!=dEFjbyhtL!T1_cErrIP`fD&dfcCLmr1)XN>kW}oVyV0{MM*>k|0s! zTOUwaOIG#tbtS6G=bWaFQR15}s<29*v~}A>HBo9y|c28aycf}wm ztECztNOK?;2RBSb`9Y^wa$q2)=fOs|JeEPw+$amEUoA%`T-+|jaRBr8KRTZz6hi2+OKf&grxL$;4Ojq-&Ie`{-lzwX1f91R3Y;XgrS@Oo=EHtfv9wHRI1dwc6 z0g#t>102gTcvw1m+6umi&Z$iHA60GZ^m zCv9)kutSgd{SxBZ-2W#KjQvy``N6mwn+QHzO(&3>44*$VSU)KCM|W~taxsZ`#@ftN zWA)kWR_8BleM)rqhU~O-yL@<4Zo#9v%;3wh5A2)y47aJ-aUd`Bz|g0Hz!`cbFUg{# zqmipaQZ3f(J|9kb{RjHQ2IP~4ktvC`P8>*Ih|+m@Q;~q;$0I^~cPfvbP(tDwYq?n? zAFc1tv6xFHy2V)LpT3Sx;ay|hqb{;bF z4W59Fm@Lc+2!fC;;E&y{Spg9|^3CRVdVzopL)JV-0Cy{7-RA<)4>SwlHo_0)<36mR zmW2pd4DM2j@f-bi8^1nLWW78{Eyl9B2gUj0kv1RQ;Y(fi^PctoD;zSTT*$@g6nwWh zc+Eyu{q)drHSi|7{jX#THC;aZh0jlJiKg7cBe~wv7wfRK=M$5z3RaIq4*yZ(a0o_JJcXA0 z;Kq>)z!A(-4{L9Nqi~PBkOmRBtlWUv3P1~pHu?hCeE4UUWMFR(UxyrK@nKcdX^BzcbU{?qoa2W(b8PFH+oPm47t^d@9+-5w6x(#;d%vR;OzOC`wtaGgV*?pZJ zIIb-la!e-XE{PzJ5?(!jsXEuYErT`GmEiNeV z!Lu3C91Tvh0ndR=2y_A9d*H-#cY^3Qx8UoF2Xv4@2=z<){yq&Tdyxf2L`1|!I<$6X z;N@5m9#@JZb9K{FVyUU-(lDZ;933(sg-2-Myk<=$Ojq}joz2q;tw*dZ;a;@;>?^Xz zc(H{dkJ@Rc=~pJJR{n<)?<{najBUO94@}I$2A#(vN_e?a$BpBGt8F$RY!C?mkrHs$ zG+t(`tk?q6+cO$iEa9-u?1>(MN^Y2-s9NA7){)X@QotNOPIt9_4w9A~H7mC;th*sXSHhaxWYL zMEB{S>G6Y1*X?`8Al_pDsLBe7=SVUE5i&w$z{9DagcnZ%TJS`3aX-(NTp9A4&-bmzV&C8Pn~Tf0pngyDE+eV-2@1J1b${KMdfbP# zAyp;Opyr#I>3(kV5HsvCKYLJPONuZ4HCfuM?1*@Hff68dkgPETF{Fpp&>|H;>dFAA z=WPIvF$DDLbnUi81dRBHej>_4A*@EU~58*?t?*&eGoy&Lu^zWeYR&4 z;hs#^6f^bi{&hI{HQNP;Rz4Ue^_UsC!9)t0u!xh#@ct7&s-047YxZg8fOUgk3PaS4 zy<=}n!m6?~lf9zgd89EMG%fmHK6wwycf(kuEb??R_UstCTUlfaxpAa_4NAK)w_+0- za0$R&GsR)TQUm&4tPzp7sM`;P0{`UB*h_Q~`sJ?Z(zVqfrN*&_lJ?cp7e}1y z*K+t5fBAL9`Gw#;p^i{dQ@aQ7>vQppjS)w%-h};fw-71RP)>4Y6ExsI;gWG8>MWyM zu^n}ue+uWwbC$y*A_76&JKWU(J4;3ARY0O3V1*0vR@3Khxu5WWJhc5>=s$a2wps0S zmGsN0GPg$*m|$3Tsm%exTK3fH=%~)E&;>H=P%I6pIYH2h9z;0W;968@ca=_p^5EcrMzw+xLc)`O_}uh+KM=p* z65B0-`bbn9K zNO&^bIo*_aDit@~@LOx@isODU%3tew%ndUYYtjdcwIWm_!}Ks>w~ppi;^E;D5fcYY zP8yAsZY?i|07jN2wLwgzv05A=hQ<48yfp%hb&;?KY)pehklKQf1_}ZQUje-OJ9eW8 zF;)qKI?PqKLq;iR4L`))bURrWfd&{1$uzV?Gp6w;1g2-0*$Kz%$zh}_ULao~1OQOp zHxOJE?(W6nSN8so3-BhBMglwYPKcZMM>64CR3jxUgyY|j7({?Cnt+5-!;`&!Jq&^^ zx6?qCs7!+w&)Wras!mpoBvf;JW`jheia=bj`pXOesM`?SL0LBksA%Rb0oeahdV#Fq zy2DSpX@YDouKAIA&2M#GB<8CZIz^gdkz0@SH1Ho*f8ah^-?gy6SWiBszNXYV`7UbK z6gBL?f*UM3oZmU)KRjYFi^rH^RAAz)tSO);2nU z?jzStJG&eFJXFCmOmddIpP8?KmQD9Z;megFAd+aM?zFf8MdQ8?wbR$|MLy}-O3f=> zD=mC`T6nNsh{A2QPc(u;^f zZ#dr&_ept*3U)TIWlOeEf^bS|Kt^cPE8KxhnGIlg#r*$aQC57cWnyyf^z$Q1-}UYy zdf3Z8{fU=f=8?bQur>SI^WD6EI04Q+0j7x{6i(3dkHOYLqYWjA>01U$7}n8PfG`>* zswydQNP&Z(eCaQ6kW@|K^PdJzwYE8Y7XHYLXx#8z>8B79!V1qdJtc+Gw%QQhJpFRU zDet}eH*>qQT{lKG5FNS(D2H6Ofhc=@@?hvQetXrdn&Y!;-Ecb?ESB-lnnC>i=$Ho{ z>xM^z-C^`8bu_}!a9@9yn4Ymh_0aU`L!-c1siRq4#&IJu8h44l>7h((}j z$ja%}JWZ47uk`$fPWZWbw8?h^@r`5r>g>u&D3F;)C-%x|;C5lGTi~}uBtdu@=k(MR z9aR0X-Z*9zLGW7#MMhD>tB?>Jz=ds`ZgmsCgj6!ULcP+Px9@Oq;k|qJ?%V3~fwL{0 zMu3aZ(<9Sy{$zbODWz~e<~l3=)(_xC^zYts9*6>q8ajdX zDHdz#4E!>N5{Rq);|d)mnv|3j@;+z>MM_nYAQ0!RNTsS(t4WCmg(j`HE;Dq*H(LsH#pezJ|xsS&78oIvLX`he>F}F@vGPe7`v#c zAO5Yucd|I-zq?N_25ZV&phurwy7r($&a`69m@+gw5R#~*&5D5+=1rjFzU z8iMknFsmx7@v(Zw4L!pps=aTp{z6Vq>gc4b&I%Xd+lpOzziT4!--rRz85bQ zJEO0$3Sa_@u8$}p@GXf78a2EBwtTULCax zd>;hk?4Do_KzNn@PC8=Yz)21RKM^ALO4@=&DPZc({&&fjVfNngL6YA~zXPfLDtJ0% z5eYnmJui~T7XA!@ouDr`sdqb_e-ykj)#HAi6rdoVxuJZCTz}}h%_0XFOza6jdGqEO zbtaFgT&R6IQaTr2ruW2UMpc`Aqg>b(U$d%7VLsp!X5b?q9}NMRUywXt(#B0#eyD?@ z|KoeGw>tAol~otEhl#Z)o@6UCn>US~EY|%8vyABeu7hT^uiZ4xgq z2U`C&SO?~;Q9=7;S{}>|jLAzNwS9jq{%7r{tfeKh<6-v(f1mhHZ29z1D8T!xuHeDN^Yr6HiW; zPsH_1`b{I5(YLVCzpkG6mpa`JtTOMwl`pM_6&R%01Rc`C%Ko?kp6(0pli#(P;}@u@mzU(6Upk=qzA|oL zm*-c+>LB(Sv1P8&H&=@MRnYP(oU9y+jO&2hzWgnJxhd%<4U1w8{y}|;eH%yOcBRYKn3!N#m_o>=p1vZTB~mAm|1lUJ6ITfEsXj7A<#A2nd{U>W2k%f=LoQ_ z5$|eCn{{7TI~cfNTD{s2-ypl5er%sjBmmLnvl%K*2W` z;4oRAZf;%~%8QVmK)QDVXnd{YP1=c4eiPKKxjzjeBxcllHLt8I%X+7lgtO)eNu&AF zM?1y-Zx{YiI*sXr-)l)pY;sM8CgyAn^)f6zM_^W-F>IXwoP7z4gzj%%FL1E25jp$6 zoz?7~P5upE#EtJcEE;pnLFLjn24oJE!RsX{?o6;=UeR&xHqhS=G%J~Cdzcicr*V&UK=EYA zb6(XNFT;Y<9i7BWn*F?*DqYg6=K1N7^BF~guC9Kwk0gvRI0Ad{K7$Hp?>Yk(bg`D& zNZrharpah7c8m&$pwc|@Vg_|i3|lYd{zhwlXopS0?7~9sp)i7HnVQaU6{+Q6qzvO^ zXV-2z_yW86q3bjIQ?k=a2 zfDLf9|wvNlz#66a8N=)bILa|f$HdJ`Tkui zex6ex`xN$g4*k$$1cJR+RCq#iGMoimb8zIHO61mlgvoXey4~RF>guV9K4{cQSXJGv zE@(&bv+YQJP5jc+`LcU7rrweqCL*)dna5w~fPE(ABJgu%Ux&0bnmJ;q{E?FCs*(KG zPAccM25+)p9NzD#5=>%-EEaX^lyzKmt2DLt6lGj%KdWcq4Uz{uWdGb4h^|o3FTtUS z5+eg^D5BEXzV~3cbUUYp*RYBm*nI2%9G(zk7Yo zsK(F|*TcSD8}&M$CvrPTJ=fOAHJW;y?x<|MNKg3^7FMFi_Kg2jbCF^kBOo}Kq`255 zYI1Upu(`QY4M-pd56{;EN(dM-Wdt?`lq6u{y&80enf4Xj`dDml&m!1!$^pOg4_#Jj z>J=%eX1&e#<5id1%Lbl1zRq=SgA2@!kWp>mCn+$hdE#hOBy4bl!SCB|y}0DOVXriC zE2F`@I}d9Y2}?b2xJYbn$foUK1~OlvoW?9LJidsCha=1lEIkMSvN_z^{qv^-@_)qM zgVIN2;C*VqDF+J+cIO?XItYYf*UG=jhGki!%}EAZ^rz2hKne^uH1MM;Q@j=s_k!P< zFv9Zp5}4$jogBZTvSMi3z|YVlwZgqu{NSp5Kn-QW)7(e&R0rC>Bkix{JACSS|0JQq z^G&S3{K*BMZJLGy*Nm|q4y#)9X_1PV!w_?Ue7_4VH49&klzM*q1qBNjjBxWj`aJq} znv9An9PZKX_h?9qHiy$&5S;YmneR-#>YIW$F%Lp~DQVw>KLoO4WE)6ap8WM|Uav%8 zV>TBgP3^F}ySOQtd;m3tx=eTJbCmL^scWmYgvM*@p{NDpKB6|m>%)bOGa+ zT@?6X!KPfGC95cMrsU@@{AC!mj*wu(g^Z2yDj4l@IWYOZJj^pj6~(amk(pQ zheA9vk|c5y+JX_UG-$lxrNx=^eLdbdkIV0NL%r+HvO`c=YiDkGsD=()bB3rAasCVI zB4LfEm(hcsehS~WkD8kJ!L|Mh-&IAxL!dr!?DFk+oOK$ls>^)6^iIbnlKe1cNqX+{ z*?!ak*t0L=_G=eTM#dhGM_)-7mX*@@jyaXU_qponuQv(k0(Rg6l7ws&bLK@wMNJ2@ z_PQWf0m#h`GQV^c}ey|*zwfz7} z*-2qYC{%wJfS52z^Ed#~+~S9h$&6N3eQ62juJ-P5<5#uEk~>;Y)L4x!O?A+eyIRTy zevD3Un&+&^So#?!cVWq*q%T-N_vEB*t?}#XLtdh?B@yz&MMErQ3}Zar){_?@&zH}{ z`4(?0Qt?2zPcSHU!vOYQJ@YcRu+S(m6q4{gPv3+4>gjst3+aL*;&thBx^pkb971C+ z0R=F8M_A?pw0WA3x6i6Kry3(*!K{S#RvS&rtGS-?ubqM& zIn&}BzQr1yldBPMh52L{35>i|@nyFXAVHB_pxGLCw;5!Yl+}$g@9sAHoTb427@UdYq3483 z6wjh!4sHnCa|zu+uU>`2rfgO6QHgF2eB+RA>d%ZWox!lC`>pY7b@Ac9D#VkJ3H34l z=ls!C@0Z)j(i2#jzE2=+ug%phN>vxI14St@K=5fAwPI-J+-N^P zXyE{*>$Vh|k}mM+NMT|Vv8B%tcA$c9iWB|ImluS_X)AQTCV%LXQ3L+CHL7)2pM5Ws zv_J{jOP=|4GYz#UgRQ~#Nr8d#h51F;ivHD$1BnDSrh7$}SKVka-8z^u=97P8y~sFr zIje&Zs=*>X-bUYhhK5wI_Ya1F?b#zhV|@EDQvy!aN_45uoYII{lxGsu?#zlLSRMeP ze51suerQD$Iy4{#ze*yLVpY0>ytCkLWdoH5{I(E3XDqZVpY0{{1(#|HUA9*hlpG^+ z9H8Ky=r5yG+GjOn;B#Fkv;45{`0J_mAg#lbWYb;C#Qzi?W;<7kS0Pn6-bLpgc?;l7 zmZ7Ndiy8WYv?9 zr%-m{nl>91+j?YcuZ^?Ty<{PEoqK)rS@_83K%FasaqnFFJZ5dNBe&4CIj%t_UJ%mC zP(_`0EI_?A1=oht=dc`=8sJiuZgGMxausOs3LUnf;eiygHYK#wM!=PTTG~x)2SbuK zJ85?|@ZVbp1_s_bAj2Cx0_C5*cd^`Xm}#S)rnVB<5x-}Up6|EpU4W8u)xn_utpoXH zqkjm}O)z45yD?rGp<`W@oEmGPN)XpEo3lL7HpZQ1y&qt>;7yiOBE(lIH8YP66d@K! zv7dfB&F?%X_oLJ#3;CGMr7Ldm*IfJA(}ToWnlpAY+K*Mp9|KD)GFq!ZodL}9W#ip@ znR+DE)YORR=$?KPhK+b9^q{#zbcElJ(T01{QH7>~LRYl5^?$cn_6kYIGplatUONyz zu6>f#2%|#wDi_^D@Gnqjo z1x$d|jj>8klpbdifLeYDB&7>%j1@ry5;DD{^$}P$2$ui#>-{YUIKB97zuowZR2wv;+LX)aGcZ2p-Yj&lj!pMG z_T2k0F6XiG)Sh#ghQHYL_Clqy6OU!vLidKbwZ(=aU9pSmAmf(}bf@x4-FHws6xBv9 zdYqvB=QgT~%}R!Y2h=PWawWPJu(wp`fCNox;Ae=T--vKR%y?jWuV}}`!)t?mTdzgP zRdP~NW{6`eIdo^h0_-TH@5l1c2D+b}*{^xGeEjyszE`SMkyEa&U%u%sUK?L3LRxfz zVG-2k+%XfTVJ)o#-^Z6Mto>LItg70|s~(7>+$nIZ|Af?e-8RI<#}{Tlhq8dIZ~Kct z%0lTyh?fHAUO2$IftlZq9l;AxuEenVXevRz45luy5Re1nUQ~3o+twrR-EKCC7mAL+ z6(t7-UNAr&Qxn_|Ypz--TzmbWA|rY5{zv8!M+qAV4-=PC>l^7m>JuoPEradPkQiy7xJVyHpu@*?w?WuA|Xcq>s2hh&Id}jzq0g>T|P>@`wD;t&?th3Op z0RRD00yNr2DH=n0P;t#c*>cH25I!tz$VZ?b`6;>Cv?f`sMuo#es#=v!!l=}`|MBOH z>5Nu&ZRV0zb=X4wAg=0|C-#%5bJxO}YUQ^Ei*u@(R|-rcgu=9TWPX2eG1}5an|m=2 z`~iOU^8jo-b?{OnX9)}Cb~yh^O8Q0VjY1&2L{wyL!^7m~=jYsou^m7@brq_*o0tIJ zbTi-8q!!y#AN7J10P#jEs~EZ9T9eEV8YJ153u`{`SzT z#qa!b22?~=TwB4+%Z_ybYp5!iC{vWS+wfO!$h+VEUuXTHv(KL@|GlwM1`C7H(X!u} zpI3l#kJnGK22if&_qgO3=IRJWrFf3J)N?()%NANay{(8o! zDJ!>D7?_yqdqwp-cN>ZXvAtq6UTt$SBJRZ(?H#UI=%!?X8Azt`PcYi0OZ2jnsfR4g3k zkTFCr8*qwWYw2wx5jNLJy#TYagZh5ZK`2egx|^N?MB_1sd>@56c~QlRSoh zrlS1`G&P=wn_t5O(b1HXxjA4rZuw0Z=fL5fyG)h;@s<#3yx+UT_%cIVuP-4l5nOzTJdLD1=Z^6?o({(o@~ zBcnHhy>fEEuI3&B0giv5Ju z3*PMgsioELD8*(8!r%=TI;IIyz?Y_rJi0*LFv^7?eThQrmv;T6wIkXFZ+U z+|zDEQE=HuycOQ!cg{Bou@vr{`r#vvsuTO*yzHcwo4+#s!lc4d2~gn`LP1qIOLRN- z{I`B;--R<*)Gkl1;V*J>)#NMM@@U*OS_D79#{aSf6v3koY{< zDsYKR`(vDbZdN7j3<)IPfbi=xrXpv#x#yh!)^q|eY*K1!Xn{a1`_8gEUSc&t9!B9f zB>72&8wAc+moDv6R;a@pNDAp)LbhotQX$f*-g3(+fCbH4dU~;r%H45Xi4wn5^~9zS zIh%xyePTmHwT^umZh*DG1DzS$BFkOXm5?9jqG=yKwHbOgPz^5ETqkvd>ao4MJI8jD zDDFB4M*MogMfbRc3VK6?7$eX<2V|l4l?l32EBMX|z&e7hpS%;~ykO)S5)}o5-Dh|2 zYf5^oYcwu5E3f0{9-0T-XBH_LH#eV8)$C>*-M2!Qspag-H8U4Y!l2j`Q!Q2R zXM=?=S07<8`Yyr&IaQ;YbSa_6$bZ;RCF#@fq0HH{r>dD8%UUvFu3;qGipIhy{=!Jn zNwIO9R=>lKa0Vlzd-DbhqrixVn3no>M`vdP7!Cg{phQUVfFG+J{bx~!Q2Uehk&^<5 zuI@Ajp>Xiy%9h@Y5fh^Oz_$cY|8W7V-@znw zipI()Ap7~WRrN=qjtV3JOchW9NsL|ZV|wnOZHjsYJEX0PzSu~y1tGy;d6gj#SOxim zU-0hU&qy*J!&^vVpRt65#QqfP`MH_V_!O>;t;xxr=>03)VJ3dsC4waOjF}$~Mupd8 z193@QUKpbeo42Kf<^F~N?lhtBH#;{iaB9LnydkFE>!Y9t>r%e^E257%GnPq5$6~LC z@Ljz!<=r)3u-rUYxSJjek0g=eh^ zy}G}7kb}$Z+`H?CP9UAY&&GEYPpF+-Z!Pw#e7&uoKpD<$b^(_qPBP-VAE=v9;?@WF zj2RFMjB*HxQYTK+IrtE|pRl+B@OVg+$T?V96{rNQBe}~Fb_GzJZtBOo$K{Gq@tOLq zK!~&S#H1*xU*EzAMNLH&{$;h4S6ETE6YOM=-jCO2>vQ{oAi*D#eMMrKPrAX94{Psl zzANM&W_|F=P`~+LnWLP7Xm4FR(EJi0*}%Cvy$cVM2`o0^5M>uUMuiT9S%`SXCP*6O zZf`rmfcg?nbO0m3xTVjcyYJ}eC=?7psj9wyw_D#njo~RhOT7fG2x$Nt9OolJ62`yz zPc7Oqt3KIEWfk5}oaPy&j=HyVO#gnXLEIFU0;)!IbxFpwX$gThp4G{Yo=q3EuMc4W=^+sraA|#)YlA-B#+4M3bkkqrQuOKHn2w zWOzzP{aF1oa4%rp(lmo}3y#j2)X_eW!6G9>=WkM7U4+vu&}|NXt1@2aoWottsZ$sP ziR2H`@#@Feze#ytB&kpZ=viESTC)h%0I}d7 zIuk&AF$~LGZnEexHtoSVRaw8CmBrzZvC}lYRmN3(kq(v}TA7_#@*M+gi{bd%k|i)yC!FE+$7M_l7nc%r>p zSJS*~7ZEpT@MrtwGs1{CkGBs4VfZ&O3sZ}Vw9{ivKAHs!z<>nBi66i}BhU-ko=X8JQ_ z@^v6$#M7XN(L|w20l})Qw${cRFBY^s5nu{LUG??%yhSXz@4Qs0lzL-`tJ3`2;D9ip za^jl@l!KjRy1zT5&i!$mAFI-7pbOg^y0){f0^1C7Ue4*0%;t6#^UF|$L93zP6ORT4 zi0L!FwBbcu4W|H18BXb>yczfw}4T%KWQnw)-g z!wbf&Bru>*`g+WII8LT;;!j+=BKMnZKHf{RW(Ws3U0-PQ#Fix0>=K7J%bWOpU@ z-jpMDC~#N^aU#^7V{jKvkT9r%9jYR1IAVDofy58-*_r30rxt%+0Jv_6^n~2SLd-^$ zP3h<4JlDJKt+(3k!UaEgybX$wd{ukX@tZJmoJ&FNYwP{N-H3X9=p@se|5-)jk!JyC zNOf4k+m<4NSyeBOYi`-BRHSw=@PW*Vc3B5*)m6Avs+Sph86?@psnM7R-6_hkzk;!uGbGM8e=Rpy-Oer#m6s<>2)c1BHf8?{6fm z&sq+1dK5ngK188D@4oR13e7D)V*13I@aA3v%u%7|v!m6^qV9iFr{>9Yp~PtiYclYA zc&s32xZ3Z%Qa$W!0(?Kt`MfD-*nOC-yvzyn-iMyt`$+BJcT5YxlvTu zgQNG#SS4FUWu;Zv2oM%vVVn3f)|>g(Ep0#q^|p3oiaM*$8sBz5@L2rwiv!b{V^5a# zR!pK(IqEVf(O#drC%|N2{dB3{E>!L3Mf%yJu-27dp?cNJ)l93#P7;l6T%}fdcRHhF zF|UPx2ZOewlM@#}OttTpwOXP>>UkclIC9Lji}i^>;BZ}S+j0jINqB>Ug1X3gxw)?b z)g3*i#2b=M^df0*55ILVf1q}6=(}E4tB+_2^@H468<{=Dr-s$O%~_#azV!nOM5*=d zRrY+Aa^4^O+`%^zP?~tgQGMvX*Tr9f$ zRRxgx_*=VDwc_<2mZAa)TdTAvNZWwF%4%w?HN!%8#mJd?+F>g+0E-Q3vK*iU*#f&+ zIhk`PR2ZeOenG8xQyczIduEqygU+AgU5m!hQoLDMs4q+rO&!B_2a$=cS)N1LB7 ze}Dbk{Ty)b#(gxXy4+ujGe%+)KMr|$>+sqfz0?m6>$UKeyt-Ll*f(AJp)$eQ)tC43 zyTRKqA-NI~6SoTC5oz3k_?BSzojLgozzV5p*>2rR)Kelp+e%r3j?Dfr;dCV@hR^H3 z{z2w+0Q`Gl;1~ewp|3eiv6)WmTfS1-NvK!3&fjEOf|lZ-6>$_tJ}DKF*YUv~UfI{i zt!;~Tx6RgHWcCh;n_A6XZGWtMdS*B@uT^(3ArUwS6m2+$FQw}d5iMG9D;mavHtq(P z4HQs)5!Sb;$k@Q%Ub(~ zF5&}KTe>yF=?Hj(b88zZ=;l|1YMxSHJsxL-o-&%WWN*6k*O`?-eAZdM+f_J<5$#iV zci0sc#-8{3u~j#KG7t}EisSQiFs0 zEOiYHYj7BQazCY^+COa8y7f^%iI3#Nh5oI$)g-6#d!}iJSI5D?NbZ*1vJkV)3ivC1 z?Y%BZGTF?QHRsiItpZ`<75a>Dw!Ms>@$^i-l#n@^& z+POU!p4yvN?)RNp1qqah`RaiQ8rJ2+8(&%Gv~?}8=K8s_hdY_8kubyfb$6ddbd56irdIFUA|{HBM*nMU<|z`4$7vyz zk~J~A!8sY{SuDLi4Pjco?ff2&O2(gLw_T6W(M;Em@C$t!XmxQPHr8GMTssK+Yo*J> zfCuj4-F(jT13Ddfp!`OKJA*UcttUT1PY4I4z&6AXPR?F(M^G?=_YzBt;B~OV3qR75jIrULeUDFN@E4u-_d=!AKqOjBNVLS4-e+TkH2G~fUb$1;k zz^pt6?99oS&~p?Z49%yz5nwBr&%Faneq>sO8nGvuAPr|r2l(hlop0ov@~V``A9lQV zI`rU7ke0hJ#!~tce(rj$0UL|V9*mj`^h)W#qNG&`4Ni+MUW$eVpt?}2aaX#M8dN+M7RdNS28(qHgWSyORu0G zY3=C96RS+~0)8ryRnIoVt>l@ZGb}l|Ulxp^itkZ7*Y!VN5U{oe+yWVJm zPb)GGsVtNdIBhOhaa4YPC*V@>C?!a-M^@{*ND)-p~S`m`V#C2Ylo>P!V8VxSR_OJTf|f@B!>6NGv)8iOy-YM9`8t!R@gj%$AJ0h;{)G`rk9_AU#7;Lo!_}A<#34j z^07>WnQOh-ONGs;h;-SC|>GXn5EM)@fC?gEBpRmT6<_6iHvw{Rwqc*6G}C zl?Wc>A6T@)S`l|+PIo4P(M7#&Gq>LvbrZdk@y3;d)Rj!xv2k;FF|vUV*wxo32L~x~ z86WpT70K<#@|%qtJ#|2KcT2n<940mDoXl7gSA^hr5r45Ex&rW0MaMp{j^H2)l4&Ut zJ$H$(#OQo^4omRhKGxCKJtxZ04Ut*?ABvGN|7IBNl^a@boH#ovE;L}$2*VJ~6u?Pf zcQZmNp$8MA$M6$X^t12a^!QGfdZc*H>)=fd?#yh)7;yCokTNKhDRm@G~Aaa%~LV>au*iTzJ?RP;||vLc46a6^DxO_JC#{8hSZr9yZo3zkW$(UT5)alsZ3>1rOk~K@+r7 zt-E*8ny((=G$#{g{avHmQ`f<_BVm)pWFY~cHA~k2;#p9CGv+TzfTX&TCy){oC&Ug*<&k!phhY8v(st8nj9CbRfLuxcog9) zL}cmLdeFC)=56x-Z=P#GIUu$-X_h6_x-5Nig~MVf{&*}b*Gp@{CH z4tN4`3JSR3R?Hd|`V8zXk7Hmv`WWcc3aIOV7J~sSD&ck0Z9c+q!6a)mNZj~Y^cu2Bo2KSL zD-{ZMewS@*Z0I)~#UG`~EliAYFD&~RpCVj6^rWz$AZT;IUJ4BD=2 zAmLPWsDd64xUh&}qW+H^y+J&4A9zO+_EJ>MVitE?b`*`1Z_^`A$bAI%zOuf{t7QSK zD1N2KcV`4<2Jw20n0#TgYYrt?o%33A)K};)x1mhW!&_u@NECOzZkq4+h)q~{*mZR% zPXPu0g9pbRs)#x4Ii$Wp=EG~m&TGtE9N1Fe98;iQp4~y?JJrEp{dfJQ!jmB4bz(N) zbil)w2GAT<`Zq4exil7sGVx8&JGr*rRq0jBQHW}Xui}|bB$glC-+6eMk))ZrO(w?1 z9qOw+aS(?$0Eh7=w3Jk2%b*kmjEDbFC|d*xaA*fW4zizl9`*qlrVZ>h;VJ~zExwiT zEpcCuo|zNhG~x;h+R{>(HR`-KIR@W1w|a!kbWZjBr3{PBJJFbouSsA695GZ&x!r{N z6JdgecO*8T;5xzn%OynROYvpJR#g={FlCv8`_69MP_l}+816PqK8 z&(-qu6bFjYljrGxHGY|%&YDgnTAhW-J{iCdOosWZbpR59LV|u%R9yVcK!6NJ=O1@i zv;RX{f1_w4;J)9uVP-M+8h~Kg<+^+!KeMdV<%HT_z*i)o6}OBxXGYV1_|O8j_K1LS z#8)nH&oi3it%wFYX&ppO!FDKK!x&*=L#fDMj!aWoB+)5#8L}yo`^(RBI{c`3AmQ zX4Lo1i`AT%JFUo>UhUd)^V`e8xvw2vA%zu3!p;J~S_3^ly@4T4@dE_2|J3h{If2fz zo`On>2k2VVY36Pw856o`dnggmCyo8HyolpY-GiA|c{n+h!I|b;0g?w&p#Ba6*kJ=N zV-&Lp9xJs18?+tqFSDBjOfv_#Pw|E&H=V>DYf#ViZu-{PFE8XR(Q-$bgj$y1xxuey z?9p&u#JuWu9S^4{kp@*D^rgM}OT85C=J6Ov)qr3~0dJ89SMvq*e24|pr^V0}NBG(M z>mq+47OlbQ*X?sxY#_iRFBj$?uyZ{h4v+hiWh@S%9^`;R+(tD< zhoU`VP`Wf;@ACd=qjDfJoFV8g(6pW4blLQk^Lz#;ez^ro4nS|Ks82BLT%{IPCB~j1 ziYNPggB%O(g|JwRMhkiGyv=-5A%+_`_%jYYWSN-$HsB#%{I=U!Rg;tONN9USzQy1k z#ECEo2n?+Vr5l0SR2VoVBI_(8JYoY;%nfTXHC?2pM!(L7OGDx z+;gj_+hDT|VGWBXPjYQELQ~J4Q!ok1gjHW5`S+PK1{x0(hB$P$J&)$lyo?ADMBjNx zA4zc}DSKa>9sbRS4;_#g6l|mr!O@+EeqG@CpmeDo2+?5s2Xtdt%06Eoj$&hA!~`q9 z24N`sAZ&;gdTMHF+H_O7fvhv#BkFlL>y5r(` zZxf`Da+X!m54dL6%kC|wMAZ6UfsSo=b`PBl7aMY1Zrr&z-Sf^^26thQ1d+h0W@8-C zg|UOHBrpmKu{B`PPppUn#R5s)YbIk7_y*M|7dSwSLP9#jbwIHH0vxWrulyhW%M!hw zG!@;U2#-4cYk#72UHX{%a>^Sk|MFiqb|;JrfP#*M5qq0NVj&4KKwZNI%HPtPScD~` zR1cb3^Hl)Z0Rh9u??eb#B!qGPK)PdsD06h!55uno0i<L_M~E+1d13 zu9KoyXy;GYnEDLkYtw8o0W-hu!Dpsu%{gj%zm-%%_hf};r25LY`ke`0WlnhFU`q@< z*lsEjAt5pt30pv8l?#)kBIK3vcTY<_9%2Ue9$v6aOGZqWj1$?t`e_g5D~SD)JG`V( z;Y>kDK8MfWMT*TBx%zJ)(J2Q|N8h0Pg!VfKeffM&k0hjSdI^WDoRn|!tNqL?<2Jh^ zP!&Ci4p-G>8P5L5JgC>Uj@{g~*v8M}p`YyXRR6KzzrCFdWG}$ugtHAHJcA3-@!5yMX41~!WPH2&}R_)B7=MR zGT*WODcE{-ngM_*)6952T@kixDsy3N0uokcFbPa2(qeSuUR(xdiJs z&>8~)(o{Pg7N>KKhf`@Muz+{&6Fnq+EP z6vR3}49jI}g|KIikZ7j~5f~fJII#MK6X4B)!hEJYgZ2J*`9a^1eizN>VG?_>v0#6i|fe*NyjS+EZWx!zk0LqTgn3&gR7psel z!7v9RELS~c;#3Bo?{_O;@pkX|^D1yX6Xryy0q`4~VWi(olT$$W$|=aJ;0y%MD4=F2 zA%{b|3sv% zllnWEQOJF?g~ab-=U_sFn+lum%pzBPsDK@SywAX+^J+pAan*Ku89WPe+S}W>O7Zfb z>ICyJ$5Z^rR>43!WZue;5<1BWfOjah&gRN;^ z7|x&3%6>r0Kax)5c;_|wA@T+6w^JQi;fXDBebT%%3u?R!izmsLAev!7Rg*(Og5^0$ z2%<|KyWoXspcU|i$a5}WXK)I^(G^T%*XpaqPI{Su0C7GU36rx1SS&t@5Ce&Go_|LH zpk3fU4na~^oy9X?G!DTDVHNW$SBZoMjQ1CoM3b0Jy$M3c7hPjM{YN0O7X=M@wzud& z#ecOW!(tx|?!Wb=p3nUJdw!k?q>u=2aqNN~K@z~r-_lM^MNv_75@6=Xz!9&wC;=}b zC>G!XN206CZAD1-d?SKo3{C@O&@HP+i^9h>b4QuEZNULVB*?i|fok&n!wIgc!Qk$& z^0FBJiG-HJVy)k+S*R+4U`GyF;OR z!3s(Cp!p1jy>^&(?^jG|awdUfPh^1le+0X!6HZ0 zc@7IO+jo_;A3PjFo9Oo%Z@>-dWm5XG^6_rQ?s2tat^JrLjil!f=8mo}U%p6iC}1E} zGY@`H_p^tkz94+Lj=0((BB=V1|JU7n_;cC*;lr1dmdHpEO?#FQWmS@$y|NN2gsh_Q zY28*OJ0mNyiXz$3P(~^u$rcqNltRXHoW8%`^ZXCb_jUW;uh;G4`drs_p67cU$MJr@ zSvJUvszs=iIF*cKX*x?v7y$16dR3z$sjW=D8njC7mU7TMB=c)RWnJ5r{QqOF>tylZ z;e7fCT`MmYB$b6mz$2|kNijVXW4!+?+`zzM)XV9lx3y0(4K*8)IP?$^3aAq*I*U+i zBSheNoWW~0iLa}(yXfav0|&f~)9e!J#Sel`9{PAj#?Xa*St#Gayk-sS+Ku8;zU!u3VQRsAJcr!A z`*VB_x`Wt4TP|o(^6!8bqNEt%M+o{@xukhjx9+2R+c;(66???0C}J)D~l z>*^@Qg?1&24>)$x^&%0|2Y@nxhiX4jg#qzP?-N{$m5{oj@^}Zmq!98~_~> zQZRALR{O=MsapHbWRPpB+e#!V(f{PtezjjbaU-xAmidkwE30ou-;#RHg=J;I(2Rmb zrf7{7Xj0*fYKflvcd@Bn!fNUwA#6W!(%$~ryLZgt;o%m0SqDAj)#?V8(bHe!W^Tq{ zn*-6pMx==vf3%t^q=0OiF{0t~9p|Z%vkqc6k1$;}&UHwG-3IVIsUYCVUBCmr;cj<%0j-3K}!;oHhE^!3`YgW4cs%uZmB zx(X2?A@%9mS&kr|SR`8botANwMWMqDUE%1?K0qI4=g*gj3Pgi?S}P)=7#3X14k$yU z`NIco$?X;BV?jiiq!p-&T~oZw8DX@x)RycCxp89y{IIz0FERCq@m3S-xch>oX#aZL z)%6`uSWvA#EK8%$ME^BhIrUIrLDm7g9Uu=mfIRZYt>@?E4Z`^Npw|+_lB6S+Nw~jr z5a%!r=U|0*($rwA^%@lEM0BbgKD^q*r0r5CJ=EfcKw9nPQqdZ7saB9&6RZUb>ZoMu zuIhrGBqw{YL*(l4)!^ZD&?DvceLn}(VpKGdLm#I=0-DZ}COeND9JN*F&iy^_QD=f$ zF%?J0oVvUngJNhPC~63#-OkB?jIlV%ufjhtG$aJR&9Pv$Cuk0|Befx0s#X+h^TPrl zece}mv@P3!g_9|-s9aq5cQCKRZ@vRSVhtMIRD1El*u*RPm5B;OLL*Q(D|1Uw$^Gov z)8cK>jrksEbPkZKQGGkPKkVk5AP}4J&P+uBpfPj)#UT~&2mb}Nl=TO(r?r4E z#`$egke7c6FiSh)5Sk7_z+Ag@#ThW)cIDX~cpv9?Y?s`Pr2s{q;B0#*JbXK5Zl4#0 z$}<>b0u|?a)=w=Dq)!$!D`vdg?Cm3^oahv zb1#U1G4eV}W|#)JWT5 zsEB>E$fG_*J1K>U>4_7OjloHXSsdH)8s(Z6wGw0+?Mf9dPVcH>N0AaQX^b|w9P<60 z2$62hKVY8L7R-`su|w2`*S5!Jgr+^5WXs+Fk7yg8TNFM~Pd;d!zdKXCyy{vq z*fE1^Nr`TmXSVv!+<7opYso2l^JfITo0{xudXb118lZSYA5!r8k7ZqiN|z6sycHU% z`3ul^yr=$Coc2B}!V70Sa8n2LD~~)dwPE*A#Yu<}o|E8%xg5hV22w?{4#JbTR-C^&V$zEQ#*V6U{urp@`F13 z98$XI(T*BqDHAUb{N?}%qn)0anef}O4###4sba?ChpQ6_KgKgj4^{BX$QZ-ix{umk zMRmxX{T^Sht9Ng`p}G^kXJ!Fv-#s`TpcNb3`_Io!?{;0T{W}J=6NkulPmlZy=Zm10 zS%-;O3f?8g-m=`GdFBl!9dCz7>fOwBM$|Pva_v!!tTX{c;;>(VC0s7oC^rWCx*$;s za*TJ8`x=skq{ECh<);N6VkCHl|}Dz3p01OTwHX|Ailk;Ck)xmWSza&hGZG%)yw2;l0$ zRGa78$`QP8P&R1yvkP|p8hWX*X{*@XbUt(D>|p%{Go4NEl9e_t;d}R4D;02^gLj*5 zd)fwI01&$CZh1$xlb#Ehs#T>fTQf%bq{&>W6>L5v+vmUVsUP!+gwe+N>n_xLIAlR* zQ&8mc^V6d%0)A=5_fhz~LrAD@K&%t2_}~OaN2xFjL7k(frnYNHeh^QTMl>{;17s3< z+>fE}|Hl(tgxz@qAxNR!{^KB$!vxmiVi2eHV*~Tw`GL_MyHCF5esTZ@r)e|7qT>_& zHT_j_wa3F=*bjjk9hmBuLU)mmU5t=jVVG(73ms>2XJZa}9aexCsF z57&Udd`m=~%RLZc1(ps02r8|l4@WTzMr!~PdTsZ2YNi2uLIs9c_5ev|OaS=A%?W)D zP&gmf{&p*gkH8dadAq)c!t+-pbl-c??K^zb4$TIiv#romBza~y1n`p_V@Si-!tIgT z+1lsCpOZ1wb@?F|7v@R{-O|Q0b3HIHumpj$dbbDh2k58%7j`HSsQniN;RT6;IA(_t z{raSBs~3QavYY&;v1a>AQbq{1gU=7FwOJM##RmcOjlcNzEaXdiD4cmKH<`WTa0rPZ z`7bOAXve?&i^{A-0z0C^Y^{3)@=`K6S4&t=k+7ZZ6)?cOhJKUId2dVub^X8 z4SmX<#(3#SoIG>x<49du*RQWmp{IKJk$T$WH%!?(ffpZmQMazskEX=~F@ z&N6X(U6ZiqcYmj-lG{iKvjF9P+U|N7lK?ajx|%7Kq{1v|o;~}BzpW8}Rq8@j^Ps%{ zYtsI6Z^i3U^YV0%a;dvhp2Cun`rc!mL$?mU0>L53K}Wf52fZ4Nre6Efbxg~>AE4dZ z$z8)^xqt}Wv2(Tak|!tKIni<0i=QefLk8MD>hTsTB26S1oQBGoTKtjqwY6@w0-YS8 zhe-oP9o6NO@@qJTyTru>wlF~YI{A|AXwWnC;TgFE5V9T;E$Pyj;o;$doBPL7gg^+6 zb)D-eI_3_!0q<^V-(J93kJ>t#On#-Lp#%QQ6%^&^fU(W)h-U&@=x1hTnqlvUFZtd> zscpZ(~V`)$D5!F2CS!4}pd7UU^d^~h9o^0QNZFf?}b z%oHv18s3pO8aZy`wT?U z@1vG`zD0&piB?gzk4(7>w#gy-aXo@9seexfTR zD0r*GrToSwI*RrRZH5PsC^KCcmv#CmIx#tE+dGl4#bMQ3HnG zeSGchkdQU%nwo3~6d1Nrw5nP(q0Pw1Q1|jGdg1Ql;BaqgXU>+GLqQOQm#dxk8hcb7 ze2(drWi*laJtuE=u|7wl{OKsG+ir#{2Qu#6)6mww@q%LyFpFrE-0I3Nqs9fg++M76 zpB_IRI5^hatdB-R+s}PDI@EMG5DBYQq*Gyfx(Z_T*G1TsuU@}CGTKwsd5PraDp5@QTFV?NT2J%0Gk=i)$<;z{tWwcRd+oBl!Y!oyJY`9SyBxE<(O0mtY$-K)TpZS0a0|Ld*xJ zT3thhE%x}GSKT_1u6 zRWmY*?qYq0&K&A`^d%(>>$tMuG6SEcZr?FUJb;!K2@u4^Zj-S!>5K>nWxwfF$p z{mXjYva_>o3)`hSe7B*#>53i$wQ&N2S~|p5-)?jmf;U{ZqIw+>;oaP-G&X*?8SzL4 zF*$E2s@f7yrw?FT{N@uRr|6`A&p6P4%wBxsP{`jljc!ldNW8|ik}?U8i#uJ+ODJBr z@NKIpmui$VSI+`BQHm>W z`S<7WG56d3ZY3wb>kFoOg%SQ{{U~+q#1TBrOSz;UO;&VA#2HvscNY7bbGPmC6?{~6 z1}7tfG+N)1er_*3hHzH-goQ&a)^wGQm5oSs>@Uj7QbU%)R30gsFB&n({`AQdH|GHVU-m8O0$$*! zzR>%C7#aZFqf|UBn4-SxV6+UnAej^%+VB4kWm=+uXUHERY^1Gm^#nNu`zc;jpU zk#!)rd6L*hhKKD?_b7k=isrAWDI@EP6W1L6)?u@>Kc}eQ;;4J9Z)h0hm_xgDLC^q< zqP_S2W8~a{W{7SYCnoW3B(Xj^Oe-kaYjt+|;D2usf6T}1Kh#rxfS{E6wC`N z7gv0PAU#b7T7BUQF5(v0%aFa?)uUSI(W1`n^T|#VolS#mG89dL^lOJ58hqRd(S#y7 zd8O;7Ug7a@tE!RzNcWiLGB2kw0qT7&whY|b!;zr?C^|}C)-D@+M_k3dd!N0IepZ_0 zP&YP?d0A7V=e&$scue9V9i5vWxWY{o-#HxhZaG3Kmtgp{#~#3a=m{*Nbw|=_Y#$x# z?Rj!$v%r^SQ)=J_?9hlq=UA=T17ou%&T;Vhx^By;Jab|=5gY0>Si|aqzuQSR(;J52 zLO@wUqM|JWiXviS(VJaLE^)C?za7!)#(UiynMikFYt~7ZvLSvs-`|2aa1!zeZiiy< zo$!aJ0+E--<>UyqM@&_`pBu zeE(|4L)817@LE&wX`jTtx3#uT_{!@ZU9ny}h3}{O#A2s8q3BMftX1vyc#>Yni{EUN}%rmfx3ra{y#v z6t!cf__8xH3CKoOXa9_9iY}x14%|y{i2#zhPkJTZ^9-7K@JUKWa4)yulaP=g9Ss`C z8j!Ae1hG@!o1kg0aV+{Q*86R6P@P2erYT!C%etiysY$;xLcm*S$k&;q96#5dOh8iX#oLx!xv#@9m;bfzGpatwhB(5Y^tZX%m^r{t@V~J#m$r zvM>aO`U+r`#J6|J=X`ZY#P;uJRr1jTbo4goOOy_|fQ4h<2m5ZJ2vE zBG-umIuuf4dv-Rh0H=~f_e3Unb`9m3g$S#FtXOx<>`rVTJ3wHpTej%DrMS1DLm84b z>C$A(B;iw3OuE2H{T}#lv&*frvVG+%{zXKvf^KDdwxzlX2Kwx5aA#Ev;#%C<#=A|m z0~C!dPK%#3L?xS0eDX?-Z8%VNH4v9sC+Sv>K&zdIVQ`Tb$_ong$t*y>b(HVq`$Np_ z(x1M4`=*J>(YW;D(R`~)J3x44C?N$np>JR?!_G``-$z>lVTf-07iLac4$vnw@&jyB z{dy?<|7rnPH*eNlw^mjU;V>BzRk)G~!fU0!vefrFU;(3CKR}g>kqBOt)&nWqu6EQH zxNt?H!%!50jMHF%4hvJKNYuz7YPt;vsH~0-G*39}MZZ!C8?ZSYLNiHSm>z$#=bc*> zJ#0wdnob$wrA6R< z$s}m+-5r1xY_19j;9{dOp@J+I-pR>(5q;G_0qc;{r>YRJxC3S6VyK%cnY{7{?(L!AZ{A9 zcoB$++ODvTPN~}2+V1cY>a|7YD;2sHz;yV3>o!Z)QYkBO);5IJ*cNYdl}V6mVyrgW zvxyPJsov!L-=5I!IYerb(D$rnWV~*BkLq2t@Y$@N%jUiq^5cgyaUn&5z0ZNe@Dh)- zDLf&eA@x3$vJtx{%ks)a90$^`c^h+Yj^$~s;i2&ak(}JzLBx^aK+_&AuBZ7noRZ2R zlq+y{oWc=t<9y3D5!{L9Fe*gaUL-~|4GsIho zZor1h8D;=TsAH`+Sx^Dy;8f;*B`-#O{%mgfRN4pp4Ca;IBrV3SxKSmdNY( zQfPWkjz;VR=HluT$A~AC!YfRN^>N2tYxk2>4DFfzySf<6hoi>b6bUp7eenF$n4(Qe5GU$!LX|WJq0~C;%;4Qjfttz z@W~Ts2;NW4ZH}x)Z}P%eJ37C5&n9_TZc_ZD=PVlD3H^XPE{-cNwUfX$kq?@y3vn7SSza z97F%eNCUu!JrGH}8_V1Q@m9z|HX1*sPza#fAsjeQQ#oP|#Cs9g$H&Ny04M%1FeN1= z3O5deaKnX}{$COB4If0N84xtI1X2sP;LXen_dZ3tV0r5nUj-~=S`PUZ`s$cPXV{-)YfaIufGH3iQ7x)-$wzs#Vo8SQbY1L z*<*3Gum+YO4t+<-xf7t9yN66k)7(6sv|=smVVi857%hCK7zxIJt%Lg1Nbrdb8#cth zd;o$3@^Z%AYpFyquLrU9M!7l(z5yJOzl7e6G;FH}_$rRslKmQFBFjui&jLR=lACU* z^0Q`TB3>H?rZ6|^8W0IROPL|Jh_G-3e8QFj1kmtC=}5aGH+dt^C3#qoHPtH$t}hA* z!e{9c0-ytjTs=l{6AXe+K%jvb;JmMJI+K`B-2f4DyE9MLN|FMqhHVjB%OQH}^5tc* zAtrDHP@?TXGsO+a!1>u|U(waW=5Oq&yiZjDO3eS!RmUL!6KQR2^=2O9{!UeMLc+!m zDU3((A-4qsWYZ)@+j4RIKyXM%|1+juexRznM-`@`NKeEh}a?34pTr65)sqCOCa>qhw zqI4#5P01>tZ_*d1-F#5%Aa$YeHH+(^uLA?MNC93pG=!?J=w%1nrf+WU`1f5A(l@O= ztkiGlWn0H;ejs)evZa%?)Y7{CCQ;4+rI5V^jdchw+Mk?B(7LnFh)h`&P^I0xt;OG3 z>}u`PcWt8`s%OP#I0iPr5=o*LJL-GILcJ)RRur=%l7H-UJvS@s*7WrG{>{|)Mi{Oi zR-Z5E$BQ6(e7kq+A+wINp>*2Nv61*#%M+Gxm84KVel_*m+$I3xK5q%njR+eU zu3VyHNZE|UAo^sopD|JXjNwcwW7dTzv-~&>GNenkn;#ZJf>8^F*&s=h|83s?wg7CV z4=%$8D{+mJA!Q@j7?N6)zuFILg&mTixQtTR1H=V6jkkpF$;SA@%czw7h+Zvmf~>IeW_*Veu@K)n8cXdQf>Ol`U6a;jzh~Kf&OJw7jaCGRHt;E=z;bi z*oW#}LqH=?GNVbWtb7JHu+mXolfQo(BKNxmkXjR9Y6-zgiM@eHTmwP~IZwvv4GS|b7 zC3Ueq$FbHtNTpnWl7Bd_d@KS)c4)gZ$GHwtVu(v|MAS#HOAK6$?t6S*5a}di-Hfu`MA>1Jx zfy)Kvghq$k{6-zhi9o1lDx}VqyyTamdY^PyRi1#9=2? z1V$)6aXvs~GKDtmQM7@sTEYHO5b;``7x+48{&3^N1yV1M2MhFVkL-1BmT{%7cmu zj210G{|qv+qOx?Q7)L1PkQgB_&j7B{qEA`K#7G=_@@8zeJA60sT+|ol-Mg04{MT*T zr3^Gb6SUutKMC-9H?}HSiCI5Q{I`{+iTayc$6QJecX@Z5$pLkc^OT2M&%`7XML~nGCv%=^UcSu2zRd-g*pmAwD?3{cEq;uF zOc?^&sp&@U;Z$;vDiKEXQ-t0CZf-Kn$q3bEa#q1I&sw} zxjqM^=!HNYthO-=JymiIp{WIzoV(o@WUg6PuP!%APHv8kj?PBvLr_vZ9tiQ;0vM6k zS%~Ut%#TD?Ld=VBUk?bfFfb)@r>OsLD}VJRpG<$o3hJOKvHkAF@{Z)=uS4|3j6 zEy4>XJNw6MIf#=SL)fZW57{q@acnXfAB7dCe=68ZRV~GmxG-y2p++Y%A@ne2+*Nw)BDH zhkG~3Pub*OXw^dAEi7g{e5h-0Z=a3F&qf5|Awju`0N@rgeW*NE`PZs^VGK3UhGS0%r<}G zJfr#R5iB`lvnwD$NBDV1#Gd457;(^^poe0-)ZhD8zP?MAfRf?y$WM-q8*>5j92guN ze01|=a+M35 z;~qhiK8+UzunYh|bnZZU7hA=_!I1+engv)i7e61+%?2B+73$vA>(&{;`Wpf7(u1k~ zmofAS+Lc!PY+z@9X=9mzs38X*$VRlC4IE!oLR|dm9X-0vC1xcM-~-4q;S_ZCg*e(CQRLVxgf<2uH_+ES!>DWUBU3T%5P7s-0!X zZDD-DK_d%``{Gs=(+$>`wv+{^!0_zZiTp*g%JaV@ckSAh1BhGz1fUVjX21*^H}`#* zJVW$Low6{T$1UE!5@<{^7 zPn`q((Fzc#6&=IW^ruJKgbq<9NkkV8XEQpRfOy6cifCBMgc8sQYu2r6)K*jbem3I( zCkxB76j^0#ZD9!s6YRj8`}ehs3=Okj4+8$3#2V&+AB~QQ5oXatf}VqI7T4%tq^Fk} zrJn;b2oMW$MahK5#a~rOSbXl*+0{ez{Qc};^1qoGAz)P*EmeOyk(V|}Eb1sL(YNZpQ^wA)6W<#USC(Ihs?Ln z(3zV0h?cTKBx?BIo(B_LV6~h!`^IKh7Dxr%9}kddk&bo6-c(A|@aLjjlKezONAuy? zmML3fIe0NI3y^#|wnU2rWh%hMI1J#c;6lZN+}ud;zN{w!7JjyNgtSYFkFNT_?!WO) zdEq1#DkvyOfBZPgWqq#=psEApO{j##S^hJ42FiuD7 zvBA|Y{H#3rSJt_(-41!o{k5r$UJdK1yhgk@GO!KT!p3|63tZgk9!i+Cvp{uMl5+t~ z2V7ei5?&Jw4HO2aafxn$h7du0^wXn5XHcj?{!MxWw``-vl@OOp2P|BSLxF>3fQgDB zB#!a$;g2@O_dZ|Nsf>Kr5V$cTmsD+D6$B!=WF{+wv5)X|DbNsuGBz=ZkAg|o1y*fi zLrvvJnpa^UNfCmqr62fRFH}+tucM~v5hb=j?YIq%lZ(3o{sjvp>B5NdpXH42>tEJ+ zH9tQe-LLOJR@{RxgL^{RLq3YeJb)q0tw1U$41phjhSs7st6V?>sYuZ>KdodQd+S(~ z15hLz_96>wl1u(wQ6Udd?6@1%dvtPqT$c>P?mYXN$9r)U*;W?PhC5SRrD|3%l&~Pe zE<&$+l5fBnz;hz6$VE-f`aM+jO#88LJvxxTT{ z2t2VKJ|%5vXt+z3vJv2qRQE$|H6e)07ylsg%0)$;>E8n$7It8KK0Qn&V(j0;tqplq z&>Xd1UCq{la6zS$qSmcgzB~&CrnET)rBEcOF(!F1lV=9D5vh0gLmrHlyME+n7^7#U zw$dpRwS^<3N|L|?@qL)P&;t1UjW09Pvug|`sU*#W@Q@8F^>F0pXJ?ryfPvY-k=gcB z)t3--8v)V)pq~Z2J%>1X@`D&p=*p#AjAw#__JJlNto1&(-fD?P$R_8SY>Lb|w^44l z2)77GjYLzU3mw?-X&Oh5W@gb|xILnCAx3XCR8;MMTr@(0eCH-!w<78f+Di4>fkMrJ zS3-!lu@!921|FUVWI=cA+&S}ObHMFZM zWSr)!+;DFI>251n3TL=w!uR?fKea0heHdom@!O+H)u_;+(GbWiT*`?a4FMP#L+~DY zU?7d*?jbw9GdmcN40Lz{2S-FKUG+M&gfRrdV1(cNSm+4&*U{4gBuo9fn^jlcdTQzr z>Q2F7B45Day?Q8y(rAI&x(rI5NlXic;dtprO|#ju}o( z82#1I<4lkUNqz_$85`%2Hw`e*3n{Y~=wI@0xSn)yi7f!r^Q3mn+~=Z(FCnl4vTF>` z4DWiQ)%gRJzne9GU+FcppeZY)*&C2HI*!m1iJ~`36~uYQVBIlDDh=>fz-dELn++aQd2jGS+$F$#o@G^o?gOxN?R}U5z64C?8ST#5AI!{K6lF{O+ zIXNL~8Q@X$b0Co_IQvBvbC-_)?SaN9#}{bN(28e6C95F00c1`>BO-Ca@q?TPfb3mH zxKXT7uLQ}Eu-_4|=aR37A&i2xBQ6ogwjQ)MB2u`)yVmZVu6M+@;Fh)cKLpJGgssg% z#-0(SzatHLhk%(yM<=J&Xa~~G-3W;>@!iqU(ZoB$Rd<^j7(^OaS~gy#qZSH~rJF&y zgctOvE8qf1w_%jtWHK+O+`5-Z2nZZ`d@CVA1j|zjWD5VYsHCH3sKs?hpQ;vu0{(O& z>@2GgRXsz}RbUCyr!|&lcRoIK;5j`$Ps`oqKA@JJm-jK9lZe6#Waz2yfni}`2$OH{ zYXi?Zs)6n|Y8T1H$M^H=Bnonb){HqxBFQFzqLU;=TR89IlZ^z>BJ$nWnC+ZMc@e0*Um*sX5=e`mBm+CWzo z5f$~4i;?Q(T0H?syiIgFqNA9rtMI{;?q8FW`p}Ix*^L?*80DJ#|YRP?1R)!Ix24zQnrtF9`-EZgeAfl=PQilHmpwdJgr<(!A!N{7rf%) zHywBpz03c8f5^7TTv|OIlL6Vtfgu;C9ScR}A}|5%k48iZgS72Es+vn;_m7nv0c zo`i44OpH|#5Fb%gF*<22N$Knqi17lTYo~yRJc<-*iPwtw4z!wAMka=L4L)7{Kr2yJ z5AqBLiE|`NXT8fvxjB*Y<^FzK?T8^LIMV|b7Z4KR!zJ>-Z%{BIy^-W*&xR}DuK7sE2Y@~~?Oa0$ z2-vPXt5&9`hKq@(gRymtaYN$}KE&N2;ZQ|VDJQWc?l3e@chFPSEEScNt?)e3P8ujo z)kRs};YrBps1!}81N4oIGU|M5ff*wUeC@jm0iGRnHv4~8+%+>OK)wcD$YIu{i*Clg zfsfHfEWkgK0;v|~K2O1sZ4~AI4q!#5nPgs0P6Sb!*^yhrkcHhr1-yid&45U(aCs%F*YP~Z zQ^=ag8bX>kh;AGoogWk;Q&=K7RkNC7)8|EdV z!EY+sA-Fs(?I6MZ{nm5%8n@ngZ(78are zLFZge(RKn5KR`}_<_|LR69jwsC-Pe6giyR04j#AhqbM{bw=e+YqbS~1Gg`-j-_gR@ z01(-{&xkQAafATH5n`2i|JI@tubGzUq{k2&UWS&6VDr+Nza0wAh#u*G&$y6D;C~R6 zj-RhX6p#%O`>s#8xB*-s1VBeVq%Q(Ki1@v9BPLLFyCbU5X70NP^hfS08%0%)LlT1| z95T#0On%219XO+oJE0aG&?qo|Y@-=@9o;?xPAm}1yh4_P3bse>&hcX+K3{I^)hE`B z(#2g1W32Bl=~V)!>8TVC{6VIniHTEL{(!+zg_=xqu#^=zAUR2hjJ!K!V!kvK70N@h zpYjL^4PPzYqxBi;pl4)9563y>R~iGF${6xJfux$~e{G=u)j(Kgk8m@dV>Pr#tUNr8 zY?}CZO49l7sewd|^1QfrTpt`&PZcng{ z4@HN;e03rdxGzRgZeBP?aJ|8;j;)W+--fOij$wB%{s5seU=viFT7Q^&2}>zkfxA2x z3Ed8%Bsf@rc}Ia2(^J7`DHmHfU1WG^L;LzWT&toXm@2%9W5+{yJ*1TPYF;AZwSS*- zfE_D9(boP#Ru61}D3ph0`;gK_BbeRQi~Ue|>(;F|Xx^;+ikp}wTY}O+iMLY|~ zXcCUp>8XPnWSOu!GRjgFn12HH(6`KK0w{}81dNVVgB?;Q>V zz=+cs+H}gUnryB+rx9>DcRbPlC6N^)ZYhlPno$-z13{OR$%r4{VHFgD@}kIBejPDz zo}?C8AF{^lPvt-^}DkfByb~%j=Yn=`8>Y-mp9}}Iz z_U)Hux8h`-T)0yAf3*PTfS5SQoJ;D{_AZZhV*9Lxe$&{vl6-YO&4&Fv|CE zUa5s*a;Bi>l$OvXy@S`V0#HVZg~l+TiDSX9FK=8%nKl@%2eQ$JeV zqqF2K-rqtO_StVri`hPY)|QrHuuBqC3J4rLfbD=(jV2a#Z7dcmxT;F&3KPEKQ@eDV z#g|(WDNyzcfs+y=hGx7C$^20So>CGvh!Rxk$Rd9V1{sfL!Aw5SY>+LmB8GpSgzL$9UO5!1qkX_JQS6j&yTE9` z!ZFQU{RcguBz9&}H93=2P+w;gCIT|>__hJ)ZDIktI=bWH7ZEX>tKA}vnEWS}jNxI& zI7$080`s`9YB4kyF#MQjIdbcB8SED@m>Qd1yT>LMZgcU2S?VeG)`DDZeDO|DIZ zMFU^I?t4s)bd~R2u?ZhctcM;XDvBMD-#IlNf>@!~Ct)Ufv5>?p;+P=t-(G`^J{o#0 zb!BDh3N!vNa0G*!F}AJaIP>7qJNx+Hj0aNX@pb}+0brr$Q0MV$?L?u9XeDD8E=D^< zUR$iSzZtwexA8B3jG|lOgTCXJa~lyPIHF^GzZ$@aN2JU{au(n6zMfRc0I={hy>ZOY zkQect{Kb{9@a7mo6OKyg{r7E9HXROyf({pU7|oKXf{)`Fpn&E!?#KgufLdq`5UW&g z7~stCc(|uSJu!0-D1ia^ub)Jt0cMyKK`H}|7de9mLSd$E177=_5d@@>M74VVRxUtB zvgFChTgl_ols^;v?2w!helceI;bI~$Tq;% zdF*X}!tF>7h+KpeONwt?U_2Blemz=UaGNJ!o{I)%KCYC+BglS6&^ZX#&Lp;QlUr^F zA|v^0@WEN%P~t)iEqKWNkGFIoZbt{07+)CkYBM4f=AKvi3>_@maApA1j=ha9rp=y& zt8*XkJrMXY1-9NDI98zvA`zMu<5ooruqUJM(;fm`-s1OLkBGT&U&;#a!AKCfsqAOc z_zYI&+XL7es&WE3HEagbC7uP&zX<9C*W)`nqmUySD85s~FjQ<`gOhlM@0MsL!Yd*1 zuJ34GA)s7vE$r8E2^Twr0y^1ZnEu7b%gY-{axFI&U^Bxt8?A}9CouWEEW}>K?qT^U z3sWStc8H3YTvZkzktS=i#T~D@gg|BufX=wB)V@Mqr?1a?jXYK;5n;unfed6Ca*zF` z5*jDN0_F}8nISP|CMS1oGK3VyqT+m0-;Fw=0YD#b?GyMeP1NM-=2B(Uu|;)Odz zmlcm-u(}IXm%ZDTNL$l`lqK{(prd{CF?bcZgfTkr4>o zNE!ph5Zr2>SQ5`PSnWx4zzE$#gj3kwZ|R-LVm*iAzVY_%7kw8{kx%4=VEp&r)GmsOh%Uy#y3Stx31gjXKDAG$2Gct%XNAbqe|-LeFQmTp;ZtKu8Ar z67#W`N1(-@6~AsmX^<(u8$BZ1|(`jh=98KE59riN=})7ZQad*6`@ZRfn?egJU6b77b5N zsUou39}j-}mTBcbV~@H!ck_t^uq8-U*sF*K#`6wC>JSBPPxb-FKdc($8R6z6kGZEp9})M zBe|XYnF87e7J#M8jFE+B33F`EN=cEAZ_8^ZR=Ryq*3v806FN&d!%$UWfLjI@Ar&^OGBz%fptb1M!evP|!Ritp()t4X`9cP&1R{4@=D9)`-5v zQi?wmL?LvQ=&vOihchzn1c4P1aU(j`$v49h7e)Gt8k_?=iA$K?gM5Ri>xk^O?39+V zkx?DEI|1+&DYYw+AGZmT5C9u%Buy0p6fi=`YOrnDdiZ1N!iIT7XhgR=lJ>p0-I++1 z@gLadDXL|siOw5E1kx^!5kSs{K0eqijr~ETtiXDK7?VKV3QOfDXg9Az=z*v$ZX2B6 zlI)$R=8=w+omN3d5_2?7J*|S}q;B>?t3=ieQ3V9wq)HarVsvhjy~4Q+*dyu7N95R8 z?Xqk+M8+cE(b8GSm&#s&aFJBeaYKQ(H}on%l{mCOMepCZYq+#{EkZ!hvu1n$9a@}Cqn+;PFTicQw1{iSo4L-p zlYoUrC&1b2lcr*j3!gZPNcaC0%wtAFp5qD>T0tIwjJZr#1m8*J)dFHc{|Zw0{=E_I z+#VI4Bp*?sgWp2_Ea^3DDCal(IB)nea!b+$jVS%3b`bM>Za2EQ)*&&pJVEe5E59it zoLXBt8k?l-pgpEA+`u0B2v{s;yTLBgzQ=nS)q*%A6hTJbS$bT(x;eX zE-aCCFY)!`8%YrgQ85v8u1n#TsE9};s3$e3_-~L>%fDHBl|#S0uzAbH4~5fYC3cROGhc(qFD&W{yP|2;0!qm4;dp4HU2N^6^3EBoMg* zu{f&iH<5xG>{&L2eP{cx0_@R%8MrM+>8OSlc5C=A(b&zN2Lm*rQe*e7Hb#yq$ z*=0no36*L+=*$7&rp@+wPs|?_xDRTSF3gVj1g*jqdc%e~iu2LPV`vO&;N&+5orQ3k zNnpGSDigx7z%&sd006vLpHk#{q;)sXe((S7?cV(08#k5`696*bTY>fQ0Z{`H-MC{F z)hh#@c{@N2l9hFR?L|W%HFN}6vg0Sn{r|{8Oh5UzYSFSSbO)FXBux?JV`ZA)4dSGb z&=D~;Q70C6WLl6$9;E;(YF@t%R3|$&MGOxgotP*}cI?!_Y|y)?b|)%GpxkULsrL^E z`T_e#YRy7x(neMWfJwzEs`VBkU!HiPxB3$183@C$l)30&d~_`W^$b)iUTj`Ry6|DvLzg1QN}oOEGKj>8Dq8Hx&q z(YPfRahXZmu@sB&*jNFGRU&AZrB326n&J$yG2Gk?l(#h-ko>AcLyRsQ?-Q3(r}&}7 z0!^@FYu??s7(tK7c6#2sqjOTLSxEK%x?n@oxsBB->{kU3q=<{|SiAOk__bf1?Eej@ z>qnmQjQ#8Mb+7oy%`Y=aJ#PNr3csE6Z)|M*THZ6CcUG3$a~pYG-;qxm9y{g)|2Czf zbigwki=F@{czf&o_app#e1j`|S*Y>TF2x;lbKjKqj*gD9upMMrM)wO6>W>f^Uu(UE z%TO_a5N~^cn)bkn42r9`_Tu=LDc{DU0kZ~?ckVPUXQE;rfhi)Nz<<}~J$>ekv_!@D z<+JaNbt#M3S=G7^=)BkCF&b|x;T37&jp`WQgC z2MBRETsFP!1JlzbMBlD$X2$tt1GyE^=!66(M2~|(=F+8}HFXmH6Kf4DEZ*2LQ)wzt z9iwoh@u&aa@}TyWK0^6zPX6Opw%&$0*hj!u>S+)dejGVDOq^GdPyP2{c6Rm+z-I?o z$wstu`mRd_ZA0dj^WcFrsmp0Zb?eI;2Tq(g@fCE>m$j1QBGWk#RgBI5IH|OUhlhus z^~TMc@k;YUN5AgxnYn3J>OQy+32Bl%%5$Z`CWJMD_tFw%4=H)%;O+gf0@2b}$P+KJ zkeG#HHh`*^q{|ck=2enukQjD3ORXrZhU(51tpnZQ9mvX%J}NiN{`FJsKv!v`PMxyE>2LBk(RbchJ40< zGBWu#MD6@>)VMTm3cTcP>-k}mugGQ`TwKI$Uk8z$1s~;sx|J_(vfnMp)1B8B?QB-q zwaaEl7l7C|KLZvoc%Ul!i+d@4f1ZMO{u-z>mpap6ya2 z`*L!T@#Tf)4}8DIoqV%(VSFXqs^vTU4`RTsQ-xJNk+t4<{bjdz`5hewN?j+@0Ehf* zw29SjOG`_BuFeXd4|4$TWDuC#k3j@U(bO=QI2T0#@c@`#kU0i5c3u}Rb|O`dL!#dV z^e=9;2+e*cEXkIz*K?DxRZ`m8+Ft>a>P=ke`t~cXXYT9XA8S`r)6Jq$xSqhVix(@< zgVgou;`~o1a1|j4r9!-C=KYZe>WGPnP5M@1Z+$6Su59?w`~i{QOq`d8%IzawJt~3O zH=NnLb!!_Oz!dBrrg$xu^KmnM=%Z*7H`WGF)DBpF-w`zFXaEk9mXjmg?))U{bVqeH zjcfB}qH&VmyEnJEICg}cVtM9Jn4O;f5>^+ffF+<$eRMEyd5r967{WZ_MzI?MOdT8? zzI#&DZO^YMQWOgS$Ej&NUf32ncNKt-Ax{*z0{{E3rL(i5inryymVC1GDPH(fG@~o z?5PK?ej+)>I^yI1=J8VS&px0fpF29lK$&_f(vG|xbUzJ!@vAQrwO=N(K<>ez>b1Q^ zgarFM0v24?&#%(n*Ejy{N=lw}c?3nN#9hCB{Q}Usi<5BVj}b~gFnzQ`xMPN>MT&~N zcBjar{3{9BY^p~8?OEx?6@%m?@+1UoebTgju-iXy#KbU1tZt0`6qnrYanc+ zw#Y40r>L|~7!T3b`tf5o!Iz=l$t)=;$vTs}TNP6TNQ+NsFS8KSLHp+5mz+; z7}t(+3!?C_vdTk{b;K(H^)N&_fM%(7izy8e&C2mmuZ3gwP?Q{vOF|z;qAy4tpC-2_98^L*pg@xSXPFY#m?SFJs z(k4a?q;1Ik%q-;0tgN;aUC8iDx^#)ovef;sNuGt?g$w0*7+IyEvF)F(OB5Fum!Y+F{_L#p%tb~2FkD)VQ5O!FjhF&Na@;;+rQaSy ztzo}6)q0ntWWgp~|M6!lhrfTHd%{iyF!w5v ziCXXTMV=3qhgo>fo)0*h*-*{AQ~29iV5u;38h&MXbkykN$;{86KYPy4dRbQa-|67H zv@$9&(ZbTuumuF(J*07{e^JA6YjCJ~y=Zs-yeZkH-M%AY(o$0QnU^oCG+aTguPaf5 zN3jm>a%n>%0i$(;>{h&M6m+jCd|6u?gcWP~@S*U$=ect*8Ex*13w~>^+C$T-3haIt zf=K=2$5Tn69X41FG73bn?5Bc%+~IjaBvWBZ|9%u6 z0nkj8mk%t8R?Rdb+wcr~HQ@XVLVTquBQ9||xorMT_0on1Ry`3f?GSgA_7GP|e{q(7#u~DCsrl#ip@W@CH z0>#!hG#KD%&@|vKXmsFNBK!9r<5>G4NTT7}uk1&U^dJ~$#hjL@rXyRy5?2@0Y(v)Y z^sINeB}!Iyy_5fS9U{OCfTe(db#DjSoI0iE=jS&$bCHXiyJdX*A!KA&+w_3>5o`R% z#XbA>&Gr~N`VfIFifYWbB+=nb{J)#XRf!eTWqyXgiI0ybb8)0)WO51%BTF|TQF@hv zuidi0yekj(A_3k5PnTU#5D{o0e=t>7O)>c>3I)yPJo?6GE>8ZN=i=dM{r+80M0_Xh z!w`|+LK~tBy%BVJ-~jSaF$etobl*Infy;|WPPw`1!d^o`5lOxpjds79Q`AK!2AIw9 zm&mE0oRz^BPM(*?Kj;sAZ&%o}fq`_@BS)kqCDYJMRD5}KX#UUc%3PEs)ch3?5D-HT zI`%P6b*H2A@%baCNlTvdVj1NN`0r4<$P>gv>2TseS$ZiIz7+1eg_ zX5%(7ue>cKIC!+Va}ePi~{Bm_+oo(1A!Nz1Axd+9f(fyDlYUh*sytX zL-4Pw7;Wl!=8Tc1W+)!Q6M4rIxZ_@@rA^5qgmesAgL}~3tUZE}j@QhP+we>6-J6Ma zW2T@Etf$+Rw{1J|W~2Wr$0C2*1RC7Z(dAd=`TTu`e*SDj?(KeiHs1Ao)g(!!3D(!U*jx6pS4$<92O_GX=I+rLa zNS_2ZRM@Q#Ls59;z+v3WyU5ga4l4mZKD}+CYjI4_h2oy#-1s3P+MW15HumJ|!R>37 zQ`M4($Rdy5MxlQ^Xq?inv6@@WquwH@4Z;p&U&X?=epOa+u?afNS}<;1^t+Bw^^X+3 zE_CTdB`M>4@k9TN>}5XS2woDPJR#PndRV9V`FXBQn{-`We`ba)qW-XZQ6HXdeB06= z?s$*V{5P3b>XAr4K-DVBGeFd3sGYY#cn2Fc{PU*?-WM@!va(q)txhl>^z`)qGshtC z&Tm?}PMR)AZM-xsKtjasL`P>_Yg?;?D&2TL(Yu{uLYytUa-yQsa=uf#jI$J*OM24%w#>NH%+5G9#?N_f}v9DUrVIA=Coo06-(hrXv zKW6hy K@($Wu{(k^*z%Ne# literal 0 HcmV?d00001 diff --git a/docs/api_docs/home_source/Icon_small.png b/docs/api_docs/home_source/Icon_small.png new file mode 100644 index 0000000000000000000000000000000000000000..bd53b7bc529116f265736a4bb821dec7dc0fbcc6 GIT binary patch literal 29359 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 literal 0 HcmV?d00001 diff --git a/docs/api_docs/home_source/conf.py b/docs/api_docs/home_source/conf.py new file mode 100644 index 000000000..cf9ac1bea --- /dev/null +++ b/docs/api_docs/home_source/conf.py @@ -0,0 +1,127 @@ +import os,sys +sys.path.append('.') + + + +html_theme = 'sphinxbootstrap4theme' +import sphinxbootstrap4theme +html_theme_path = [sphinxbootstrap4theme.get_path()] + +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = 'Cytnx API' +copyright = '2019-, Kai-Hsin Wu' +author = 'Kai-Hsin Wu' + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +# https://sublime-and-sphinx-guide.readthedocs.io/en/latest/references.html +extensions = ['sphinx.ext.autosectionlabel'] +extensions.append('sphinx.ext.extlinks') +extensions.append('sphinxcontrib.jquery') +#extensions.append('sphinx.ext.imgmath') +#extensions.append('ablog') +extensions.append('sphinx.ext.mathjax') + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + + +# -- Options for HTML output ------------------------------------------------- + +html_logo = 'Icon_i.png' + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +#html_theme = 'pyramid' +#html_theme = 'sphinx' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +#html_static_path = ['_static'] + + + + +html_theme_options = { + # Navbar style. + # Values: 'fixed-top', 'full' (Default: 'fixed-top') + 'navbar_style' : 'fixed-top', + + # Navbar link color modifier class. + # Values: 'dark', 'light' (Default: 'dark') + 'navbar_color_class' : 'dark', + + # Navbar background color class. + # Values: 'inverse', 'primary', 'faded', 'success', + # 'info', 'warning', 'danger' (Default: 'inverse') + #'navbar_bg_class' : 'inverse', + + # Show global TOC in navbar. + # To display up to 4 tier in the drop-down menu. + # Values: True, False (Default: True) + 'navbar_show_pages' : False, + + # Link name for global TOC in navbar. + # (Default: 'Pages') + #'navbar_pages_title' : 'Pages', + + # Specify a list of menu in navbar. + # Tuples forms: + # ('Name', 'external url or path of pages in the document', boolean) + # Third argument: + # True indicates an external link. + # False indicates path of pages in the document. + 'navbar_links' : [ + ("User Guide", "https://kaihsinwu.gitlab.io/Cytnx_doc", True), + ("Github", "https://github.com/kaihsin/Cytnx", True) + ], + + # Total width(%) of the document and the sidebar. + # (Default: 80%) + 'main_width' : '80%', + + # Render sidebar. + # Values: True, False (Default: True) + 'show_sidebar' : False, + + # Render sidebar in the right of the document. + # Values:True, False (Default: False) + 'sidebar_right': False, + + # Fix sidebar. + # Values: True, False (Default: True) + 'sidebar_fixed': False, + + # Html table header class. + # Values: 'inverse', 'light' (Deafult: 'inverse') + 'table_thead_class' : 'inverse', + +} diff --git a/docs/api_docs/home_source/index_temp.rst b/docs/api_docs/home_source/index_temp.rst new file mode 100644 index 000000000..284c8a53d --- /dev/null +++ b/docs/api_docs/home_source/index_temp.rst @@ -0,0 +1,8 @@ + +.. image:: Icon_small.png + :width: 350 + +Cytnx API +================================= + Cytnx is a library design for Quantum physics simulation using GPUs and CPUs. + diff --git a/docs/source/apidoc_redirect.rst b/docs/source/apidoc_redirect.rst new file mode 100644 index 000000000..55f26f49f --- /dev/null +++ b/docs/source/apidoc_redirect.rst @@ -0,0 +1,7 @@ +API Documentation +================= + +.. raw:: html + + + diff --git a/docs/source/index.rst b/docs/source/index.rst index d370369b9..c6740aa41 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -27,7 +27,7 @@ Cytnx user guide and examples Perf_tune.rst .. toctree:: - API Documentation + API Documentation Github 5-mins Blitz intro slide From 7d77ac800bfab3d22aec47da778613b832f7d3c9 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Wed, 19 Nov 2025 23:50:52 +0800 Subject: [PATCH 15/58] Fix script to generate api docs. --- docs/api_doc_script.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index 3458cd9cc..b8e0751d8 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -5,6 +5,7 @@ doxygen_build() git checkout $VTAG doxygen docs.doxygen > /dev/null 2>&1 if [ "$VTAG" = master ]; then + mkdir docs/api_docs/versions VTAG=latest fi mv docs/html docs/api_docs/versions/$VTAG From ab513a337e03648e3f21948274cb205dffd07fe6 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 00:01:26 +0800 Subject: [PATCH 16/58] remove versions folder. --- docs/api_doc_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index b8e0751d8..9cd29b021 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -14,7 +14,7 @@ doxygen_build() branch=$(git rev-parse --abbrev-ref HEAD) echo "$branch" - +rm -r api_docs/versions cd ../ doxygen_build master crit_ver=0.9.5 From c88b0bcb23b0e2cac5dd526e22d740d5285a1b68 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 00:15:06 +0800 Subject: [PATCH 17/58] Update docs.yml Build api docuemtations. --- .github/workflows/docs.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 26be7a7b8..77b278132 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,6 +24,10 @@ jobs: working-directory: docs run: | uv sync --python 3.10 + sudo apt-get update && sudo apt-get install -y doxygen graphviz + - name: Build api documentation + working-directory: docs + run: sh api_doc_script.sh - name: Sphinx build working-directory: docs run: | From ca6a0212d60426d81e991d9144f5c8cf6bdf2525 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 00:16:02 +0800 Subject: [PATCH 18/58] Update docs.yml --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 77b278132..7e1ae2e46 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -26,7 +26,7 @@ jobs: uv sync --python 3.10 sudo apt-get update && sudo apt-get install -y doxygen graphviz - name: Build api documentation - working-directory: docs + working-directory: docs run: sh api_doc_script.sh - name: Sphinx build working-directory: docs From a8032ff2480da9eb5f3714669bdda718dbcb07c0 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 00:16:50 +0800 Subject: [PATCH 19/58] Update docs.yml --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 7e1ae2e46..78fe8344e 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -27,7 +27,7 @@ jobs: sudo apt-get update && sudo apt-get install -y doxygen graphviz - name: Build api documentation working-directory: docs - run: sh api_doc_script.sh + run: sh api_doc_script.sh - name: Sphinx build working-directory: docs run: | From 8fb918f6473a6e03717843fa1dc355ceeeb66da4 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 00:23:16 +0800 Subject: [PATCH 20/58] Update docs.yml --- .github/workflows/docs.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 78fe8344e..157b11ba3 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -27,7 +27,9 @@ jobs: sudo apt-get update && sudo apt-get install -y doxygen graphviz - name: Build api documentation working-directory: docs - run: sh api_doc_script.sh + run: | + pwd + sh api_doc_script.sh - name: Sphinx build working-directory: docs run: | From ef152895d145af58fc59db544a4c63f0f805a946 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 00:25:41 +0800 Subject: [PATCH 21/58] Update docs.yml --- .github/workflows/docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 157b11ba3..0353ac261 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -29,6 +29,7 @@ jobs: working-directory: docs run: | pwd + ls sh api_doc_script.sh - name: Sphinx build working-directory: docs From 3328e176dbcdd26ab46a50d0498a84f6a4fe01c4 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 00:36:00 +0800 Subject: [PATCH 22/58] test pwd --- docs/api_doc_script.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index 9cd29b021..6b1c62d1d 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -4,6 +4,8 @@ doxygen_build() echo $VTAG git checkout $VTAG doxygen docs.doxygen > /dev/null 2>&1 + pwd + ls if [ "$VTAG" = master ]; then mkdir docs/api_docs/versions VTAG=latest From 407f9d8afcee4749a0ea312eb15a2ac50635595b Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 00:43:27 +0800 Subject: [PATCH 23/58] test pwd --- docs/api_doc_script.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index 6b1c62d1d..541378b8f 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -6,6 +6,7 @@ doxygen_build() doxygen docs.doxygen > /dev/null 2>&1 pwd ls + ls docs/ if [ "$VTAG" = master ]; then mkdir docs/api_docs/versions VTAG=latest From 842708e4b51d0cc4f487683b2abc29668d9161b4 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 00:53:32 +0800 Subject: [PATCH 24/58] Fix script. --- docs/api_doc_script.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index 541378b8f..357b93149 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -4,11 +4,8 @@ doxygen_build() echo $VTAG git checkout $VTAG doxygen docs.doxygen > /dev/null 2>&1 - pwd - ls - ls docs/ if [ "$VTAG" = master ]; then - mkdir docs/api_docs/versions + mkdir -p docs/api_docs/versions VTAG=latest fi mv docs/html docs/api_docs/versions/$VTAG From 433c3334906d664d2beb94145f2b31d0c6320f92 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 00:57:22 +0800 Subject: [PATCH 25/58] Use bash. --- docs/api_doc_script.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index 357b93149..90b7fbb6d 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -1,3 +1,5 @@ +#!/usr/bin/env bash + doxygen_build() { VTAG=$1 From 3f764b8e3e1ab53b5c4dc537831b8d4f94f3f896 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 01:00:50 +0800 Subject: [PATCH 26/58] Update docs.yml --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 0353ac261..299fa771a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -30,7 +30,7 @@ jobs: run: | pwd ls - sh api_doc_script.sh + bash api_doc_script.sh - name: Sphinx build working-directory: docs run: | From 82b15ac031b3bd9490fe07608e2b8ddc80f53729 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 09:13:03 +0800 Subject: [PATCH 27/58] remove make html tmp. --- docs/api_doc_script.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index 90b7fbb6d..fb3784901 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -56,6 +56,5 @@ for ((i=${#versions[@]}-1; i>=0; i--)); do echo ' * `'$ver' <../../versions/'$ver'/index.html>`__.' >> index.rst done cd ../ -make html From b3d71fa23b5c7fff5ccbe122a2ac7c96872e0094 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 09:17:22 +0800 Subject: [PATCH 28/58] add back make html. --- docs/api_doc_script.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index fb3784901..90b7fbb6d 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -56,5 +56,6 @@ for ((i=${#versions[@]}-1; i>=0; i--)); do echo ' * `'$ver' <../../versions/'$ver'/index.html>`__.' >> index.rst done cd ../ +make html From 9978bfdb7f14ac1e0dfdba82df3de244da3bdf46 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 09:22:51 +0800 Subject: [PATCH 29/58] Update docs.yml --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 299fa771a..f55f54c13 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -30,7 +30,7 @@ jobs: run: | pwd ls - bash api_doc_script.sh + uv run bash api_doc_script.sh - name: Sphinx build working-directory: docs run: | From b1b070139b7978ca1e4c5d7467b12f2b1b5cb99f Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 09:27:31 +0800 Subject: [PATCH 30/58] Update docs.yml --- .github/workflows/docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index f55f54c13..60df0dcb6 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -30,6 +30,7 @@ jobs: run: | pwd ls + uv sync --python 3.10 uv run bash api_doc_script.sh - name: Sphinx build working-directory: docs From 521e1520348ec842becba0fb976bb53e5ec680db Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 09:36:58 +0800 Subject: [PATCH 31/58] edit pyproject.toml --- docs/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pyproject.toml b/docs/pyproject.toml index 7e95bf87a..09af9565e 100644 --- a/docs/pyproject.toml +++ b/docs/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ "sphinxcontrib-bibtex>=2.6.2", "breathe>=4.35.0", "sphinxcontrib-jquery>=4.1", - #"sphinxbootstrap4theme>=0.6.0", + "sphinxbootstrap4theme>=0.6.0", "setuptools>=72.1.0", "sphinx-multiversion>=0.2.4", "furo>=2024.8.6", From 03d7a5945b941ea75c9b63a4616020601777cd3f Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 16:40:38 +0800 Subject: [PATCH 32/58] update api build. --- docs/api_doc_script.sh | 8 +- docs/api_docs/.gitignore | 1 - docs/source/apidoc_redirect.rst | 2 +- docs/uv.lock | 542 ++++++++++++++++---------------- 4 files changed, 281 insertions(+), 272 deletions(-) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index 90b7fbb6d..f3bcc2643 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -17,6 +17,7 @@ branch=$(git rev-parse --abbrev-ref HEAD) echo "$branch" rm -r api_docs/versions +mkdir build cd ../ doxygen_build master crit_ver=0.9.5 @@ -45,7 +46,7 @@ Cytnx API ================================= Cytnx is a library design for Quantum physics simulation using GPUs and CPUs. -* `Latest version <../../versions/latest/index.html>`__. +* `Latest version `__. Older versions: @@ -53,9 +54,10 @@ EOF for ((i=${#versions[@]}-1; i>=0; i--)); do ver="v${versions[i]}" - echo ' * `'$ver' <../../versions/'$ver'/index.html>`__.' >> index.rst + echo ' * `'$ver' `__.' >> index.rst done cd ../ make html - +mv versions ./build_home/html/ +mv build_home ../build/api_build diff --git a/docs/api_docs/.gitignore b/docs/api_docs/.gitignore index e2e384288..aecdda506 100644 --- a/docs/api_docs/.gitignore +++ b/docs/api_docs/.gitignore @@ -1,4 +1,3 @@ -versions/* build_home/* home_source/index.rst *.swp diff --git a/docs/source/apidoc_redirect.rst b/docs/source/apidoc_redirect.rst index 55f26f49f..d020829c5 100644 --- a/docs/source/apidoc_redirect.rst +++ b/docs/source/apidoc_redirect.rst @@ -3,5 +3,5 @@ API Documentation .. raw:: html - + diff --git a/docs/uv.lock b/docs/uv.lock index 031dfa49f..0159ac7c4 100644 --- a/docs/uv.lock +++ b/docs/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 1 +revision = 2 requires-python = ">=3.10" resolution-markers = [ "python_full_version >= '3.12'", @@ -11,18 +11,18 @@ resolution-markers = [ name = "alabaster" version = "1.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", size = 24210 } +sdist = { url = "https://files.pythonhosted.org/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", size = 24210, upload-time = "2024-07-26T18:15:03.762Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b", size = 13929 }, + { url = "https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b", size = 13929, upload-time = "2024-07-26T18:15:02.05Z" }, ] [[package]] name = "babel" version = "2.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852 } +sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852, upload-time = "2025-02-01T15:17:41.026Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537 }, + { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537, upload-time = "2025-02-01T15:17:37.39Z" }, ] [[package]] @@ -33,9 +33,9 @@ dependencies = [ { name = "soupsieve" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f0/3c/adaf39ce1fb4afdd21b611e3d530b183bb7759c9b673d60db0e347fd4439/beautifulsoup4-4.13.3.tar.gz", hash = "sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b", size = 619516 } +sdist = { url = "https://files.pythonhosted.org/packages/f0/3c/adaf39ce1fb4afdd21b611e3d530b183bb7759c9b673d60db0e347fd4439/beautifulsoup4-4.13.3.tar.gz", hash = "sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b", size = 619516, upload-time = "2025-02-04T20:05:01.681Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/49/6abb616eb3cbab6a7cca303dc02fdf3836de2e0b834bf966a7f5271a34d8/beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16", size = 186015 }, + { url = "https://files.pythonhosted.org/packages/f9/49/6abb616eb3cbab6a7cca303dc02fdf3836de2e0b834bf966a7f5271a34d8/beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16", size = 186015, upload-time = "2025-02-04T20:05:03.729Z" }, ] [[package]] @@ -46,88 +46,88 @@ dependencies = [ { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/01/56/99bf7d0799d95ad485d95596dc01c2a5b3dda58ebf50a94f6f73b33bacdf/breathe-4.36.0.tar.gz", hash = "sha256:14860b73118ac140b7a3f55446890c777d1b67149cb024279fe3710dad7f535c", size = 154842 } +sdist = { url = "https://files.pythonhosted.org/packages/01/56/99bf7d0799d95ad485d95596dc01c2a5b3dda58ebf50a94f6f73b33bacdf/breathe-4.36.0.tar.gz", hash = "sha256:14860b73118ac140b7a3f55446890c777d1b67149cb024279fe3710dad7f535c", size = 154842, upload-time = "2025-02-22T18:36:03.36Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/bc/d67ef1e11ed6e6343c135bf605aa9d5734ff0cc77eb42a2a41f182abc9d9/breathe-4.36.0-py3-none-any.whl", hash = "sha256:af85436f1f09e842bd1fd95617281211c635f8768d245ff830c59b979888d1d5", size = 97231 }, + { url = "https://files.pythonhosted.org/packages/2c/bc/d67ef1e11ed6e6343c135bf605aa9d5734ff0cc77eb42a2a41f182abc9d9/breathe-4.36.0-py3-none-any.whl", hash = "sha256:af85436f1f09e842bd1fd95617281211c635f8768d245ff830c59b979888d1d5", size = 97231, upload-time = "2025-02-22T18:36:01.087Z" }, ] [[package]] name = "certifi" version = "2025.1.31" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", size = 167577 } +sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", size = 167577, upload-time = "2025-01-31T02:16:47.166Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", size = 166393 }, + { url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", size = 166393, upload-time = "2025-01-31T02:16:45.015Z" }, ] [[package]] name = "charset-normalizer" version = "3.4.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", size = 123188 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/58/5580c1716040bc89206c77d8f74418caf82ce519aae06450393ca73475d1/charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de", size = 198013 }, - { url = "https://files.pythonhosted.org/packages/d0/11/00341177ae71c6f5159a08168bcb98c6e6d196d372c94511f9f6c9afe0c6/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176", size = 141285 }, - { url = "https://files.pythonhosted.org/packages/01/09/11d684ea5819e5a8f5100fb0b38cf8d02b514746607934134d31233e02c8/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037", size = 151449 }, - { url = "https://files.pythonhosted.org/packages/08/06/9f5a12939db324d905dc1f70591ae7d7898d030d7662f0d426e2286f68c9/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f", size = 143892 }, - { url = "https://files.pythonhosted.org/packages/93/62/5e89cdfe04584cb7f4d36003ffa2936681b03ecc0754f8e969c2becb7e24/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a", size = 146123 }, - { url = "https://files.pythonhosted.org/packages/a9/ac/ab729a15c516da2ab70a05f8722ecfccc3f04ed7a18e45c75bbbaa347d61/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a", size = 147943 }, - { url = "https://files.pythonhosted.org/packages/03/d2/3f392f23f042615689456e9a274640c1d2e5dd1d52de36ab8f7955f8f050/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247", size = 142063 }, - { url = "https://files.pythonhosted.org/packages/f2/e3/e20aae5e1039a2cd9b08d9205f52142329f887f8cf70da3650326670bddf/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408", size = 150578 }, - { url = "https://files.pythonhosted.org/packages/8d/af/779ad72a4da0aed925e1139d458adc486e61076d7ecdcc09e610ea8678db/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb", size = 153629 }, - { url = "https://files.pythonhosted.org/packages/c2/b6/7aa450b278e7aa92cf7732140bfd8be21f5f29d5bf334ae987c945276639/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d", size = 150778 }, - { url = "https://files.pythonhosted.org/packages/39/f4/d9f4f712d0951dcbfd42920d3db81b00dd23b6ab520419626f4023334056/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807", size = 146453 }, - { url = "https://files.pythonhosted.org/packages/49/2b/999d0314e4ee0cff3cb83e6bc9aeddd397eeed693edb4facb901eb8fbb69/charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f", size = 95479 }, - { url = "https://files.pythonhosted.org/packages/2d/ce/3cbed41cff67e455a386fb5e5dd8906cdda2ed92fbc6297921f2e4419309/charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f", size = 102790 }, - { url = "https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125", size = 194995 }, - { url = "https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1", size = 139471 }, - { url = "https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3", size = 149831 }, - { url = "https://files.pythonhosted.org/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd", size = 142335 }, - { url = "https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00", size = 143862 }, - { url = "https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12", size = 145673 }, - { url = "https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77", size = 140211 }, - { url = "https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146", size = 148039 }, - { url = "https://files.pythonhosted.org/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd", size = 151939 }, - { url = "https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6", size = 149075 }, - { url = "https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8", size = 144340 }, - { url = "https://files.pythonhosted.org/packages/b5/b6/9674a4b7d4d99a0d2df9b215da766ee682718f88055751e1e5e753c82db0/charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b", size = 95205 }, - { url = "https://files.pythonhosted.org/packages/1e/ab/45b180e175de4402dcf7547e4fb617283bae54ce35c27930a6f35b6bef15/charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76", size = 102441 }, - { url = "https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545", size = 196105 }, - { url = "https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7", size = 140404 }, - { url = "https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757", size = 150423 }, - { url = "https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa", size = 143184 }, - { url = "https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d", size = 145268 }, - { url = "https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616", size = 147601 }, - { url = "https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b", size = 141098 }, - { url = "https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d", size = 149520 }, - { url = "https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a", size = 152852 }, - { url = "https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9", size = 150488 }, - { url = "https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1", size = 146192 }, - { url = "https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35", size = 95550 }, - { url = "https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f", size = 102785 }, - { url = "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", size = 195698 }, - { url = "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", size = 140162 }, - { url = "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", size = 150263 }, - { url = "https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b", size = 142966 }, - { url = "https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11", size = 144992 }, - { url = "https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f", size = 147162 }, - { url = "https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd", size = 140972 }, - { url = "https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2", size = 149095 }, - { url = "https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886", size = 152668 }, - { url = "https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601", size = 150073 }, - { url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732 }, - { url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391 }, - { url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702 }, - { url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767 }, +sdist = { url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", size = 123188, upload-time = "2024-12-24T18:12:35.43Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/58/5580c1716040bc89206c77d8f74418caf82ce519aae06450393ca73475d1/charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de", size = 198013, upload-time = "2024-12-24T18:09:43.671Z" }, + { url = "https://files.pythonhosted.org/packages/d0/11/00341177ae71c6f5159a08168bcb98c6e6d196d372c94511f9f6c9afe0c6/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176", size = 141285, upload-time = "2024-12-24T18:09:48.113Z" }, + { url = "https://files.pythonhosted.org/packages/01/09/11d684ea5819e5a8f5100fb0b38cf8d02b514746607934134d31233e02c8/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037", size = 151449, upload-time = "2024-12-24T18:09:50.845Z" }, + { url = "https://files.pythonhosted.org/packages/08/06/9f5a12939db324d905dc1f70591ae7d7898d030d7662f0d426e2286f68c9/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f", size = 143892, upload-time = "2024-12-24T18:09:52.078Z" }, + { url = "https://files.pythonhosted.org/packages/93/62/5e89cdfe04584cb7f4d36003ffa2936681b03ecc0754f8e969c2becb7e24/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a", size = 146123, upload-time = "2024-12-24T18:09:54.575Z" }, + { url = "https://files.pythonhosted.org/packages/a9/ac/ab729a15c516da2ab70a05f8722ecfccc3f04ed7a18e45c75bbbaa347d61/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a", size = 147943, upload-time = "2024-12-24T18:09:57.324Z" }, + { url = "https://files.pythonhosted.org/packages/03/d2/3f392f23f042615689456e9a274640c1d2e5dd1d52de36ab8f7955f8f050/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247", size = 142063, upload-time = "2024-12-24T18:09:59.794Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e3/e20aae5e1039a2cd9b08d9205f52142329f887f8cf70da3650326670bddf/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408", size = 150578, upload-time = "2024-12-24T18:10:02.357Z" }, + { url = "https://files.pythonhosted.org/packages/8d/af/779ad72a4da0aed925e1139d458adc486e61076d7ecdcc09e610ea8678db/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb", size = 153629, upload-time = "2024-12-24T18:10:03.678Z" }, + { url = "https://files.pythonhosted.org/packages/c2/b6/7aa450b278e7aa92cf7732140bfd8be21f5f29d5bf334ae987c945276639/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d", size = 150778, upload-time = "2024-12-24T18:10:06.197Z" }, + { url = "https://files.pythonhosted.org/packages/39/f4/d9f4f712d0951dcbfd42920d3db81b00dd23b6ab520419626f4023334056/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807", size = 146453, upload-time = "2024-12-24T18:10:08.848Z" }, + { url = "https://files.pythonhosted.org/packages/49/2b/999d0314e4ee0cff3cb83e6bc9aeddd397eeed693edb4facb901eb8fbb69/charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f", size = 95479, upload-time = "2024-12-24T18:10:10.044Z" }, + { url = "https://files.pythonhosted.org/packages/2d/ce/3cbed41cff67e455a386fb5e5dd8906cdda2ed92fbc6297921f2e4419309/charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f", size = 102790, upload-time = "2024-12-24T18:10:11.323Z" }, + { url = "https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125", size = 194995, upload-time = "2024-12-24T18:10:12.838Z" }, + { url = "https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1", size = 139471, upload-time = "2024-12-24T18:10:14.101Z" }, + { url = "https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3", size = 149831, upload-time = "2024-12-24T18:10:15.512Z" }, + { url = "https://files.pythonhosted.org/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd", size = 142335, upload-time = "2024-12-24T18:10:18.369Z" }, + { url = "https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00", size = 143862, upload-time = "2024-12-24T18:10:19.743Z" }, + { url = "https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12", size = 145673, upload-time = "2024-12-24T18:10:21.139Z" }, + { url = "https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77", size = 140211, upload-time = "2024-12-24T18:10:22.382Z" }, + { url = "https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146", size = 148039, upload-time = "2024-12-24T18:10:24.802Z" }, + { url = "https://files.pythonhosted.org/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd", size = 151939, upload-time = "2024-12-24T18:10:26.124Z" }, + { url = "https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6", size = 149075, upload-time = "2024-12-24T18:10:30.027Z" }, + { url = "https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8", size = 144340, upload-time = "2024-12-24T18:10:32.679Z" }, + { url = "https://files.pythonhosted.org/packages/b5/b6/9674a4b7d4d99a0d2df9b215da766ee682718f88055751e1e5e753c82db0/charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b", size = 95205, upload-time = "2024-12-24T18:10:34.724Z" }, + { url = "https://files.pythonhosted.org/packages/1e/ab/45b180e175de4402dcf7547e4fb617283bae54ce35c27930a6f35b6bef15/charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76", size = 102441, upload-time = "2024-12-24T18:10:37.574Z" }, + { url = "https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545", size = 196105, upload-time = "2024-12-24T18:10:38.83Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7", size = 140404, upload-time = "2024-12-24T18:10:44.272Z" }, + { url = "https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757", size = 150423, upload-time = "2024-12-24T18:10:45.492Z" }, + { url = "https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa", size = 143184, upload-time = "2024-12-24T18:10:47.898Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d", size = 145268, upload-time = "2024-12-24T18:10:50.589Z" }, + { url = "https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616", size = 147601, upload-time = "2024-12-24T18:10:52.541Z" }, + { url = "https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b", size = 141098, upload-time = "2024-12-24T18:10:53.789Z" }, + { url = "https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d", size = 149520, upload-time = "2024-12-24T18:10:55.048Z" }, + { url = "https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a", size = 152852, upload-time = "2024-12-24T18:10:57.647Z" }, + { url = "https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9", size = 150488, upload-time = "2024-12-24T18:10:59.43Z" }, + { url = "https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1", size = 146192, upload-time = "2024-12-24T18:11:00.676Z" }, + { url = "https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35", size = 95550, upload-time = "2024-12-24T18:11:01.952Z" }, + { url = "https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f", size = 102785, upload-time = "2024-12-24T18:11:03.142Z" }, + { url = "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", size = 195698, upload-time = "2024-12-24T18:11:05.834Z" }, + { url = "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", size = 140162, upload-time = "2024-12-24T18:11:07.064Z" }, + { url = "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", size = 150263, upload-time = "2024-12-24T18:11:08.374Z" }, + { url = "https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b", size = 142966, upload-time = "2024-12-24T18:11:09.831Z" }, + { url = "https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11", size = 144992, upload-time = "2024-12-24T18:11:12.03Z" }, + { url = "https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f", size = 147162, upload-time = "2024-12-24T18:11:13.372Z" }, + { url = "https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd", size = 140972, upload-time = "2024-12-24T18:11:14.628Z" }, + { url = "https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2", size = 149095, upload-time = "2024-12-24T18:11:17.672Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886", size = 152668, upload-time = "2024-12-24T18:11:18.989Z" }, + { url = "https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601", size = 150073, upload-time = "2024-12-24T18:11:21.507Z" }, + { url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732, upload-time = "2024-12-24T18:11:22.774Z" }, + { url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391, upload-time = "2024-12-24T18:11:24.139Z" }, + { url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702, upload-time = "2024-12-24T18:11:26.535Z" }, + { url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767, upload-time = "2024-12-24T18:12:32.852Z" }, ] [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] [[package]] @@ -141,6 +141,7 @@ dependencies = [ { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "sphinx-multiversion" }, + { name = "sphinxbootstrap4theme" }, { name = "sphinxcontrib-bibtex" }, { name = "sphinxcontrib-jquery" }, ] @@ -157,6 +158,7 @@ requires-dist = [ { name = "setuptools", specifier = ">=72.1.0" }, { name = "sphinx", specifier = ">=8.0.2" }, { name = "sphinx-multiversion", specifier = ">=0.2.4" }, + { name = "sphinxbootstrap4theme", specifier = ">=0.6.0" }, { name = "sphinxcontrib-bibtex", specifier = ">=2.6.2" }, { name = "sphinxcontrib-jquery", specifier = ">=4.1" }, ] @@ -168,9 +170,9 @@ dev = [{ name = "rust-just", specifier = ">=1.36.0" }] name = "docutils" version = "0.21.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", size = 2204444 } +sdist = { url = "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", size = 2204444, upload-time = "2024-04-23T18:57:18.24Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", size = 587408 }, + { url = "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", size = 587408, upload-time = "2024-04-23T18:57:14.835Z" }, ] [[package]] @@ -184,27 +186,27 @@ dependencies = [ { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "sphinx-basic-ng" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a0/e2/d351d69a9a9e4badb4a5be062c2d0e87bd9e6c23b5e57337fef14bef34c8/furo-2024.8.6.tar.gz", hash = "sha256:b63e4cee8abfc3136d3bc03a3d45a76a850bada4d6374d24c1716b0e01394a01", size = 1661506 } +sdist = { url = "https://files.pythonhosted.org/packages/a0/e2/d351d69a9a9e4badb4a5be062c2d0e87bd9e6c23b5e57337fef14bef34c8/furo-2024.8.6.tar.gz", hash = "sha256:b63e4cee8abfc3136d3bc03a3d45a76a850bada4d6374d24c1716b0e01394a01", size = 1661506, upload-time = "2024-08-06T08:07:57.567Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/27/48/e791a7ed487dbb9729ef32bb5d1af16693d8925f4366befef54119b2e576/furo-2024.8.6-py3-none-any.whl", hash = "sha256:6cd97c58b47813d3619e63e9081169880fbe331f0ca883c871ff1f3f11814f5c", size = 341333 }, + { url = "https://files.pythonhosted.org/packages/27/48/e791a7ed487dbb9729ef32bb5d1af16693d8925f4366befef54119b2e576/furo-2024.8.6-py3-none-any.whl", hash = "sha256:6cd97c58b47813d3619e63e9081169880fbe331f0ca883c871ff1f3f11814f5c", size = 341333, upload-time = "2024-08-06T08:07:54.44Z" }, ] [[package]] name = "idna" version = "3.10" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, ] [[package]] name = "imagesize" version = "1.4.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a", size = 1280026 } +sdist = { url = "https://files.pythonhosted.org/packages/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a", size = 1280026, upload-time = "2022-07-01T12:21:05.687Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b", size = 8769 }, + { url = "https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b", size = 8769, upload-time = "2022-07-01T12:21:02.467Z" }, ] [[package]] @@ -214,85 +216,85 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115 } +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 }, + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] [[package]] name = "latexcodec" version = "3.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/98/e7/ed339caf3662976949e4fdbfdf4a6db818b8d2aa1cf2b5f73af89e936bba/latexcodec-3.0.0.tar.gz", hash = "sha256:917dc5fe242762cc19d963e6548b42d63a118028cdd3361d62397e3b638b6bc5", size = 31023 } +sdist = { url = "https://files.pythonhosted.org/packages/98/e7/ed339caf3662976949e4fdbfdf4a6db818b8d2aa1cf2b5f73af89e936bba/latexcodec-3.0.0.tar.gz", hash = "sha256:917dc5fe242762cc19d963e6548b42d63a118028cdd3361d62397e3b638b6bc5", size = 31023, upload-time = "2024-03-06T14:51:39.283Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/bf/ea8887e9f31a8f93ca306699d11909c6140151393a4216f0d9f85a004077/latexcodec-3.0.0-py3-none-any.whl", hash = "sha256:6f3477ad5e61a0a99bd31a6a370c34e88733a6bad9c921a3ffcfacada12f41a7", size = 18150 }, + { url = "https://files.pythonhosted.org/packages/b0/bf/ea8887e9f31a8f93ca306699d11909c6140151393a4216f0d9f85a004077/latexcodec-3.0.0-py3-none-any.whl", hash = "sha256:6f3477ad5e61a0a99bd31a6a370c34e88733a6bad9c921a3ffcfacada12f41a7", size = 18150, upload-time = "2024-03-06T14:51:37.872Z" }, ] [[package]] name = "markupsafe" version = "3.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/04/90/d08277ce111dd22f77149fd1a5d4653eeb3b3eaacbdfcbae5afb2600eebd/MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8", size = 14357 }, - { url = "https://files.pythonhosted.org/packages/04/e1/6e2194baeae0bca1fae6629dc0cbbb968d4d941469cbab11a3872edff374/MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158", size = 12393 }, - { url = "https://files.pythonhosted.org/packages/1d/69/35fa85a8ece0a437493dc61ce0bb6d459dcba482c34197e3efc829aa357f/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579", size = 21732 }, - { url = "https://files.pythonhosted.org/packages/22/35/137da042dfb4720b638d2937c38a9c2df83fe32d20e8c8f3185dbfef05f7/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d", size = 20866 }, - { url = "https://files.pythonhosted.org/packages/29/28/6d029a903727a1b62edb51863232152fd335d602def598dade38996887f0/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb", size = 20964 }, - { url = "https://files.pythonhosted.org/packages/cc/cd/07438f95f83e8bc028279909d9c9bd39e24149b0d60053a97b2bc4f8aa51/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", size = 21977 }, - { url = "https://files.pythonhosted.org/packages/29/01/84b57395b4cc062f9c4c55ce0df7d3108ca32397299d9df00fedd9117d3d/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", size = 21366 }, - { url = "https://files.pythonhosted.org/packages/bd/6e/61ebf08d8940553afff20d1fb1ba7294b6f8d279df9fd0c0db911b4bbcfd/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", size = 21091 }, - { url = "https://files.pythonhosted.org/packages/11/23/ffbf53694e8c94ebd1e7e491de185124277964344733c45481f32ede2499/MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50", size = 15065 }, - { url = "https://files.pythonhosted.org/packages/44/06/e7175d06dd6e9172d4a69a72592cb3f7a996a9c396eee29082826449bbc3/MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a", size = 15514 }, - { url = "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", size = 14353 }, - { url = "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", size = 12392 }, - { url = "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", size = 23984 }, - { url = "https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", size = 23120 }, - { url = "https://files.pythonhosted.org/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", size = 23032 }, - { url = "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", size = 24057 }, - { url = "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", size = 23359 }, - { url = "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", size = 23306 }, - { url = "https://files.pythonhosted.org/packages/9a/34/a15aa69f01e2181ed8d2b685c0d2f6655d5cca2c4db0ddea775e631918cd/MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", size = 15094 }, - { url = "https://files.pythonhosted.org/packages/da/b8/3a3bd761922d416f3dc5d00bfbed11f66b1ab89a0c2b6e887240a30b0f6b/MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", size = 15521 }, - { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, - { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, - { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, - { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 }, - { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 }, - { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, - { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, - { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, - { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 }, - { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 }, - { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 }, - { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 }, - { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 }, - { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085 }, - { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978 }, - { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 }, - { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 }, - { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 }, - { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101 }, - { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603 }, - { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 }, - { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 }, - { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 }, - { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914 }, - { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796 }, - { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 }, - { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 }, - { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, - { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, - { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload-time = "2024-10-18T15:21:54.129Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/90/d08277ce111dd22f77149fd1a5d4653eeb3b3eaacbdfcbae5afb2600eebd/MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8", size = 14357, upload-time = "2024-10-18T15:20:51.44Z" }, + { url = "https://files.pythonhosted.org/packages/04/e1/6e2194baeae0bca1fae6629dc0cbbb968d4d941469cbab11a3872edff374/MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158", size = 12393, upload-time = "2024-10-18T15:20:52.426Z" }, + { url = "https://files.pythonhosted.org/packages/1d/69/35fa85a8ece0a437493dc61ce0bb6d459dcba482c34197e3efc829aa357f/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579", size = 21732, upload-time = "2024-10-18T15:20:53.578Z" }, + { url = "https://files.pythonhosted.org/packages/22/35/137da042dfb4720b638d2937c38a9c2df83fe32d20e8c8f3185dbfef05f7/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d", size = 20866, upload-time = "2024-10-18T15:20:55.06Z" }, + { url = "https://files.pythonhosted.org/packages/29/28/6d029a903727a1b62edb51863232152fd335d602def598dade38996887f0/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb", size = 20964, upload-time = "2024-10-18T15:20:55.906Z" }, + { url = "https://files.pythonhosted.org/packages/cc/cd/07438f95f83e8bc028279909d9c9bd39e24149b0d60053a97b2bc4f8aa51/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", size = 21977, upload-time = "2024-10-18T15:20:57.189Z" }, + { url = "https://files.pythonhosted.org/packages/29/01/84b57395b4cc062f9c4c55ce0df7d3108ca32397299d9df00fedd9117d3d/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", size = 21366, upload-time = "2024-10-18T15:20:58.235Z" }, + { url = "https://files.pythonhosted.org/packages/bd/6e/61ebf08d8940553afff20d1fb1ba7294b6f8d279df9fd0c0db911b4bbcfd/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", size = 21091, upload-time = "2024-10-18T15:20:59.235Z" }, + { url = "https://files.pythonhosted.org/packages/11/23/ffbf53694e8c94ebd1e7e491de185124277964344733c45481f32ede2499/MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50", size = 15065, upload-time = "2024-10-18T15:21:00.307Z" }, + { url = "https://files.pythonhosted.org/packages/44/06/e7175d06dd6e9172d4a69a72592cb3f7a996a9c396eee29082826449bbc3/MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a", size = 15514, upload-time = "2024-10-18T15:21:01.122Z" }, + { url = "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", size = 14353, upload-time = "2024-10-18T15:21:02.187Z" }, + { url = "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", size = 12392, upload-time = "2024-10-18T15:21:02.941Z" }, + { url = "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", size = 23984, upload-time = "2024-10-18T15:21:03.953Z" }, + { url = "https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", size = 23120, upload-time = "2024-10-18T15:21:06.495Z" }, + { url = "https://files.pythonhosted.org/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", size = 23032, upload-time = "2024-10-18T15:21:07.295Z" }, + { url = "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", size = 24057, upload-time = "2024-10-18T15:21:08.073Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", size = 23359, upload-time = "2024-10-18T15:21:09.318Z" }, + { url = "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", size = 23306, upload-time = "2024-10-18T15:21:10.185Z" }, + { url = "https://files.pythonhosted.org/packages/9a/34/a15aa69f01e2181ed8d2b685c0d2f6655d5cca2c4db0ddea775e631918cd/MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", size = 15094, upload-time = "2024-10-18T15:21:11.005Z" }, + { url = "https://files.pythonhosted.org/packages/da/b8/3a3bd761922d416f3dc5d00bfbed11f66b1ab89a0c2b6e887240a30b0f6b/MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", size = 15521, upload-time = "2024-10-18T15:21:12.911Z" }, + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274, upload-time = "2024-10-18T15:21:13.777Z" }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348, upload-time = "2024-10-18T15:21:14.822Z" }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149, upload-time = "2024-10-18T15:21:15.642Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118, upload-time = "2024-10-18T15:21:17.133Z" }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993, upload-time = "2024-10-18T15:21:18.064Z" }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178, upload-time = "2024-10-18T15:21:18.859Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319, upload-time = "2024-10-18T15:21:19.671Z" }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352, upload-time = "2024-10-18T15:21:20.971Z" }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097, upload-time = "2024-10-18T15:21:22.646Z" }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601, upload-time = "2024-10-18T15:21:23.499Z" }, + { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload-time = "2024-10-18T15:21:24.577Z" }, + { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload-time = "2024-10-18T15:21:25.382Z" }, + { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload-time = "2024-10-18T15:21:26.199Z" }, + { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload-time = "2024-10-18T15:21:27.029Z" }, + { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload-time = "2024-10-18T15:21:27.846Z" }, + { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload-time = "2024-10-18T15:21:28.744Z" }, + { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload-time = "2024-10-18T15:21:29.545Z" }, + { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload-time = "2024-10-18T15:21:30.366Z" }, + { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload-time = "2024-10-18T15:21:31.207Z" }, + { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload-time = "2024-10-18T15:21:32.032Z" }, + { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload-time = "2024-10-18T15:21:33.625Z" }, + { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload-time = "2024-10-18T15:21:34.611Z" }, + { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload-time = "2024-10-18T15:21:35.398Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload-time = "2024-10-18T15:21:36.231Z" }, + { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload-time = "2024-10-18T15:21:37.073Z" }, + { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload-time = "2024-10-18T15:21:37.932Z" }, + { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload-time = "2024-10-18T15:21:39.799Z" }, + { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload-time = "2024-10-18T15:21:40.813Z" }, + { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload-time = "2024-10-18T15:21:41.814Z" }, + { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload-time = "2024-10-18T15:21:42.784Z" }, ] [[package]] name = "packaging" version = "24.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950, upload-time = "2024-11-08T09:47:47.202Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451, upload-time = "2024-11-08T09:47:44.722Z" }, ] [[package]] @@ -304,9 +306,9 @@ dependencies = [ { name = "pyyaml" }, { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/46/9b/fd39836a6397fb363446d83075a7b9c2cc562f4c449292e039ed36084376/pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755", size = 402879 } +sdist = { url = "https://files.pythonhosted.org/packages/46/9b/fd39836a6397fb363446d83075a7b9c2cc562f4c449292e039ed36084376/pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755", size = 402879, upload-time = "2021-01-17T20:02:27.328Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/5f/40d8e90f985a05133a8895fc454c6127ecec3de8b095dd35bba91382f803/pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f", size = 561354 }, + { url = "https://files.pythonhosted.org/packages/ad/5f/40d8e90f985a05133a8895fc454c6127ecec3de8b095dd35bba91382f803/pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f", size = 561354, upload-time = "2021-01-17T20:02:23.696Z" }, ] [[package]] @@ -317,62 +319,62 @@ dependencies = [ { name = "docutils" }, { name = "pybtex" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7e/84/796ea94d26188a853660f81bded39f8de4cfe595130aef0dea1088705a11/pybtex-docutils-1.0.3.tar.gz", hash = "sha256:3a7ebdf92b593e00e8c1c538aa9a20bca5d92d84231124715acc964d51d93c6b", size = 18348 } +sdist = { url = "https://files.pythonhosted.org/packages/7e/84/796ea94d26188a853660f81bded39f8de4cfe595130aef0dea1088705a11/pybtex-docutils-1.0.3.tar.gz", hash = "sha256:3a7ebdf92b593e00e8c1c538aa9a20bca5d92d84231124715acc964d51d93c6b", size = 18348, upload-time = "2023-08-22T18:47:54.833Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/11/b1/ce1f4596211efb5410e178a803f08e59b20bedb66837dcf41e21c54f9ec1/pybtex_docutils-1.0.3-py3-none-any.whl", hash = "sha256:8fd290d2ae48e32fcb54d86b0efb8d573198653c7e2447d5bec5847095f430b9", size = 6385 }, + { url = "https://files.pythonhosted.org/packages/11/b1/ce1f4596211efb5410e178a803f08e59b20bedb66837dcf41e21c54f9ec1/pybtex_docutils-1.0.3-py3-none-any.whl", hash = "sha256:8fd290d2ae48e32fcb54d86b0efb8d573198653c7e2447d5bec5847095f430b9", size = 6385, upload-time = "2023-08-22T06:43:20.513Z" }, ] [[package]] name = "pygments" version = "2.19.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581 } +sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload-time = "2025-01-06T17:26:30.443Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 }, + { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" }, ] [[package]] name = "pyyaml" version = "6.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", size = 184199 }, - { url = "https://files.pythonhosted.org/packages/c7/7a/68bd47624dab8fd4afbfd3c48e3b79efe09098ae941de5b58abcbadff5cb/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", size = 171758 }, - { url = "https://files.pythonhosted.org/packages/49/ee/14c54df452143b9ee9f0f29074d7ca5516a36edb0b4cc40c3f280131656f/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", size = 718463 }, - { url = "https://files.pythonhosted.org/packages/4d/61/de363a97476e766574650d742205be468921a7b532aa2499fcd886b62530/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", size = 719280 }, - { url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239 }, - { url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802 }, - { url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527 }, - { url = "https://files.pythonhosted.org/packages/be/aa/5afe99233fb360d0ff37377145a949ae258aaab831bde4792b32650a4378/PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", size = 144052 }, - { url = "https://files.pythonhosted.org/packages/b5/84/0fa4b06f6d6c958d207620fc60005e241ecedceee58931bb20138e1e5776/PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", size = 161774 }, - { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612 }, - { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040 }, - { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829 }, - { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167 }, - { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952 }, - { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301 }, - { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638 }, - { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850 }, - { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980 }, - { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, - { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, - { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, - { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, - { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, - { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, - { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, - { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, - { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, - { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, - { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, - { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, - { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 }, - { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, - { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, - { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, - { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, - { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631, upload-time = "2024-08-06T20:33:50.674Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", size = 184199, upload-time = "2024-08-06T20:31:40.178Z" }, + { url = "https://files.pythonhosted.org/packages/c7/7a/68bd47624dab8fd4afbfd3c48e3b79efe09098ae941de5b58abcbadff5cb/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", size = 171758, upload-time = "2024-08-06T20:31:42.173Z" }, + { url = "https://files.pythonhosted.org/packages/49/ee/14c54df452143b9ee9f0f29074d7ca5516a36edb0b4cc40c3f280131656f/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", size = 718463, upload-time = "2024-08-06T20:31:44.263Z" }, + { url = "https://files.pythonhosted.org/packages/4d/61/de363a97476e766574650d742205be468921a7b532aa2499fcd886b62530/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", size = 719280, upload-time = "2024-08-06T20:31:50.199Z" }, + { url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239, upload-time = "2024-08-06T20:31:52.292Z" }, + { url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802, upload-time = "2024-08-06T20:31:53.836Z" }, + { url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527, upload-time = "2024-08-06T20:31:55.565Z" }, + { url = "https://files.pythonhosted.org/packages/be/aa/5afe99233fb360d0ff37377145a949ae258aaab831bde4792b32650a4378/PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", size = 144052, upload-time = "2024-08-06T20:31:56.914Z" }, + { url = "https://files.pythonhosted.org/packages/b5/84/0fa4b06f6d6c958d207620fc60005e241ecedceee58931bb20138e1e5776/PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", size = 161774, upload-time = "2024-08-06T20:31:58.304Z" }, + { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612, upload-time = "2024-08-06T20:32:03.408Z" }, + { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040, upload-time = "2024-08-06T20:32:04.926Z" }, + { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829, upload-time = "2024-08-06T20:32:06.459Z" }, + { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167, upload-time = "2024-08-06T20:32:08.338Z" }, + { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952, upload-time = "2024-08-06T20:32:14.124Z" }, + { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301, upload-time = "2024-08-06T20:32:16.17Z" }, + { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638, upload-time = "2024-08-06T20:32:18.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850, upload-time = "2024-08-06T20:32:19.889Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980, upload-time = "2024-08-06T20:32:21.273Z" }, + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873, upload-time = "2024-08-06T20:32:25.131Z" }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302, upload-time = "2024-08-06T20:32:26.511Z" }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154, upload-time = "2024-08-06T20:32:28.363Z" }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223, upload-time = "2024-08-06T20:32:30.058Z" }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542, upload-time = "2024-08-06T20:32:31.881Z" }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164, upload-time = "2024-08-06T20:32:37.083Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611, upload-time = "2024-08-06T20:32:38.898Z" }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591, upload-time = "2024-08-06T20:32:40.241Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338, upload-time = "2024-08-06T20:32:41.93Z" }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309, upload-time = "2024-08-06T20:32:43.4Z" }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679, upload-time = "2024-08-06T20:32:44.801Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428, upload-time = "2024-08-06T20:32:46.432Z" }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361, upload-time = "2024-08-06T20:32:51.188Z" }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523, upload-time = "2024-08-06T20:32:53.019Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660, upload-time = "2024-08-06T20:32:54.708Z" }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597, upload-time = "2024-08-06T20:32:56.985Z" }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527, upload-time = "2024-08-06T20:33:03.001Z" }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446, upload-time = "2024-08-06T20:33:04.33Z" }, ] [[package]] @@ -385,76 +387,76 @@ dependencies = [ { name = "idna" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } +sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218, upload-time = "2024-05-29T15:37:49.536Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, + { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928, upload-time = "2024-05-29T15:37:47.027Z" }, ] [[package]] name = "roman-numerals-py" version = "3.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/76/48fd56d17c5bdbdf65609abbc67288728a98ed4c02919428d4f52d23b24b/roman_numerals_py-3.1.0.tar.gz", hash = "sha256:be4bf804f083a4ce001b5eb7e3c0862479d10f94c936f6c4e5f250aa5ff5bd2d", size = 9017 } +sdist = { url = "https://files.pythonhosted.org/packages/30/76/48fd56d17c5bdbdf65609abbc67288728a98ed4c02919428d4f52d23b24b/roman_numerals_py-3.1.0.tar.gz", hash = "sha256:be4bf804f083a4ce001b5eb7e3c0862479d10f94c936f6c4e5f250aa5ff5bd2d", size = 9017, upload-time = "2025-02-22T07:34:54.333Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/53/97/d2cbbaa10c9b826af0e10fdf836e1bf344d9f0abb873ebc34d1f49642d3f/roman_numerals_py-3.1.0-py3-none-any.whl", hash = "sha256:9da2ad2fb670bcf24e81070ceb3be72f6c11c440d73bd579fbeca1e9f330954c", size = 7742 }, + { url = "https://files.pythonhosted.org/packages/53/97/d2cbbaa10c9b826af0e10fdf836e1bf344d9f0abb873ebc34d1f49642d3f/roman_numerals_py-3.1.0-py3-none-any.whl", hash = "sha256:9da2ad2fb670bcf24e81070ceb3be72f6c11c440d73bd579fbeca1e9f330954c", size = 7742, upload-time = "2025-02-22T07:34:52.422Z" }, ] [[package]] name = "rust-just" version = "1.39.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a3/e5/37254d353a23f567ac218ddd2c461337fafe3a43d44dcd6f0c8e72d096f4/rust_just-1.39.0.tar.gz", hash = "sha256:247d0b293924cc8089a73428c9c03a3c2c0627bb8f205addb976ded0681f0dac", size = 1395439 } +sdist = { url = "https://files.pythonhosted.org/packages/a3/e5/37254d353a23f567ac218ddd2c461337fafe3a43d44dcd6f0c8e72d096f4/rust_just-1.39.0.tar.gz", hash = "sha256:247d0b293924cc8089a73428c9c03a3c2c0627bb8f205addb976ded0681f0dac", size = 1395439, upload-time = "2025-01-23T03:59:04.917Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/9e/c7151bfa84c1cd3ac4c11a60d1a2f074b7a244ae96959d968e8b9e8e3f29/rust_just-1.39.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:3845ab10254c994ddebcf489b30c53a24c1d11585c9e0eeaf1cb0da422bee87f", size = 1781993 }, - { url = "https://files.pythonhosted.org/packages/e4/0f/c93ef08567835356033bee162c2e5e06b018811f5188b94ef3e74dafe7eb/rust_just-1.39.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:fd5c12118a8d65266ccdacfbc24bab26f77d509caaf263095cb96611ea6ce7e8", size = 1652880 }, - { url = "https://files.pythonhosted.org/packages/f3/e7/22647f9c18537046940b3b4159377665912acccbacedd775917610c0390d/rust_just-1.39.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:428d07b1e798777c4e9a8c245539d72743be095558010f0a86823e1c442930f9", size = 1771788 }, - { url = "https://files.pythonhosted.org/packages/d5/1f/2a36afad5eeca6756fc8c87e08d102cdadf8e4b31c5f8bcb6f12c109b5b4/rust_just-1.39.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:135a7a65a8641b00a2fe7f3156a97ab7052e4830a922a71e67ca4e38ccd54cd2", size = 1778377 }, - { url = "https://files.pythonhosted.org/packages/97/5b/45effb44bbfab892774a239446920cfb9b3d999921fe7cff3d99b36394a7/rust_just-1.39.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94eb45e585fda019f7f9cbac198e10e31f81c704371887cbdec9b7a1ae2e0d29", size = 1896235 }, - { url = "https://files.pythonhosted.org/packages/b5/12/7e88a7e917c2e933846a32a2f537786829b48c827a6029e85943d5eeadc0/rust_just-1.39.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de4a8566ca1eb87b5ff2669a6dd9474b16977c5d712534a5a9c7a950271da2d0", size = 1954347 }, - { url = "https://files.pythonhosted.org/packages/9a/36/5dc917a2c0a0b66f0cc4bb0be4985090deefa33433dd869649a4ce2bc8f3/rust_just-1.39.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7ecd8fd862729c243498951caa54d778ff480c2524039280ff3ebb9a64299f", size = 2450909 }, - { url = "https://files.pythonhosted.org/packages/da/fc/b9224b354da8a89b38cd4145ec0e9e089635a45c1459231e349647cdad64/rust_just-1.39.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:576229024d2ef8fc696d5a049ecd0d8f3d9b920a32e76f65e95840d24d804101", size = 1895058 }, - { url = "https://files.pythonhosted.org/packages/0b/ef/985cb93c9dd36f9bc41f26b3ce6d420c69fb18166ac61783bced2c328f75/rust_just-1.39.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c1cd9240e2c1b352d7ccc6b89ce84fcc0352f15bb9660cdc6bc34802b36251b6", size = 1767816 }, - { url = "https://files.pythonhosted.org/packages/50/43/fc644746a7479fadbe6878ae9fa1da83860104d1e64a49de47306fa1a591/rust_just-1.39.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d6eff0461df7e36eba6e7f0addf16ef98563cf8cb483e4c8393be5456d6af5c6", size = 1791992 }, - { url = "https://files.pythonhosted.org/packages/32/d9/6924547c02afba3a49b14f53bed09b54d4292016b830f366d7ed1f80288a/rust_just-1.39.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:0dfcc49a5fa126ba923b58e48921fd117e429660495577a854494c6ced3134c9", size = 1884357 }, - { url = "https://files.pythonhosted.org/packages/15/96/7e8d3795588c2e8e629f9f0d9cdd0cf1ba1bef5bf9c8b64aae33c78f1993/rust_just-1.39.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:826203ad02c869ad8621993a608adb01394ef9c9c9ca6aa7dd7875b1f272aa46", size = 1936706 }, - { url = "https://files.pythonhosted.org/packages/23/28/2492c4b7c8f0e526f52a263f20b951880387f992151bbc46c6c8914786a8/rust_just-1.39.0-py3-none-win32.whl", hash = "sha256:dcef0926b287449e853b878f6f34759a797d017cefb83afbcd74820d37259b78", size = 1577519 }, - { url = "https://files.pythonhosted.org/packages/6f/c2/1d576be1ca714df4a90255cfbcb4ec06d9aafbf7b14924c2881a8596a68e/rust_just-1.39.0-py3-none-win_amd64.whl", hash = "sha256:3139f3f76434a8ebbf35b213d149e647c4d9546312b438e262df7ec41e7ef7bc", size = 1705761 }, + { url = "https://files.pythonhosted.org/packages/c9/9e/c7151bfa84c1cd3ac4c11a60d1a2f074b7a244ae96959d968e8b9e8e3f29/rust_just-1.39.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:3845ab10254c994ddebcf489b30c53a24c1d11585c9e0eeaf1cb0da422bee87f", size = 1781993, upload-time = "2025-01-23T03:57:47.874Z" }, + { url = "https://files.pythonhosted.org/packages/e4/0f/c93ef08567835356033bee162c2e5e06b018811f5188b94ef3e74dafe7eb/rust_just-1.39.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:fd5c12118a8d65266ccdacfbc24bab26f77d509caaf263095cb96611ea6ce7e8", size = 1652880, upload-time = "2025-01-23T03:57:52.783Z" }, + { url = "https://files.pythonhosted.org/packages/f3/e7/22647f9c18537046940b3b4159377665912acccbacedd775917610c0390d/rust_just-1.39.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:428d07b1e798777c4e9a8c245539d72743be095558010f0a86823e1c442930f9", size = 1771788, upload-time = "2025-01-23T03:57:59.092Z" }, + { url = "https://files.pythonhosted.org/packages/d5/1f/2a36afad5eeca6756fc8c87e08d102cdadf8e4b31c5f8bcb6f12c109b5b4/rust_just-1.39.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:135a7a65a8641b00a2fe7f3156a97ab7052e4830a922a71e67ca4e38ccd54cd2", size = 1778377, upload-time = "2025-01-23T03:58:04.584Z" }, + { url = "https://files.pythonhosted.org/packages/97/5b/45effb44bbfab892774a239446920cfb9b3d999921fe7cff3d99b36394a7/rust_just-1.39.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94eb45e585fda019f7f9cbac198e10e31f81c704371887cbdec9b7a1ae2e0d29", size = 1896235, upload-time = "2025-01-23T03:58:10.805Z" }, + { url = "https://files.pythonhosted.org/packages/b5/12/7e88a7e917c2e933846a32a2f537786829b48c827a6029e85943d5eeadc0/rust_just-1.39.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de4a8566ca1eb87b5ff2669a6dd9474b16977c5d712534a5a9c7a950271da2d0", size = 1954347, upload-time = "2025-01-23T03:58:17.657Z" }, + { url = "https://files.pythonhosted.org/packages/9a/36/5dc917a2c0a0b66f0cc4bb0be4985090deefa33433dd869649a4ce2bc8f3/rust_just-1.39.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7ecd8fd862729c243498951caa54d778ff480c2524039280ff3ebb9a64299f", size = 2450909, upload-time = "2025-01-23T03:58:22.94Z" }, + { url = "https://files.pythonhosted.org/packages/da/fc/b9224b354da8a89b38cd4145ec0e9e089635a45c1459231e349647cdad64/rust_just-1.39.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:576229024d2ef8fc696d5a049ecd0d8f3d9b920a32e76f65e95840d24d804101", size = 1895058, upload-time = "2025-01-23T03:58:27.946Z" }, + { url = "https://files.pythonhosted.org/packages/0b/ef/985cb93c9dd36f9bc41f26b3ce6d420c69fb18166ac61783bced2c328f75/rust_just-1.39.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c1cd9240e2c1b352d7ccc6b89ce84fcc0352f15bb9660cdc6bc34802b36251b6", size = 1767816, upload-time = "2025-01-23T03:58:36.139Z" }, + { url = "https://files.pythonhosted.org/packages/50/43/fc644746a7479fadbe6878ae9fa1da83860104d1e64a49de47306fa1a591/rust_just-1.39.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d6eff0461df7e36eba6e7f0addf16ef98563cf8cb483e4c8393be5456d6af5c6", size = 1791992, upload-time = "2025-01-23T03:58:40.456Z" }, + { url = "https://files.pythonhosted.org/packages/32/d9/6924547c02afba3a49b14f53bed09b54d4292016b830f366d7ed1f80288a/rust_just-1.39.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:0dfcc49a5fa126ba923b58e48921fd117e429660495577a854494c6ced3134c9", size = 1884357, upload-time = "2025-01-23T03:58:45.482Z" }, + { url = "https://files.pythonhosted.org/packages/15/96/7e8d3795588c2e8e629f9f0d9cdd0cf1ba1bef5bf9c8b64aae33c78f1993/rust_just-1.39.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:826203ad02c869ad8621993a608adb01394ef9c9c9ca6aa7dd7875b1f272aa46", size = 1936706, upload-time = "2025-01-23T03:58:50.499Z" }, + { url = "https://files.pythonhosted.org/packages/23/28/2492c4b7c8f0e526f52a263f20b951880387f992151bbc46c6c8914786a8/rust_just-1.39.0-py3-none-win32.whl", hash = "sha256:dcef0926b287449e853b878f6f34759a797d017cefb83afbcd74820d37259b78", size = 1577519, upload-time = "2025-01-23T03:58:56.184Z" }, + { url = "https://files.pythonhosted.org/packages/6f/c2/1d576be1ca714df4a90255cfbcb4ec06d9aafbf7b14924c2881a8596a68e/rust_just-1.39.0-py3-none-win_amd64.whl", hash = "sha256:3139f3f76434a8ebbf35b213d149e647c4d9546312b438e262df7ec41e7ef7bc", size = 1705761, upload-time = "2025-01-23T03:59:00.659Z" }, ] [[package]] name = "setuptools" version = "75.8.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d1/53/43d99d7687e8cdef5ab5f9ec5eaf2c0423c2b35133a2b7e7bc276fc32b21/setuptools-75.8.2.tar.gz", hash = "sha256:4880473a969e5f23f2a2be3646b2dfd84af9028716d398e46192f84bc36900d2", size = 1344083 } +sdist = { url = "https://files.pythonhosted.org/packages/d1/53/43d99d7687e8cdef5ab5f9ec5eaf2c0423c2b35133a2b7e7bc276fc32b21/setuptools-75.8.2.tar.gz", hash = "sha256:4880473a969e5f23f2a2be3646b2dfd84af9028716d398e46192f84bc36900d2", size = 1344083, upload-time = "2025-02-26T20:45:19.103Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a9/38/7d7362e031bd6dc121e5081d8cb6aa6f6fedf2b67bf889962134c6da4705/setuptools-75.8.2-py3-none-any.whl", hash = "sha256:558e47c15f1811c1fa7adbd0096669bf76c1d3f433f58324df69f3f5ecac4e8f", size = 1229385 }, + { url = "https://files.pythonhosted.org/packages/a9/38/7d7362e031bd6dc121e5081d8cb6aa6f6fedf2b67bf889962134c6da4705/setuptools-75.8.2-py3-none-any.whl", hash = "sha256:558e47c15f1811c1fa7adbd0096669bf76c1d3f433f58324df69f3f5ecac4e8f", size = 1229385, upload-time = "2025-02-26T20:45:17.259Z" }, ] [[package]] name = "six" version = "1.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] [[package]] name = "snowballstemmer" version = "2.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/44/7b/af302bebf22c749c56c9c3e8ae13190b5b5db37a33d9068652e8f73b7089/snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1", size = 86699 } +sdist = { url = "https://files.pythonhosted.org/packages/44/7b/af302bebf22c749c56c9c3e8ae13190b5b5db37a33d9068652e8f73b7089/snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1", size = 86699, upload-time = "2021-11-16T18:38:38.009Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/dc/c02e01294f7265e63a7315fe086dd1df7dacb9f840a804da846b96d01b96/snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a", size = 93002 }, + { url = "https://files.pythonhosted.org/packages/ed/dc/c02e01294f7265e63a7315fe086dd1df7dacb9f840a804da846b96d01b96/snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a", size = 93002, upload-time = "2021-11-16T18:38:34.792Z" }, ] [[package]] name = "soupsieve" version = "2.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/ce/fbaeed4f9fb8b2daa961f90591662df6a86c1abf25c548329a86920aedfb/soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", size = 101569 } +sdist = { url = "https://files.pythonhosted.org/packages/d7/ce/fbaeed4f9fb8b2daa961f90591662df6a86c1abf25c548329a86920aedfb/soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", size = 101569, upload-time = "2024-08-13T13:39:12.166Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9", size = 36186 }, + { url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9", size = 36186, upload-time = "2024-08-13T13:39:10.986Z" }, ] [[package]] @@ -483,9 +485,9 @@ dependencies = [ { name = "sphinxcontrib-serializinghtml", marker = "python_full_version < '3.11'" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611 } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611, upload-time = "2024-10-13T20:27:13.93Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/26/60/1ddff83a56d33aaf6f10ec8ce84b4c007d9368b21008876fceda7e7381ef/sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2", size = 3487125 }, + { url = "https://files.pythonhosted.org/packages/26/60/1ddff83a56d33aaf6f10ec8ce84b4c007d9368b21008876fceda7e7381ef/sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2", size = 3487125, upload-time = "2024-10-13T20:27:10.448Z" }, ] [[package]] @@ -515,9 +517,9 @@ dependencies = [ { name = "sphinxcontrib-qthelp", marker = "python_full_version >= '3.11'" }, { name = "sphinxcontrib-serializinghtml", marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/38/ad/4360e50ed56cb483667b8e6dadf2d3fda62359593faabbe749a27c4eaca6/sphinx-8.2.3.tar.gz", hash = "sha256:398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348", size = 8321876 } +sdist = { url = "https://files.pythonhosted.org/packages/38/ad/4360e50ed56cb483667b8e6dadf2d3fda62359593faabbe749a27c4eaca6/sphinx-8.2.3.tar.gz", hash = "sha256:398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348", size = 8321876, upload-time = "2025-03-02T22:31:59.658Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/31/53/136e9eca6e0b9dc0e1962e2c908fbea2e5ac000c2a2fbd9a35797958c48b/sphinx-8.2.3-py3-none-any.whl", hash = "sha256:4405915165f13521d875a8c29c8970800a0141c14cc5416a38feca4ea5d9b9c3", size = 3589741 }, + { url = "https://files.pythonhosted.org/packages/31/53/136e9eca6e0b9dc0e1962e2c908fbea2e5ac000c2a2fbd9a35797958c48b/sphinx-8.2.3-py3-none-any.whl", hash = "sha256:4405915165f13521d875a8c29c8970800a0141c14cc5416a38feca4ea5d9b9c3", size = 3589741, upload-time = "2025-03-02T22:31:56.836Z" }, ] [[package]] @@ -528,9 +530,9 @@ dependencies = [ { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/98/0b/a866924ded68efec7a1759587a4e478aec7559d8165fac8b2ad1c0e774d6/sphinx_basic_ng-1.0.0b2.tar.gz", hash = "sha256:9ec55a47c90c8c002b5960c57492ec3021f5193cb26cebc2dc4ea226848651c9", size = 20736 } +sdist = { url = "https://files.pythonhosted.org/packages/98/0b/a866924ded68efec7a1759587a4e478aec7559d8165fac8b2ad1c0e774d6/sphinx_basic_ng-1.0.0b2.tar.gz", hash = "sha256:9ec55a47c90c8c002b5960c57492ec3021f5193cb26cebc2dc4ea226848651c9", size = 20736, upload-time = "2023-07-08T18:40:54.166Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/dd/018ce05c532a22007ac58d4f45232514cd9d6dd0ee1dc374e309db830983/sphinx_basic_ng-1.0.0b2-py3-none-any.whl", hash = "sha256:eb09aedbabfb650607e9b4b68c9d240b90b1e1be221d6ad71d61c52e29f7932b", size = 22496 }, + { url = "https://files.pythonhosted.org/packages/3c/dd/018ce05c532a22007ac58d4f45232514cd9d6dd0ee1dc374e309db830983/sphinx_basic_ng-1.0.0b2-py3-none-any.whl", hash = "sha256:eb09aedbabfb650607e9b4b68c9d240b90b1e1be221d6ad71d61c52e29f7932b", size = 22496, upload-time = "2023-07-08T18:40:52.659Z" }, ] [[package]] @@ -541,19 +543,25 @@ dependencies = [ { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9a/10/25231164a97a9016bdc73a3530af8f4a6846bdc564af1460af2ff3e59a50/sphinx-multiversion-0.2.4.tar.gz", hash = "sha256:5cd1ca9ecb5eed63cb8d6ce5e9c438ca13af4fa98e7eb6f376be541dd4990bcb", size = 7024 } +sdist = { url = "https://files.pythonhosted.org/packages/9a/10/25231164a97a9016bdc73a3530af8f4a6846bdc564af1460af2ff3e59a50/sphinx-multiversion-0.2.4.tar.gz", hash = "sha256:5cd1ca9ecb5eed63cb8d6ce5e9c438ca13af4fa98e7eb6f376be541dd4990bcb", size = 7024, upload-time = "2020-08-12T15:48:20.566Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/19/51/203bb30b3ce76373237288e92cb71fb66f80ee380473f36bfe8a9d299c5d/sphinx_multiversion-0.2.4-py2.py3-none-any.whl", hash = "sha256:5c38d5ce785a335d8c8d768b46509bd66bfb9c6252b93b700ca8c05317f207d6", size = 9597 }, - { url = "https://files.pythonhosted.org/packages/05/ad/4989e6be165805694e93d09bc57425aa1368273b7de4fe3083fe4310803a/sphinx_multiversion-0.2.4-py3-none-any.whl", hash = "sha256:dec29f2a5890ad68157a790112edc0eb63140e70f9df0a363743c6258fbeb478", size = 9642 }, + { url = "https://files.pythonhosted.org/packages/19/51/203bb30b3ce76373237288e92cb71fb66f80ee380473f36bfe8a9d299c5d/sphinx_multiversion-0.2.4-py2.py3-none-any.whl", hash = "sha256:5c38d5ce785a335d8c8d768b46509bd66bfb9c6252b93b700ca8c05317f207d6", size = 9597, upload-time = "2024-10-03T21:45:52.754Z" }, + { url = "https://files.pythonhosted.org/packages/05/ad/4989e6be165805694e93d09bc57425aa1368273b7de4fe3083fe4310803a/sphinx_multiversion-0.2.4-py3-none-any.whl", hash = "sha256:dec29f2a5890ad68157a790112edc0eb63140e70f9df0a363743c6258fbeb478", size = 9642, upload-time = "2020-08-12T15:48:19.649Z" }, ] +[[package]] +name = "sphinxbootstrap4theme" +version = "0.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/39/6a/0734ab646a0ca96f82be187e90a080bcaab56f95e78f13ed01474163f1bf/sphinxbootstrap4theme-0.6.0.tar.gz", hash = "sha256:d3b2e413785afc74aa178872aa553d7b4156206037fdb39b7ff1490c7926d138", size = 327777, upload-time = "2019-04-10T23:57:29.626Z" } + [[package]] name = "sphinxcontrib-applehelp" version = "2.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053 } +sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053, upload-time = "2024-07-29T01:09:00.465Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300 }, + { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300, upload-time = "2024-07-29T01:08:58.99Z" }, ] [[package]] @@ -568,27 +576,27 @@ dependencies = [ { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c1/ce/054a8ec04063f9a27772fea7188f796edbfa382e656d3b76428323861f0e/sphinxcontrib_bibtex-2.6.3.tar.gz", hash = "sha256:7c790347ef1cb0edf30de55fc324d9782d085e89c52c2b8faafa082e08e23946", size = 117177 } +sdist = { url = "https://files.pythonhosted.org/packages/c1/ce/054a8ec04063f9a27772fea7188f796edbfa382e656d3b76428323861f0e/sphinxcontrib_bibtex-2.6.3.tar.gz", hash = "sha256:7c790347ef1cb0edf30de55fc324d9782d085e89c52c2b8faafa082e08e23946", size = 117177, upload-time = "2024-09-12T14:23:44.662Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8e/49/c23f9493c0a5d5881fb7ed3002e87708454fef860aa96a48e755d27bf6f0/sphinxcontrib_bibtex-2.6.3-py3-none-any.whl", hash = "sha256:ff016b738fcc867df0f75c29e139b3b2158d26a2c802db27963cb128be3b75fb", size = 40340 }, + { url = "https://files.pythonhosted.org/packages/8e/49/c23f9493c0a5d5881fb7ed3002e87708454fef860aa96a48e755d27bf6f0/sphinxcontrib_bibtex-2.6.3-py3-none-any.whl", hash = "sha256:ff016b738fcc867df0f75c29e139b3b2158d26a2c802db27963cb128be3b75fb", size = 40340, upload-time = "2024-09-12T14:23:43.593Z" }, ] [[package]] name = "sphinxcontrib-devhelp" version = "2.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967 } +sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967, upload-time = "2024-07-29T01:09:23.417Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530 }, + { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530, upload-time = "2024-07-29T01:09:21.945Z" }, ] [[package]] name = "sphinxcontrib-htmlhelp" version = "2.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617 } +sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617, upload-time = "2024-07-29T01:09:37.889Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705 }, + { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705, upload-time = "2024-07-29T01:09:36.407Z" }, ] [[package]] @@ -599,91 +607,91 @@ dependencies = [ { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331 } +sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331, upload-time = "2023-03-14T15:01:01.944Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/85/749bd22d1a68db7291c89e2ebca53f4306c3f205853cf31e9de279034c3c/sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae", size = 121104 }, + { url = "https://files.pythonhosted.org/packages/76/85/749bd22d1a68db7291c89e2ebca53f4306c3f205853cf31e9de279034c3c/sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae", size = 121104, upload-time = "2023-03-14T15:01:00.356Z" }, ] [[package]] name = "sphinxcontrib-jsmath" version = "1.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8", size = 5787 } +sdist = { url = "https://files.pythonhosted.org/packages/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8", size = 5787, upload-time = "2019-01-21T16:10:16.347Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", size = 5071 }, + { url = "https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", size = 5071, upload-time = "2019-01-21T16:10:14.333Z" }, ] [[package]] name = "sphinxcontrib-qthelp" version = "2.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165 } +sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165, upload-time = "2024-07-29T01:09:56.435Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743 }, + { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743, upload-time = "2024-07-29T01:09:54.885Z" }, ] [[package]] name = "sphinxcontrib-serializinghtml" version = "2.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080 } +sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080, upload-time = "2024-07-29T01:10:09.332Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072 }, + { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072, upload-time = "2024-07-29T01:10:08.203Z" }, ] [[package]] name = "tomli" version = "2.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077 }, - { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429 }, - { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067 }, - { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030 }, - { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898 }, - { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894 }, - { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319 }, - { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273 }, - { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310 }, - { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309 }, - { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762 }, - { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453 }, - { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486 }, - { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349 }, - { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159 }, - { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243 }, - { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645 }, - { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584 }, - { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875 }, - { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418 }, - { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708 }, - { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582 }, - { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543 }, - { url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691 }, - { url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170 }, - { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530 }, - { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666 }, - { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954 }, - { url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724 }, - { url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383 }, - { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, +sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175, upload-time = "2024-11-27T22:38:36.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077, upload-time = "2024-11-27T22:37:54.956Z" }, + { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429, upload-time = "2024-11-27T22:37:56.698Z" }, + { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067, upload-time = "2024-11-27T22:37:57.63Z" }, + { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030, upload-time = "2024-11-27T22:37:59.344Z" }, + { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898, upload-time = "2024-11-27T22:38:00.429Z" }, + { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894, upload-time = "2024-11-27T22:38:02.094Z" }, + { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319, upload-time = "2024-11-27T22:38:03.206Z" }, + { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273, upload-time = "2024-11-27T22:38:04.217Z" }, + { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310, upload-time = "2024-11-27T22:38:05.908Z" }, + { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309, upload-time = "2024-11-27T22:38:06.812Z" }, + { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762, upload-time = "2024-11-27T22:38:07.731Z" }, + { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453, upload-time = "2024-11-27T22:38:09.384Z" }, + { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486, upload-time = "2024-11-27T22:38:10.329Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349, upload-time = "2024-11-27T22:38:11.443Z" }, + { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159, upload-time = "2024-11-27T22:38:13.099Z" }, + { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243, upload-time = "2024-11-27T22:38:14.766Z" }, + { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645, upload-time = "2024-11-27T22:38:15.843Z" }, + { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584, upload-time = "2024-11-27T22:38:17.645Z" }, + { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875, upload-time = "2024-11-27T22:38:19.159Z" }, + { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418, upload-time = "2024-11-27T22:38:20.064Z" }, + { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708, upload-time = "2024-11-27T22:38:21.659Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582, upload-time = "2024-11-27T22:38:22.693Z" }, + { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543, upload-time = "2024-11-27T22:38:24.367Z" }, + { url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691, upload-time = "2024-11-27T22:38:26.081Z" }, + { url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170, upload-time = "2024-11-27T22:38:27.921Z" }, + { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530, upload-time = "2024-11-27T22:38:29.591Z" }, + { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666, upload-time = "2024-11-27T22:38:30.639Z" }, + { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954, upload-time = "2024-11-27T22:38:31.702Z" }, + { url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724, upload-time = "2024-11-27T22:38:32.837Z" }, + { url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383, upload-time = "2024-11-27T22:38:34.455Z" }, + { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257, upload-time = "2024-11-27T22:38:35.385Z" }, ] [[package]] name = "typing-extensions" version = "4.12.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 } +sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321, upload-time = "2024-06-07T18:52:15.995Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 }, + { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438, upload-time = "2024-06-07T18:52:13.582Z" }, ] [[package]] name = "urllib3" version = "2.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268 } +sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268, upload-time = "2024-12-22T07:47:30.032Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369 }, + { url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369, upload-time = "2024-12-22T07:47:28.074Z" }, ] From 64c1cdbdbfb88025dbc082d745fd5232798efc2b Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 16:58:08 +0800 Subject: [PATCH 33/58] Update docs.yml --- .github/workflows/docs.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 60df0dcb6..c35fe7534 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -28,9 +28,6 @@ jobs: - name: Build api documentation working-directory: docs run: | - pwd - ls - uv sync --python 3.10 uv run bash api_doc_script.sh - name: Sphinx build working-directory: docs From f17a47e04f3837daee810568a03ec46f4068623d Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 17:15:42 +0800 Subject: [PATCH 34/58] update script and conf.py --- docs/api_doc_script.sh | 24 ++++++++++---- docs/source/conf.py | 74 ------------------------------------------ 2 files changed, 18 insertions(+), 80 deletions(-) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index f3bcc2643..10cc1468c 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -1,10 +1,13 @@ -#!/usr/bin/env bash +#!/usr/bin/bash doxygen_build() { VTAG=$1 echo $VTAG - git checkout $VTAG + git checkout $VTAG || { + echo "Failed to checkout tag $VTAG"; + exit 1; + } doxygen docs.doxygen > /dev/null 2>&1 if [ "$VTAG" = master ]; then mkdir -p docs/api_docs/versions @@ -13,30 +16,36 @@ doxygen_build() mv docs/html docs/api_docs/versions/$VTAG } +# get current branch branch=$(git rev-parse --abbrev-ref HEAD) -echo "$branch" -rm -r api_docs/versions mkdir build cd ../ + +# Build latest version doxygen_build master -crit_ver=0.9.5 + +smallest_ver=0.7.3 +# Get all version latest than smallest_ver versions=($(git tag \ | sed 's/^v//' \ | sed 's/[A-Za-z].*$//' \ | sort -V \ - | awk -F. -v cv="$crit_ver" ' + | awk -F. -v cv="$smallest_ver" ' BEGIN { split(cv,c,"."); min=c[1]*10000+c[2]*100+c[3] } { val=$1*10000+$2*100+$3; if(val>=min) print } ')) +# Build older version latest from smallest_ver for i in "${!versions[@]}"; do ver="v${versions[i]}" doxygen_build $ver done +# checkout original version git checkout $branch +# Create index.rst cd ./docs/api_docs/home_source cat > index.rst <<'EOF' .. image:: Icon_small.png @@ -56,8 +65,11 @@ for ((i=${#versions[@]}-1; i>=0; i--)); do ver="v${versions[i]}" echo ' * `'$ver' `__.' >> index.rst done + +# build API documentation index. cd ../ make html +# move the api_build under build mv versions ./build_home/html/ mv build_home ../build/api_build diff --git a/docs/source/conf.py b/docs/source/conf.py index c6e89abc9..a2803c821 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -29,8 +29,6 @@ project = 'Cytnx' copyright = '2019-, Kai-Hsin Wu' author = 'Kai-Hsin Wu' -#_version = 'v0.9.7' -#version = 'v0.5.5a' # -- General configuration --------------------------------------------------- @@ -92,75 +90,3 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] - - -html_theme_options = { - # Navbar style. - # Values: 'fixed-top', 'full' (Default: 'fixed-top') - 'navbar_style' : 'fixed-top', - - # Navbar link color modifier class. - # Values: 'dark', 'light' (Default: 'dark') - 'navbar_color_class' : 'dark', - - # Navbar background color class. - # Values: 'inverse', 'primary', 'faded', 'success', - # 'info', 'warning', 'danger' (Default: 'inverse') - #'navbar_bg_class' : 'inverse', - - # Show global TOC in navbar. - # To display up to 4 tier in the drop-down menu. - # Values: True, False (Default: True) - 'navbar_show_pages' : True, - - # Link name for global TOC in navbar. - # (Default: 'Pages') - 'navbar_pages_title' : 'Pages', - - # Specify a list of menu in navbar. - # Tuples forms: - # ('Name', 'external url or path of pages in the document', boolean) - # Third argument: - # True indicates an external link. - # False indicates path of pages in the document. - 'navbar_links' : [ - ('API Doc', 'https://kaihsinwu.gitlab.io/cytnx_api', True), - ("Github", "https://github.com/Cytnx-dev/Cytnx", True), - ], - - # Total width(%) of the document and the sidebar. - # (Default: 80%) - 'main_width' : '80%', - - # Render sidebar. - # Values: True, False (Default: True) - 'show_sidebar' : True, - - # Render sidebar in the right of the document. - # Values:True, False (Default: False) - 'sidebar_right': False, - - # Fix sidebar. - # Values: True, False (Default: True) - 'sidebar_fixed': False, - - # Html table header class. - # Values: 'inverse', 'light' (Deafult: 'inverse') - 'table_thead_class' : 'inverse', - -} -""" -# -- Breathe configuration ------------------------------------------------- - -breathe_projects = { - "Cyc": "/home/kaihsinwu/Dropbox/Cytnx/docs/xml/" -} - -breathe_default_project = "Cyc" -breathe_default_members = ('members', 'undoc-members') -#breathe_default_members = ('members') -""" -## ablog -#import ablog -#templates_path.append(ablog.get_html_templates_path()) -#disqus_shortname='kaihsinwu' From 975a9c8a55cf3dbcaccedf07e42b04bd33229bcf Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 17:25:54 +0800 Subject: [PATCH 35/58] Update docs.yml Change only execute when push to master. --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c35fe7534..47671c08c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,7 +3,7 @@ name: Publish Sphinx Documentation on: push: branches: - - haoti/doc_update + - master jobs: publish_sphinx_docs: From 06222830e1eb3d648ffaa434e56185dddf356af5 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 18:01:24 +0800 Subject: [PATCH 36/58] Update Readme.md * Update link for user guide and api documentation. * Update the paper. --- Readme.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Readme.md b/Readme.md index 07aeee09c..5c1543e79 100644 --- a/Readme.md +++ b/Readme.md @@ -22,14 +22,14 @@ Cytnx is a tensor network library designed for quantum physics simulations using **See also** [Release Note](misc_doc/version.log). -## API Documentation: - -[https://kaihsinwu.gitlab.io/cytnx_api/](https://kaihsinwu.gitlab.io/cytnx_api/) ## User Guide [under construction]: -[Cytnx User Guide](https://kaihsinwu.gitlab.io/Cytnx_doc/) +[Cytnx User Guide](https://cytnx-dev.github.io/Cytnx_doc) + +## API Documentation: +[API Documentation](https://cytnx-dev.github.io/Cytnx_doc/api_build/html) ## Objects: @@ -271,10 +271,10 @@ Yu-Cheng Lin | NTU, Taiwan ## References * Paper: -[https://arxiv.org/abs/2401.01921](https://arxiv.org/abs/2401.01921) +https://scipost.org/10.21468/SciPostPhysCodeb.53 * Example/DMRG: -[https://www.tensors.net/dmrg](https://www.tensors.net/dmrg) +https://www.tensors.net/dmrg * hptt library: -[https://github.com/springer13/hptt](https://github.com/springer13/hptt) +https://github.com/springer13/hptt From 6d90b00a8a92f5e24ca0b62e8d63b961b60e7cce Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 18:13:45 +0800 Subject: [PATCH 37/58] Update gihub link and user guide link. --- docs/api_docs/home_source/conf.py | 4 ++-- docs/source/index.rst | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/api_docs/home_source/conf.py b/docs/api_docs/home_source/conf.py index cf9ac1bea..55061e44a 100644 --- a/docs/api_docs/home_source/conf.py +++ b/docs/api_docs/home_source/conf.py @@ -100,8 +100,8 @@ # True indicates an external link. # False indicates path of pages in the document. 'navbar_links' : [ - ("User Guide", "https://kaihsinwu.gitlab.io/Cytnx_doc", True), - ("Github", "https://github.com/kaihsin/Cytnx", True) + ("User Guide", "https://cytnx-dev.github.io/Cytnx_doc", True), + ("Github", "https://github.com/Cytnx-dev/Cytnx", True) ], # Total width(%) of the document and the sidebar. diff --git a/docs/source/index.rst b/docs/source/index.rst index c6740aa41..7e87f53b1 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -28,7 +28,7 @@ Cytnx user guide and examples .. toctree:: API Documentation - Github + Github 5-mins Blitz intro slide .. toctree:: From 59873f83b4c0bb78427d8ad08ab0081ed0977824 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 20 Nov 2025 18:14:40 +0800 Subject: [PATCH 38/58] Update docs.yml --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 47671c08c..c35fe7534 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,7 +3,7 @@ name: Publish Sphinx Documentation on: push: branches: - - master + - haoti/doc_update jobs: publish_sphinx_docs: From 6e8b4f6ba08e8fb087e207b63298521379a23dab Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 20 Nov 2025 18:24:41 +0800 Subject: [PATCH 39/58] update user guide link. --- DoxygenLayout.xml | 2 +- docs/api_docs/home_source/index_temp.rst | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) delete mode 100644 docs/api_docs/home_source/index_temp.rst diff --git a/DoxygenLayout.xml b/DoxygenLayout.xml index 8ceeb6b50..1238fd501 100644 --- a/DoxygenLayout.xml +++ b/DoxygenLayout.xml @@ -37,7 +37,7 @@ - + diff --git a/docs/api_docs/home_source/index_temp.rst b/docs/api_docs/home_source/index_temp.rst deleted file mode 100644 index 284c8a53d..000000000 --- a/docs/api_docs/home_source/index_temp.rst +++ /dev/null @@ -1,8 +0,0 @@ - -.. image:: Icon_small.png - :width: 350 - -Cytnx API -================================= - Cytnx is a library design for Quantum physics simulation using GPUs and CPUs. - From 5ffb5ab6f68849eb969b46089f18943ea384e518 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Fri, 21 Nov 2025 16:48:37 +0800 Subject: [PATCH 40/58] Update installation guide. --- DoxygenLayout.xml | 2 +- docs/source/adv_install.rst | 39 ++++++++++++++++++++---------------- docs/source/guide/linalg.rst | 2 +- docs/source/install.rst | 3 ++- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/DoxygenLayout.xml b/DoxygenLayout.xml index 1238fd501..5d1f5c9c3 100644 --- a/DoxygenLayout.xml +++ b/DoxygenLayout.xml @@ -37,7 +37,7 @@ - + diff --git a/docs/source/adv_install.rst b/docs/source/adv_install.rst index 971927bab..6bf0177a0 100644 --- a/docs/source/adv_install.rst +++ b/docs/source/adv_install.rst @@ -34,15 +34,11 @@ In addition, you might want to install the following optional dependencies if yo * Nvidia cuTensor library * Nvidia cuQuantum library -[MAGMA] - -* MAGMA 2.7 currently required strict cuda version v11.8 - [Python API] -* python >= 3.6 -* pybind11 +* python >= 3.9 +* pybind11 >= 3.0.0 * python-graphviz * graphviz * numpy @@ -73,7 +69,7 @@ There are two methods how you can set-up all the dependencies before starting th .. code-block:: shell $conda config --add channels conda-forge - $conda create --name cytnx python=3.8 _openmp_mutex=*=*_llvm + $conda create --name cytnx python=3.9 _openmp_mutex=*=*_llvm $conda activate cytnx $conda upgrade --all @@ -83,13 +79,13 @@ There are two methods how you can set-up all the dependencies before starting th .. code-block:: shell $conda config --add channels conda-forge - $conda create --name cytnx python=3.8 llvm-openmp + $conda create --name cytnx python=3.9 llvm-openmp $conda activate cytnx $conda upgrade --all .. Note:: - 1. The python=3.8 indicates the Python version you want to use. Generally, Cytnx is tested with 3.7/3.8/3.9. You can replace this with the version you want to use. + 1. The python=3.9 indicates the Python version you want to use. Generally, Cytnx is tested with 3.9+. You can replace this with the version you want to use. 2. The last line is updating all the libraries such that they are all dependent on the conda-forge channel. @@ -97,7 +93,7 @@ There are two methods how you can set-up all the dependencies before starting th .. code-block:: shell - $conda install cmake make boost libboost git compilers numpy openblas arpack pybind11 beartype + $conda install cmake make boost libboost git compilers numpy openblas arpack pybind11 beartype arpack .. Note:: @@ -107,7 +103,7 @@ There are two methods how you can set-up all the dependencies before starting th .. code-block:: shell - $conda install cmake make boost libboost git compilers numpy mkl mkl-include mkl-service arpack pybind11 libblas=*=*mkl beartype + $conda install cmake make boost libboost git compilers numpy mkl mkl-include mkl-service arpack pybind11 libblas=*=*mkl beartype arpack 3. After the installation, an automated test based on gtest and benchmark can be run. This option needs to be activated in the install script. In this case, gtest needs to be installed as well: @@ -167,13 +163,22 @@ Compiling process ------------------- Once you installed all the dependencies, it is time to start building the Cytnx source code. -**Option A. Compiling with script** +**Option A. Using cmake preset** + +We support the ``cmake-presets`` tool for building the library starting from version +v1.1.0. You can find the configuration file in ``CMakePresets.json``. For example, +if you choose the ``openblas-cpu`` preset, use the following command to build: -Starting from v0.7.6a, Cytnx provides a shell script **Install.sh**, which contains all the cmake arguments as a check list. To install, edit the script, un-comment and modify custom parameters in the corresponding lines. Then, simply execute this script: .. code-block:: shell - $sh Install.sh + $cmake --preset openblas-cpu + $cmake --build --preset openblas-cpu +.. note:: + + If you are using Visual Studio Code, you can also take advantage of the + *CMake Tools* extension, which provides built-in support for selecting and + running CMake presets directly from the editor. **Option B. Using cmake install** @@ -185,7 +190,7 @@ Please see the following steps for the standard cmake compiling process and all .. code-block:: shell - $make build + $mkdir build $cd build 2. Use cmake to automatically generate compiling files: @@ -199,7 +204,7 @@ The following are the available compiling option flags that you can specify in * +------------------------+-------------------+------------------------------------+ | options | default | description | +------------------------+-------------------+------------------------------------+ -| -DCMAME_INSTALL_PREFIX | /usr/local/cytnx | Install destination of the library | +| -DCMAKE_INSTALL_PREFIX | /usr/local/cytnx | Install destination of the library | +------------------------+-------------------+------------------------------------+ | -DBUILD_PYTHON | ON | Compile and install Python API | +------------------------+-------------------+------------------------------------+ @@ -290,7 +295,7 @@ In the case that Cytnx is installed locally from binary build, not from anaconda Generate API documentation ************************************* -An API documentation can be generated from the source code of Cytnx by using doxygen. The documentation is accessible online at . To create it locally, make sure that doxygen is installed: +An API documentation can be generated from the source code of Cytnx by using doxygen. The documentation is accessible online at `here <../api_build/html/index.html>`__. To create it locally, make sure that doxygen is installed: .. code-block:: shell diff --git a/docs/source/guide/linalg.rst b/docs/source/guide/linalg.rst index c6f4a2e5d..eaeda0474 100644 --- a/docs/source/guide/linalg.rst +++ b/docs/source/guide/linalg.rst @@ -1,7 +1,7 @@ Linear algebra =============== -Currently, Cytnx supports the following linear algebra functions. See https://kaihsin.github.io/Cytnx/docs/html/index.html for further documentation. +Currently, Cytnx supports the following linear algebra functions. See A for further documentation. +-----------------------------------------------------------------------+---------+-----+------+-------------+----+----------------+ | func | Inplace | CPU | GPU | Called by Tn| Tn | CyTn (xlinalg) | diff --git a/docs/source/install.rst b/docs/source/install.rst index ef2245b94..884f56c51 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -37,7 +37,7 @@ In the following we show how to install Cytnx with conda. :linenos: $conda config --add channels conda-forge - $conda create --channel conda-forge --name cytnx python=3.8 llvm-openmp + $conda create --channel conda-forge --name cytnx python=3.9 llvm-openmp .. note:: @@ -124,6 +124,7 @@ Let us consider the same example as before for Python. Here, we want to compile #include "cytnx.hpp" #include using namespace std; + using namespace cytnx; int main(){ auto A = zeros(4); From 4c77556963f9dd9069b342d324a6c3ad14bc34ca Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Fri, 21 Nov 2025 17:26:43 +0800 Subject: [PATCH 41/58] update linke and add generate latex code for user guilde. --- docs/justfile | 3 +++ docs/source/Intro.rst | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/justfile b/docs/justfile index 4d6d5da5c..663f6cfc8 100644 --- a/docs/justfile +++ b/docs/justfile @@ -3,3 +3,6 @@ doc: doc-vers: sphinx-multiversion source/ build + +latex_doc: + sphinx-build -M latexpdf source/ build diff --git a/docs/source/Intro.rst b/docs/source/Intro.rst index 6fba4860b..ca149e6ea 100644 --- a/docs/source/Intro.rst +++ b/docs/source/Intro.rst @@ -25,7 +25,7 @@ Features Further references ---------------------------- The source code can be found on github: - https://github.com/kaihsin/Cytnx + https://github.com/Cytnx-dev/Cytnx A technical documentation of the namespaces and classes is available here: - https://kaihsin.github.io/Cytnx/docs/html/index.html + https://cytnx-dev.github.io/Cytnx_doc/html/index.html From d66c25025e248077d4dbc4f4fa1486faed0b1b64 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Fri, 21 Nov 2025 18:18:34 +0800 Subject: [PATCH 42/58] Fix linalg link error. --- docs/source/link.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/link.py b/docs/source/link.py index 149f59f54..01477e11a 100644 --- a/docs/source/link.py +++ b/docs/source/link.py @@ -12,6 +12,6 @@ 'virtualenv':("https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#%s",None),\ 'mkl-mac':("https://software.intel.com/content/www/us/en/develop/tools/math-kernel-library/choose-download/macos.html%s",None),\ 'wsl':("https://docs.microsoft.com/en-us/windows/wsl/install-win10%s",None),\ - #'cytnx_namespace':("https://kaihsinwu.gitlab.io/cytnx_api/"+ _version + "/namespacecytnx.html%s",None),\ - #'cytnx_linalg':("https://kaihsinwu.gitlab.io/cytnx_api/" + _version + "/namespacecytnx_1_1linalg.html%s",None)\ + 'cytnx_namespace':("../../api_build/html/versions/latest/namespacecytnx.html%s",None),\ + 'cytnx_linalg':("../../api_build/html/versions/latest/namespacecytnx_1_1linalg.html%s",None)\ } From 083f91ff930ec91de818e13d0162cdfe0922dbfb Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Sat, 22 Nov 2025 12:09:07 +0800 Subject: [PATCH 43/58] Fix link to local files. --- docs/api_docs/home_source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api_docs/home_source/conf.py b/docs/api_docs/home_source/conf.py index 55061e44a..4ac3ab005 100644 --- a/docs/api_docs/home_source/conf.py +++ b/docs/api_docs/home_source/conf.py @@ -100,7 +100,7 @@ # True indicates an external link. # False indicates path of pages in the document. 'navbar_links' : [ - ("User Guide", "https://cytnx-dev.github.io/Cytnx_doc", True), + ("User Guide", "../../../build/html/index.html", True), ("Github", "https://github.com/Cytnx-dev/Cytnx", True) ], From e7a1dfb57d2cc249968242ad34e39eadddb2a75d Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Sat, 22 Nov 2025 12:16:31 +0800 Subject: [PATCH 44/58] Fix link. --- docs/api_docs/home_source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api_docs/home_source/conf.py b/docs/api_docs/home_source/conf.py index 4ac3ab005..45e62355f 100644 --- a/docs/api_docs/home_source/conf.py +++ b/docs/api_docs/home_source/conf.py @@ -100,7 +100,7 @@ # True indicates an external link. # False indicates path of pages in the document. 'navbar_links' : [ - ("User Guide", "../../../build/html/index.html", True), + ("User Guide", "../../html/index.html", True), ("Github", "https://github.com/Cytnx-dev/Cytnx", True) ], From b76d10b830c7410b241cef54f6ab90ee6d189feb Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Sat, 22 Nov 2025 12:46:00 +0800 Subject: [PATCH 45/58] Update python version in docs. --- docs/source/install.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/install.rst b/docs/source/install.rst index 884f56c51..90fab6382 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -24,7 +24,7 @@ In the following we show how to install Cytnx with conda. .. Note:: 1. We do not support a native Windows package at this stage. If you are using Windows OS, please use WSL. - 2. [0.9] Currently, the supported Python versions are updated to: linux -- 3.8/3.9/3.10; MacOS-osx64 -- 3.7+ (no conda support). You can change the python=* argument to the version you like. + 2. Currently, the supported Python versions are updated to: linux -- 3.9+; MacOS-osx64 -- 3.9+ (no conda support). You can change the python=* argument to the version you like. * For MacOS: From bb9b890a21d130f629a0329c9e4bb5ff19cfc055 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 27 Nov 2025 11:13:56 +0800 Subject: [PATCH 46/58] Delete unused file. --- docs/.github/workflows/docs.yaml | 37 -------------------------------- 1 file changed, 37 deletions(-) delete mode 100644 docs/.github/workflows/docs.yaml diff --git a/docs/.github/workflows/docs.yaml b/docs/.github/workflows/docs.yaml deleted file mode 100644 index 039243290..000000000 --- a/docs/.github/workflows/docs.yaml +++ /dev/null @@ -1,37 +0,0 @@ -name: Publish Sphinx Documentation - -on: - release: - types: [published] - -jobs: - publish_sphinx_docs: - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Install uv - uses: astral-sh/setup-uv@v5 - with: - version: "0.5.1" - enable-cache: true - cache-dependency-glob: "uv.lock" - - name: Install dependencies - run: | - uv sync --python 3.10 - - name: Sphinx build - run: | - uv run sphinx-multiversion source build - - name: Create index.html - run: | - uv run python redirect.py ${{ github.ref_name }} > build/index.html - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - with: - publish_branch: gh-pages - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: build/ - force_orphan: true From db95c94d36c41a6851f05c29955a50bddb751de9 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 27 Nov 2025 11:39:08 +0800 Subject: [PATCH 47/58] Modify the api doc index. --- docs/api_doc_script.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index 10cc1468c..821d4f1e5 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -56,8 +56,9 @@ Cytnx API Cytnx is a library design for Quantum physics simulation using GPUs and CPUs. * `Latest version `__. + This documentation is generated from the ``master`` branch (beta-quality). -Older versions: +* Released versions: EOF From d13e6a8da05e403e4a440dfef1891cbfb31aab72 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 27 Nov 2025 11:45:29 +0800 Subject: [PATCH 48/58] Modify the api doc index. --- docs/api_doc_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api_doc_script.sh b/docs/api_doc_script.sh index 821d4f1e5..eff7e6dbf 100644 --- a/docs/api_doc_script.sh +++ b/docs/api_doc_script.sh @@ -58,7 +58,7 @@ Cytnx API * `Latest version `__. This documentation is generated from the ``master`` branch (beta-quality). -* Released versions: +Released versions: EOF From e5268dfe5e63b8d9f7971813111014d8335df3e3 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 27 Nov 2025 11:49:32 +0800 Subject: [PATCH 49/58] Update docs.yml Change the workflow building the documentation only when push the commit on the master branch. --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c35fe7534..47671c08c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,7 +3,7 @@ name: Publish Sphinx Documentation on: push: branches: - - haoti/doc_update + - master jobs: publish_sphinx_docs: From 16e9c1b48fc03ad5f257af2c9de623d9b5b4fb0e Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 27 Nov 2025 12:10:12 +0800 Subject: [PATCH 50/58] Update linalg user guide. --- docs/source/guide/linalg.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/guide/linalg.rst b/docs/source/guide/linalg.rst index eaeda0474..a3c4c6841 100644 --- a/docs/source/guide/linalg.rst +++ b/docs/source/guide/linalg.rst @@ -1,7 +1,7 @@ Linear algebra =============== -Currently, Cytnx supports the following linear algebra functions. See A for further documentation. +Currently, Cytnx supports the following linear algebra functions. See the :cytnx_linalg:`API documentation<>` for more details. +-----------------------------------------------------------------------+---------+-----+------+-------------+----+----------------+ | func | Inplace | CPU | GPU | Called by Tn| Tn | CyTn (xlinalg) | From c9c3797af945c828c58e27645d2d6eab19c07731 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 27 Nov 2025 12:11:17 +0800 Subject: [PATCH 51/58] Update docs.yml --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 47671c08c..c35fe7534 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,7 +3,7 @@ name: Publish Sphinx Documentation on: push: branches: - - master + - haoti/doc_update jobs: publish_sphinx_docs: From 679ae2d08c2d50408ac0a7571085b235468228ad Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 27 Nov 2025 12:16:53 +0800 Subject: [PATCH 52/58] Update linalg user guide. --- docs/source/guide/linalg.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/guide/linalg.rst b/docs/source/guide/linalg.rst index a3c4c6841..4f4df7d66 100644 --- a/docs/source/guide/linalg.rst +++ b/docs/source/guide/linalg.rst @@ -1,7 +1,7 @@ Linear algebra =============== -Currently, Cytnx supports the following linear algebra functions. See the :cytnx_linalg:`API documentation<>` for more details. +Currently, Cytnx supports the following linear algebra functions. See the :cytnx_linalg:`API documentation<../>` for more details. +-----------------------------------------------------------------------+---------+-----+------+-------------+----+----------------+ | func | Inplace | CPU | GPU | Called by Tn| Tn | CyTn (xlinalg) | From b524600fccf96b375304dff2caeba2063b598258 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 27 Nov 2025 12:27:20 +0800 Subject: [PATCH 53/58] update link. --- docs/source/guide/linalg.rst | 2 +- docs/source/link.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/guide/linalg.rst b/docs/source/guide/linalg.rst index 4f4df7d66..813f04790 100644 --- a/docs/source/guide/linalg.rst +++ b/docs/source/guide/linalg.rst @@ -1,7 +1,7 @@ Linear algebra =============== -Currently, Cytnx supports the following linear algebra functions. See the :cytnx_linalg:`API documentation<../>` for more details. +Currently, Cytnx supports the following linear algebra functions. See the :cytnx_latest_api:`API documentation<>` for more details. +-----------------------------------------------------------------------+---------+-----+------+-------------+----+----------------+ | func | Inplace | CPU | GPU | Called by Tn| Tn | CyTn (xlinalg) | diff --git a/docs/source/link.py b/docs/source/link.py index 01477e11a..0356cff6a 100644 --- a/docs/source/link.py +++ b/docs/source/link.py @@ -12,6 +12,7 @@ 'virtualenv':("https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#%s",None),\ 'mkl-mac':("https://software.intel.com/content/www/us/en/develop/tools/math-kernel-library/choose-download/macos.html%s",None),\ 'wsl':("https://docs.microsoft.com/en-us/windows/wsl/install-win10%s",None),\ + 'cytnx_latest_api':("../../api_build/html/versions/latest/html/index.html%s",None),\ 'cytnx_namespace':("../../api_build/html/versions/latest/namespacecytnx.html%s",None),\ 'cytnx_linalg':("../../api_build/html/versions/latest/namespacecytnx_1_1linalg.html%s",None)\ } From 177cfc7ede2d42e906a2b9cf466bcecac0f85a37 Mon Sep 17 00:00:00 2001 From: hunghaoti Date: Thu, 27 Nov 2025 12:31:39 +0800 Subject: [PATCH 54/58] update link. --- docs/source/link.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/link.py b/docs/source/link.py index 0356cff6a..e107faeaf 100644 --- a/docs/source/link.py +++ b/docs/source/link.py @@ -12,7 +12,7 @@ 'virtualenv':("https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#%s",None),\ 'mkl-mac':("https://software.intel.com/content/www/us/en/develop/tools/math-kernel-library/choose-download/macos.html%s",None),\ 'wsl':("https://docs.microsoft.com/en-us/windows/wsl/install-win10%s",None),\ - 'cytnx_latest_api':("../../api_build/html/versions/latest/html/index.html%s",None),\ + 'cytnx_latest_api':("../../api_build/html/versions/latest/index.html%s",None),\ 'cytnx_namespace':("../../api_build/html/versions/latest/namespacecytnx.html%s",None),\ 'cytnx_linalg':("../../api_build/html/versions/latest/namespacecytnx_1_1linalg.html%s",None)\ } From b19f17631621573c4a35dfa7431288e10ca4b2a6 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 27 Nov 2025 12:34:33 +0800 Subject: [PATCH 55/58] Update docs.yml Change the workflow branch to master so that only when push to master the documentation will be updated. --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c35fe7534..47671c08c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,7 +3,7 @@ name: Publish Sphinx Documentation on: push: branches: - - haoti/doc_update + - master jobs: publish_sphinx_docs: From b45b9b894f796cb7edf8d57c7c155d06c3d443a3 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 27 Nov 2025 22:32:19 +0800 Subject: [PATCH 56/58] Update documentation GCC version requirement to v13 and C++20 --- docs/source/adv_install.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/adv_install.rst b/docs/source/adv_install.rst index 6bf0177a0..2122ccf39 100644 --- a/docs/source/adv_install.rst +++ b/docs/source/adv_install.rst @@ -15,7 +15,7 @@ Cytnx requires the following minimum dependencies: * make * Boost v1.53+ [check_deleted, atomicadd, intrusive_ptr] * openblas (or mkl, see below) -* gcc v6+ (or icpc, see below) (recommand latest or equivalent clang on Mac/Linux with C++11 support) (required -std=c++11) +* gcc v13+ (or icpc, see below) (recommand latest or equivalent clang on Mac/Linux with C++20 support) (required -std=c++20) In addition, you might want to install the following optional dependencies if you want Cytnx to compile with features like openmp, mkl and/or CUDA support. From 6869902e9f7474dadcbf254b36004ce806926655 Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 27 Nov 2025 22:40:12 +0800 Subject: [PATCH 57/58] Change branch for documentation workflow --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 47671c08c..c35fe7534 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,7 +3,7 @@ name: Publish Sphinx Documentation on: push: branches: - - master + - haoti/doc_update jobs: publish_sphinx_docs: From 4d4e4531e40d6956b8f3e2248d02cbe28c7db04e Mon Sep 17 00:00:00 2001 From: hunghaoti <115763164+hunghaoti@users.noreply.github.com> Date: Thu, 27 Nov 2025 22:44:49 +0800 Subject: [PATCH 58/58] Change trigger branch for docs workflow to master --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c35fe7534..47671c08c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,7 +3,7 @@ name: Publish Sphinx Documentation on: push: branches: - - haoti/doc_update + - master jobs: publish_sphinx_docs: