From 88f9aec41fdfb21295bb89296b1fbcdcd16371b5 Mon Sep 17 00:00:00 2001 From: gg12 darfren Date: Sat, 21 Sep 2024 09:46:46 +0400 Subject: [PATCH] =?UTF-8?q?=D1=8B=D0=B0=D0=B2=D1=8B=D0=B2=D0=B0=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .flake8 | 2 + .gitattributes | 1 + .gitignore | 278 ++ .vscode/extensions.json | 13 + .vscode/launch.json | 16 + .vscode/settings.json | 38 + assets/lec2-split.png | Bin 0 -> 64794 bytes assets/quantile.png | Bin 0 -> 113581 bytes backend/__init__.py | 52 + backend/api.py | 57 + backend/service.py | 59 + data/countries-continents-capitals.csv | 235 ++ data/dollar.csv | 244 ++ data/titanic.csv | 892 ++++++ data/world-population-by-country-2020.csv | 236 ++ data/world-population-forcast-2020-2050.csv | 8 + docs/path1.png | Bin 0 -> 22640 bytes docs/path2.png | Bin 0 -> 76078 bytes docs/path3.png | Bin 0 -> 132359 bytes docs/path4.png | Bin 0 -> 39117 bytes lec1.ipynb | 737 +++++ lec2.ipynb | 1085 +++++++ mai | 1 - poetry.lock | 3116 +++++++++++++++++++ poetry.toml | 2 + pyproject.toml | 24 + readme.md | 55 + run.py | 16 + 28 files changed, 7166 insertions(+), 1 deletion(-) create mode 100644 .flake8 create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 assets/lec2-split.png create mode 100644 assets/quantile.png create mode 100644 backend/__init__.py create mode 100644 backend/api.py create mode 100644 backend/service.py create mode 100644 data/countries-continents-capitals.csv create mode 100644 data/dollar.csv create mode 100644 data/titanic.csv create mode 100644 data/world-population-by-country-2020.csv create mode 100644 data/world-population-forcast-2020-2050.csv create mode 100644 docs/path1.png create mode 100644 docs/path2.png create mode 100644 docs/path3.png create mode 100644 docs/path4.png create mode 100644 lec1.ipynb create mode 100644 lec2.ipynb delete mode 160000 mai create mode 100644 poetry.lock create mode 100644 poetry.toml create mode 100644 pyproject.toml create mode 100644 readme.md create mode 100644 run.py diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..79a16af --- /dev/null +++ b/.flake8 @@ -0,0 +1,2 @@ +[flake8] +max-line-length = 120 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..a550b61 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=crlf \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d9d355f --- /dev/null +++ b/.gitignore @@ -0,0 +1,278 @@ + +# Created by https://www.toptal.com/developers/gitignore/api/python,pycharm+all +# Edit at https://www.toptal.com/developers/gitignore?templates=python,pycharm+all + +### PyCharm+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### PyCharm+all Patch ### +# Ignores the whole .idea folder and all .iml files +# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 + +.idea/* + +# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 + +*.iml +modules.xml +.idea/misc.xml +*.ipr + +# Sonarlint plugin +.idea/sonarlint + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintainted in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# End of https://www.toptal.com/developers/gitignore/api/python,pycharm+all + +# JS +node_modules/ + +test.csv \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..37c2cc0 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,13 @@ +{ + "recommendations": [ + "ms-python.black-formatter", + "ms-python.flake8", + "ms-python.isort", + "ms-toolsai.jupyter", + "ms-toolsai.datawrangler", + "ms-python.python", + "donjayamanne.python-environment-manager", + // optional + "usernamehw.errorlens" + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..a43b215 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "mai-service", + "type": "debugpy", + "request": "launch", + "program": "run.py", + "console": "integratedTerminal", + "justMyCode": true + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..06082f2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,38 @@ +{ + "files.autoSave": "onFocusChange", + "files.exclude": { + "**/__pycache__": true + }, + "editor.detectIndentation": false, + "editor.formatOnType": false, + "editor.formatOnPaste": true, + "editor.formatOnSave": true, + "editor.tabSize": 4, + "editor.insertSpaces": true, + "editor.codeActionsOnSave": { + "source.organizeImports": "explicit", + "source.sortImports": "explicit" + }, + "editor.stickyScroll.enabled": false, + "diffEditor.ignoreTrimWhitespace": false, + "debug.showVariableTypes": true, + "workbench.editor.highlightModifiedTabs": true, + "git.suggestSmartCommit": false, + "git.autofetch": true, + "git.openRepositoryInParentFolders": "always", + "git.confirmSync": false, + "errorLens.gutterIconsEnabled": true, + "errorLens.messageEnabled": false, + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter", + }, + "python.languageServer": "Pylance", + "python.analysis.typeCheckingMode": "basic", + "python.analysis.autoImportCompletions": true, + "isort.args": [ + "--profile", + "black" + ], + "notebook.lineNumbers": "on", + "notebook.output.minimalErrorRendering": true, +} \ No newline at end of file diff --git a/assets/lec2-split.png b/assets/lec2-split.png new file mode 100644 index 0000000000000000000000000000000000000000..fad816002d2a8e70511aba4576d76473857b6434 GIT binary patch literal 64794 zcmeFYWmud`(=dnycXv%l(81lE;O_43?gV#8aCe75aCZsr?(PuWcOdWkob&9r`+t8d z*UelreYaFsSC?0)th6WsEG{ev2nd3>n2eK6z~2#}0neQ{Tim@yp1rqg|KK5z5B5enD3uZ4fp* zV-&4ilL#5=jt^1D7rcQFY?2=l84O3)myZ}ko>;`Y3Z$CbaQRd91v!{~kHjZ1LY=;I zL1~o4PV}l1OYEqds2h-o%)vpKmna^)S>lJC166A%kW*o?7*+xU9B|uB9FS?GDf+GY z0p|sX7qE_DMTZdPqnBm)0eL};@-a9;@F+{a2%^OIM!;#javWwK-Vx?7@RZ+c z9Qg|K0W4RSLGs(RE~6{vG2~3u0=kMq6d}_Yer|DLbm#s=@#OU6@bra0QupgQu@DMdKz_hTz;ggg7jqYg z-j5<_rqAvuTOr9k%suw{WEWf)Bo_psLJXvh-*;mn@@DevC-o+U<%td$)xKE@BN7+J z?QBbJr6W$X93ee}?$;*FX_)Y$mV265#e&;)^Qm=GiahIH0zI^dynZ4FdEhYbq z;*5+_wt1U*@}b;}MM>o}w7Ic4s5y0Qym`F&=jqd;$RdRqg6Z7pUo)&FbEP`+MAIE+ zNoEjcwoI^0H)d%w`-M40ebXS6sZCK$neG`JeBG17W|HdU4o)8lF7$ytp; zzvM6T3jCvTQYVrfNxT@Jp`Tfvhu~Xrycru9S%yv1?7aF!%ahgH)HTaV%gM_%)OBib z7Wo&|7By-$YKRW9oXQ+`52$As${n=#W+WFS$C8heg&CuVTPop>)DQahX{S~SJ(OI8 zWOM*RGG+A&XJxBYUQKP4-UZ&pFBH!t;3aouKlLFC=hB!)j2N9ltQoDc*N zc7i+*nh``Jha)#5XK|TvxEaWCn{iCA6LDQ|ky5dfgi@$k&FC6!zS21{?xdd5oiIF` z8e1or)~%NHT8?WDrI}^etm?ju`|EEQ#9GK%*-fEZ92h4XH4atx!`9i?ZE7f~YyAo; z*DCuk+g#>hMaOc=LYiux%2{Wq!Mnt@1i8e+*`yV)qTYnJ}-v&fJ!uu)af=Lzyq(1{dLuGr?kBw;NhbK!5|S5xPap`+mvHZflzDnt(& z&(a5XYj!IKq{DpvV{5}CrNH8hfp|GbWh}! z1&I^juD#P@LXSv4WYDBvTotZ=WWd{V-)|M=foy{Uh(42)l@gOGlDJF4PEw645=)7% zAwBq7EnQ9A$owHOF2EsehK3xG$!3IF5^V6_1Kac}15Ke|xUaLplkqO~@ zLXvXkO*}?#iE(5e<5cNn@B-*D!EqwKjx>cy$WbrN2G7{}?=OSc+in+i7eRMCPYf?q z{JvQN=j4n`4l=v_WkqEvW%PPEKPm7s(-XV|@<@K8rVmYwsl`oE)nQ_VVKfppE;$5$ z+K2;}7i;2Mq|7DR-78rZc=^@>7~`yDIGfrG=oL*Y0-(?|Hcgu!1m%xie!KKh3)1e> zo^4#Vy-(TkqIyz3)`BUQ)LCf!?W)vS;x|K5YB7gAXIOskRsOsfS9>=1sltM4oJv(| z{8exO2_cX&Fs_U9hPqNz+nCQ~Ak>%wuaO6W^Qi)yz_% zui$iqHr2(Z(;CI9v3178!Yb5V+*|y$Zoq0JKVmXx@^%T!s$G$#*>VhV6Y(BV*iFdo zNcwxahO>A1y2^6NRi$OgWci}(wH=np-1SOZGv4j~3B~H=j!Ea3%WcrHRRv2a?Nabc zV*S~|OTe>Md&9H53*R2!g`W*`4z943gpAzEPHFBfML6c#i(JcHHgYxO^*0&NoD&PX z3(ilh&1>e12uoBl<{8VLVXh_X)AI*UQ)C32Q7R^`CJ&rgPCRU>jyJoFZhK8*!I|x@ zBzIj4wCxpBSgo{mI)54*H>;O+5~yfZQYtxgxL=wt&-$CSno=tpwJlEU&diR|r#udu z#;zGz!E7`e23y>AW|uWu>$hyyTEDxC+9f);oM)V`rarpeiV~H1hq$R;iJizT7_9Wq z_^7^2n)lpSSlEc8pidN6iM&F3m)yfvA>4Jc8xpDx%S{XU&5xZJhT03yK za+ALI-~fJqYX*=Kzjtx8;3id-k|h?ju{R=Sre&g~Bjtf5CMM>xH#Fvu7ZUlO;lN+q zq^6FJwj2O}i;D}b3nQ(Ky$OJxot+&(#{ghppaJ%vad5MC)N`e=b|CvZ$^XtHWaMCA zZ)WRgW@AnKHm{z(jguocDe2on|M~k1r;)4KKPy=~{Li+48w9+)0npRZ0sfzcIhq;& zzYKeO^LN<$zWy%9^)?xYteLBkrJ9hLm65dr5HucoCMG(r_jUe{SN}lzuc4~{3}s+u z`LCh>diAfNZ?JI4*qa#v(e#E49(pdo|Izk8{kZ^dnEDsy{vOMFEAU)+V7UPQIb$B! z&7L!95D-2PaUp(1SJ2~DIL#kQFa575ejA%0hrZybU}0E}GeWPfB+nk=A8DGB7E3hL zEp8ben^RI7o$V}^mYt~_n)h!cmY5h1jMbZV%?~LH3S6NSg#ut=9*vS-_P7|q9kz@$ zA$J|L0VWxHX_sk3k2t|&o|$L&8Hnv65ag)Dp#OUOj>y-YS5*E8{HyKleIST1GcWW< zKCpkDb1E2F#n-RCEol&9zW+SSq3=J`Q#xXbsWh4-ZuUqa5N*`gNf~#T#C;*sB0+>} zf32WI1w&{C@agu*VkJ`)F33aJPa@VTsvHNuO>_)B{@jfS!}#xM#j@-mzLenght~op z`R7GP6mU8MRO1*Bn13F=EofOq)+j8C@BeP~B>)XG=lnSQ-}~)D$ttqO2h5WH8w;SE zVCXZ>VoCh}+AbehBpILF3Y&JB)PJ=)1Hn3pq5JkPpnM^4MSXLc>{?V)|Eu*F2-Xsb z9^}731%Y7#?!alwwTk7xTIYda)d_aN|JN~?;)8}A_Fd>(y|tPefmw$j%JHxK&egsB zdn&UK%jGg|BJbdh|9~JBz3N?Zfy7BIW5|+3YA9XK^1N5Z*t|C4)wgi#_K<7=U`Aiv z^8M-aQnmkCy@6Ft{tg1)FH|5(lv^x;=h`s?v%L>%d)$IYIRt-xa2V~aj=?Z$vSpr( z$0h53ECOvl_~-bbbYOoLhJszGA}ZnX^BW!uN%`bX6zjizBLTu`0|7f`te<`N`MbL+ z6N}VQh?RwmUaq*LC=y)f@^3Eu>;15$2ak>O8^w=C&O%-L*4XHq;7DE{qzg4W`_Q*O zP?$JW%@soP=HdNd*}3kf^68uFeQ5x&fDjsex^wq{jD!23-}d+LYmk8m!UP+!ej^a# z@vF!q3W6M|9CtCvj|I1m-HvD()`=CQH=TGWTMFG&v@Gymv!~r~6!9Suh}~D>pdAyI zd50id*R3U$i7LGaH{A+j1;qIUFod!1bi~96N~>sT++msVcB+S@ve~Q;!bj3+-Q58E z9$v%*vYkTsme*OH9>8+sUHzmSIW9I=^{=YruNyxQxG5zgQ!2;Acs?DTbp}ldl$SCk z@yvHCezW;|bTs_F35N+;!#r=0XDNeC*2P9AzQl(rDy09AD()gJ@BF6Vxqh^hA7T!; zU9==7@S`NqeqhsRd^pOTqXT*~o}RboII$Q~V*W(FL6?#aq^e(J#!zq5%VPN<3ZNfh zY*?1%cWo9L&?!^3X9(BCpngN85K=G2i}N(cSVL$`ae7^MFI zlNP-I^kL5Bp6#4@W5)z|Wg8b*Yicf_PW&&W83J!WD*PurQsB}1krT`6ArnsdCbkoy z=KQ9+s%yjk!o?M4NRIYST)tDNMI+*4W>CX^Z%E~9CYOx~L=c7BsDSBuasx-kns2B) zKy9U;*3P#j(0iK^NI~pi1l}mcJ52^MZx9i8bx3K2c7$XL$zg%ULy^u{lUiob-(*B| zsi>-WC6IhRK?d?0KGb*UDIxY>CMf3@DBf0|7R+ivEiO=|)eah3((W)Q?3N z$OEKSXb}_sH9-dskZE#mX>BC^XCdI1MRXwDvN$!fsRH+_LP|&523TzYpf4Jy)hv!7 zFhH{WMP5fGSqIxpdlXS6kXzZ3fW?wMY@Tp_i(sq(UT{l-(+c}5()vntXN@j2?z#zuV(!#LB@FiG&u3 zdFq=fwY|MV-hNICb`t%XJzEsZ)l9h}Q@Ab0TT|e!yHRTM;i87Z=&I@|! zVlR`p?r#!qEnQ*U4m8*TyLj5no!6KO>&_iOndrjEhm-cU1G#k3C~}w6Aei}(z4^So zI`n1sPG2(yuev%sHU}-iMvorph&o|vduPMFm)u~1@MHZBqDY5De)vw^8^_# zgi(U55sCG(>KGCWLoeGY*!1M6G6w~KdrTPxE-Hj-vpI$k|4t^P;{b|cjpT!qqUQ{_YlUD%s&Q^VofcSD=@fb@63Tq}3KRkcV&{_ET zDt=h=PNByKd?l^-adr{% z=1!Ka+vV(|~3B3KdM!`njpej)$A*(MiuByn{?U{%rhd#o(4!p7ziPsiFt3q#z zqBYgc2(DU9UNIBnpu(v8DIE;8*(kTVzimc+`R7_*;6OauMvpY<4LNtGh;$6VgrgLHU$rg3ikr!pc5l!gf94qrMRnEUAZN z6dhEG2)tXai8(h+AO!cg+qzZgiUD9ky~wKPGtHE%s6ge*?#Rx7aF>#1d#t15!_g2+T3W7T%-Z-Nfp8K>gpI<6;UL^pJW#IAWU={j48(PpN zO31f?>E1_$;HFpdFH#<0*jOB#{ zogKdoG82YVTT` zW(r@hj*z_>SQ-})cj0K*3{IcG$b#xz+i9k_rAHw1U`u~`#qAKplKqZ&87AEi z%7pdP$1yPXL!O$<&wZK;J515uAr;S5@5{NOnpH`7(u|_UGjNfDv)cReS4@pNLk`Er zfxy&IfjPdKs?>k~{-!c{fyqnG<;xm1)|%2%|D5m0hxt%z7^~E;`okNqWzb zCzi@-h<`PsQZyhVyp{pklL4dQTTj&S?z~;|iS{^a#ZoU<4mot78K-LgAKS$*foy%% zUaRW!o4P<|docOQ^Sl#Ewb_|QUO}O>(C1s7&NV&KU#TgU#f=QqS&&>}9f(0clgesq zN6~21>5il@-<>v}>C$1BiOiL2u--v9*8kpuc?ShZj!tjnc;phZ^%?XtiS6CF9@ovh z0W>0FUjz>0Pp?O3PJWtT4ztOR7mL|SBHR|U#4YT#;l(x>yQBNzGcs!-b0((QFY#ny zgcEQ?)L|n2Yn7HoFtl@sr-6Bi26R$W5Ru6#vZeU7JAO&FXXehKjQZy@acv>ait%pm zY;p9BSB=`x6^eq5i1QUr={-MOhbcYGR~aB2Qj(B>_VY9@XEjNwQP>MH86*AauNpD= zVT@)B-*bg+leG-es)M!cOP%)=h6r_q6rel>+L_UwgQA30rp*C@LJ1znO4JkQwUa}S zkpKwowB^+UKTtJ*5?}S~P_$mk#5-;N1fl()i9ZMWKN=P_W$3*!=;@cf5)58_6H~Sq z=Fjlj43)XX>Y<2800}?G`3XeC{xy>z5aGdre|R^|d`p2e=p4^E;ugn; zh89yn$mx76`&59pcy+$fJ<<3}){`ck$y_fKvx$LI2ilZ10B--JRXX&I5XiYGmNn?3=oj?_-Q%qATM8)+V!JDVFD5xj`t@#cQ(s@;UocG zls-#A^Jr~HSHmU7DiTvKgt1ii6#DQ+Mb5+zLkTRy#riml;? z8)hiHEZCKBSfSBW+7H%wIKldIbTWo(~_EHP&YlORZA9b-ydMiY9)4J&%*mMV+ zun|$Q8tDy^TFB9qHb1%uL=<4>cWtN1r^c&KA7O1!c~ft1J^pe||AOOCc!Qi^23}`1 zR9!TVlKssKg~riU&6-}m*ONxUHn08s#I_s3U(GxpfXTb8QDcWN)^0{JD~0t$-1Bst zfqMmy#;ZQ64v??4{NDe5i&udTkNSGf-}f~k4!JJi9zbg3vD<`cIN8}r+7 zx-wPt0>eXzKNq8TT_;_mw&h(}x^iljqS_-n%%a}>A!iiJihmd`mQohq8mSqGzfb3o``#jV3N6%(Y;b$j5 z9x8%M7dRdGY~h`8N~)bw$(_6N*C;YE)x@FR=p;Eil#nA7U(sD*{k_SsFd z@*kg3u{gSYD1mXps;F z0_x8X+Gb(KMqq+ZO*vY&f;Vgm_DOFu*#eVae=FlkwyJ*Y1He)ey!z5P4Y9uIbEYnD zdtRa02@uQLf!+@kz5+^`zSUNbqZ7rT$)oXXCxL?*PPQrap)_iVA#)u2Uh`IHA0kt# zh!^DAgmA=R(%RKFOG=?Wa}>(Ur>4#8V6gRyKeCvJB2fgs7+O<5w}(7G7KVHXE2y~~ zU~YNPr-poRC6V1;2s8hlJ+Ha4$qk}lRD-sG`=`pt5b+|{)S`CjD^Hy^9q~c27{nU! zH+WpPWA3=f*7Lq20HUvoIOdD@B3w8m&iRf8lr6nA9U%^Sgj|f1P)!UU;CsH7dPnlR zy5$6Yt}*6x%53r#OzJD2H8+pTsb+6w6A40n%8{rbqzUXdtciYolzehzFVBEzJ7>`9 zLn<3FBFg$h*U^L-iLX?$irN${#jUo2KLP&WfyL^1(&;n%gzE#R8!)wTCk51EHI@>D zi6P^zQSy?WNu;ZcH#%iYN}oCuPTS|*5GmgEUmH^ol z{Qxs)+3~{7jJUL@*J|fOgk*Tk9pn?XVbP5D!A0y9go{m#x}=P$0c^<@2X6(c59qw9C$V7;V z`NB9%q~cZUC_k9MA%tL~hl&;mlXms{e)otr2;Ib$({V!^l~Aq0un4A*b{efk-Jf|0 z$sEV~WrHC4gRa0N4H*t*ZYD%~XcZ})UOmbNS9J?Ihj3Y|Av{ENx)87s&`8z4Fl=w? zZfdtz-b$|pedt?ae|*0w+7fGR%?wg0i5AXuDP-D4Bf_8IM2GM?IB9T~4sK^6qx;^8E4kjG3kHyIQK-cc?lc)F{wj(N= zibm7k2G2um6{mJ@Ts@3vOyvv4F3MF|85>q1^E_x);u%`aOehiI$IahvC|k`fO;|g8 zQ7~PfIfv3JCv~60C-$d{+RB%nm`&Ktf^A)={B@=vD&Kr$z<>hZZS;{yKb&~SHMHeo z4Ga?ZRZMs2>kh!D3U#`A(iar`hj4^Fzk!B$;D@N*8n>tG_|zljYmWqMm2YvjJM-k2 zc+zKX;HZjf^NU$Sc}W%J`k!tJuxY02o|mG`6uS@@PNC{f=tRJ(%Euhu4}a{9{ami> zEQ@8qz#K0(DlF{x>i*R3Aa8a(EH3!6rWSe)I3*Tt?^ zHu6MLDs3^?`Qa3+{(* zmVe>;W2-5u!i4b6rl?T?(=3|TKBL|f2AdPls;)+LS#iR;IaxB96R5Xdc{3>>prDrG zYm4EPu&7hXg&ajns?7!mpb>I<$jP;0{DMTBD_q(r0avpn+0p1Z?k;w%Gv!pS>zz-IW-7AfaLx1U? z4-nt~$QFU$3+I@M=P+++GDL=S#xzpuy*nr3)z>PZ-;}u82fbS=*Rr*|1f^d7ys1Dm z7-(($g?t6opYQz^YP;XXYZl<;<^9yI zQmO51WJO~zd(6{CS>C_Kd8+ES+FKD zN49@FX{EIX`imt*HZtjQE0L#n=36fCC)dM0PMH?YdXdUuxb^^zEU-7>|A=S~Cf7@Hd zUX(Z{RE-a}nW6~-+!Vqfp7}2YTdY?Cx^J6lbJTNT}5HvhuwOB zp|V%vQEqXD9o&rb(MH898HVW{hy}gdBVUSC<)X9BQa`pV>h@ujI+n;rv=bs+yWjsr-USgJC5kDn7496f>lm=8Su_w=|RH|ojo1cYmYt?=V}45&^a}wVCN)Td^}>C;3Oa@ zc#@+#ASF+$-2#n-gcJ}E&>=V92xz+lOQhB6B8%p-fBt5bL-l%9$h#5Ay86?i+@L?| z?rtlZ-gp?hxwUT6bhqQ^O+`lW38BgeLwb^d(< z8p`9*>f?ZSU4LC3$aJ+1ogJ#LQP>>!k%JKMj8$l8Xb^VOLG$NNC-cL#(rYc|C@ava zJLJ+gH}&uCroS*Q%vsg16j0w;Sjn}zUz=0wv@KgpGi_4(e>kE|TOPK#?lHX8qW9VDKr&(CS7np80=Zl(sv4Q3rEDE&_u7~nELi`;s zI2ST-91;26{h({IWBY)XdPa6Dws1J}`s?xQCUyeM+F7{(_SzC7x{n95^fdkY{Jpd) zT_@4KsLaL*Jm4ezO;@xitcB+o9ITyi#BC7d&4~HCA*2m6Uf9&Ssy13W0pa~{P-xE2 zZ8}bDIsX&X=YB}1Y%!Ln-UGZrZpdbsJvxF z98eZxd_il#UvC^&RY2r*B^N9hbD4N){#u-CTR*<>iKHkWef6Q&NbGD|8ni1S{A=0L zk1#==7gyV_*qHFw@}89|D>Usq2*6+ocHQCc*f{ILID+-kp5Jpf#NHRt&IvjTYfG6X zu+cUy@a;~-tJ+NP(UP$AuqIG6*sq}}5PG>^zT|?S( zV)voY3-UH!>Z7*0ZKOBu+X+OCYB1Bk+E*1)V-ry~pHZy1r`eP+s& z=&v&9|G~kaLr$S?G!5^7%i&mLe+QJx>S~oEJ2clXK=RR>EmMoBpsX{y*z8rtw;Wo! zc5|b*54cvsP8XKfyO^TKE{)eo)TcKHW<$Dm_+rz{1RSPp+3iEkB(ut?0NTd0_fTb38T2expUrxyFuByzhs+wfqX167R z&+U#b-y@Sm*I6Phk%7Bxrd6^CA6=Myy>O0}5P9wPm;_p!&V4U~-=#{p{f-5bp6nVbgr=3CRS7}g`nXga%)uEW&JWhw`){Q%u=okyB zD*2hWKo{v;&X(EpXkNZ{r0@_F$zdw~RWrLL%82Oq-l>qV(Jl-@RsZMb7-XfO?E26c z2LanTeJ1O5MXsNYgU~%rw0$Ke-(w98bfp_w0ex=q>+AQZjz?1j3Xm|JX^Elr1j48j zI9@4aikLck0{f$_jZ|EeD-&9V9xGYBTNm12+ETtT7r&^se*{Yorrp}#fepAhi>l%l z?mC%Zg)4>4G z^F6FQN2+^4bF7ZGXDQwh=Nr*M^4)Rj=QSV!?EdNg($>L2A)vZUWo`HK?W#v*^|_45 zC|w~?4V4NI!YfYu9T;8RIxA*hf%aKCKw70dt0b7Dd~Y&w*?xH@@Z=syWmwvRBBDOa zZiVd(Q)Or-Kew|Ko7LuRnXqq>V1Y4s{;u1_Ri)jBi4gDn_&E_p4`+FUtbLoTLAyq= z#K`!{%u+Rc(;1+5O&I%o(KufOTI$^K4zO__(BAa1>o z{^N%t4NHD_aQ+ustO-IxYLnzVCw28w9j|MpGM#q9mzNjU%MsR#wbvJw1A~QXqu)`1 z;7}=_5Oi_0gv|1iwY^{NO_m*}q}bg4Kwej9HUGF+#9*=O1Ew;eVC!8`*=!b6 z{$jre@Bflei;LkYBo?K(MCbBV(~K2GWwFRN|5sqm28#y6wTk=~XWAN+l{znxXe>?w z=|fV1)ss?g+PV|rf*UzGie2+(L4Ldnk+Cp_AwKXlqOm2#o;iTTJlOF7^IjfarBGbb2XkyrQ~vlU&~)L zK@HaY;4A6(8cm<83DFo7LBqJN=EgY9h%Z>5I8dj7L5@(#NqPUK#@+qJlU;+E-SByz zY)Q-ZReSLhH9tX7z$Q^s2Eq9oJwbgX|Qm< z+EHt<8^$SX4LNT1!0adnEi!79jqEU*j4C4Tkcu^)Pqgq&w9H>z9ZY>~Z1%XMwu`~M zS@>ll77B zJuhMunB}q9cnT#t^%X+jz#u-uNQ_G&yoy~uShM3Z&CITF1cQ$CI_Y=x@?GpXi3Do7 zKf{1YFQF!vfYhfNqqfS*N_opV=hRAOQA~QBCB?I7-WN7QY~H2qlaunE>AI_vy7KOK ztM)DQ;}?XICF9i1R+RvU90PZ4h|QI}-PObGaiiE@F*-27cYC^m0cwSVBN(=Gb>+B& zd#`_BK_grr91N{Q9=C(JV-M9kJ}ztIfKAc$dLGRC#p%$VM2=Fkf9Tg3Pk5rX`{3zU zGmO{cUt>Sq7BTAhAiYX7K&s)K`7_P2S`N|}VAxPV)l1U%jcvb_ORNJu_cNF#W>pEP zonp7pILU&*h<%=gC_lfSzFWecF+Yu0dA@C(<1;p|cS~80rPArvRxbV!)C^xJD=C*TMa2$*3Rj9i2sQ~u@Ss2cbZ_!S1!fZz$G* zz(&xlJMxk3t3R%DL2Nr80gdBCeY1Lk8E_;nUo0KZ36>@1F(s{^mMO^1IK^U0kNUPq zK2Py!jy-_8c1|eo;L@D# zpG8*Znu#$hD{G_KME5Pr;qJ?1c50oeMRnjwWa5XgIV>sd+>I5Ao>y0Y%bS<8>x*pQ z?fX(JtnXKE0W*&kUs&<<^%a%W$5O&9lvE9BUb?wD$kT2Rj#k<_#O$+CN4!O z8WGws$7j<)HNAw8mzSq=`(xN!zvRroAaZ>;Q)=}~>&ElV9(FJ5-_3*10^1aOn$kF< zyer)ZfXJyI?>0JU6f<))=mLAXiVVvdWlQ%%Sj!`0&qaAEFiRnupC(#V_m5j4-c(^ADkp<>!WCk_h{jNFlckGtdX$^;dCk9Oc~ zt(1wL)(zkPJ+U!Yjm0<#Q}B6Nwl&+u2!>}NJ^Jx96y3iLxw34O$yxWY#1f6R?rC-* z-0ftY5PKD8VBQ1%)@G1ZyKyVW3a-EbDFW|H+3y{Wr@7^Lkx05sc}r~{!qx&rUwYW) z;-;T0(Pt!W4^B8qjf4ZNYpOfsfl42jO9E>zOH8(1}2eN$8-m-PNQoBfE`3#^38W!bc zhh)9##807etZ6Xo5FSR>@W$!_ zr%H(ClavC%>gf&29$WNs9~@1BL5H?y8R)C$Cq&=*eK zQN8X0rHZ92jU-%DYJp9Rc*P*&_)1fD2$`2gQ-^$?5P46k34LCDiHT|VZrH+V1gaFO z&wiNJ^X^)NPvds1Z6apBrwj`yiVFE7I(o_wyY?YguEXw$G^*4$gT$5pM{KWE+;1zw5378~`&+Z6=HxR>&zdv^fk|tL#6*G{5S?QTx|&$MjftF z<5%@crKIO+=-~?Me0-fY2V|SHcq2^ltw0dFMcLc<4&7c7h=;HD3SB<};3C*DV5y!4 z{~$-Cv*H>E8@Ji=;y8K$94W_oFNt>ame*;&j1BZ_!@)hySO~aUv`&b+`sQ(@MK?PA z4O>2b0){QU&uC0$M`08d75N^%4r$?8DTs+d*V(K^Wn~dBk!H*ZWbHeqAWw@3->ni7 z=v&W(1O~108B@$!eHAvWfkcwN@T*M3%A=VZS~*^`M4nZ%;c^iT8KCJ)abYw+=wxU{ zrP5jY7N4M|++S_QElnua|2epVpOF~svd^*e$5PjM(9aBwPb48bSZ<4<7Rn2?8H$g^ zN&Pk&zpyWL*g|?#t85iMACH1RZpQMsAK$k@$WTWrL9}Qx-4j)r{xK>Q{(dSeQEwh* zu93wB%+Iq$0S4S@?Q_{jZiM;z23}5Ve8LGho#&+_gZ_NiyYA|>j+TrhktJhjZHWv& z{Yn{$xz#JvuUn?86hCaLdgN_UrJkVoc!A3r2`eRP@xAUff{-IQcNLr!; z6T8bKRiS$~3X)6t5rWj!{E>wrnW)N_QHdVu%&(}{J2Qh*u7n(>G-G;O|afd2J@h6(}2IcimO4YJOuX=$fst~aIxibX1WsnQcjK2jXV zr}6pxyc=n2N`|*KHE6lI&FZ_B-Dj@)$AzIK;I;M1ESwyJ6r{$(dZ9|MHWAk z3^&NLmdmJ>kK3bBsVr7qAt+>j_dpU+3rqulsqY%D8a`SQ=L zpnxJy(CRD}I478JSjAPx=7HYVd5)Da$l*vNLEm7)HJ{YbZH~x3Le(Zih)oVGgPC80 z&a)@wua7vlw@97oNbr0+^&D4sKBUN$B0rq^7)V3Sq`QQ-!p7H8D8nlq;sLv>%NT_5 zr~9D>r z%)*FSdwQK)o|RZ^BR)?V7nH}vu0X_JBcTK02dQYU{Vh%D(V{|ctI&dha7ut&v1ek&}zEOHA1=Z6e7ZL;HrOan360r z^C$7zfNX-%w6mf!EA&Op+)gWMf4#ClTdD_En* z2@i1RbKxNfXG!ilQma)8Q$*?O;bubK8ot-JGta^9Pe<#4WZi@U@dTq2j6DdY5Lg(+im23N_ir8OEI4C&KETh?xFUo0kEAo2?Y6 z+Wu)tb$t%UtJgD}c1PWc%Yb^D>VIeeQJ=~HhcOhGX5BFeQ>Iam*#5Y3hHuSF+k1m1 z!?m%^ScJ3sZhz6&kmtrnPwSVScG>H>Dd~$glZdKV6XA|3CQ$x1WLT_Dbz3jsk$@eF zRWcB&J7RKw0(r8M$2!(&M;a=_L|Rm;{XK53c#h(|S=@9u6W(WEg>l~?%X%zXwW2qP z5StR^FJr`j^`vobe>`Jm-J&no>r8t`H+8DrM2>v054G5uxw8ZTf(c zmv2b&xEy#iAJ+N-YOvxhh@JJ}Ex-g~=*$l`C$WBav6aMN1pD>tu|ALP;dC+3u%5YQ z897?Sd9!@PtS{J=!mw9O)LT@X-{VuGVjcFqk&IE%z=%@frL9VQzF;{oAVGhA&olkFt_X35wNPvg1tkb30=BTQ&;SfL$0nP>w(5c!?~iBC zR~v=To92>NR14E1{in7^-49s5K*eX0_*T5&?++%K!UVH7n*OVFwor!1a-|6)onx?^ zJ?XP8+sBaJuet-Vhe!f z(}xfk0WZ?x`4<%5flxTCVnvmtqurhPyoMi46$)0)EsZFK9ppj*qs1KfXH;U=$3p0~1`C z&_K;&jlqVD?ON5hn}lk&39#vZ%!_A=;xne{o-*qhh6W^eB@elQvVVk#;))-_MY?PjYul1syV zE*ydA|CDTGoxIg+c-%&iS$~7bGjgBI6OTzSU;4=E6r0*SAf^2e0WFdP13qHk{8(tZPRt))|_p?(By#CzUSx4PoQBb;w-(Oi@v;ne{ST3iL%tDZ zXKEiwJpvfe3m&jcKf&VW?!F1M&b!C6BeD#Jg7)6L=D=rM`K|8^XTKdMvmY>56sNNF zCS?WNsG-H_XjZQ)0LIzqpF%g&W+3%0owjZbr2pthVYWCQW*lR~Unx-n7DTMLa8eum zE&O`R5np=K_?*uOL{9@C>MR%h-7a_8@fRcjtpQL(p5uBrjQ_czi!5(w@Oou)|4jPR zVvcs%VT`+|q@)^e2FSJjK1n3Z|BG(2yxww9iEd+m0n65SU+&0I(a=Z?XmP>UA>6|Wg{{YOC(9v+$=6cyCYbu3h zF4&T-G&36pwL6OIyR(H?VQi^U((JXg$i<3g%SzPnr2q~}rpLd*y0qs?;gCn&1YO9BF>f{NTDnoCcAaAXWzUt5_WO~QI~&{pl} zVuivtKcBM}k2fdKFfdjB3z9Dts;pk`AJra3qm7NdG2$68KMoF5qA{4>1puP{ z%c*=g>QQ$LFc9zFlnciYlRvTfT<8wIH>UgNkox~3>#L)(==N|0N$KwH?k?$Wq`Nz$ zyQNXOJEf8CZjkPh?(XysdcJeMd+%B<{&K;*Gkf0sdvYIz52xTj!0!k6fHZYR3qkJ8 zX)Gb?If;YEvdD55uHBYb?rFdQBu-CHm8~v=sDfGg&)%eUvtRiYA5slAG)2mon6_MG^&{G4w4hKs%laIq7c<8CbhC(`zv*6e;gKD#&M4ncCVnDp zQSd6s8F=Mel&CH_iqcSSCU*3NM_h$7>Tb0^35P#B9TXk2lR_YkJpCd_#D6}a_RDD) z&02;jYFt#H>?h+1I1D=Fa^!NfXn_(D6&1Ab7uagL&A+dUUj&K-cXm$(Uo9qoE6kb% z2D&lXgP{|{Mvr1_u>4f;?*Er^(iN8<8IgAQHHc>Lou0jpWbJvz&EAkB$PLThO`e|G z#@c&wQV^5i1TqSdHwDA-V$$|I#|opR2xCA#^31;iRJgSWXoY={dA`{c*Thc8Il^jH zY^&yrsv%BY-oh)@M!rm62Eg;gDc=9YZ;y1QFV@i3QYmfLFIL4ox?;XitI1~f7MZth zj_ehUfr>uI;OfIfMxhd^$0Fz<1OsfhdH4bMHM$Qp~o5Gj8$c;XI?Nn0!b(| z$5PO^V824Dt(pjxl+dY5l+0Whac@Qs{w0DxVC?~fW_%74&q`|fEXJzEx0r8Ia%DO9 z7!(Gk`oL681(TpAbby)p(|(kps_P~$zRw2XtAm1i)Xo)}L73_a<8y$065@;r)zX^HbP~Pu!Wls0ISk;ra{h1c_*fj7Q4}1F22zN@mML7#o0=rpk z8%SU;Y)=UHa*!PD%@iBUZOs3`7M~Qg*LP2_mP{2NQx)(P;WOj?ZN|=0Zu1gV6A`9y zhF9x#rA$70JaIwi?R=7;S7>iY$-@4Y3N3%UGueX%19!%kgv$#FcYc@Q0m@U;YMn6W zG$n_@0RjX$=$?Qa-SA=;SGz&Zqr(J~dEs9G2=4>NmgDoOx6K%V_uQ|C+4S$~`sSC? zIY&?tF3i!}8&0uu-oM}8eM53a%^&lHBj>%UZF4xju+VwqeT&HnR?uF z%#wqHHMZ5s^Gt6$&m|PaLpMJy=fD3BV)g2bI}r2~QjIII=!!&xplYymuRz<#hxt0C zPWfCOW!Xn)+$LcN(mt`II^@>&!2!uI{Zo^AUEhAaQgWuh&0g@P;&-MMYkZ6k`_ry+ z29@7fze6$zO5r&ER*kB^LQzYvnWak*;><2hLPnSO!7Wv$kS`rz^jkoxl(Kt7RGly3 zqNMBvpZqA3)h?mAhN8>Q94kTPLQw8~;a?|#exgQ!hAw~?Sgq;q*$dgxo9)GEr5CH< zO@xq|+zD*yL=9LRn8&`PlD`i{Bhc9#zFPm0wt%P#G9{{2o?K!`uAT~_VeT;M{MVWx zwJ7;vIvvjZxe1P$&|P=}dBM_^XD6Ll6d{dJoSM!EEP;14++N@PqfVO7wMg|$VrlwLw9*^%qgdPYPpK46cuRK&=;S` zOk;VANDTg<#f#3@>G8S1G#jdctX6ylwXsHiRr*Vz$hpVIH69Zx(fT;E*K^Hv@PiHw z4K=>pE-UKN`+Q!`Uw=7uy+6|XZ5cPB{GVaGIO-!+eFpLub^^Fpd->2}mFU%{$O`Pd z&1M>UT+ca}hVecDLZnZyH9+?JV+Yb`G#C0rzY?f70Ci*Sn&S&N{i@(kNhf@utydk<5a2$D`z^semcd%Hir!JuBn+eN&y~{j zySr_!wP2rqP0u6>@<3q2cPry)#-AbCm{SnV#-O6ZRv?`HY$ktAfc{SQPGMzTT%yAg zT&E)R(x317!gIqVR_|K~M>Hiys_t<0i#pMluS#1))tEnyk`-qrg0whHL7o*#J2~mYTGvmz%H8~A%i^{8-safTR;9Lf( z-isOD^zpKf6gC(#Sr}1@b=t+1bYF}G(b;k7f?C{gS$)^u^@2A)+mrN!e^ht>!3tz>>6DF)bI%h;W}-(`^R*GN zO|g_lfnb#|RB_q&b;RQJnxc0s*cab94bCJ$MPh2&wbiQ%mMRL0Rnt(>imQ?kScpX9 z`!(3Xbtd^P2Xe?{)iiyL>b=JQbblWFUft}GZHbbc8bKsnujV`Vmj3payjz!PvAX@4 z1ji}(jq^hAa_;_>740`sT|!c_8fT!>|NRB9L`Vof(lh^)?w18UQH&^lQGr5jAO6ma z8E~yd-=H_HjN@20!RX(e#r=sQE4n4D&JY4-?AI5GDDk>>MVLE8B4^rI+Otqx2b*&4 zo_t9u>L9UZd|9K(G!}waY`V>G0aDAhBn|QlO{-w;4^kiUBieBadD)PAYI^f9kwSGy zP@DNlwjROij!U%xSIPav{G(u{kv6R*r$69LlgZ>=%*l?9jO+!FrLf?teR|n{x(*~j zgTZ&$a_f--G+mS_S!JT+s!(TssDz(j3mVWBkL}z*x#7qXR~r5R0zWomTg~G?qSL#S zH$g_Ob95%g)Ogi~CO3-WG~A?*V+XgN!Ki6yn4Aw)j@LWZZL3zBoqGUBED|oR^}k_1 z@;3m0q@6o{`%H>5(koC{FZ$8r<0@c!2`5`}*#=w~5!5Tp;u)z_u z6FLDjmSfFg%j3(yz~J@zu!qU(Rt0F=|HW|p?u$Np5G8xe^Lo015ScT#=H|gHd3WlauVP z>m!T8pH?EHQst3a8d@clt@TIRw7-Er*>}8HW5Bo&g7DZw@ah)~gVBtMB$xE3VFB1Z zCd7g_$0(i*)Ac;lGp@$I>xlnOzWrFX5Uni2i6N<15Tbhq!4O9Yq--Eu+mb#F;5i68 zHF6ABplbDnSKNTsF+fDv@ULzl9Mf0SY3hK7HHaIXQo>!k7+v*GQ9u&Y&v0U>By0&} z;dhNdjxkXj(NvbI%~L-CmXZ*jvsM%|H0Fv%=h(ReHC^{U?l`l5z`6?9GcY4s=$YU+ zVDV@&7%4{Jd92Fv;F8<%`;k43`Yz)+l_(LBFTj~iNz)lB@f4d4UqZuwR55?o&1Y4q ztR*=bD#6P{1*S=m$5crxAJWm07?4r8@jY1I*ISiS$cn16eDyY6FJ!UiME>dX(m1EP zX2>>56LCOo3vuzZoEgc36MeKcb*X0nHJq+DD+G+8tWf>wlHY{+XJy5!`plb84fJaN zNU3ec{$uhPOscny#&tzUOCD?9FAMz_ndC!73cYL38Q!n@oJyV`JIOrJ4x@$J^m*90W+hcbBWUDVkbmZne%}`gSCam zfrisdJVRG;a_wd(XkaVo1&q_y;zpy%OmEI#A`&0Qf8V0sk+TBKG&S&zX^bc0o8>t5 z&kDA5wlas`-aWhILlEiOHYO_j*}0eyiK>T?kuY{fQ>6_Pjg;q7ZL@zTSx>G-Y%s?&gCW^COC}XcTNn<)kK<7Qjj*VNi&AE z#EQ`D&o})~dchx^gm6W%0P5;Iu~JMCk1LmBt$o@UP8A|o^m#$QwS80E32z(ECfksr z$-4S_Om{Mwu;4pk-N>SUmSWi3=h1z|tu1@}Xpx6SPh4_xCb!9_2w;|$J5K!NSQuwF z$~8|`WF{2P+>x3AB;TfYlJYm*1$MC)3-EbgovuSm7s!3sDpq0`uvHA25Qlp_v3%=N zd|a1Y^S3dxX%NvZKY>$Y-)>bmXLRc4EljIP?IA1waEn&fYkELd^G>S3pV|>__E{*@ zZS$aNA$xpayXH!@fqBz1|JW1?iGM|ahbbvUP|VwrZDk!mM7DS%qDNg0csE!udfy;$ z(nfmvw#*{nyw(#~^-eny4KW@4M}ppoyFF(l<-?BdBH?*YwRi(NO8M=^1U@r+S)0q& z5@9gLKEPUV;fI~}EMd}4{-PY-3kn)jsrDQbPyGf}sC+DCa2W7Ci+5s0E(B+A;`MC$ zvFqAY4R@?OtA5mPHeZ(dn$K;%>gu`c*fd-*H(@H$OT|Z^*eKiEGroz=wyVvH=okM~ zj%jB4*@MHO%a2FM=_!EK;dcI{`<~2xD7G>&YpzejVi6nup$4&{w^{akXyn|lE-LO^Xk$aX5L-=?>b4nX6$jL3 zz(A>53wP%8ef}{@kMaRMY%|@hV~N5BIt9H`gl@t7@AQc`MtwL_1|k zn@6NH-~RxN&7>uo&7{?BGvCfs$6T>M-^4~iIsrRp^1#VbDfNyqD!}p|stqavw{Q7V z$Vmoq8zpH5#l5()^^q8Z=NnGTAe^psTtfp#`~4;i5IpMmFF^&6EBGLBU9`Dh?N=Eo zWCMtkyjtLvMexxDqzr-hq&R;dS0ty~soF*^+S@32lm%1Y^lEgPF5kKQA(cm{^1oRERJZ(1$~hp)Na9GC|U>%+Ux`|)q6^GaNw z*mh2yO;z96!w>i08|iO;q&-IzeCM(5SKaMge;gnwtZ}!^Y({VOeXV7OvpwDc4Um!f z=&+4EJxBydP{xx5)WJ3GkAvL6@=gP&jJg>mj5-1Q@u9Suqc9Y6@-P0lpBY9-7cJqD ztLr=&1bmz%4l4Zi?;r)PaY$C)-j(~AQ-m?QpYKqG2hYH5H z8EcXfd%<#2fl|{l+1w_25WY7HW@2zsz%1;A$n!M$3)Ci8wXV|i>2 zXkKrnV^M9RTt_q)d8-P<-JgvYzcizes6Krc!EBexAKu54`YfE^|DG&3w;i!=sz4aG zUSjG^aekG0Q=G$8Ux4Z9(;~DyPyCVQRU zdDH38|5I51_v=gJQALY_hJ{_1FCa6XPf0Uyjq7tE|A+h_^mma26fm7N)%lbeK$t-l zIEY1lLd*MW1k{0q0HW0Y49S)N%+Z45<9V$Eqt|ZqdlQy-u{qAGt?iB%s_*ynzD`u< zjY%nuNb&x!tI?nQP0SG?T$C9>9vm9#>J3A2c(^oai4K9q3dqkV1=tp$@`X=k|5c0L zK|fmp;%Emp5stY9XfW{)FCih&pXppi^Ui=iLWDtABAP7puNpUVD&T+9iKf1=Li>NN zUflswCehp5#x1wau4mDJu1vznIPrf0q>1!5v=&FdY^wwc5hxfY+~&9^*W$wCdKzi7 zT%RNU760Gj5~2U@TQkH;(4tQqlG}bx$oWB0)>7Tx)>hz~6!r3S*YJ-_^Ovax0}20A z6X?U{FYtQt^)2>$vUG8N-dQM{#%S0J)x!L*D$I}4Z|W!2)bU<3bnENmk$SaZ@aheq zpLKS;-Y}R<=IRjrPXz{?0dJBbp|#7b8|cwoc~1a146ZI^->seRlU9hy|I}qd|3p&Y znqzAh)$*Vu1P-_yci-A-s#|OirV89P!zhj~Q~p()SuO}H0Jh?qaS!O@)fNobb#IPq zk2W2hCjEAT`5WMEf9h-NgDs37>;Z% z3p|-}$t>?>BnfG0VJ|OUK+HQCCYMQmcVKj~+yAv35BGofqLvz@Bu=$&{3jjs{zwF) z!={LK)8{^BEiQa^YfS#9V-`0LkEMSZ1pL4>)BHTG5d2=^{7ADaDf^rF&azp5|G@hO z=)s$S?L(|cE(0*-{Og1M{0QVH%^G3o`5^+^K?Qv3dvmhk;o$lJNS`xluAPotB>&G^ z|1}CMl8lGb#=(VaG_r{#w573ntNDuX?DmZ>IRDRY6#)Qu%ITMg=)P%+cRi-h?=$%` zN}&h)LUGuwKX&-Mlw7$1Z|k3b;Naj3HD(BcKxP?u@Gi|-n;!2UcQD@nJatDvBXggP z4$j&Fk;4P(Mhhfgy!3 zG#6U(b#~iIufcwdt!{?-WI5NwM6af@pfE+CoK}le$dH$ z{;jRN7O&z=FkW6>+sY&R`{t|eb>@?x!0K$EAIFjDRDr6J=2LD$M(2k&yL)$klN?Fo zTOnp^TLBUUh>)5dzunH-?qG+xdccz30l)Mnq!Y-bRRIykiQmsNGsun~cd+0w8Q;NS zvnrrFW}_tOI%~s-{+aOPW$5(qVoB#mi63xw5pG|wK&SsP{8J; z_n6#FK#`-12;EyTAYdy=tDpvvFp zSjbs(2P{JRKhy|Mu8Qt|`$DEk`gz(wQG9b0%We!_%xp?3SmXZirK9RLbwMvbTQ}qU zbfS=xYUwAcjjU+IVArP&py{X1F;qazLxX7Joa`8Jeju+P4rpMi*nvEkvqt-=*%V>s zSc~E+*_5P&SWrg8lJ(VbFK)7XOcTl?=0k5tel-oZn|jwzxvMVA)7^LB?~`5lz#R;a z*-3pIrxjD>BQjUD!f!kMstcPm4BliM-eW5M8*L*6F?x}EmNJd^j?y=qy#c{vqc2D7TXEwhz z1hSbWTk>h_aN8Y^U62GSvkw2fmA*4Uf)=%j0+kE#p2MOd2PNq(aF~`%dFe-M%dkid%$<# zIQC`i9t@_XDscsQdHr6a3Uu*k*|%BBM(`%NjJ@!@P#8WT=&qn;0RR1TU1n+RBPiSF zzGJlB4|aUE3`+7IuK-Iz;a&#{1LOkKn%4=9ZxrKP|?UMx5})c1Vh_( ztQVLB3)W+p_K9pVqu{IZ$$Vv&51Jjz+qZGD9~P4R=g-~1-nR4m`mFt_LWrc2XBxqC zWs3pT*x-XtbRV91j8biQGI-Y17!r6AgW;M35Sf2(Wc6NPPe_Eqs<*r%oqZ*J=AvJuM>ya&r836pArU5u*C@5$p(WF4?RX9I&2hd1%&NJis>cVq_gmj|_PA3KyKvzUoMz z7U`FJZRea66SWHABE^&QJ5gzb&Y}ERLQi!SzYoPZpE4Vby7~RJF``zSK;E;L1N7&> z?tZVc5;NVs6?OY_CsnA6p%{)0--Sm<|0d>M1i?srB;kg3>it4Xp3XPS-q)bmaPB3| zT5}}87+hsKh8>7Bk=Om^c3N-u-UnQaf_P^CYynWLmNQUC^OYerH8tA#>T82XKNED} zeV)1SIZmcyNFlh&>{^DckciUN5(_`U?~yPw!*{$WENy4fp+h@PD}?ZtxxG|%1tl9N zdchg#6?)rT%$XaZO3!~7p7X&=8>Tqkqo*oDVx!}0e#~n@T~&j1igPxisFtIF;WFH0 zE^$lLJXI`XO$(>E(T!H6lo%BqKi9uTSK69rR-OVC^o1=f6ull$U8~m!J&d#pbMr3W zRUuY=^*5S=7y!pv;|rSYrZ-#2w^dTm3*`(pV=wAl9DvD^yAs}iu|cZ+jamWrAStNx zE!{6g`X>wug6C)!*|G1^y@BQg8||7~wT#>%_*CQj#ex-HOILWfJ9JmukE1yw9;T$m z5Qf3$7n`QpjRuzm=B zo|udb9B{nlfy9iC%1j8Tg_odVVwx)qVEt#;ApqSLI$LRS+<{M?n+XaEieIiM#6Die zDMyL1D$N!J#s5I5T-sW*))+dQE{_yD9n48;yAScab& zPI@)GQ0+qeiCpfF+{A`F*ioj5FN3J>4bgKo-RYYiuqWN0*xQzgN7Y6@MqnMG2`MNK zhei!lNUsS=@Z_~HI{H<06~Z*RzK6Dy;<`8YWp4iJ6cU0nrfX$dW0DY)6hvZ%ME^Q0 zcZ=!DkaA&WFfvZ27rAeQQB~H7~7?=0R zU{2&+hnX2FbFTqQZ+qqm??twH_Jp@N;uk!O`so7=x7QmIOtE^!Aw!vrWg|;{5cucB zr~}7lG+-G7=I914DDh zM(^J#ZdWAxqm1SxHrAtnt}Zj1nn%Jkas9qRv}zdjWU-jS_EtuLAzn&MYB*{_IU1~I zV^Q7&?BzkdLDOhhU&?Rf<`Tl!4|9k8X(2#EI$5S829Z3kJJ3uVQN>=7{1`-VOBarg z;x(E4gBR{4C_!*EWf}9?&5YBeNMFlV+KVY7nrvzxb=2numDr^Jx;7M76v zuYnlU;|Qsq=s*Xz!!2{JpNZvtH7F!utmPRIkGe&*uPBDoRXc8}$G#`Klx6&~u8DKz z@45N{~DMB>QG-VnNM$LDuZN_G16lNtu zJF(1teSMM!-dDS_CTM#pZ^N)mXArc)zJq46oXaelq_f$hV$3931C?;ZAo|X%+NMH+ zg=U57#1Sn+!}Vg_(0k3{p^kN5c2?!ENU1LP9LHNcj6`q(`~k^WVt5yG-4#2bGRBD2 zG^iwg5GZH#2)_CLyz=C8X&$8D$q^$(LK!3S!=^J9QM%la;+ZiIqLP~6Ay8agMME(C zVAXEh5PUr-*@(P7i`{t$9bt1-%{cB69;T(aQ4b7^q{m(Da9`0e_-oEy9cy&`_0wLZ zr*CK#QQMGH#bM&rh_(l%s4Hk^>lz+-L~)2Oq|dVaWcWj&39U7~*6rmw?@@cnBQ&09 zpOH%McB-94N|8k#@n#-efP{55;E1iYSyp9B1Y*bf=fAoJhliE^H|LQ1W3ib20s=cq za6jkf&;dxnjf>kW^T{E%C=met^QN+wZM<|!y50{IWQKC_PdGaHDY!I!kt&|BTbhE( zp7+QviR?ineB1N#^!VM;D`LFZ7*-j%!&7omzi9U$f+<+rUNQooFIw$E((Uijh3NS>~>8E z`^%9*XTI@EOES4>$m)c2OrJKF zCQCUTZrEG7>xJwdJ7Ll+s?F7s$YBW9LAqzhzI+|Gv`!3)u7|e{HUJU*oFm%Rw8q#7u+T3CRBNdM1PXbk<$T({mj z#nOv3lPZ_^Mc{0?p)#E@XFr_Je>e)?j~QBg>9|8gl~v0<$UMXjd(w7Ne!Hxwmw*ZuWl6J6{DS6((sl;??EoH9{bNt zSzpWaCLlkVDN14=tiH0}pPa*y?y?HqG1^)1WO`8x+IgoySzjd=p>Ef($A(!W8TMN7 zY_R4Q)ron;mGY;^Xh)bsSUi8qS&QUgzL^RgE2w=%>PeXuCBW`eiipff3pPY=c6waVk6Z;Zoy zjPacj0n&#%7{Sm)?jknOyt<6Dvy|&Gl#ul)+)DaHfB{2t5pGh$jr%}*g`I;9yi{Ov zi3~bxjp!uUrU}mQRwP_BBUNnuG_0@cqp!gkDrtY5|2Vsq>3kq}<50_R1ct0@|NQv4 z{7?0}!&#UHTdbwbxL=u^4!O@E)+V1A@VhDb3DQmeAaMczPo=5`rz=fj^4ob|`C|i8 zsU;<*HL*37jo=Fjb}V8p52HX8(Zbi+Q_EE=h)~y*zpU;lGqW833MYEej&VO_SIwf* zquD1Q--v{Qpy2)7a7t)O;cV5>`&f4?WQ~&UIa>n$Cc}t+8;eg>AaJ7t*u|;q-lGu3!&HUsz<FDW}uy+QR@-J#_>U4vn>KUx1jeuWulC%`EYbC0gKgS-Xserl3Q7$vy}Ih88Cj z%Ur&(vkU?Pfmv-^MntI9hZ9kwA873jH?`8AqRTN~@l0s)MB^b#^rqe2g;c^LEVLD- zzsDv2EHx3-Y1$GyiNbK4`FPh}ZaxrRuz5B2Tj9_}1|w(nQ$VUE8wa|kAe=l>uC`2J zQAVRCMSv#9+6UX9;9$v0!nwJ_5IP#wvQ8j8MZJK+Vf3~b82y(BKURZNx+O6Qz5tbt zm}oPs^aKP13E34<7pf1Ke^x`O*RRhmw9+(`E-$tMd|kGY8y*pmXtFAcK~7U@mV&Zy zD26OEz$!AA@d#L2sfEf2@F~&D)%-m=>cRs@!``!)UT_=hn77R7K@5N9TVxig z;~7#p74roikNQPDPQc1Uv(cVtT$LurKJ)DkD~N*;laMfZ-P>>Qeza(KXHnnabTGw@ zjYTkr=^sRrR7J!LVpi)w8_8DU&+Iru{D?U-?e$pKszU)rjL?t%WLehMW7bPX>=&zrvJlE0k?t3{`J{i!R;avcC|)v)qluw z8t~g1Sbr9o59K)Y`^c|aDWG>Wz@|o*3*N^vtBL$JZnCpKLDLw({+pg)eCkA4T3&< zvn_OK@s7avnMo`XGe<~J&|nZxStXuaqOAnvpX;bY9{l;U{~M98{o}R8r;hga_Dkqo zi>C}#xHOpLk4<2sVk+{-~59B8jt8BD)Z^hXawa|TKoz;DhmnDzr1Ckh@P%Pi&b ziC!0eaH1Nmlq>~$2y7`PTO%GCA=o_k8*B+xd%Ji-oz0r2P?~oF?ybN#g{9=e%1nl` zjEmy$%w5a{xR8+ zO9ilWr=Mt|VGhMS6~484UMx0RqVhW53o=IphohF88QL2mO)6lH@o z>m7JD9g^}mTf-wXK$uf`(W+8GR}1V3oFL8h>ms=;qI{}uiD>k-Q2&g8(saORN}y61 z03jlADVSMBBhf|0Cyt9RsOx4^mSvxr8CkR^N~Fm#_~Ypg>Y~eYtIY&8fArpM)Qds0 z;jCu-rW3J}7b)YQD)OgDj%3l7=B;Xcreq5z>*m1JV~F5})gLA>9(SivKxqM1B#Umk zz(YMb!Mv^Q%@&NceL%Xw+p9Oj1oFX~3FvcwYs+Lq#=yYPsJP}Rw=^dQmk&4Z%UBIs zUXp&W-`}MMZD{H)D#7mF=UV=U;rni1pQc|cYZ1(z%u58-6XY`W<%2w@H_~`nQ(=Ux zL8IADZHVJHggM?_I36VMrDg*M`9-qF{LLj2gd|bznA02^#`6&4V@C1_SV+sMCgcRO zA3aX}(j>v}h9!E%Aw{#lF8hW4pu_Dd#T!t2LA9Qoj1$r_BT|(gRIL^0s4z5j-&j>r znC53^|DtX~dF<9hoX(XI$&#dGzww!wJ`vrkf9yS<2x4B))5w4PBd+ ztfo(DGSW-POpjF|Uj~3$T^}C?^ZUaO%1d>n>I^lvaGF(*SDlXiI$DByut>T0{>>(W zDy|NDco=s2@SW3O8WzE+wx@b^@_t$1-D)tL$aaI7b52)6(rnKdK0Fq2WMfQAv8Qla z5BCOkJNKSn*j*E~Yj9L!#0Z}^{&*#oUUf)#`+mh`Z&>Z7k2TV<)z{?En)?x9uP|?w z)uhP|INV;d>+Us7uNH#Fh7O)%n_i6dzV|hv_fsn)lgUkb0>lOo@Y>XVcFX9PrZ`0? z%ZDVXK4C2_Je1a4<@6oo-7`l;dE#HCe7_64T%%yKmCRXyzx155|G^%)P_4I1R`Cb&cabY^K)?AI>|j3_ZN zeL?zDY$PCRv39?LUF`@2)P)=q6RdZ*eppY0Ep{6z zQCcD)q1G7f0S;yUnrOd9pfxPhd`L*Hq5qi6O@byM7LG8psKxEas(gY?x!DJ48NqvA zDd&LMprQ>+ggO7yvdD8qkj^87Z6F|tEvKO+=+VGhizbq8t*$SjG<1Bt*MGfY+6f%dDPiTfd?R$y0K0EO^giv+I_+nNb?jaEE zQq(&OYuPa^`{ZzEK@`J(+5$%n1_Ujg{n=6s;7AI%=mys_-ADofT``l|AIx4q^e4Wt z{2gBu=>36;C_{jd7h5jZtozXO1&&42tRh$v1I6K&2>C7E{5%|cGG}?|X?!!JXRc$7 z1aAiijCa3tUzq}*JVoy5tIHnK;WSuhIW&H&Je2t=pEwfzS(E?F$b6N-z>X5d(;(~Z zKNMYuo-ZzIkQY&Lop5zmPfqHr@*-D$_RM$7rMy369qH~nN97+P#v(mFG!=YP_PjYz zx?^|~+D8EFm&NbdI98GPYFJSzBm?_;@d>%xL-B zQzF*k#f|n<4fu)pjl9LyqcngQvJWye6m59PY3gabhrsNL zvA_t?g$}i4Z?$`@zI~sr%)&>*75_U(#XiYT-}T^F9t%_ftjpU%D%-Y8rLVS2KyKPO z);8_&?hHXQsv_%cas;x00Y0#tOn-RYkF!wUDi18C3$a!o04H#-(N{jx+Mnq#EEQy% zH+6?BloGQ2Qw55gQ&TWjg%3Hxm2>CIp6Jj?cKT{c+-r-{@;MfCDjZICt|-wU$cWA@ z5|*$$Ob0H%mQmDQ>!215FX;^Oa&8sz>9owjr4|pv%rs7kWR#N-9Fu$i@5m_^7kbTC zOe<})6Tvt|RVV_2aC>*w$(J{VF4nq(rjpNg1-X9_{}u{$swY|W;{}n-t1Knwl}yT> zAy96+lH%<_h?OI}8YI}!2-BMQ#g*OEKp#Q=+Qt-4jbkj>?uhQtP?A)MAI=WS=w&}V z)5C+ge|$x6axUD({r+%7*&d@_)xCQr+bp@Vs?DWuhT^#jIA8ZLdURnxXEKLa%jNfa z1y^J#(dl^|LuZPXT=G*gLacmmH-9V58l7$_$Ii7zq@FOl>}C&c5>@+LuFz7*5OIxf z6HwG=;s=sSMMe2akQONxQY^bJ37&;>V zjPXYf?eErok%PTSWevBgdDb9Fg74l}%Y2A|+(O*hjAZg|`?Vuefeyw{%^pd9Oc{eY zf|h%IL!!Z~_Ye0bC9Bckz(*w=dMI{|7Jz2Emb^{^eP!;QO8iOHQ-q+!&jdVraD+O* z#s~uz=NE~L_{;g{^)y3Me#nGb{L~F~VGn9$xn`Pv%VCWgv{`J2GC?ad23s4EVREAV z-Du~Ur8rttQ&ht*O@1P^K9<>3^9&^$CxgYPt4Oza9l;IgF2ZJzJb7Qaq%?%Gm)94> z++W0TQ&1+fsC_JbFdpO|J|O z%HII7fjZmmnKj+Q{i66eP07r%QX{JX1eEMNW_h; z{gxYMN3I6nhwjL#KEL-y)o>SzW33IwXj(j4f{uWIYUm_J+eXXo)HFv4Ci_B6v%EGW zEu?~*iR2qUs5PLuQJ(kY$9~S^rpoqR-Qt9ZzlFz%yvAa|p$SS$_gr{n?iy=0^mf=B zflGqvz~XcyJw9C7QP=d`a&JL`L+b11ZlukU+i*wLF`sOt=@ z3a<9FmwY7q@Fg#=MjkC$0~#gKhK4&&wU*85-9VKzhXci6v9XybwQ$aSN4JRf^|kzD z39<%|sM5;qdB_N~wiDU@UDLG`SzgGpY3$(O z(nOVFwO^TIzL9I0UiRsw9ROZ^=Hf&qc_|rIt+INqTNT+-7@f<>xHLg zav;n>J?6X?)M2-lI&r24g3k>?Sv#duz~-K6O!)*C7mSS|FIJ+N$ZD_i6oyBI_sw04 z(FqZ*@Wg#W<|1_oAFI)jSmZFRs&9N@hfac(`kt9+?CjDABu?g!?zvBK{TU=PR(Q8%WHH5-_7 z`>|-F&FKVJ4RUf}>x*Ns=lwp6D{6vo6sO$~ndBk9Do-hj7NMw5YW39r(M41hlM)}} zA%bRSRpxkM0za<1E%>U#`rsnJNxfJ>_cy-IvVl}K+$M?Krct$hS6;#{Q-+zi8ZVZN z-nG-S=Ch#fCUFNkr@P{dn*^IS3vKqI`QwE~mA-%1eqH;g14!#%o&FHcf5&x|pm$+r zQm9l_j(b0wbtv~y$3(19_}H|XoxYC(7R-ojKgu@&Z#0f(A~_k8l#Fa6PM+W2rOO$p zTHofs?vUm=l3in;nwmQAMUnUG_L*00{=5@@{g9Pjruwm#(F@pwOBNrOu(ek4#IIVg z+1qi@-F14M8&s!C)lYX=FSPW6oKoSerl9azn!C#rlI~^EJL*(iASG)QCS{Rugr{@# zD&_9Yi}{EV^hD#UPGL`TCh?o9zhus^meZ8-F`ut5=A2^`R{xhG{IG1}kQoxhRl)vA z+jGHu1>0rU!?-X2SDQaRP@?4lU2CJ_w<&h^1b;Lqk$yvdfV`vINgfVS?aUkO?}H)r8wM!bGA zZoC~DTZIf860kl8v#4$2mahj{D_F|Ul!G7cf*Zq)*1EY?OAKPl&B9EbZC4tJdQy+F zuotzy;`3n({C;K`gik|x8&k8X!Q?WyKNV7aaoNCssXPF*Ro-48Knlx%Bu&W9uIfQE zl^XmFG7oU(y!D5FivU4EK`EFhbkVfKsb$ZvpBhW!K*Gm|N1huN;V&M-U>lp#(w!QG zH7i6XzHWE9yoO;`I$tYsYihG}#1#s9==;WW-J%r~Gz02JNgEJf)9TvINF~?!edJ2q zoI@Z8-8CNF7w#%b23E=0q;3FwqrcKq93j%0cmzw?2k`B>in~6&|+g}`LQ!} ztb@lsx7%L`o%DueEX^BSB5pY#qSN&ETQbsOa4^x}lbZI8M`$=~SQZ6*zkaouU>QW3 z4>oey3D;bL?4}P-?;bHe`r-@|_)BHTNXZg4IYqio(bGsbemR(zK^O7_CMl;hx>0de?~nUsJND~d3S;9pief$ZaEEIOj8v2iiFm=(rNoyD}+ zEM1C&0`W%q&CxSZ%rWus(OnnnYZ><& z4uyfSk$o3X0eC+Nuf*q5%VlL**@8%?D7mTM_mMGJtP*V$vD|#PNOr~d##y=EYa>VG4QI4*eAi%mDmum#T_=}BK)+(ADDg6zpV~OuW|WhY15Tw2(e|#y z?F8az+qr$$*GuhfiqSz=Z@UR(y{n4EV+bvIhWf90Q`H*C;4xF17|td~3g@PMvl9jt0tI2F6GBhJp@}P<63UQ(2MA9|u#vT{IEaLAarVMl>Rc?Daw|N0QSW`!#KLohH0_PdY z{LG~};v5H~O?ek#Dc%0)bqWC%5D@TYA(hmU2>cN90JLUVUSE`4x}}=|-@QJF6RuUF z%e9Gt$nFmcg+K&-C>P{C1g6SlfcTH;!fRmo-bWXp#^Aw@Xf&TtBx7c+;rD)Y%JZC{ zeFlzpFszM+N%12?0a()^wXAU+Q9n>xFQC1)s(MnakJ>_rg=Og-99cnY-8{7)eDO!Us(`bvPQv#zw(V> z%OPad>P z+vmp{BR^gpfs}9V9aomG0FsZ!MZH@8rLJbVZ2eZr_8WwR~=Jsy5wGLBS*tma>p_V$N;jPxLDk7o@Ni46uXL-ezw@xgUXWf zpM7*1rPscSRC?~ue>n#}VReK0`Snni7}?C;m0xwsA|UD_f>{4u7XCO${d#;4k@SN1 zTKc&@of9qlC*52LJs&KngrtDFwAyh^JTfc8)_BzV?zcv&*ws_?~61i4ldq@nB=M;!7s zzb^8Kg-kHXlkJ8YAPKv)NGUddtr}62dIeEgO2nWs1BKCZ+bdi zwbMdyV{@?_1_bnZb{trT!{3P(xkb8|jjalok&_<*Hj2A`C2t9Z9n=P!To1A?AFPpm<39UOHRN^oxX)BD+N2 zi;{UN-4L|JaX8bEOlE26?^)RNU2mQ=zM3%(2%Y|_e5(0!cWI(pFr8L3Ef(DWWsJDe z&D-0H>F_;9P2Z#&x#~|GU9ifc*`de78{hO<=a#zi_1QfrlEp;O{XNVM*U$ewjKVdJYTAGoKO1cN?C6Z96z7=P|8IF1X zckG1BaR2cWAqniVrD9jKBrno_q-|=4E=4Kqs_Q zVq%Gm^CYB+?aV{i$uZD#awhb!!OO@)Saa1Ns-y4vqH_=UW?j_MbqpTiDbcHu91uaH&E6 zzx*(TrF)v7{^6oNz_U&gEp*f)=A+Rp`bfjn^FN4PNN;aeN%ElIHJZzi&u4k7tf(A>@wAeV| zQZ3cq{3lnhPltX$x;;8}BB<({+q;~>G}}zl-w*#MEzF7g^aX2K+F03{^P9Y8Pc2tQ zuXA_`y%eJ>7~$7^ZFoq^X~A7xyjQ2Md83BS!X>I2$iWaDnMP(g>dzu9*0mmMq9sqX z(b-k$=@WGa=9f{ZYM66bXL~)7NqSz(|3X4L8vLKtE*j$D67BTzb3`c zTtWp=lf{c5fpAm;PDH>2sT#=(M)y7ZT&Pe^QS>^=S`>ggG0%CiFHv75P8uz9$~%$p zmF|5{-RY*#t?7e93EHD&@$&8alr}Of8E4dlcB|t_i>N8HbnhAnfG9Z ztI=UpO^p-R$MX3mF&jDWnOJT>H})%?@}JB7quU+*77Y1wOUFO}K`U9`PT)c{S%AW&I+X864%qOXmN_hj`R>kms3(a#l=6{iPnKhxDx zp#(tZjyMU${*8%jLS)4)(q1|{IC>ms67UHTlu$5F$=GqLi64h zB6e?@y#02-?eKB>A*)5&aAWRohZ?e$Gu(JS=0E2#NeK@00}6ew-YcuqS=ZYjN;zwm z$SZ4xB|M(}w7L>qEBtCJeH*!|Vy1-qDMGa}T*`Lsi!T)4Kc??5PP;f1d*VEHe zofr=>eAG6K;>g+VQ1t+d0>MOn1S?Bek|i3K22bRjLFp3hJT~(}Ygrm??hRswH~zb} z=*GB~Pj09fO}99baTeZxs7%aw-!R%ek9qLk06SETteL1B*#<$x3llC+?NYKjUeI{9uK==!P^V3EH3ak;=S| ziS|q+Y30vV|EON3E23X{iKl=3__UqTJxVUL&^tVd|T;E6{#BwE7MR8-R6 zi7_#Q0h8y3=HY$)iV6wm$&>D(O#p&dkBn}NjnQp7l2cUU*YOjDZN3#>p@OMAoFv|V z9cvPjr9~6c_1Zbq#Tl2T;D^~rvK~|D!Uh~xW=cFc&CXkS#GrDoY(ERz_zr~zf%MI8 zd=?t?UfBno?k@_w3evop2}nB$9QCPp$>pqMRfMn{!@9-zv|}07eUnNHXtGM=Jx)`! z$Lz3PIqYfi6gP3!i5SDWpvX*HPtUBBBF&rB@IT5ZeLv!%Y`QCD7n3xrvUqaH1KBfiz9hfrKaKfx% z5{{^?z>s_F5SE_F{o_q;o&I4Q3^kAae&VHqaR@zcAJni0up%8WZGe$y&> zGo$XSNUD?vCnJio8CN~d&v|)`K>NnVXkpx!_s45kXOB#d3_pIc!cyd=IiSdg*XK7L zhKUT55;cHDmX6sHY<(Nela7cR7ufBbWLh!)aza0W+Xp!xe()V~mCDkNaULrdJrhWj zD+zlDkMtkkkY}vqS#q0@g(KFq#Hqp>6lBhQ@<@=@f2~qx1}XHr z5kEru=5AJs>91qI8p}j_y^%s-w<^l`3ge}aF@0HBSbpl`SNt|DSQ=-VnH>WZL@&L1LQ?n(b5E;{}Jqi|=3G_R0Ylcg-InJfO0(Q_M4q6@^ zh@nicyS!-iuK6V>4C4%NnB=>*=L=IERW&5W?4nYnT5Z z(v$wyUOWFn32*)f7F(6T*_d#}MYhsty|sL$!!{=A^Qmtp$y$UOODkb-DNZFS;Z=5@ zj4~j)hN!-JH7ed%u~-sZ^~ijs$2ywAY^49S6vqZ*mp;KyU8~|(pHEB%%~L3~Qcj2T zRj7?r2S)nSsz0K03z&zLvPH6H6Z(H7;-a{Gxfq;e37&nkdm|M|f@u4J+K*4FsL{j=zINq%tEAJ(5d7!E zok;>k?uJN|cV)(gF3+UDdHg;4`EG@5r+|p{gtnD(?qu;k!u2T~8l|%lEi{|kqw=*u(^kr95IU67PcEnR|%^;7`+J{-XlByPc7@a1&QiWY}eFz8c$vFOJJ%d(Ub z(-<%m;qLNfNq*+$`qCWZ5&IM4zp7WU0IShDir5IsNm`9wl{Q+d)^D!N(201J)H@NL zkY}FjKPFsw9Nx&hT(8TpSx5QTB?TiHa7)P(WSMGe)>a>3wRA6ktMPiv=q8=XIVj?R zmJ;Hr1j;DUDW{T8W8O9sigZi9ao9errf z*MTO{QC1D{Z;x&C94*ICQ$9z!ZzZw7ZC9J%^|hHmM3=B*m+7x?a5rAqdAtl@{!nE! zH?Hedl)1FN()#U3R2X+)avw-=i#n#3->Y=&q`#|@a?@^Q|Azwr@=7ly&w&%fk``C9eI6F@q;B&-r%6b0Q zBI9{GAd*fSe8pQ&O)XfT`uRk*!z)z1{?IF+szcuJM=bu;uVQ+i=pDuxD9`Kn$TsBi zh4jI~kLN%4^X)oWsNtu-IkL!$c6IP^s1BY=a-JV{l8VN5YLpu=Q5GfawCh53?%;aL z3Xff#Mo?std{kjK#SUuW^H#)o8gGJre-E^vEczNx#sNWgUyN^&z zJOVjoQdXKN=v~rO?&_YJK*R13j%m2OxQUBHB1;ih1EIe?^VO;KES1Pv{%K;Fr@2@b zaR5#>pG>8ud9_sAZ@Qf$WKl0dbUC8JO-7m{MvHB@PVKx?E3(v1TRUW&pxz#jr`KpH zm-DI`aRjBVxY7LVT^cVhqH12KxTG(a$-*1BRZ6&$*W`5DzO!P%qZ{8S=-HqB*{|V+ zNRQQA)?0h&=8Wx`F1kE$+*o_eICt~XpOfLNE{x^(?y~DRSB2;xnUr1&)s-KE!$Sdh z%GEV;QC(&~n{r)z_sY3chc?yNFtb<;8E`Z9xO*O4ff!|{%Nf$Dl!-y7wE z)j?;sn`B+mlUaz-Bu;wt{+|3xH3_Vs~icYm_uH;(FXRAiqk2@?vhR zM)Opa_WYR*x_8-+bgs+1^u!oiBcW-r?n{tn)t*+96_v+1dK1J+QBe4dQc#hyz??rN zx9l>WtV1U+GmrfJSYrb--uE(lTh!5h1x>S^6NGVo%Q@!r&`=c=n<52_2)9={tG;M< zfGs9)=2OAUC!QXfp>jjvp`GYT7*xlW>zd)t67#=Z)pz^9MSTFW9AH{4Dd)2Szy|TM z3TJdow!p`SQdIus7J5#cWy*r}?tWQKlSMgSKxy`A%(_p%lC0H08+-LT?e|-JHydMT zOPb}v45>W};y#h2-3Ksr^o6`s6g*}1Mg%FM}64jPm%Y?55$Vo+G7-lMD8)qfN7ff*IHMn7dk%?oT}MO zTsTR!2_F@`>x4!o$9(wk3Q$@}xO*rH9Kv_mA`1Gf-StcqFu_$;R{k2ZEDH6@m-D|o zZLfFVju0|etyyaf!7$o&?!-&6EZWB>_iTmdgtq|mk^#4Pu@e}dVgeA4WTfNwdFX0U zGB!3$0DSM{s!Y;P-UDOJ?B*M_A6Bc3I|B%2a1qG0>AQP0(qaST&XW^#;j4-w0UjRB ziwdEDtJsQe2-}`h%hAyhxWo{E zR1o@Qbg8`%Bzz1fC#P1>Ha84%f3ID7+S=N>+QqD`Q;YA2g)ozC}Z$+^%;afIuy7k#${o&+OIKP85@lc*T;k8K};M5D0<H@C^UcWE){0mm1)9x^2_kU#Uz<&~#m<+&Ej8i)}Sl^u%L-KJs_}r(z{> zaq)P97}2q$dx7R+WOkK8Gt0(Ql!^dy;5$%{&)vr?IEjh-_{VgIa`r*?7?Hy3IYg~gi0Pw zXj|u?MR=6=qLJcXWP%jq*~NDGaD}m$dN?R;<2g1SzWuKyx&!g*=5imO--8hu8Ch+N zDsR0nIp^6rlE|UZc|G5j52B74)y;>J8s`3Tt?WMgvhp!4_ zlYJ=l5docjgF){ci{Jr3+qg)qxW+jRRFlNsp@me23{ZXT-ubD5Ws50W_v^QF`r|iD zw1loHoz=_A{jK51yuN{Y_dum>S&$zxpE^&%jGmBDDXv$*C9U(-^cP`Dzf*VFAPM)mqxBqJ)?na9n=H45fk^=tUS|hO zp%D@PP>hK$7XeNJpVbJ)Do-bwt^mawE1Qf3x~BzDi~V+#AnDW(Bu=X#m}1THj>Ye< z)v4Io*;$3S>n0BJU zKYaMC7*q<9M2IoLn@BC5SICKE1Qi!EfI=&Rp`jtTOa1_xjQW%v9*nBEhh%5oU_lfu zbSByCT%em$`0C&Rq@nKHoeIPtp%;cMIp ziYc7kR?;TwrVu{7)edP0?l%O(knC(RX-5_SNJq)-+8D^kpa!CGI6odv4tg&FW;6v{ z9ZF43O%-m@^_>H9{`~uszV#>=)Q(reXwzAJ*um|1m=3H_j=NqLv^|iX{W}pP)e5f$ z500l0G&l1xA-CF?|H1c1S^$i2f0bAr;eeK7Ao1BC2dcbC!R+E>GfB|5=HLG%1|pGP z*Ex_*3W5zb{`uB;tVsQ#`E(y>t*>xdld(^PFi)(maDmr<@HY4rg$fg_ug(s&Ky%KQ zq`RUSKG3x^9->~nU~^gl1nn&Va;vsTe-pHy=Gj!FCk*e_?x64!e2z)j;sVE}l zy8{V}O&gP#Nb{P%y{)Z4a=K8J)^4Gh7!3{We$QJufvN=qRet1{z&(RAGrVqnfL_qU z!NI`>=0B$j`fB`p6`J7GRHCP&o1na=@p!1SQ|jSsn_r*9{=JDl^d^6&54wOrVUOUy z0A|jUt+C$BRCWM+I>I~x2ud|~$a(}>W75&lwE`25iHVs-kkru7fC{&^xmkG6av=8! z6v#%Jg#`F$j6{O`G~>{1kIYNus0x1m{OSBZ9ek{qaFF`uTmyruGt?+uJUlw0i1{%v zFf#wGk^!yKA}R0!tdi-x(!suE0)}Qj?xA-De8ASo9}*J&u_|n(w}NYImgKx9ZD(&^ zY2J$qw7kTi z_`@Tgrw@@80VumY-|Mwl$gWxgxiCaVc!CWVZM|zaYN)R-dU$d?C~OLp8`(GCJH6!# z2k~zK-ceIGGMuik#xuw@YHfseW`Dag=bIB8U*Zt)fX90b?7t{3&( z*~)413daQ@r6gxl#mKH^A3%Ok&4D3=3{EMR0?@~il)oRa2B*-nnss6LolaRwiaiB) zYx@k0_OcDY@Ph}&2^CRXQqlxy>8{>h4!Zn4P=kE+Z6QEceE?FnNi5*D{Px}TT9s=J z644g^HIlFR5hV-NV-d=ka!D?Np~3jPPGmq!t98V;5{uX%m&Ql~D6CIoYs=rq zX@W;b)rJhM!va{Xxu0=! ziY7$Kn%T(5o?Ew(oyq$85xOLpXy;D!_7Z%hNVJIdLiraxqb>LEpCFO40g+nx9eQnW zi3M3C(qp`?6z3SAs-ce!+<>$U;K^aXoivT^PPXkCTBef0QSm!JT64J!!83^2KY771 zqu=0>;LT^?p8w_5ODoG?fcmZIvSOALyFv@@gvtu!RwOgv6P}cGn*<+*aRmEFgL5F* zSl}n)DVYhp^<0k%(7dQE^(w_8hgLr2%}QtVYg`g#pTl;%wae}}+T0BiJ~z5Ng|uhA zz;$C<*j!8Z-HV;U`P}~fyQro?8licJAan2UD!$HEe>PZIvP}Id$Uz(11aM!iht@VT zHKq58rN9s}JLTKmmagyMyE>jTF+D~XJc&sS(eTK350=jHGM<8xZYDDT4;bwFB4q!3=_xXcuE z3}kNo~dUgSfuFgx@!e%K%{04Hn0e*LE_;hbh*QSl<-_J@df(FJP zw&hKEz1xl@I@L0sab<=BGvGLl8iK2~yrDMl%F$6$s}@YR?K#f-g-j4PJ5)&myM8`}yZom>{SmE_&ATMvV}_#^GLe^O|;@PvF+TteoMeyP@;x3Ar7u(LDWtPeJpZYhWPrE@xnV(2$Si?Eg z;{yh9kI+l;^ZmOVQhotHB;0qbG1l`jGL;w#LiJ5iH40vJ)!ejyb-Dy9U%_|OI@nJf zmQh=XZe^S+r@;OcLS$H4&mbPGu7edG$9XmKOj>Q=!hA%DQ%|@v|LssKAKS+i#jlKT z(+IDpJ#C7)rZTOpro}NwzJ|Ss8?oc?J|kNgkN^7J&`MX>CfkGNQ;)S|xC#)DDEUye zft0k@gojRr5iH~tju~6;pbMRmfv^kxE|Qg{6nSw0La0Ybw&oP7Z0}QLgbJU77|du2 z=n>u1KkHTHFaU}*PQ$({t*H2sV^A%xx}8RMyQGBi!ALY#nG=s)0B_woGeSC#Oe>7UCdgmC2gVGKO4po?(aD4Z|f}y0Wo3ryj zzYB$GNJL=kx)W~jlVUQGS}2UaUg z`)L(ILI{IX41f`)Ai64|!Qp&s*H!FF)6~1+$?B>$)!eN9U7%me8P3#*@iYa6C|JKhFLY97o{vtv zRtosn)(j3jS7eAD+zqhiwV*SM&Nc>U4;p!OENtw@5PR4b2W-7H%{T83crGUCJR=## zg6(74putEawR8~d_i(HTCW$mrEv~M<0Ygg3SXq_a1MpZ3+Q694&zs>zA3)cnAeBh4 zK3!`#`_#;gDd6pc_!#5WA)Hg|58&a{9H7Hw2w@M=F8==gcCNwmCz$>Nf~8x4?Q@AW zH!w(tEP;qW1*_+to)V&qc{Z)=g8yIQA3uKFFA{_lB*7Jk2*N*Bvc=t9rV#fki+2jy^n;p(Y(BY=Pz18TWC0I_%Rz?;5mDE&D>QgD|ofTbY=n*Mh*MDp|u4x%4~ zDDnOjmM$29iy}F9u=#Dtp2jE&zAOI<#3`0;8$cN(aF0te)Pb<(|NLu7B)9GH$6z+- zhk5z<#}I8_B0e|79LdNJ%x8_45+Xyi zBIHv*MfqP-%$)-53CywK#!=&U_`XOO34pKPT~#$mmW(0_1Mc{<@aG`P1VWPmfrv6A z6kP=g1%s@`QuTzv2+M~VoYuD%M_ujsv@}Kz@XUtI5nx!@=g*%D-p)68I{IDznXsCy z$hx=EMsOWKe%z8Fy_|eqp78tWMGs7=kc|oJ33IE~4 z2a(_MP&oZK3rG?gu!y?%`Cq9=gdSYgk8p3pf&Z$6O~!%YQkXCI{P}Zy;87@~@)|2i ztWiovv_cj5yYu-0W^VN{5iiF2V20-79N^agSAAe$;J;?&cnRRTXuH)$fsJ|qhx6eY zVCUjF{2o4`aNQnfdg{)`$ETx_o15G10V0IBSb~IIAeXIIFbFIJLVmoUty=w^<5*F` z$?$xmx9fejtQEe85(KgWFZ6%}LA*mqNVsVet+z+73aC1v#-;bolf{}WM7&NS+*4JS z(aM9!J=b7Wn-3z&%9tI|q|qP`S%@|QOf(qjhyuKpfB68pObYPrns2baL3NZM7=)0l zMOGXt$z-d%6g!{+FCF#OeSG);!q?4v-U!ZJbg?i${Ra?mIp5dUuU}sYfay`n_wgEQ z@O#LaP*$1!_u(CWfA{7xD}FzD$?vgKAkE?M6W-=cD`?1m1^5jLFY;(vKx`=vP~i7* z8c3#~0v9tOtKA-oBghul)~G|O0pv)ut`are##F7ggd34jw+1yFmq~@V2#_3VRar#p zeJ%KJ7pb8P9u=#@01y#*FzCmC23)-jk#sRb!y+Yh{QNdNNu(cB3k;97=u0v_fuX7) z4LCEt5A(r~GeSR3-LZT3;|G9;b7f4^kc*Ci>1WkgZtT)g3YmzIX(!+-h>gVKY-Q2zXZzQ)hl#* zY$h!|kT$rF>sf>O!EL&TIyfAFfL4rpwHTmHK_wTa!nR3fX}Lq4N+eGbj5mWtAXTBk zng)2||9;a6%8x9tz1RZ=kR}+K;01bBh%ZieQFIQ}W5r{4zBU&#{7Ro;4er4T4GRJ%Mg!DlZyw-`!U9DahU3v+EkNSWn@1c6L@NSaderK}Y+hM6dvTTSrGC zl87nXva-b|A7$(9@GQ!PpD)wpFy9}Agvp5!l5cQY;(2aJiMN@Jg{yKU#L;#2#w!by z8@7}YsDNfiXl`Yua*pJGcSG$FY_onj+WXl@cbX@}0i5y7Ru)j$Pf*_8+1-s)sl;#C z`XQ%>J+H95vV!4xjca83z>JoHnHlYHVkI`Uu;vdJasc#xbRGszh|(EMuEjtk9# z0T-LJyw9y2oYfxR^J6MKh9?MBAKo$_9vfow{0@15*tPE4xDY*LjAsn!JQ#tI>=bo9 z=z(|Vlzc7uhu(BIJQm$UN~MkFisWNHKgTvr>CpEEYH}*hX((6wM=vZ+ z%sEexMYd_Uvv0Bs6hm^}3BU4tV|Y+P7<$3~Fs07HWiFo+M1Y9{K6i1?}1BIM92*+B_gv(6L@5+5dj)|UMYWvY6a z^h0c7YD&)KE%qxuVNBmPyPJoHo>W4FHB9_JGTb~x$&aYh?NTqyv74s?P^TyqU-2FG z1suW~@td%RNQ5<@>kN;E8eAS<29A#Dave(X<4q|y1voo9e+L26(rRAa%d9weC#M)1 zQer->p?=+_<{m#6xz-aXPjPMAMrj83=WS4A1p^7toU>PZr9A6ux!BHj5gjgD)428x z9#VsQbHgvnGO8r7c~r(sG<2`l+B4b~kW4K21#!DMzo(H#Kj+4&RHzMSV#-p#*$ksS%dIh|V0A;sXO0Dp{<|I_a?$d?3LkREh;>)KBm7JXL_ zF@ht2TNY;NUdV1Uo&2IXsl=dqxKs5-OW1KI<6ESDSm%>RzLBjpZ<6Cc9)d{7Pm45q zR>GXg|Yc)@Ku6t(A% za)5>2`1M^^OB(N~*B0F`jyYD0HS?h=+bLN6*Zv_~?j!?JS5a@+r^oZ30TvX%L5qqk z^H~nWM_lQFH{RxK_iS5ZGC|jOWvvL10)CIN0T^ofh{nE9$Zz`-+UiP8BI`!IYGhnh zAN!kDDl8ebgWM)zq}s;C%QsD-SesOAPUe!l0@_|yL#LHtg7inDHaxECXG7NDyBz( z&H{Ymk+0Sx2XmeaPa%H>JldLu!CDh^rEsz059}4RZ#76bRAkHRY1RH}aYFN8IxYMW z@{6V3KdQh100huMH1a8#Ah&*@-q;Tv-C9aG0absgGcQYMIbd(q;ecKJkS-j*(%^r| z4fsleDW#(5?g|6optA$xs4m&bf46N(LG;*GLz%Fkdr?*3p!GqKv4w?&$xx;!ukUHe zfBu;|IdE8>je6aE8CV|$4kXRnfDiR~=EYi2TwI(pXb+$i5;C|?eI|+ILgt&3eLfhH zW-EMO7|eNDUcq~iS1K|#taFh--Ui(+MgPc;L5~EmtYYCa|6WKN%WAfk4dQGD{YXU} zfgtIMN+O_DPobvnaz~^JdWnIbgMsspRtNT&W(brdcIKN1L8M=V{oL=Y0x^>V>wgLp zpoJDBW4GQbEpz|dUlzo(^YiYfwkdTQG+47>lns2{+{%5$_y2Gmz*e-DAi3?$J_XL* z>!zlrEdeX#6)>&1_`cMTB;pM@n^K|M|MqPj6A=X^&Oo%Jbc}5X%8~-^@X-d>-`F4@ zn`r^bM7w#GAKGG&gQE-15_=~jJia=plZ?x(7Yg``8UA_IbP3>fRfe4q?jIfXgqld` z<^wM6bMl{qP7P4DfY23p@`?wqzz}xN0+D%1yaz- zLI#3ow`a2YR7=) z`>+A}^|5mcb8};GIzr#S|BvoX1XSIs6X9F_5vNLE1J9luGR#+CZj^>Is8>Pm3P=(D z=NgiMw>WqGr~BkGlY&Z1nIModvwnR+Qd?)|3W&g^TwK2VclyB79REEn5*-vCjsm8e z1_uSfG^zCe26Hv5WE*2KKbI_9vZUl9#ka&=^nbbfGK(A zo8v#~?Osq+nszA{%y@qPc)VyUs7}<6*h1BbvH2!nHjqAvnYkAXEO75qgdg1>qE>hr z@*$`m0!AQ1^$=X(0k?s`UVRNpRkYqZ?mH}I7aiRO2a0zrX}4i2OTAH68Xk?*i*@_Kl;m~`s$CFxwgf5d7sUk-b7E&mq+?DUl(+Ki;X`^)SyWgu5Lvn^&V1^5*JZ2 zGHbnk?un288|^*s4*|b{Z3K?LslJ1P>;ATXdpBoY8&!iut38E0PgCGlpD$aSa-(82Aoe274|=nscl)U=;m)d@XG=adZRlC}koUygQ_MG*rS`mWBX z^Hn-w5EWUewE-Sq&3EG1!jWDC7Fj7X7|sRl4+xF-4z_61z2HEq#tjTb1JCh8&vm+5 zu-rY@iUbEd>P{4v#>}G4A0a47fEf7(9ET#nC=ZM5^$zB>&A!*b4mAQDSe5ss5gF-QATVf<6A8V?7DjGP=6DtfY8CMv&Djc=+^BpAsVW@XNa^OG!-}l?qyc~LCrA$ny0Sg*{ z=(anp?*0uF#*IP8Al`17%4tcD{J;0+eqk z0Um@V?&ba3Rgmn)kIfwK*G7WqxMJhu-&9nvj?J}P?(xsMPv{pE6e!)VO$4od%s7R8 zzxIpZ+FD-ov@H-MsWXh1>2Etd6&eeJWH+k;WH%$k$DMj7J3V>GXq;Ug4+6e^HF?lY zO`jfcVXZF20e*K7!$@iO>0oRVbRtAx@i1e0H?P5tz18y=6k^h!)EZQHyg)^Cx5^ucsGEd;rd^*>~QZMR%*pY*lRpiU^Hl) zG@eNJKh*}2exLDE4)E<0Sm2oH48AVSx;thpI9{Oee)z5By5D#Z)P@5f%l7X{OzTR3*k% zvzMy`>RP(fCVFDvNn3$OHLvcTqzeMvbfRTfkZDVh1kRO1-5M_BV&922a}$V`=bFO^ z<=;6UgCmH12%$nida~%a#1J$!h5;q90;aNzGX{XIVx|CRLV^VT6Hs!{y{|w90R}{a z`T}G|O0>r^w6(RRrKLqcbE-Q@3wT1Fr8TpDGXqu^QYzpNl#ssKj3K{#`4Yl+7wtgZ zq=4#ESx2YnnJG}*L!97}eCkN^%)OHyvYtvN&^(ik-W=0kt#kNzoCJeODnC5Lu!6Yph1pcy3UzT$K2aCZSkf_rgm z0nt>#W23J+rCZY=w#DbL=u=wb0P4+352&EX?fwR3=y<{)5K!G!caOSht>zo+wtVWE z-Szp|ixe!tJ3Fbvr-a>_wcT2{sat8&BhV>*Y^^pmEG`Z`$El?V&d~I|3Ec(d&(PcR zj9cf86R@ij+P@Frcm`H)qiPR-x*q27oCHew={FkMk$}S%4EOk&lo9>2(MLL`DL7C~ zYzL6L!#<9|f-(riF{QB*?PX-AJ`;)oVOD4@B8vF zlelbg)4i6F#`+l;7!vFU0DHu}oSodk&Kv3*j^FDooZ4q_pntPX@b7F+(To|pF(`0? zK_t<4ceQm4+epd(kDWHh{o!9MLgKU?M+K$+pZ4G8^6I6Wogv1+U{I00w|;uWKzN#+ z3DtLZ8wR1QKB&B$1xogU)*os2atO`{YT>*dJ4yG-;269N|3W<1zvl_$TNf5c!E}^X zt_i)I`gOqS5)%^>bamyY{uI*W>&QTNl+oJe-0wPPy@-_+9mtu2L6D{Oe*tjwE%=M< z&!5Hb^@le&Bx#o2DgWtmnxQg%et=GV3KWfcwJ|^#)~-bHD;XG+-5sh$$odR8n=$>9 zA`RZguUr&v`{_3^F&OH)W;Z}VeivL&AP%!{7K+7JF|kX(3&#zRQ}O}iBZIdt`1pY76bPzwLfSOqgc zA~z3cymxiz7C*oNhzpdTC#u;6N$WNMW+6&sivtHW3Fh_I+q%PNceg7us24>pnH}L4 z=yRePS8!*}KwAaz-IKL`;JZFLb};;tg99Zi=!p~noGwMD8X6kUW>N!>`+4qF|3`3Z zFOK@X5dOVvDg5uj4D{zV_89{i!qLLF=Yx~gwjcd5fw2tk#W`r|JND+ge-xNRIsgrm?DSYt{iLDlOJ#UCp8sY%>Kc-PR6Hr?Al!ZTd zga&{kl1#5aLY!Vzw8mlXeQRs0j=6vn8*C}M8Akr$#}+2hYGV<`d1CA=&QZpI%TtHw zr6%;1DC*AO)7`^!Y<-N+@o?9^+n8tO%#!o?Wvk*Rp+5u#gT&}CMBS~&w6AK3U=?m_ ziI~!5?=|!ROfZN_O~9eFnkY*v;<^1Bc$?qYNM~qb=0Y26)F+JtTV063(m(rlrfsnE zksRXIEK*!s*`K$}#xf#lU%d#i#HV%=d=JMIFJlibjN`)`NT$C^bqAWEJlJ|G|TUY~NOc z%+6$m@q?@DYjwQtNMjQ3RZMU(_0&YJ-XT0C%JC+vf2xyJb%j(YZv6cz5kpB3+ZyX{ zNA~QY3DRrF_dlh|Z(zer;B{$w^^6{l;liEHdc(l5EWH#LRf~LkYoRpf#BcEOUfcz^ zXFvxO_K793Jea=es_SO=s*zU|{1fk@05a0#fj@r!ggSqc`en2}r(OW?85tuZ>hSO| zA`((?V}}p`7sG-!T8V&wW`E_T=tqwUKJS!lFeF-3DT1LM%m!Xd2$yyw4cQ_nvQBnF zF8C|!yKQG5+Xfr;mua8$eqn+=9%p*Qc9U$MbQ^iLp6ku(uxER2Ds!W{p5NE+(H>Q& z_z8GlgHp`ZA*9vz!ubo zQF<+)Boi}1!s`U{MZr6Ax8NI57BeGb8^Ah8+m_Yk)!)4JdkR3hiOl*%@TaE}Eua+W zb-DWuIA}X?a9n|}!a7#dBxQmTOZeTte?any*uZ}4E9Lo9O3@=&6es%AEM9S5r%7s8 zw2is;KrH}EIS5X5`vj*ZvhULdMHu##VTU896*w! zA9?4t+#G#u5h>GTdf?S%Re2Z_R1`d&w;fP|ayAy?he=w&0N9-rR@~ z!vXwa59i}^mn>9C`#AUHdO(UaWx=qp#)+0}CX$wvRN!~J8mAaP2%*o<<6BnsY?EL>sJ%@umiBtA~d zW4;Nv>0P3(gh0}XdNHy1t(H{zcG0EFF~|x=-Ci%;wgV1jwU0dsl925JRH%2JlOryO z2>KN>{PXWTn|!3M+|AXLK^JSm^SFeBkihG0Lz!!Kkp#lR$-&5)rn*!e@;G;)>Qqan zZCL=C-Xi4pC{eiqMJxzE6$6eeG9|m$$D9cleQQgaQjOxi{bu0ss*m-!SDG8y+ZS)a zTPU@n0O!khNzC%&-AT)IhF|UVAE%OvFNG~aeYHE%4yX2%)e(ebNZIBG%u+3Dy^yID zJl$U?SNj8!7&DsQ?VTX)8AG`-o_k}*5HEW@2YeZK2RTz;<`&gfLMZhAscJ!bzx+#h zJ43bj1>LV0vh1N$n&%aYM+l06n3>97{}c5Mm^dJjE~OTXQW zyj{ue45+yuE$61r{}6}$f42pZNH{?6seB@=18{TVNuSUCtj9@54K01i96}p6+b8j` z@Tijyi)r1ccX1{Kmr*NonoBvc_amM;2D72k*Je48c(&U%*IcUt&e0j*!?^?I-h!M- zCm`1O++!&@f-K&)ad>*-fKTx2>+V5f0}poK;kbeLh_2576oo;jKb4N`f!<}^FPAr( z3R5u|H7_6by3`5GP(9cJ_(Dy~?zAUA0RqJI^0pY#T_3=fY7)n?aB)k1a4lIwY}ETU zE!5p=uy-?wzd2o5o+W?c9_h@mK1WGK#E`N7Fipjjx{rpfo<+mwuzH6eO3>EBUu~m8hmmYCR58q z(@KrbEu!$FPbTA1BX^(X%AA)-WjncBoEm;EWL9gl@6q2duAskDQj0fmE|J#fsu@%t zON$x0Gr4*k-pt(S%@k6cnrj|wIT*NtZUwmvA$|8xP`(j(nH`^B#;KVbWEel|C??gg zPtAGUxnAxj_Iu)z)mO8>AkgVjY1Y39ZTH&G>9-mtx4)%$Jw7pa+XicW@zr|!qw9BD z!`Wv7%`+du<*ZmuoODkdNMRz+1<*ccwB{eZ^7)LICJgspHnxzj31`3Y7Uc;2$mU07{(wA4(Mg2Ev3uEX) zobNs6n9}&a&>Z_N5lY{+Q)E?9+l4>15<%@Vd72C-=kEryY@b($zJ(W7b~_#Xal{tR z{T&lxSnINO32SpN&pg{)>;W;SGE?soym`?@?ERQaD#2@2^lB{!I-t^l2D-CUbjA`%EmW zE8%b24A_)MrboMcC0a+6>60-mJ^fmL>KSj9lWEg#Y|#>#=d)5XDtL8~d@l7Cib$*y zVb1NQ+VfMp-oK67g`Z+yDVJnpk1E=v>c_;Vl4YX5PC~8VLUdef%F6wFI(wlAEBw#0 z<5*P$=@AUo&*a!sgMWIsx2>(MYo@LYJ_a%4@3x_YTcQ(v_nk@<@!YPLGYdO@t#e7Q znLzLQSwhKoo&fQqY5SJk4w_ZiBY-gPa1W4C+TGTTJ}9F@$Cg+Wx)JMzkFHM%Ns^Y^ zrOEf2CTGyE|dj179ablpjN&%f|@dO>+zhdWKb}N$&ezkEA!a&Jh`Gc6S z+JRn^^(DyaxVRiqufLn9A0k9Anx_#k|Ef?JgJ|Bx0-LS-kdCt52A3(_o1H|A!i-ll z?8^rkbD6Nz?4|h6;jKNFIg7M;J|)^8-mezP=+X_ZAf)o^x_cM(e?;MzbT|VtCQ=qY+sj| zAl5Q|E7%GV?L}BG?e*T!F%3d27_=b59TBdfbRJ;-tQo3)VYl5h>B&~!FfhjV!cFT! ztwigloXD`bMJytHLM=XllER;DEXNbQw?ph`t(&l3=eKtF7)cZN*vy=5$fWas2c4N7 z0|y7b?(LsU(brCZ&r@fe6eQE80|L)LNq~^z(W;ILK3L@LL>uqGT2(lPzzA@~@hzOHf`AjOBUAXN~qm zS@o9ol&Rvjl&Js;GDSU?*|JGel=O(#24xxgWWU`#BY$u-wKw@Q#9qjAbKm$OoAcC& zm$w-tWt|g;?uL?^9PWOhq^&Th{t&7^M&j2MYl9w8yK|rGRLW#SaN{H9cAQ6TGAOU# zg#g)h1g7lX&ZFk}D!yh_M6UBMJIO0)+}s==kdRo4xQS4oQs;+J|7EmD=67|HM#b9p zl`=7F@z_vuXe$~uIotYicy=wwRuCEYgU_DqM=8Vm&_9L$tGcg@s;XF!4G-8?tk;~DQ5-}t`2-}$}Q9_y^S z=9+U}`;wg}4W%<9Yot4jCM9S1<^lbCbr9)rWCEdv2C2V!JGj_saM1L_$Xa01NG%wNDz|pK{6QuYls5Tum2Q1!E+f26qg38IW>x zN1rW1?qrDF(6YvdJ2+v&vp3ilj`rz&R?k+f&w$)q6XUOxy+>va^J?vx7|#sV07{t+ zOa%1kpNIxXWaM2z=meT#K-pk8kPH%)l%!YqYOR;)0{9T~YqoS$LPu$!Ms`Csph@sUJM=E5 zvlVqO=WelU3qYTc(A#Sg1b82yFfLo}2jFl5adB0Pr*;xLvH~qRPX#AQ?^~`v=~6OX zLHjYw*a7a2-U4j>#6Vh(t*aXFbM-S!?dBo`SQMbmnZzXJeH#I^ACNh60He!TSXeaH z^|I2Qnk~sIfdCF0{m{eq;i)GNVnw_KK-0<7rwz5=(bgA_56H&9i%Fdj*^a2wtplOzX_)C8@^RS$0> z0kZZU-xYWVvRy`D0g|qb3GV6y=-hb_diVLb`zh&1C~Y{x0PZ=Pz4VJCp7C&a423T6 zB8I@@_xCTtcm%Ktgm($CKtf+8AcUUMN6*9p`beYE`Vk|>b3j|%>L6afxu*vS{nFEE z_L{CCUBl~u`}@wF2uR{}Uomt23_e3yo<{?ZGY72OKSZ(bXf9i$=s^CM|Lg@oUU4J{ zI?)643Dpt6)pq@SMRKRUA>jBc{iD8Ns6Og>9tGF~%-~@}f=)|F^WNu%e-0yki=<=X z;(~!2Mxz!r4rmbr7+1sJtlzO7{=_IgkfO;%{oz0oD0D)=88u-`i7}n3p0SAp<{z)K5 zsZh1^xQss=;i4RHG8{SoGxh%v&fIxx;)o9&y4%JzFMxHVjn>usFc=5ek6#)i#wiQ5 zsE*C~2WB61Ff^8(MC)LV8fE(P6Fx};ih$Elx_=}RT0Syq5Igtmqj1bgEq@Cecj|fz z#R$sW;>YvG)cI>8E=s<9VURp+aKyH*S-)a#n*A_6z%x8lflQFp@1Fk3DE`!u&hbwtn^$x25>&LsV0x&vg`Ad|D<-p#9sKH!7X;&xNA zDA;qe7Xo;y$=}z0nP0R~89GiRpcT1a*Weco;ytbuV$ny>c{L1N8ijE8Z1it zrNIf;KWR6lm5l9T)JloTd29^NW+X+MLV}wvy*;cT>qxDS$r-$(ZF9Py8m@kF#U^>aKWX!hZ6Qt)I+6M^pR`}4lsrc(tdPE+o99%D zW&`mZgbaoGq$5hpOw-4boPYY032`-#td; zU#!nt7}!Om=+i#f^I;LU$n%DUo#0&%0n0fM{9kszb+<4C2V|dII3_(lY!hLC=#!i6 zh1FVL+WvK-Y}dOo4sDf|Uxsq|~-_EO9+~R-@6-H|eWMiLdcKU#78in{G|xWw@P)!qRFVg$w=4z$F!1 z!Hn(C&cDh8=Do4pmDc|Lfmu9x8X)SX1;65BUbU38&}(9nC1#%T^vZovNHS2co9XhR zyod^%#I(;eGWns;hZD=|3*s|{{vML*Yo@=Hrhvx(FgZ2qk7LLzt6V|7U9Xpl(5zxz z@||aFQ!nNc456p2A19NHphVjvWjg{w7`w1>v!_sR-q45>6@6EOrpKwJ ztIwgNs7&>meJM+Pu!pUS;MLYX28mV$b$EakMBF~sE> z7u^!0X{||KfC>|JY|$gO13Ka5J{_seOO4q+P&{N=oRv($W_9$@Ld3WBw894E>En8a z+cCey4YobL^F2hVnp8jZT$9En=#pshA0_d9z9lh!~)$KhOOl;@7< ziI}hn6f**DLu=-bM%Sjp)lLO*rtx$_zvL(WMtTA@UG++PG>D1>@(WI8chAeibYZ*gonddm|#ap1-M@heSR8!tj~OF z-2c@!JefSinkV@7Pz1FQ;pm;tu{WL7oOR2SRCs`wZ2952VO-f(&7N=$O$g3JWyJg4 zv$_$riYN57>VcEQ|3VB$R)5>hreOZz3B#=)9bDSuF=vvYI^Wu?n@>{h`g3|pwP1yN zu;bOPFKnR(jAB(~=r8Hlr--G4tnp~qtkZj*<;QKqpcpdi$Ch$nBeCu_ z=X|>ut)fQzUunU!GgVaDS2vpDkUtHcGJyrZOS_>zS;a^<^koTUeTnvY%DG3e`toXiOC1{9g@T>gap0lp;)3USX-Ns44%axQ0r*=@;56+~+DpmH*!P!flrBKY>f)@;H zi%Xwu2Ar05n5PVQoI5ulenmM{yG7H2WW#5tCd@aHSmsAP`kQx>F0z&^V-67>rnA8i z@cnsZ#g`E3KkLC8;v(d^Qk4pIO-hY_zA>M}bkanG_ENdn5R=Or2Wu~tFr2oN5Fm_u|^*d z=vQ3xm-evd3$bLW5E3heYrdBeO^yjngz*-Zdb?ab3Li~wABYl(O=XURRyJIBy8VP! zdQ9q^7kr4{D}R#G8f`=3j%J7Oum<)RaM@*CJ2$*dW)n@(k$P9Hp2iC9_i_Gk2-GR_ zGShwE)c=0rw86iGqXXu5wG(Z?$V6dE*lHsc$?0BII+-@BHX?1}Hz_fk@L9u^i{@1l zWn|ScHL<9#E70vn>IkOT7^973v9vT)`N|AXkf%b`L|HB$J^8O?O@nFxcjw zKT@?*rCN!U4-}@AkxG#ri7?ewQ1UP^5DbQYlwjc$^Lb8_Zr58%&PO~EZujYzI0@}V zCeVf$_odSqxzg!Y?u!I2Etm(@ z<6GXHikUIhmG;hRHJKk88czx#+0y&gz7|aTom_ZJIMBQTyX_ElX(6!jmtd7*kFj(x z8t&m?CWr2Y3x(rN|L=ndsJQS8dTxEYRHOHd1kb9+Y6x@JL!BRd+`sLq6TRAXHn%kd&zg;Af*1lSyVG#*%?v-%g7mHh<@LhYL@sMVnSBgOxX6 zx`(%8mbjK}<~U0cIG_AVi1r%PkcI^GU~En+$uS^7XUal;>Q*h=s<~X?a0YAy!QK?_ zmk#Z#cB5G0V1Cn{{wQvp`c~ZWUy_OwE5Y@$s0c(KFK(mw>It8%+i7EWDD9f{|G2ip z_D+{*4;5@+|C=&t)9~I&F8r(ZSkP%J1+74z zRu8FYNZM@APa~lsn>nGBq=$U}|LLzMgHxq_O{?viW25h2`_^M{V`X-^qU?8`O*%(y#aT2FaA2zob zBUwoy%E%x6aN25<)c76qJ3LK$7TQu1&afoQT&vfKQKl#RS6{gGySeYF0_Aw}=;2jXrOwS;Uejex+Y^20C)uZEx9Et| zu3vt=Vwd!CR^a^nJ5s=C6TKOqftc!`t!O^>!ue2{l4=wc=NuB^AGNL%gQF+tdP->9 z`01Rrb3gF`8UhD@iJU~Bbs(SU7%j6wxW3kxCDmwRf?%j$-4f>7AYffdyT_ zbbjr9H{w7aA1CS<8{kqF|3qLGjGQzvP(A-uDsC+L)e-WmXm&QQQ73ilCpjWkJXerp zV95vW={*~7aKo(!Qe_>%&6L}}R{Az2T#742UD3h9O9U?!(<(%ufEzd zLj7P;x^D$8c>Upa9GrH0k=^Lgf-K~XqWPpM{SmV9S)z6``awtERT(h}-&ISC`%W7X z5Xqi=BDxu+W%1yeC*V?&arsVKxsMly>e(yK8+MTDT!$jo{*)QS^SeE#es|;zKBfNYGtod^PenTli?b>zBL_i>MJ()XqrQXNk5_trto~*{sUX6O)oI>W!8{lgP^s% zKdEz!0UaZa{^uh{Irim=W?7^TmxAf-vY$b_f0f$wr^b(8^7y8J*t%Mmx7mA7$lNS{ z&$OD7^2(4yD+>fHbrJqVX>BmyJ`(bxU65>XC>|68CmZ5+izW4FJzS6^9>eb3n=g|$ zwhe+`Hd$!1ql5>({9*ko3qR2eIdWRQh^_cnhExipfO%P(@ipZ-HFAixl>Uc;ecd;^ zbizfRU~C^U)aV*1_G9f*i_OSC43cx&SSTIHOF@%_9X@=KXulD8SoF!eEXZEtw5hPU znJ9-fCa$J*{PBKjE8t@!mMvMm^1r}X9$wVr%2#k{Y<_b!1&ae+*UzG*YlZ5bd_F`Z zu@eq+Z+K!E&Zp z0L~1^)Xb>s-taL0cXLQQR=G1ov#NZ)dEf{EYR#G#pw^UR1}QZDk-b5SRS46n>-!>*byBA&7`q0DYm4MUgOp42pwaV%XLxwTP>?9Lv z^Ltk7bY~a^ug=QaZR*s24vm0eb-La?m z{UMEzOk3C?eFi_p@u7wdc;F}M)qGjPjO_S2?It~U29e3D?tDG2Y1A0z&gE=Y`i!a> zWkVzTjTx-SUcb5;T=@k`X|2$l+h&|&k{oi;vp0CEB&2078k_+qo}$lNcrB>@gVM}k zM_695etP4Uv#yxBOBEBR_N$rtED@UZr_1Kc53tl(Zn8D>14aE7{ z9yy{x!+rBcLk?^))i~t%gJqtID40`BAAxlXO$^-hiFYX_$z~2&4K_b~+odocX-wZv zgR55McG_wmxJntV-tesXso=aCbCpn}^sDqLw0UQQ$MnJAA52fuA&4c-LX@}UhqAJA zNLCAkVdV^o3AM!?(mNcXyJS{UZV;H%?(mk$%vr?VQL1ERy(nuHVA1_&HOJ!$x(bra zXbhU!D(rGp?V)2=slz6X9=ZsJuK3>pb`q7nFm8OXq%IyB<$mvu%9TWXuJta z*&FsZD?E7d!Pr}g)oNg>Bt-;bLsD=19BRkJEKEpfl3V#!8o3Mfcu5~Q(|l}d7n9y^ zVKXqI-@orjLiAXbJ-`u#t1;DFo8}-JZEb(E=;gYc+CH7o)_z*3WTh8apz7Y4EaA_L z51=)+_cWRdvj$Ni9|6BdVJdZRF4>T`qbzCFPRL=GJY(w9pSJoda^H#Hy*YpRms9xA zISp@fW`z5FE@dee{Bvz1?%W^BaR)9qwFduLo`Y$OxlE!UZ@l4Cv@x@-bc-QKM=4nq zL;H9^d!CC39(Gbc=)2X}as_*}+>iMrAa(}WAZds3Cmt;O5bSN^g?!bPO54O#c8lo1 z<*B*Z?Fj@y(c!921LH6G?emjj@yS?2YV41S$LhOT0&N65RPC4_j=>UklaBTMT=PQ8 z#{PlUwG>b|oî$QmZGHB#w01qUA`pU%k2jOw4Y24#HCL)+EJ_{V`M?P6iH^-|| zUr;m_Bafc{g$5W%4tdG{1zqC3~jVfSi81y|ZOn@nt>hLH0h^pdT-g5JCC z153myy6lf;vg-k)-yd1kx)l3^eP0+i7**DFc{lHNwy)OqTqep6hD8|@g5Ld#Wv~7N z&zR<*p`f_8HD>tPq8qe$BnuD?CQ2>N8a!z8pqH!rSb4+t?9D3WP=#XtL;? zd>wei823SGrF;t)J)VN94Wt+D4GGg~DX>Jd0(ryyhzXKyVZ-k8Cnp+l@R&mHuHo~& z9_wnAF&kQm{|7h*9eXi-(TX26jk2Wxhn)5{>hEif+Oa>3Z5msKXc7M%zonHscNURe&8wpF!N5_Y|0c*O&iD7hG(BkZArD^;#{Wc=*X<`(+}5DJSqV} zY%VAXVn1@N`%=!$nBufhLH*aCY9&mANQVgD5r{l1%(XA%z*W!;VGl#$ z&nMndL#znr;dpR*%iXESDUqUH{~)v58nm((a@f?yZ*;#6*04QUz{YNi;u(=Bdfmuc zXmc`)DsUD()1K1mKkZ8aTCe?8YDFUDoQqOX{4krUi}yY^PDHxul{hX+lo0FTZ_-S> z$2+n~-X=qDRq2&^dyWeR+(NN~Hrn&tQbBH;9&He)4>BT-aasW+sQfwsxAs(dY)? z);!{h?&bdf80i)7xV6o|H`Nb8{El0@OFaDl?zs<*KNfcQAI1Q}2_#NcC!hQEpELRc zE9U4cb{W^dE9MS=+5y=S)^<+wkq?0!NGn*r^R&(~Scd#NwSWaqfAKFO-*mB<_E%$) QN5D^BT3M>(g-O8w08bq~IRF3v literal 0 HcmV?d00001 diff --git a/assets/quantile.png b/assets/quantile.png new file mode 100644 index 0000000000000000000000000000000000000000..d44e6ff80502a6b1aef1dcef58380fcd0402ebca GIT binary patch literal 113581 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 LS{M}Gat`}9E=kmY literal 0 HcmV?d00001 diff --git a/backend/__init__.py b/backend/__init__.py new file mode 100644 index 0000000..2ef306b --- /dev/null +++ b/backend/__init__.py @@ -0,0 +1,52 @@ +import importlib +import os +import traceback + +import matplotlib +from apiflask import APIBlueprint, APIFlask +from flask_cors import CORS + +matplotlib.use("agg") + +cors = CORS() +api_bp = APIBlueprint("api", __name__, url_prefix="/api/v1") +dataset_path: str | None = None + + +class Config: + SECRET_KEY = "secret!" + SEND_FILE_MAX_AGE_DEFAULT = -1 + + +def create_app(): + global dataset_path + + # Create and configure app + app = APIFlask( + "MAI Service", + title="MAI Service API", + docs_path="/", + version="1.0", + static_folder="", + template_folder="", + ) + app.config.from_object(Config) + + dataset_path = os.path.join(app.instance_path, "dataset") + os.makedirs(dataset_path, exist_ok=True) + + @app.errorhandler(Exception) + def my_error_processor(error): + traceback.print_exception(error) + return {"message": str(error), "detail": "No details"}, 500 + + # Import custom REST methods + importlib.import_module("backend.api") + + # Enable REST API + app.register_blueprint(api_bp) + + # Enable app extensions + cors.init_app(app) + + return app diff --git a/backend/api.py b/backend/api.py new file mode 100644 index 0000000..2f6d2be --- /dev/null +++ b/backend/api.py @@ -0,0 +1,57 @@ +from apiflask import FileSchema, Schema, fields +from flask import send_file + +from backend import api_bp, dataset_path +from backend.service import Service + + +class FileUpload(Schema): + file = fields.File(required=True) + + +class ColumnInfoDto(Schema): + datatype = fields.String() + items = fields.List(fields.String()) + + +class TableColumnDto(Schema): + name = fields.String() + datatype = fields.String() + items = fields.List(fields.String()) + + +service = Service(dataset_path) + + +@api_bp.post("/dataset") +@api_bp.input(FileUpload, location="files") +def upload_dataset(files_data): + uploaded_file = files_data["file"] + return service.upload_dataset(uploaded_file) + + +@api_bp.get("/dataset") +def get_all_datasets(): + return service.get_all_datasets() + + +@api_bp.get("/dataset/") +@api_bp.output(TableColumnDto(many=True)) +def get_dataset_info(name: str): + return service.get_dataset_info(name) + + +@api_bp.get("/dataset//") +@api_bp.output(ColumnInfoDto) +def get_column_info(name: str, column: str): + return service.get_column_info(name, column) + + +@api_bp.get("/dataset/draw/hist//") +@api_bp.output( + FileSchema(type="string", format="binary"), content_type="image/png", example="" +) +def get_dataset_hist(name: str, column: str): + data = service.get_hist(name, column) + data.seek(0) + return send_file(data, download_name=f"{name}.hist.png", mimetype="image/png") diff --git a/backend/service.py b/backend/service.py new file mode 100644 index 0000000..c4a3935 --- /dev/null +++ b/backend/service.py @@ -0,0 +1,59 @@ +import io +import os +import pathlib +from typing import BinaryIO, Dict, List + +import pandas as pd +from matplotlib.figure import Figure +from werkzeug.datastructures import FileStorage +from werkzeug.utils import secure_filename + + +class Service: + def __init__(self, dataset_path: str | None) -> None: + if dataset_path is None: + raise Exception("Dataset path is not defined") + self.__path: str = dataset_path + + def __get_dataset(self, filename: str) -> pd.DataFrame: + full_file_name = os.path.join(self.__path, secure_filename(filename)) + return pd.read_csv(full_file_name) + + def upload_dataset(self, file: FileStorage) -> str: + if file.filename is None: + raise Exception("Dataset upload error") + file_name: str = file.filename + full_file_name = os.path.join(self.__path, secure_filename(file_name)) + file.save(full_file_name) + return file_name + + def get_all_datasets(self) -> List[str]: + return [file.name for file in pathlib.Path(self.__path).glob("*.csv")] + + def get_dataset_info(self, filename) -> List[Dict]: + dataset = self.__get_dataset(filename) + dataset_info = [] + for column in dataset.columns: + items = dataset[column].astype(str) + column_info = { + "name": column, + "datatype": dataset.dtypes[column], + "items": items, + } + dataset_info.append(column_info) + return dataset_info + + def get_column_info(self, filename, column) -> Dict: + dataset = self.__get_dataset(filename) + datatype = dataset.dtypes[column] + items = sorted(dataset[column].astype(str).unique()) + return {"datatype": datatype, "items": items} + + def get_hist(self, filename, column) -> BinaryIO: + dataset = self.__get_dataset(filename) + bytes = io.BytesIO() + plot: Figure | None = dataset.plot.hist(column=[column], bins=80).get_figure() + if plot is None: + raise Exception("Can't create hist plot") + plot.savefig(bytes, dpi=300, format="png") + return bytes diff --git a/data/countries-continents-capitals.csv b/data/countries-continents-capitals.csv new file mode 100644 index 0000000..b90f340 --- /dev/null +++ b/data/countries-continents-capitals.csv @@ -0,0 +1,235 @@ +Country/Territory,Capital,Continent +Afghanistan,Kabul,Asia +Albania,Tirana,Europe +Algeria,Algiers,Africa +American Samoa,Pago Pago,Oceania +Andorra,Andorra la Vella,Europe +Angola,Luanda,Africa +Anguilla,The Valley,North America +Antigua and Barbuda,Saint John??s,North America +Argentina,Buenos Aires,South America +Armenia,Yerevan,Asia +Aruba,Oranjestad,North America +Australia,Canberra,Oceania +Austria,Vienna,Europe +Azerbaijan,Baku,Asia +Bahamas,Nassau,North America +Bahrain,Manama,Asia +Bangladesh,Dhaka,Asia +Barbados,Bridgetown,North America +Belarus,Minsk,Europe +Belgium,Brussels,Europe +Belize,Belmopan,North America +Benin,Porto-Novo,Africa +Bermuda,Hamilton,North America +Bhutan,Thimphu,Asia +Bolivia,Sucre,South America +Bosnia and Herzegovina,Sarajevo,Europe +Botswana,Gaborone,Africa +Brazil,Brasilia,South America +British Virgin Islands,Road Town,North America +Brunei,Bandar Seri Begawan,Asia +Bulgaria,Sofia,Europe +Burkina Faso,Ouagadougou,Africa +Burundi,Bujumbura,Africa +Cambodia,Phnom Penh,Asia +Cameroon,Yaounde,Africa +Canada,Ottawa,North America +Cape Verde,Praia,Africa +Cayman Islands,George Town,North America +Central African Republic,Bangui,Africa +Chad,N'Djamena,Africa +Chile,Santiago,South America +China,Beijing,Asia +Colombia,Bogota,South America +Comoros,Moroni,Africa +Cook Islands,Avarua,Oceania +Costa Rica,San Jos??,North America +Croatia,Zagreb,Europe +Cuba,Havana,North America +Curacao,Willemstad,North America +Cyprus,Nicosia,Europe +Czech Republic,Prague,Europe +Denmark,Copenhagen,Europe +Djibouti,Djibouti,Africa +Dominica,Roseau,North America +Dominican Republic,Santo Domingo,North America +DR Congo,Kinshasa,Africa +Ecuador,Quito,South America +Egypt,Cairo,Africa +El Salvador,San Salvador,North America +Equatorial Guinea,Malabo,Africa +Eritrea,Asmara,Africa +Estonia,Tallinn,Europe +Eswatini,Mbabane,Africa +Ethiopia,Addis Ababa,Africa +Falkland Islands,Stanley,South America +Faroe Islands,T??rshavn,Europe +Fiji,Suva,Oceania +Finland,Helsinki,Europe +France,Paris,Europe +French Guiana,Cayenne,South America +French Polynesia,Papeete,Oceania +Gabon,Libreville,Africa +Gambia,Banjul,Africa +Georgia,Tbilisi,Asia +Germany,Berlin,Europe +Ghana,Accra,Africa +Gibraltar,Gibraltar,Europe +Greece,Athens,Europe +Greenland,Nuuk,North America +Grenada,Saint George's,North America +Guadeloupe,Basse-Terre,North America +Guam,Hag?t?a,Oceania +Guatemala,Guatemala City,North America +Guernsey,Saint Peter Port,Europe +Guinea,Conakry,Africa +Guinea-Bissau,Bissau,Africa +Guyana,Georgetown,South America +Haiti,Port-au-Prince,North America +Honduras,Tegucigalpa,North America +Hong Kong,Hong Kong,Asia +Hungary,Budapest,Europe +Iceland,Reykjav??k,Europe +India,New Delhi,Asia +Indonesia,Jakarta,Asia +Iran,Tehran,Asia +Iraq,Baghdad,Asia +Ireland,Dublin,Europe +Isle of Man,Douglas,Europe +Israel,Jerusalem,Asia +Italy,Rome,Europe +Ivory Coast,Yamoussoukro,Africa +Jamaica,Kingston,North America +Japan,Tokyo,Asia +Jersey,Saint Helier,Europe +Jordan,Amman,Asia +Kazakhstan,Nursultan,Asia +Kenya,Nairobi,Africa +Kiribati,Tarawa,Oceania +Kuwait,Kuwait City,Asia +Kyrgyzstan,Bishkek,Asia +Laos,Vientiane,Asia +Latvia,Riga,Europe +Lebanon,Beirut,Asia +Lesotho,Maseru,Africa +Liberia,Monrovia,Africa +Libya,Tripoli,Africa +Liechtenstein,Vaduz,Europe +Lithuania,Vilnius,Europe +Luxembourg,Luxembourg,Europe +Macau,Concelho de Macau,Asia +Madagascar,Antananarivo,Africa +Malawi,Lilongwe,Africa +Malaysia,Kuala Lumpur,Asia +Maldives,Mal??,Asia +Mali,Bamako,Africa +Malta,Valletta,Europe +Marshall Islands,Majuro,Oceania +Martinique,Fort-de-France,North America +Mauritania,Nouakchott,Africa +Mauritius,Port Louis,Africa +Mayotte,Mamoudzou,Africa +Mexico,Mexico City,North America +Micronesia,Palikir,Oceania +Moldova,Chisinau,Europe +Monaco,Monaco,Europe +Mongolia,Ulaanbaatar,Asia +Montenegro,Podgorica,Europe +Montserrat,Brades,North America +Morocco,Rabat,Africa +Mozambique,Maputo,Africa +Myanmar,Nay Pyi Taw,Asia +Namibia,Windhoek,Africa +Nauru,Yaren,Oceania +Nepal,Kathmandu,Asia +Netherlands,Amsterdam,Europe +New Caledonia,Noum??a,Oceania +New Zealand,Wellington,Oceania +Nicaragua,Managua,North America +Niger,Niamey,Africa +Nigeria,Abuja,Africa +Niue,Alofi,Oceania +North Korea,Pyongyang,Asia +North Macedonia,Skopje,Europe +Northern Mariana Islands,Saipan,Oceania +Norway,Oslo,Europe +Oman,Muscat,Asia +Pakistan,Islamabad,Asia +Palau,Ngerulmud,Oceania +Palestine,Ramallah,Asia +Panama,Panama City,North America +Papua New Guinea,Port Moresby,Oceania +Paraguay,Asunci??n,South America +Peru,Lima,South America +Philippines,Manila,Asia +Poland,Warsaw,Europe +Portugal,Lisbon,Europe +Puerto Rico,San Juan,North America +Qatar,Doha,Asia +Republic of the Congo,Brazzaville,Africa +Reunion,Saint-Denis,Africa +Romania,Bucharest,Europe +Russia,Moscow,Europe +Rwanda,Kigali,Africa +Saint Barthelemy,Gustavia,North America +Saint Kitts and Nevis,Basseterre,North America +Saint Lucia,Castries,North America +Saint Martin,Marigot,North America +Saint Pierre and Miquelon,Saint-Pierre,North America +Saint Vincent and the Grenadines,Kingstown,North America +Samoa,Apia,Oceania +San Marino,San Marino,Europe +Sao Tome and Principe,S?o Tom??,Africa +Saudi Arabia,Riyadh,Asia +Senegal,Dakar,Africa +Serbia,Belgrade,Europe +Seychelles,Victoria,Africa +Sierra Leone,Freetown,Africa +Singapore,Singapore,Asia +Sint Maarten,Philipsburg,North America +Slovakia,Bratislava,Europe +Slovenia,Ljubljana,Europe +Solomon Islands,Honiara,Oceania +Somalia,Mogadishu,Africa +South Africa,Pretoria,Africa +South Korea,Seoul,Asia +South Sudan,Juba,Africa +Spain,Madrid,Europe +Sri Lanka,Colombo,Asia +Sudan,Khartoum,Africa +Suriname,Paramaribo,South America +Sweden,Stockholm,Europe +Switzerland,Bern,Europe +Syria,Damascus,Asia +Taiwan,Taipei,Asia +Tajikistan,Dushanbe,Asia +Tanzania,Dodoma,Africa +Thailand,Bangkok,Asia +Timor-Leste,Dili,Asia +Togo,Lom??,Africa +Tokelau,Nukunonu,Oceania +Tonga,Nuku??alofa,Oceania +Trinidad and Tobago,Port-of-Spain,North America +Tunisia,Tunis,Africa +Turkey,Ankara,Asia +Turkmenistan,Ashgabat,Asia +Turks and Caicos Islands,Cockburn Town,North America +Tuvalu,Funafuti,Oceania +Uganda,Kampala,Africa +Ukraine,Kiev,Europe +United Arab Emirates,Abu Dhabi,Asia +United Kingdom,London,Europe +United States,"Washington, D.C.",North America +United States Virgin Islands,Charlotte Amalie,North America +Uruguay,Montevideo,South America +Uzbekistan,Tashkent,Asia +Vanuatu,Port-Vila,Oceania +Vatican City,Vatican City,Europe +Venezuela,Caracas,South America +Vietnam,Hanoi,Asia +Wallis and Futuna,Mata-Utu,Oceania +Western Sahara,El Aai?n,Africa +Yemen,Sanaa,Asia +Zambia,Lusaka,Africa +Zimbabwe,Harare,Africa diff --git a/data/dollar.csv b/data/dollar.csv new file mode 100644 index 0000000..3f87c92 --- /dev/null +++ b/data/dollar.csv @@ -0,0 +1,244 @@ +"my_date","my_value","bullet","bulletClass","label" +"28.03.2023","76.5662","","","" +"31.03.2023","77.0863","","","" +"01.04.2023","77.3233","","","" +"04.04.2023","77.9510","","","" +"05.04.2023","79.3563","","","" +"06.04.2023","79.4961","","","" +"07.04.2023","80.6713","","","" +"08.04.2023","82.3988","","","" +"11.04.2023","81.7441","","","" +"12.04.2023","82.1799","","","" +"13.04.2023","82.0934","","","" +"14.04.2023","81.6758","","","" +"15.04.2023","81.5045","","","" +"18.04.2023","81.6279","","","" +"19.04.2023","81.6028","","","" +"20.04.2023","81.6549","","","" +"21.04.2023","81.6188","","","" +"22.04.2023","81.4863","","","" +"25.04.2023","81.2745","","","" +"26.04.2023","81.5499","","","" +"27.04.2023","81.6274","","","" +"28.04.2023","81.5601","","","" +"29.04.2023","80.5093","","","" +"03.05.2023","79.9609","","","" +"04.05.2023","79.3071","","","" +"05.05.2023","78.6139","","","" +"06.05.2023","76.8207","","","" +"11.05.2023","76.6929","","","" +"12.05.2023","75.8846","round","min-pulsating-bullet","мин" +"13.05.2023","77.2041","","","" +"16.05.2023","79.1004","","","" +"17.05.2023","79.9798","","","" +"18.05.2023","80.7642","","","" +"19.05.2023","80.0366","","","" +"20.05.2023","79.9093","","","" +"23.05.2023","79.9379","","","" +"24.05.2023","80.1665","","","" +"25.05.2023","79.9669","","","" +"26.05.2023","79.9841","","","" +"27.05.2023","79.9667","","","" +"30.05.2023","80.0555","","","" +"31.05.2023","80.6872","","","" +"01.06.2023","80.9942","","","" +"02.06.2023","80.9657","","","" +"03.06.2023","80.8756","","","" +"06.06.2023","81.3294","","","" +"07.06.2023","81.2502","","","" +"08.06.2023","81.4581","","","" +"09.06.2023","82.0930","","","" +"10.06.2023","82.6417","","","" +"14.06.2023","83.6405","","","" +"15.06.2023","84.3249","","","" +"16.06.2023","83.9611","","","" +"17.06.2023","83.6498","","","" +"20.06.2023","83.9866","","","" +"21.06.2023","84.2336","","","" +"22.06.2023","84.2467","","","" +"23.06.2023","83.6077","","","" +"24.06.2023","84.0793","","","" +"27.06.2023","84.6642","","","" +"28.06.2023","85.0504","","","" +"29.06.2023","85.6192","","","" +"30.06.2023","87.0341","","","" +"01.07.2023","88.3844","","","" +"04.07.2023","89.3255","","","" +"05.07.2023","89.5450","","","" +"06.07.2023","90.3380","","","" +"07.07.2023","92.5695","","","" +"08.07.2023","91.6879","","","" +"11.07.2023","91.4931","","","" +"12.07.2023","90.5045","","","" +"13.07.2023","90.6253","","","" +"14.07.2023","90.1757","","","" +"15.07.2023","90.1190","","","" +"18.07.2023","90.4217","","","" +"19.07.2023","90.6906","","","" +"20.07.2023","91.2046","","","" +"21.07.2023","90.8545","","","" +"22.07.2023","90.3846","","","" +"25.07.2023","90.4890","","","" +"26.07.2023","90.0945","","","" +"27.07.2023","90.0468","","","" +"28.07.2023","90.0225","","","" +"29.07.2023","90.9783","","","" +"01.08.2023","91.5923","","","" +"02.08.2023","91.7755","","","" +"03.08.2023","92.8410","","","" +"04.08.2023","93.7792","","","" +"05.08.2023","94.8076","","","" +"08.08.2023","96.5668","","","" +"09.08.2023","96.0755","","","" +"10.08.2023","97.3999","","","" +"11.08.2023","97.2794","","","" +"12.08.2023","98.2066","","","" +"15.08.2023","101.0399","","","" +"16.08.2023","97.4217","","","" +"17.08.2023","96.7045","","","" +"18.08.2023","93.7460","","","" +"19.08.2023","93.4047","","","" +"22.08.2023","94.1424","","","" +"23.08.2023","94.1185","","","" +"24.08.2023","94.4421","","","" +"25.08.2023","94.4007","","","" +"26.08.2023","94.7117","","","" +"29.08.2023","95.4717","","","" +"30.08.2023","95.7070","","","" +"31.08.2023","95.9283","","","" +"01.09.2023","96.3344","","","" +"02.09.2023","96.3411","","","" +"05.09.2023","96.6199","","","" +"06.09.2023","97.5383","","","" +"07.09.2023","97.8439","","","" +"08.09.2023","98.1961","","","" +"09.09.2023","97.9241","","","" +"12.09.2023","96.5083","","","" +"13.09.2023","94.7035","","","" +"14.09.2023","95.9794","","","" +"15.09.2023","96.1609","","","" +"16.09.2023","96.6338","","","" +"19.09.2023","96.6472","","","" +"20.09.2023","96.2236","","","" +"21.09.2023","96.6172","","","" +"22.09.2023","96.0762","","","" +"23.09.2023","96.0419","","","" +"26.09.2023","96.1456","","","" +"27.09.2023","96.2378","","","" +"28.09.2023","96.5000","","","" +"29.09.2023","97.0018","","","" +"30.09.2023","97.4147","","","" +"03.10.2023","98.4785","","","" +"04.10.2023","99.2677","","","" +"05.10.2023","99.4555","","","" +"06.10.2023","99.6762","","","" +"07.10.2023","100.4911","","","" +"10.10.2023","101.3598","round","max-pulsating-bullet","макс" +"11.10.2023","99.9349","","","" +"12.10.2023","99.9808","","","" +"13.10.2023","96.9948","","","" +"14.10.2023","97.3075","","","" +"17.10.2023","97.2865","","","" +"18.10.2023","97.3458","","","" +"19.10.2023","97.3724","","","" +"20.10.2023","97.3074","","","" +"21.10.2023","95.9053","","","" +"24.10.2023","94.7081","","","" +"25.10.2023","93.5224","","","" +"26.10.2023","93.1507","","","" +"27.10.2023","93.5616","","","" +"28.10.2023","93.2174","","","" +"31.10.2023","93.2435","","","" +"01.11.2023","92.0226","","","" +"02.11.2023","93.2801","","","" +"03.11.2023","93.1730","","","" +"04.11.2023","93.0351","","","" +"08.11.2023","92.4151","","","" +"09.11.2023","92.1973","","","" +"10.11.2023","91.9266","","","" +"11.11.2023","92.0535","","","" +"14.11.2023","92.1185","","","" +"15.11.2023","91.2570","","","" +"16.11.2023","89.4565","","","" +"17.11.2023","88.9466","","","" +"18.11.2023","89.1237","","","" +"21.11.2023","88.4954","","","" +"22.11.2023","87.8701","","","" +"23.11.2023","88.1648","","","" +"24.11.2023","88.1206","","","" +"25.11.2023","88.8133","","","" +"28.11.2023","88.7045","","","" +"29.11.2023","88.6102","","","" +"30.11.2023","88.8841","","","" +"01.12.2023","88.5819","","","" +"02.12.2023","89.7619","","","" +"05.12.2023","90.6728","","","" +"06.12.2023","91.5823","","","" +"07.12.2023","92.7826","","","" +"08.12.2023","92.5654","","","" +"09.12.2023","91.6402","","","" +"12.12.2023","90.9846","","","" +"13.12.2023","90.2158","","","" +"14.12.2023","89.8926","","","" +"15.12.2023","89.6741","","","" +"16.12.2023","89.6966","","","" +"19.12.2023","90.4162","","","" +"20.12.2023","90.0870","","","" +"21.12.2023","90.4056","","","" +"22.12.2023","91.7062","","","" +"23.12.2023","91.9389","","","" +"26.12.2023","91.9690","","","" +"27.12.2023","91.7069","","","" +"28.12.2023","91.7051","","","" +"29.12.2023","90.3041","","","" +"30.12.2023","89.6883","","","" +"10.01.2024","90.4040","","","" +"11.01.2024","89.3939","","","" +"12.01.2024","88.7818","","","" +"13.01.2024","88.1324","","","" +"16.01.2024","87.6772","","","" +"17.01.2024","87.6457","","","" +"18.01.2024","88.3540","","","" +"19.01.2024","88.6610","","","" +"20.01.2024","88.5896","","","" +"23.01.2024","87.9724","","","" +"24.01.2024","87.9199","","","" +"25.01.2024","88.2829","","","" +"26.01.2024","88.6562","","","" +"27.01.2024","89.5159","","","" +"30.01.2024","89.6090","","","" +"31.01.2024","89.2887","","","" +"01.02.2024","89.6678","","","" +"02.02.2024","90.2299","","","" +"03.02.2024","90.6626","","","" +"06.02.2024","91.2434","","","" +"07.02.2024","90.6842","","","" +"08.02.2024","91.1514","","","" +"09.02.2024","91.2561","","","" +"10.02.2024","90.8901","","","" +"13.02.2024","91.0758","","","" +"14.02.2024","91.2057","","","" +"15.02.2024","91.4316","","","" +"16.02.2024","91.8237","","","" +"17.02.2024","92.5492","","","" +"20.02.2024","92.4102","","","" +"21.02.2024","92.3490","","","" +"22.02.2024","92.4387","","","" +"23.02.2024","92.7519","","","" +"27.02.2024","92.6321","","","" +"28.02.2024","92.0425","","","" +"29.02.2024","91.8692","","","" +"01.03.2024","90.8423","","","" +"02.03.2024","91.3336","","","" +"05.03.2024","91.3534","","","" +"06.03.2024","91.1604","","","" +"07.03.2024","90.3412","","","" +"08.03.2024","90.7493","","","" +"12.03.2024","90.6252","","","" +"13.03.2024","90.8818","","","" +"19.03.2024","91.9829","","","" +"20.03.2024","92.2243","","","" +"21.03.2024","92.6861","","","" +"22.03.2024","91.9499","","","" +"23.03.2024","92.6118","","","" +"26.03.2024","92.7761","","","" diff --git a/data/titanic.csv b/data/titanic.csv new file mode 100644 index 0000000..5cc466e --- /dev/null +++ b/data/titanic.csv @@ -0,0 +1,892 @@ +PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked +1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S +2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C +3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S +4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S +5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S +6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q +7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S +8,0,3,"Palsson, Master. Gosta Leonard",male,2,3,1,349909,21.075,,S +9,1,3,"Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",female,27,0,2,347742,11.1333,,S +10,1,2,"Nasser, Mrs. Nicholas (Adele Achem)",female,14,1,0,237736,30.0708,,C +11,1,3,"Sandstrom, Miss. Marguerite Rut",female,4,1,1,PP 9549,16.7,G6,S +12,1,1,"Bonnell, Miss. Elizabeth",female,58,0,0,113783,26.55,C103,S +13,0,3,"Saundercock, Mr. William Henry",male,20,0,0,A/5. 2151,8.05,,S +14,0,3,"Andersson, Mr. Anders Johan",male,39,1,5,347082,31.275,,S +15,0,3,"Vestrom, Miss. Hulda Amanda Adolfina",female,14,0,0,350406,7.8542,,S +16,1,2,"Hewlett, Mrs. (Mary D Kingcome) ",female,55,0,0,248706,16,,S +17,0,3,"Rice, Master. Eugene",male,2,4,1,382652,29.125,,Q +18,1,2,"Williams, Mr. Charles Eugene",male,,0,0,244373,13,,S +19,0,3,"Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)",female,31,1,0,345763,18,,S +20,1,3,"Masselmani, Mrs. Fatima",female,,0,0,2649,7.225,,C +21,0,2,"Fynney, Mr. Joseph J",male,35,0,0,239865,26,,S +22,1,2,"Beesley, Mr. Lawrence",male,34,0,0,248698,13,D56,S +23,1,3,"McGowan, Miss. Anna ""Annie""",female,15,0,0,330923,8.0292,,Q +24,1,1,"Sloper, Mr. William Thompson",male,28,0,0,113788,35.5,A6,S +25,0,3,"Palsson, Miss. Torborg Danira",female,8,3,1,349909,21.075,,S +26,1,3,"Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)",female,38,1,5,347077,31.3875,,S +27,0,3,"Emir, Mr. Farred Chehab",male,,0,0,2631,7.225,,C +28,0,1,"Fortune, Mr. Charles Alexander",male,19,3,2,19950,263,C23 C25 C27,S +29,1,3,"O'Dwyer, Miss. Ellen ""Nellie""",female,,0,0,330959,7.8792,,Q +30,0,3,"Todoroff, Mr. Lalio",male,,0,0,349216,7.8958,,S +31,0,1,"Uruchurtu, Don. Manuel E",male,40,0,0,PC 17601,27.7208,,C +32,1,1,"Spencer, Mrs. William Augustus (Marie Eugenie)",female,,1,0,PC 17569,146.5208,B78,C +33,1,3,"Glynn, Miss. Mary Agatha",female,,0,0,335677,7.75,,Q +34,0,2,"Wheadon, Mr. Edward H",male,66,0,0,C.A. 24579,10.5,,S +35,0,1,"Meyer, Mr. Edgar Joseph",male,28,1,0,PC 17604,82.1708,,C +36,0,1,"Holverson, Mr. Alexander Oskar",male,42,1,0,113789,52,,S +37,1,3,"Mamee, Mr. Hanna",male,,0,0,2677,7.2292,,C +38,0,3,"Cann, Mr. Ernest Charles",male,21,0,0,A./5. 2152,8.05,,S +39,0,3,"Vander Planke, Miss. Augusta Maria",female,18,2,0,345764,18,,S +40,1,3,"Nicola-Yarred, Miss. Jamila",female,14,1,0,2651,11.2417,,C +41,0,3,"Ahlin, Mrs. Johan (Johanna Persdotter Larsson)",female,40,1,0,7546,9.475,,S +42,0,2,"Turpin, Mrs. William John Robert (Dorothy Ann Wonnacott)",female,27,1,0,11668,21,,S +43,0,3,"Kraeff, Mr. Theodor",male,,0,0,349253,7.8958,,C +44,1,2,"Laroche, Miss. Simonne Marie Anne Andree",female,3,1,2,SC/Paris 2123,41.5792,,C +45,1,3,"Devaney, Miss. Margaret Delia",female,19,0,0,330958,7.8792,,Q +46,0,3,"Rogers, Mr. William John",male,,0,0,S.C./A.4. 23567,8.05,,S +47,0,3,"Lennon, Mr. Denis",male,,1,0,370371,15.5,,Q +48,1,3,"O'Driscoll, Miss. Bridget",female,,0,0,14311,7.75,,Q +49,0,3,"Samaan, Mr. Youssef",male,,2,0,2662,21.6792,,C +50,0,3,"Arnold-Franchi, Mrs. Josef (Josefine Franchi)",female,18,1,0,349237,17.8,,S +51,0,3,"Panula, Master. Juha Niilo",male,7,4,1,3101295,39.6875,,S +52,0,3,"Nosworthy, Mr. Richard Cater",male,21,0,0,A/4. 39886,7.8,,S +53,1,1,"Harper, Mrs. Henry Sleeper (Myna Haxtun)",female,49,1,0,PC 17572,76.7292,D33,C +54,1,2,"Faunthorpe, Mrs. Lizzie (Elizabeth Anne Wilkinson)",female,29,1,0,2926,26,,S +55,0,1,"Ostby, Mr. Engelhart Cornelius",male,65,0,1,113509,61.9792,B30,C +56,1,1,"Woolner, Mr. Hugh",male,,0,0,19947,35.5,C52,S +57,1,2,"Rugg, Miss. Emily",female,21,0,0,C.A. 31026,10.5,,S +58,0,3,"Novel, Mr. Mansouer",male,28.5,0,0,2697,7.2292,,C +59,1,2,"West, Miss. Constance Mirium",female,5,1,2,C.A. 34651,27.75,,S +60,0,3,"Goodwin, Master. William Frederick",male,11,5,2,CA 2144,46.9,,S +61,0,3,"Sirayanian, Mr. Orsen",male,22,0,0,2669,7.2292,,C +62,1,1,"Icard, Miss. Amelie",female,38,0,0,113572,80,B28, +63,0,1,"Harris, Mr. Henry Birkhardt",male,45,1,0,36973,83.475,C83,S +64,0,3,"Skoog, Master. Harald",male,4,3,2,347088,27.9,,S +65,0,1,"Stewart, Mr. Albert A",male,,0,0,PC 17605,27.7208,,C +66,1,3,"Moubarek, Master. Gerios",male,,1,1,2661,15.2458,,C +67,1,2,"Nye, Mrs. (Elizabeth Ramell)",female,29,0,0,C.A. 29395,10.5,F33,S +68,0,3,"Crease, Mr. Ernest James",male,19,0,0,S.P. 3464,8.1583,,S +69,1,3,"Andersson, Miss. Erna Alexandra",female,17,4,2,3101281,7.925,,S +70,0,3,"Kink, Mr. Vincenz",male,26,2,0,315151,8.6625,,S +71,0,2,"Jenkin, Mr. Stephen Curnow",male,32,0,0,C.A. 33111,10.5,,S +72,0,3,"Goodwin, Miss. Lillian Amy",female,16,5,2,CA 2144,46.9,,S +73,0,2,"Hood, Mr. Ambrose Jr",male,21,0,0,S.O.C. 14879,73.5,,S +74,0,3,"Chronopoulos, Mr. Apostolos",male,26,1,0,2680,14.4542,,C +75,1,3,"Bing, Mr. Lee",male,32,0,0,1601,56.4958,,S +76,0,3,"Moen, Mr. Sigurd Hansen",male,25,0,0,348123,7.65,F G73,S +77,0,3,"Staneff, Mr. Ivan",male,,0,0,349208,7.8958,,S +78,0,3,"Moutal, Mr. Rahamin Haim",male,,0,0,374746,8.05,,S +79,1,2,"Caldwell, Master. Alden Gates",male,0.83,0,2,248738,29,,S +80,1,3,"Dowdell, Miss. Elizabeth",female,30,0,0,364516,12.475,,S +81,0,3,"Waelens, Mr. Achille",male,22,0,0,345767,9,,S +82,1,3,"Sheerlinck, Mr. Jan Baptist",male,29,0,0,345779,9.5,,S +83,1,3,"McDermott, Miss. Brigdet Delia",female,,0,0,330932,7.7875,,Q +84,0,1,"Carrau, Mr. Francisco M",male,28,0,0,113059,47.1,,S +85,1,2,"Ilett, Miss. Bertha",female,17,0,0,SO/C 14885,10.5,,S +86,1,3,"Backstrom, Mrs. Karl Alfred (Maria Mathilda Gustafsson)",female,33,3,0,3101278,15.85,,S +87,0,3,"Ford, Mr. William Neal",male,16,1,3,W./C. 6608,34.375,,S +88,0,3,"Slocovski, Mr. Selman Francis",male,,0,0,SOTON/OQ 392086,8.05,,S +89,1,1,"Fortune, Miss. Mabel Helen",female,23,3,2,19950,263,C23 C25 C27,S +90,0,3,"Celotti, Mr. Francesco",male,24,0,0,343275,8.05,,S +91,0,3,"Christmann, Mr. Emil",male,29,0,0,343276,8.05,,S +92,0,3,"Andreasson, Mr. Paul Edvin",male,20,0,0,347466,7.8542,,S +93,0,1,"Chaffee, Mr. Herbert Fuller",male,46,1,0,W.E.P. 5734,61.175,E31,S +94,0,3,"Dean, Mr. Bertram Frank",male,26,1,2,C.A. 2315,20.575,,S +95,0,3,"Coxon, Mr. Daniel",male,59,0,0,364500,7.25,,S +96,0,3,"Shorney, Mr. Charles Joseph",male,,0,0,374910,8.05,,S +97,0,1,"Goldschmidt, Mr. George B",male,71,0,0,PC 17754,34.6542,A5,C +98,1,1,"Greenfield, Mr. William Bertram",male,23,0,1,PC 17759,63.3583,D10 D12,C +99,1,2,"Doling, Mrs. John T (Ada Julia Bone)",female,34,0,1,231919,23,,S +100,0,2,"Kantor, Mr. Sinai",male,34,1,0,244367,26,,S +101,0,3,"Petranec, Miss. Matilda",female,28,0,0,349245,7.8958,,S +102,0,3,"Petroff, Mr. Pastcho (""Pentcho"")",male,,0,0,349215,7.8958,,S +103,0,1,"White, Mr. Richard Frasar",male,21,0,1,35281,77.2875,D26,S +104,0,3,"Johansson, Mr. Gustaf Joel",male,33,0,0,7540,8.6542,,S +105,0,3,"Gustafsson, Mr. Anders Vilhelm",male,37,2,0,3101276,7.925,,S +106,0,3,"Mionoff, Mr. Stoytcho",male,28,0,0,349207,7.8958,,S +107,1,3,"Salkjelsvik, Miss. Anna Kristine",female,21,0,0,343120,7.65,,S +108,1,3,"Moss, Mr. Albert Johan",male,,0,0,312991,7.775,,S +109,0,3,"Rekic, Mr. Tido",male,38,0,0,349249,7.8958,,S +110,1,3,"Moran, Miss. Bertha",female,,1,0,371110,24.15,,Q +111,0,1,"Porter, Mr. Walter Chamberlain",male,47,0,0,110465,52,C110,S +112,0,3,"Zabour, Miss. Hileni",female,14.5,1,0,2665,14.4542,,C +113,0,3,"Barton, Mr. David John",male,22,0,0,324669,8.05,,S +114,0,3,"Jussila, Miss. Katriina",female,20,1,0,4136,9.825,,S +115,0,3,"Attalah, Miss. Malake",female,17,0,0,2627,14.4583,,C +116,0,3,"Pekoniemi, Mr. Edvard",male,21,0,0,STON/O 2. 3101294,7.925,,S +117,0,3,"Connors, Mr. Patrick",male,70.5,0,0,370369,7.75,,Q +118,0,2,"Turpin, Mr. William John Robert",male,29,1,0,11668,21,,S +119,0,1,"Baxter, Mr. Quigg Edmond",male,24,0,1,PC 17558,247.5208,B58 B60,C +120,0,3,"Andersson, Miss. Ellis Anna Maria",female,2,4,2,347082,31.275,,S +121,0,2,"Hickman, Mr. Stanley George",male,21,2,0,S.O.C. 14879,73.5,,S +122,0,3,"Moore, Mr. Leonard Charles",male,,0,0,A4. 54510,8.05,,S +123,0,2,"Nasser, Mr. Nicholas",male,32.5,1,0,237736,30.0708,,C +124,1,2,"Webber, Miss. Susan",female,32.5,0,0,27267,13,E101,S +125,0,1,"White, Mr. Percival Wayland",male,54,0,1,35281,77.2875,D26,S +126,1,3,"Nicola-Yarred, Master. Elias",male,12,1,0,2651,11.2417,,C +127,0,3,"McMahon, Mr. Martin",male,,0,0,370372,7.75,,Q +128,1,3,"Madsen, Mr. Fridtjof Arne",male,24,0,0,C 17369,7.1417,,S +129,1,3,"Peter, Miss. Anna",female,,1,1,2668,22.3583,F E69,C +130,0,3,"Ekstrom, Mr. Johan",male,45,0,0,347061,6.975,,S +131,0,3,"Drazenoic, Mr. Jozef",male,33,0,0,349241,7.8958,,C +132,0,3,"Coelho, Mr. Domingos Fernandeo",male,20,0,0,SOTON/O.Q. 3101307,7.05,,S +133,0,3,"Robins, Mrs. Alexander A (Grace Charity Laury)",female,47,1,0,A/5. 3337,14.5,,S +134,1,2,"Weisz, Mrs. Leopold (Mathilde Francoise Pede)",female,29,1,0,228414,26,,S +135,0,2,"Sobey, Mr. Samuel James Hayden",male,25,0,0,C.A. 29178,13,,S +136,0,2,"Richard, Mr. Emile",male,23,0,0,SC/PARIS 2133,15.0458,,C +137,1,1,"Newsom, Miss. Helen Monypeny",female,19,0,2,11752,26.2833,D47,S +138,0,1,"Futrelle, Mr. Jacques Heath",male,37,1,0,113803,53.1,C123,S +139,0,3,"Osen, Mr. Olaf Elon",male,16,0,0,7534,9.2167,,S +140,0,1,"Giglio, Mr. Victor",male,24,0,0,PC 17593,79.2,B86,C +141,0,3,"Boulos, Mrs. Joseph (Sultana)",female,,0,2,2678,15.2458,,C +142,1,3,"Nysten, Miss. Anna Sofia",female,22,0,0,347081,7.75,,S +143,1,3,"Hakkarainen, Mrs. Pekka Pietari (Elin Matilda Dolck)",female,24,1,0,STON/O2. 3101279,15.85,,S +144,0,3,"Burke, Mr. Jeremiah",male,19,0,0,365222,6.75,,Q +145,0,2,"Andrew, Mr. Edgardo Samuel",male,18,0,0,231945,11.5,,S +146,0,2,"Nicholls, Mr. Joseph Charles",male,19,1,1,C.A. 33112,36.75,,S +147,1,3,"Andersson, Mr. August Edvard (""Wennerstrom"")",male,27,0,0,350043,7.7958,,S +148,0,3,"Ford, Miss. Robina Maggie ""Ruby""",female,9,2,2,W./C. 6608,34.375,,S +149,0,2,"Navratil, Mr. Michel (""Louis M Hoffman"")",male,36.5,0,2,230080,26,F2,S +150,0,2,"Byles, Rev. Thomas Roussel Davids",male,42,0,0,244310,13,,S +151,0,2,"Bateman, Rev. Robert James",male,51,0,0,S.O.P. 1166,12.525,,S +152,1,1,"Pears, Mrs. Thomas (Edith Wearne)",female,22,1,0,113776,66.6,C2,S +153,0,3,"Meo, Mr. Alfonzo",male,55.5,0,0,A.5. 11206,8.05,,S +154,0,3,"van Billiard, Mr. Austin Blyler",male,40.5,0,2,A/5. 851,14.5,,S +155,0,3,"Olsen, Mr. Ole Martin",male,,0,0,Fa 265302,7.3125,,S +156,0,1,"Williams, Mr. Charles Duane",male,51,0,1,PC 17597,61.3792,,C +157,1,3,"Gilnagh, Miss. Katherine ""Katie""",female,16,0,0,35851,7.7333,,Q +158,0,3,"Corn, Mr. Harry",male,30,0,0,SOTON/OQ 392090,8.05,,S +159,0,3,"Smiljanic, Mr. Mile",male,,0,0,315037,8.6625,,S +160,0,3,"Sage, Master. Thomas Henry",male,,8,2,CA. 2343,69.55,,S +161,0,3,"Cribb, Mr. John Hatfield",male,44,0,1,371362,16.1,,S +162,1,2,"Watt, Mrs. James (Elizabeth ""Bessie"" Inglis Milne)",female,40,0,0,C.A. 33595,15.75,,S +163,0,3,"Bengtsson, Mr. John Viktor",male,26,0,0,347068,7.775,,S +164,0,3,"Calic, Mr. Jovo",male,17,0,0,315093,8.6625,,S +165,0,3,"Panula, Master. Eino Viljami",male,1,4,1,3101295,39.6875,,S +166,1,3,"Goldsmith, Master. Frank John William ""Frankie""",male,9,0,2,363291,20.525,,S +167,1,1,"Chibnall, Mrs. (Edith Martha Bowerman)",female,,0,1,113505,55,E33,S +168,0,3,"Skoog, Mrs. William (Anna Bernhardina Karlsson)",female,45,1,4,347088,27.9,,S +169,0,1,"Baumann, Mr. John D",male,,0,0,PC 17318,25.925,,S +170,0,3,"Ling, Mr. Lee",male,28,0,0,1601,56.4958,,S +171,0,1,"Van der hoef, Mr. Wyckoff",male,61,0,0,111240,33.5,B19,S +172,0,3,"Rice, Master. Arthur",male,4,4,1,382652,29.125,,Q +173,1,3,"Johnson, Miss. Eleanor Ileen",female,1,1,1,347742,11.1333,,S +174,0,3,"Sivola, Mr. Antti Wilhelm",male,21,0,0,STON/O 2. 3101280,7.925,,S +175,0,1,"Smith, Mr. James Clinch",male,56,0,0,17764,30.6958,A7,C +176,0,3,"Klasen, Mr. Klas Albin",male,18,1,1,350404,7.8542,,S +177,0,3,"Lefebre, Master. Henry Forbes",male,,3,1,4133,25.4667,,S +178,0,1,"Isham, Miss. Ann Elizabeth",female,50,0,0,PC 17595,28.7125,C49,C +179,0,2,"Hale, Mr. Reginald",male,30,0,0,250653,13,,S +180,0,3,"Leonard, Mr. Lionel",male,36,0,0,LINE,0,,S +181,0,3,"Sage, Miss. Constance Gladys",female,,8,2,CA. 2343,69.55,,S +182,0,2,"Pernot, Mr. Rene",male,,0,0,SC/PARIS 2131,15.05,,C +183,0,3,"Asplund, Master. Clarence Gustaf Hugo",male,9,4,2,347077,31.3875,,S +184,1,2,"Becker, Master. Richard F",male,1,2,1,230136,39,F4,S +185,1,3,"Kink-Heilmann, Miss. Luise Gretchen",female,4,0,2,315153,22.025,,S +186,0,1,"Rood, Mr. Hugh Roscoe",male,,0,0,113767,50,A32,S +187,1,3,"O'Brien, Mrs. Thomas (Johanna ""Hannah"" Godfrey)",female,,1,0,370365,15.5,,Q +188,1,1,"Romaine, Mr. Charles Hallace (""Mr C Rolmane"")",male,45,0,0,111428,26.55,,S +189,0,3,"Bourke, Mr. John",male,40,1,1,364849,15.5,,Q +190,0,3,"Turcin, Mr. Stjepan",male,36,0,0,349247,7.8958,,S +191,1,2,"Pinsky, Mrs. (Rosa)",female,32,0,0,234604,13,,S +192,0,2,"Carbines, Mr. William",male,19,0,0,28424,13,,S +193,1,3,"Andersen-Jensen, Miss. Carla Christine Nielsine",female,19,1,0,350046,7.8542,,S +194,1,2,"Navratil, Master. Michel M",male,3,1,1,230080,26,F2,S +195,1,1,"Brown, Mrs. James Joseph (Margaret Tobin)",female,44,0,0,PC 17610,27.7208,B4,C +196,1,1,"Lurette, Miss. Elise",female,58,0,0,PC 17569,146.5208,B80,C +197,0,3,"Mernagh, Mr. Robert",male,,0,0,368703,7.75,,Q +198,0,3,"Olsen, Mr. Karl Siegwart Andreas",male,42,0,1,4579,8.4042,,S +199,1,3,"Madigan, Miss. Margaret ""Maggie""",female,,0,0,370370,7.75,,Q +200,0,2,"Yrois, Miss. Henriette (""Mrs Harbeck"")",female,24,0,0,248747,13,,S +201,0,3,"Vande Walle, Mr. Nestor Cyriel",male,28,0,0,345770,9.5,,S +202,0,3,"Sage, Mr. Frederick",male,,8,2,CA. 2343,69.55,,S +203,0,3,"Johanson, Mr. Jakob Alfred",male,34,0,0,3101264,6.4958,,S +204,0,3,"Youseff, Mr. Gerious",male,45.5,0,0,2628,7.225,,C +205,1,3,"Cohen, Mr. Gurshon ""Gus""",male,18,0,0,A/5 3540,8.05,,S +206,0,3,"Strom, Miss. Telma Matilda",female,2,0,1,347054,10.4625,G6,S +207,0,3,"Backstrom, Mr. Karl Alfred",male,32,1,0,3101278,15.85,,S +208,1,3,"Albimona, Mr. Nassef Cassem",male,26,0,0,2699,18.7875,,C +209,1,3,"Carr, Miss. Helen ""Ellen""",female,16,0,0,367231,7.75,,Q +210,1,1,"Blank, Mr. Henry",male,40,0,0,112277,31,A31,C +211,0,3,"Ali, Mr. Ahmed",male,24,0,0,SOTON/O.Q. 3101311,7.05,,S +212,1,2,"Cameron, Miss. Clear Annie",female,35,0,0,F.C.C. 13528,21,,S +213,0,3,"Perkin, Mr. John Henry",male,22,0,0,A/5 21174,7.25,,S +214,0,2,"Givard, Mr. Hans Kristensen",male,30,0,0,250646,13,,S +215,0,3,"Kiernan, Mr. Philip",male,,1,0,367229,7.75,,Q +216,1,1,"Newell, Miss. Madeleine",female,31,1,0,35273,113.275,D36,C +217,1,3,"Honkanen, Miss. Eliina",female,27,0,0,STON/O2. 3101283,7.925,,S +218,0,2,"Jacobsohn, Mr. Sidney Samuel",male,42,1,0,243847,27,,S +219,1,1,"Bazzani, Miss. Albina",female,32,0,0,11813,76.2917,D15,C +220,0,2,"Harris, Mr. Walter",male,30,0,0,W/C 14208,10.5,,S +221,1,3,"Sunderland, Mr. Victor Francis",male,16,0,0,SOTON/OQ 392089,8.05,,S +222,0,2,"Bracken, Mr. James H",male,27,0,0,220367,13,,S +223,0,3,"Green, Mr. George Henry",male,51,0,0,21440,8.05,,S +224,0,3,"Nenkoff, Mr. Christo",male,,0,0,349234,7.8958,,S +225,1,1,"Hoyt, Mr. Frederick Maxfield",male,38,1,0,19943,90,C93,S +226,0,3,"Berglund, Mr. Karl Ivar Sven",male,22,0,0,PP 4348,9.35,,S +227,1,2,"Mellors, Mr. William John",male,19,0,0,SW/PP 751,10.5,,S +228,0,3,"Lovell, Mr. John Hall (""Henry"")",male,20.5,0,0,A/5 21173,7.25,,S +229,0,2,"Fahlstrom, Mr. Arne Jonas",male,18,0,0,236171,13,,S +230,0,3,"Lefebre, Miss. Mathilde",female,,3,1,4133,25.4667,,S +231,1,1,"Harris, Mrs. Henry Birkhardt (Irene Wallach)",female,35,1,0,36973,83.475,C83,S +232,0,3,"Larsson, Mr. Bengt Edvin",male,29,0,0,347067,7.775,,S +233,0,2,"Sjostedt, Mr. Ernst Adolf",male,59,0,0,237442,13.5,,S +234,1,3,"Asplund, Miss. Lillian Gertrud",female,5,4,2,347077,31.3875,,S +235,0,2,"Leyson, Mr. Robert William Norman",male,24,0,0,C.A. 29566,10.5,,S +236,0,3,"Harknett, Miss. Alice Phoebe",female,,0,0,W./C. 6609,7.55,,S +237,0,2,"Hold, Mr. Stephen",male,44,1,0,26707,26,,S +238,1,2,"Collyer, Miss. Marjorie ""Lottie""",female,8,0,2,C.A. 31921,26.25,,S +239,0,2,"Pengelly, Mr. Frederick William",male,19,0,0,28665,10.5,,S +240,0,2,"Hunt, Mr. George Henry",male,33,0,0,SCO/W 1585,12.275,,S +241,0,3,"Zabour, Miss. Thamine",female,,1,0,2665,14.4542,,C +242,1,3,"Murphy, Miss. Katherine ""Kate""",female,,1,0,367230,15.5,,Q +243,0,2,"Coleridge, Mr. Reginald Charles",male,29,0,0,W./C. 14263,10.5,,S +244,0,3,"Maenpaa, Mr. Matti Alexanteri",male,22,0,0,STON/O 2. 3101275,7.125,,S +245,0,3,"Attalah, Mr. Sleiman",male,30,0,0,2694,7.225,,C +246,0,1,"Minahan, Dr. William Edward",male,44,2,0,19928,90,C78,Q +247,0,3,"Lindahl, Miss. Agda Thorilda Viktoria",female,25,0,0,347071,7.775,,S +248,1,2,"Hamalainen, Mrs. William (Anna)",female,24,0,2,250649,14.5,,S +249,1,1,"Beckwith, Mr. Richard Leonard",male,37,1,1,11751,52.5542,D35,S +250,0,2,"Carter, Rev. Ernest Courtenay",male,54,1,0,244252,26,,S +251,0,3,"Reed, Mr. James George",male,,0,0,362316,7.25,,S +252,0,3,"Strom, Mrs. Wilhelm (Elna Matilda Persson)",female,29,1,1,347054,10.4625,G6,S +253,0,1,"Stead, Mr. William Thomas",male,62,0,0,113514,26.55,C87,S +254,0,3,"Lobb, Mr. William Arthur",male,30,1,0,A/5. 3336,16.1,,S +255,0,3,"Rosblom, Mrs. Viktor (Helena Wilhelmina)",female,41,0,2,370129,20.2125,,S +256,1,3,"Touma, Mrs. Darwis (Hanne Youssef Razi)",female,29,0,2,2650,15.2458,,C +257,1,1,"Thorne, Mrs. Gertrude Maybelle",female,,0,0,PC 17585,79.2,,C +258,1,1,"Cherry, Miss. Gladys",female,30,0,0,110152,86.5,B77,S +259,1,1,"Ward, Miss. Anna",female,35,0,0,PC 17755,512.3292,,C +260,1,2,"Parrish, Mrs. (Lutie Davis)",female,50,0,1,230433,26,,S +261,0,3,"Smith, Mr. Thomas",male,,0,0,384461,7.75,,Q +262,1,3,"Asplund, Master. Edvin Rojj Felix",male,3,4,2,347077,31.3875,,S +263,0,1,"Taussig, Mr. Emil",male,52,1,1,110413,79.65,E67,S +264,0,1,"Harrison, Mr. William",male,40,0,0,112059,0,B94,S +265,0,3,"Henry, Miss. Delia",female,,0,0,382649,7.75,,Q +266,0,2,"Reeves, Mr. David",male,36,0,0,C.A. 17248,10.5,,S +267,0,3,"Panula, Mr. Ernesti Arvid",male,16,4,1,3101295,39.6875,,S +268,1,3,"Persson, Mr. Ernst Ulrik",male,25,1,0,347083,7.775,,S +269,1,1,"Graham, Mrs. William Thompson (Edith Junkins)",female,58,0,1,PC 17582,153.4625,C125,S +270,1,1,"Bissette, Miss. Amelia",female,35,0,0,PC 17760,135.6333,C99,S +271,0,1,"Cairns, Mr. Alexander",male,,0,0,113798,31,,S +272,1,3,"Tornquist, Mr. William Henry",male,25,0,0,LINE,0,,S +273,1,2,"Mellinger, Mrs. (Elizabeth Anne Maidment)",female,41,0,1,250644,19.5,,S +274,0,1,"Natsch, Mr. Charles H",male,37,0,1,PC 17596,29.7,C118,C +275,1,3,"Healy, Miss. Hanora ""Nora""",female,,0,0,370375,7.75,,Q +276,1,1,"Andrews, Miss. Kornelia Theodosia",female,63,1,0,13502,77.9583,D7,S +277,0,3,"Lindblom, Miss. Augusta Charlotta",female,45,0,0,347073,7.75,,S +278,0,2,"Parkes, Mr. Francis ""Frank""",male,,0,0,239853,0,,S +279,0,3,"Rice, Master. Eric",male,7,4,1,382652,29.125,,Q +280,1,3,"Abbott, Mrs. Stanton (Rosa Hunt)",female,35,1,1,C.A. 2673,20.25,,S +281,0,3,"Duane, Mr. Frank",male,65,0,0,336439,7.75,,Q +282,0,3,"Olsson, Mr. Nils Johan Goransson",male,28,0,0,347464,7.8542,,S +283,0,3,"de Pelsmaeker, Mr. Alfons",male,16,0,0,345778,9.5,,S +284,1,3,"Dorking, Mr. Edward Arthur",male,19,0,0,A/5. 10482,8.05,,S +285,0,1,"Smith, Mr. Richard William",male,,0,0,113056,26,A19,S +286,0,3,"Stankovic, Mr. Ivan",male,33,0,0,349239,8.6625,,C +287,1,3,"de Mulder, Mr. Theodore",male,30,0,0,345774,9.5,,S +288,0,3,"Naidenoff, Mr. Penko",male,22,0,0,349206,7.8958,,S +289,1,2,"Hosono, Mr. Masabumi",male,42,0,0,237798,13,,S +290,1,3,"Connolly, Miss. Kate",female,22,0,0,370373,7.75,,Q +291,1,1,"Barber, Miss. Ellen ""Nellie""",female,26,0,0,19877,78.85,,S +292,1,1,"Bishop, Mrs. Dickinson H (Helen Walton)",female,19,1,0,11967,91.0792,B49,C +293,0,2,"Levy, Mr. Rene Jacques",male,36,0,0,SC/Paris 2163,12.875,D,C +294,0,3,"Haas, Miss. Aloisia",female,24,0,0,349236,8.85,,S +295,0,3,"Mineff, Mr. Ivan",male,24,0,0,349233,7.8958,,S +296,0,1,"Lewy, Mr. Ervin G",male,,0,0,PC 17612,27.7208,,C +297,0,3,"Hanna, Mr. Mansour",male,23.5,0,0,2693,7.2292,,C +298,0,1,"Allison, Miss. Helen Loraine",female,2,1,2,113781,151.55,C22 C26,S +299,1,1,"Saalfeld, Mr. Adolphe",male,,0,0,19988,30.5,C106,S +300,1,1,"Baxter, Mrs. James (Helene DeLaudeniere Chaput)",female,50,0,1,PC 17558,247.5208,B58 B60,C +301,1,3,"Kelly, Miss. Anna Katherine ""Annie Kate""",female,,0,0,9234,7.75,,Q +302,1,3,"McCoy, Mr. Bernard",male,,2,0,367226,23.25,,Q +303,0,3,"Johnson, Mr. William Cahoone Jr",male,19,0,0,LINE,0,,S +304,1,2,"Keane, Miss. Nora A",female,,0,0,226593,12.35,E101,Q +305,0,3,"Williams, Mr. Howard Hugh ""Harry""",male,,0,0,A/5 2466,8.05,,S +306,1,1,"Allison, Master. Hudson Trevor",male,0.92,1,2,113781,151.55,C22 C26,S +307,1,1,"Fleming, Miss. Margaret",female,,0,0,17421,110.8833,,C +308,1,1,"Penasco y Castellana, Mrs. Victor de Satode (Maria Josefa Perez de Soto y Vallejo)",female,17,1,0,PC 17758,108.9,C65,C +309,0,2,"Abelson, Mr. Samuel",male,30,1,0,P/PP 3381,24,,C +310,1,1,"Francatelli, Miss. Laura Mabel",female,30,0,0,PC 17485,56.9292,E36,C +311,1,1,"Hays, Miss. Margaret Bechstein",female,24,0,0,11767,83.1583,C54,C +312,1,1,"Ryerson, Miss. Emily Borie",female,18,2,2,PC 17608,262.375,B57 B59 B63 B66,C +313,0,2,"Lahtinen, Mrs. William (Anna Sylfven)",female,26,1,1,250651,26,,S +314,0,3,"Hendekovic, Mr. Ignjac",male,28,0,0,349243,7.8958,,S +315,0,2,"Hart, Mr. Benjamin",male,43,1,1,F.C.C. 13529,26.25,,S +316,1,3,"Nilsson, Miss. Helmina Josefina",female,26,0,0,347470,7.8542,,S +317,1,2,"Kantor, Mrs. Sinai (Miriam Sternin)",female,24,1,0,244367,26,,S +318,0,2,"Moraweck, Dr. Ernest",male,54,0,0,29011,14,,S +319,1,1,"Wick, Miss. Mary Natalie",female,31,0,2,36928,164.8667,C7,S +320,1,1,"Spedden, Mrs. Frederic Oakley (Margaretta Corning Stone)",female,40,1,1,16966,134.5,E34,C +321,0,3,"Dennis, Mr. Samuel",male,22,0,0,A/5 21172,7.25,,S +322,0,3,"Danoff, Mr. Yoto",male,27,0,0,349219,7.8958,,S +323,1,2,"Slayter, Miss. Hilda Mary",female,30,0,0,234818,12.35,,Q +324,1,2,"Caldwell, Mrs. Albert Francis (Sylvia Mae Harbaugh)",female,22,1,1,248738,29,,S +325,0,3,"Sage, Mr. George John Jr",male,,8,2,CA. 2343,69.55,,S +326,1,1,"Young, Miss. Marie Grice",female,36,0,0,PC 17760,135.6333,C32,C +327,0,3,"Nysveen, Mr. Johan Hansen",male,61,0,0,345364,6.2375,,S +328,1,2,"Ball, Mrs. (Ada E Hall)",female,36,0,0,28551,13,D,S +329,1,3,"Goldsmith, Mrs. Frank John (Emily Alice Brown)",female,31,1,1,363291,20.525,,S +330,1,1,"Hippach, Miss. Jean Gertrude",female,16,0,1,111361,57.9792,B18,C +331,1,3,"McCoy, Miss. Agnes",female,,2,0,367226,23.25,,Q +332,0,1,"Partner, Mr. Austen",male,45.5,0,0,113043,28.5,C124,S +333,0,1,"Graham, Mr. George Edward",male,38,0,1,PC 17582,153.4625,C91,S +334,0,3,"Vander Planke, Mr. Leo Edmondus",male,16,2,0,345764,18,,S +335,1,1,"Frauenthal, Mrs. Henry William (Clara Heinsheimer)",female,,1,0,PC 17611,133.65,,S +336,0,3,"Denkoff, Mr. Mitto",male,,0,0,349225,7.8958,,S +337,0,1,"Pears, Mr. Thomas Clinton",male,29,1,0,113776,66.6,C2,S +338,1,1,"Burns, Miss. Elizabeth Margaret",female,41,0,0,16966,134.5,E40,C +339,1,3,"Dahl, Mr. Karl Edwart",male,45,0,0,7598,8.05,,S +340,0,1,"Blackwell, Mr. Stephen Weart",male,45,0,0,113784,35.5,T,S +341,1,2,"Navratil, Master. Edmond Roger",male,2,1,1,230080,26,F2,S +342,1,1,"Fortune, Miss. Alice Elizabeth",female,24,3,2,19950,263,C23 C25 C27,S +343,0,2,"Collander, Mr. Erik Gustaf",male,28,0,0,248740,13,,S +344,0,2,"Sedgwick, Mr. Charles Frederick Waddington",male,25,0,0,244361,13,,S +345,0,2,"Fox, Mr. Stanley Hubert",male,36,0,0,229236,13,,S +346,1,2,"Brown, Miss. Amelia ""Mildred""",female,24,0,0,248733,13,F33,S +347,1,2,"Smith, Miss. Marion Elsie",female,40,0,0,31418,13,,S +348,1,3,"Davison, Mrs. Thomas Henry (Mary E Finck)",female,,1,0,386525,16.1,,S +349,1,3,"Coutts, Master. William Loch ""William""",male,3,1,1,C.A. 37671,15.9,,S +350,0,3,"Dimic, Mr. Jovan",male,42,0,0,315088,8.6625,,S +351,0,3,"Odahl, Mr. Nils Martin",male,23,0,0,7267,9.225,,S +352,0,1,"Williams-Lambert, Mr. Fletcher Fellows",male,,0,0,113510,35,C128,S +353,0,3,"Elias, Mr. Tannous",male,15,1,1,2695,7.2292,,C +354,0,3,"Arnold-Franchi, Mr. Josef",male,25,1,0,349237,17.8,,S +355,0,3,"Yousif, Mr. Wazli",male,,0,0,2647,7.225,,C +356,0,3,"Vanden Steen, Mr. Leo Peter",male,28,0,0,345783,9.5,,S +357,1,1,"Bowerman, Miss. Elsie Edith",female,22,0,1,113505,55,E33,S +358,0,2,"Funk, Miss. Annie Clemmer",female,38,0,0,237671,13,,S +359,1,3,"McGovern, Miss. Mary",female,,0,0,330931,7.8792,,Q +360,1,3,"Mockler, Miss. Helen Mary ""Ellie""",female,,0,0,330980,7.8792,,Q +361,0,3,"Skoog, Mr. Wilhelm",male,40,1,4,347088,27.9,,S +362,0,2,"del Carlo, Mr. Sebastiano",male,29,1,0,SC/PARIS 2167,27.7208,,C +363,0,3,"Barbara, Mrs. (Catherine David)",female,45,0,1,2691,14.4542,,C +364,0,3,"Asim, Mr. Adola",male,35,0,0,SOTON/O.Q. 3101310,7.05,,S +365,0,3,"O'Brien, Mr. Thomas",male,,1,0,370365,15.5,,Q +366,0,3,"Adahl, Mr. Mauritz Nils Martin",male,30,0,0,C 7076,7.25,,S +367,1,1,"Warren, Mrs. Frank Manley (Anna Sophia Atkinson)",female,60,1,0,110813,75.25,D37,C +368,1,3,"Moussa, Mrs. (Mantoura Boulos)",female,,0,0,2626,7.2292,,C +369,1,3,"Jermyn, Miss. Annie",female,,0,0,14313,7.75,,Q +370,1,1,"Aubart, Mme. Leontine Pauline",female,24,0,0,PC 17477,69.3,B35,C +371,1,1,"Harder, Mr. George Achilles",male,25,1,0,11765,55.4417,E50,C +372,0,3,"Wiklund, Mr. Jakob Alfred",male,18,1,0,3101267,6.4958,,S +373,0,3,"Beavan, Mr. William Thomas",male,19,0,0,323951,8.05,,S +374,0,1,"Ringhini, Mr. Sante",male,22,0,0,PC 17760,135.6333,,C +375,0,3,"Palsson, Miss. Stina Viola",female,3,3,1,349909,21.075,,S +376,1,1,"Meyer, Mrs. Edgar Joseph (Leila Saks)",female,,1,0,PC 17604,82.1708,,C +377,1,3,"Landergren, Miss. Aurora Adelia",female,22,0,0,C 7077,7.25,,S +378,0,1,"Widener, Mr. Harry Elkins",male,27,0,2,113503,211.5,C82,C +379,0,3,"Betros, Mr. Tannous",male,20,0,0,2648,4.0125,,C +380,0,3,"Gustafsson, Mr. Karl Gideon",male,19,0,0,347069,7.775,,S +381,1,1,"Bidois, Miss. Rosalie",female,42,0,0,PC 17757,227.525,,C +382,1,3,"Nakid, Miss. Maria (""Mary"")",female,1,0,2,2653,15.7417,,C +383,0,3,"Tikkanen, Mr. Juho",male,32,0,0,STON/O 2. 3101293,7.925,,S +384,1,1,"Holverson, Mrs. Alexander Oskar (Mary Aline Towner)",female,35,1,0,113789,52,,S +385,0,3,"Plotcharsky, Mr. Vasil",male,,0,0,349227,7.8958,,S +386,0,2,"Davies, Mr. Charles Henry",male,18,0,0,S.O.C. 14879,73.5,,S +387,0,3,"Goodwin, Master. Sidney Leonard",male,1,5,2,CA 2144,46.9,,S +388,1,2,"Buss, Miss. Kate",female,36,0,0,27849,13,,S +389,0,3,"Sadlier, Mr. Matthew",male,,0,0,367655,7.7292,,Q +390,1,2,"Lehmann, Miss. Bertha",female,17,0,0,SC 1748,12,,C +391,1,1,"Carter, Mr. William Ernest",male,36,1,2,113760,120,B96 B98,S +392,1,3,"Jansson, Mr. Carl Olof",male,21,0,0,350034,7.7958,,S +393,0,3,"Gustafsson, Mr. Johan Birger",male,28,2,0,3101277,7.925,,S +394,1,1,"Newell, Miss. Marjorie",female,23,1,0,35273,113.275,D36,C +395,1,3,"Sandstrom, Mrs. Hjalmar (Agnes Charlotta Bengtsson)",female,24,0,2,PP 9549,16.7,G6,S +396,0,3,"Johansson, Mr. Erik",male,22,0,0,350052,7.7958,,S +397,0,3,"Olsson, Miss. Elina",female,31,0,0,350407,7.8542,,S +398,0,2,"McKane, Mr. Peter David",male,46,0,0,28403,26,,S +399,0,2,"Pain, Dr. Alfred",male,23,0,0,244278,10.5,,S +400,1,2,"Trout, Mrs. William H (Jessie L)",female,28,0,0,240929,12.65,,S +401,1,3,"Niskanen, Mr. Juha",male,39,0,0,STON/O 2. 3101289,7.925,,S +402,0,3,"Adams, Mr. John",male,26,0,0,341826,8.05,,S +403,0,3,"Jussila, Miss. Mari Aina",female,21,1,0,4137,9.825,,S +404,0,3,"Hakkarainen, Mr. Pekka Pietari",male,28,1,0,STON/O2. 3101279,15.85,,S +405,0,3,"Oreskovic, Miss. Marija",female,20,0,0,315096,8.6625,,S +406,0,2,"Gale, Mr. Shadrach",male,34,1,0,28664,21,,S +407,0,3,"Widegren, Mr. Carl/Charles Peter",male,51,0,0,347064,7.75,,S +408,1,2,"Richards, Master. William Rowe",male,3,1,1,29106,18.75,,S +409,0,3,"Birkeland, Mr. Hans Martin Monsen",male,21,0,0,312992,7.775,,S +410,0,3,"Lefebre, Miss. Ida",female,,3,1,4133,25.4667,,S +411,0,3,"Sdycoff, Mr. Todor",male,,0,0,349222,7.8958,,S +412,0,3,"Hart, Mr. Henry",male,,0,0,394140,6.8583,,Q +413,1,1,"Minahan, Miss. Daisy E",female,33,1,0,19928,90,C78,Q +414,0,2,"Cunningham, Mr. Alfred Fleming",male,,0,0,239853,0,,S +415,1,3,"Sundman, Mr. Johan Julian",male,44,0,0,STON/O 2. 3101269,7.925,,S +416,0,3,"Meek, Mrs. Thomas (Annie Louise Rowley)",female,,0,0,343095,8.05,,S +417,1,2,"Drew, Mrs. James Vivian (Lulu Thorne Christian)",female,34,1,1,28220,32.5,,S +418,1,2,"Silven, Miss. Lyyli Karoliina",female,18,0,2,250652,13,,S +419,0,2,"Matthews, Mr. William John",male,30,0,0,28228,13,,S +420,0,3,"Van Impe, Miss. Catharina",female,10,0,2,345773,24.15,,S +421,0,3,"Gheorgheff, Mr. Stanio",male,,0,0,349254,7.8958,,C +422,0,3,"Charters, Mr. David",male,21,0,0,A/5. 13032,7.7333,,Q +423,0,3,"Zimmerman, Mr. Leo",male,29,0,0,315082,7.875,,S +424,0,3,"Danbom, Mrs. Ernst Gilbert (Anna Sigrid Maria Brogren)",female,28,1,1,347080,14.4,,S +425,0,3,"Rosblom, Mr. Viktor Richard",male,18,1,1,370129,20.2125,,S +426,0,3,"Wiseman, Mr. Phillippe",male,,0,0,A/4. 34244,7.25,,S +427,1,2,"Clarke, Mrs. Charles V (Ada Maria Winfield)",female,28,1,0,2003,26,,S +428,1,2,"Phillips, Miss. Kate Florence (""Mrs Kate Louise Phillips Marshall"")",female,19,0,0,250655,26,,S +429,0,3,"Flynn, Mr. James",male,,0,0,364851,7.75,,Q +430,1,3,"Pickard, Mr. Berk (Berk Trembisky)",male,32,0,0,SOTON/O.Q. 392078,8.05,E10,S +431,1,1,"Bjornstrom-Steffansson, Mr. Mauritz Hakan",male,28,0,0,110564,26.55,C52,S +432,1,3,"Thorneycroft, Mrs. Percival (Florence Kate White)",female,,1,0,376564,16.1,,S +433,1,2,"Louch, Mrs. Charles Alexander (Alice Adelaide Slow)",female,42,1,0,SC/AH 3085,26,,S +434,0,3,"Kallio, Mr. Nikolai Erland",male,17,0,0,STON/O 2. 3101274,7.125,,S +435,0,1,"Silvey, Mr. William Baird",male,50,1,0,13507,55.9,E44,S +436,1,1,"Carter, Miss. Lucile Polk",female,14,1,2,113760,120,B96 B98,S +437,0,3,"Ford, Miss. Doolina Margaret ""Daisy""",female,21,2,2,W./C. 6608,34.375,,S +438,1,2,"Richards, Mrs. Sidney (Emily Hocking)",female,24,2,3,29106,18.75,,S +439,0,1,"Fortune, Mr. Mark",male,64,1,4,19950,263,C23 C25 C27,S +440,0,2,"Kvillner, Mr. Johan Henrik Johannesson",male,31,0,0,C.A. 18723,10.5,,S +441,1,2,"Hart, Mrs. Benjamin (Esther Ada Bloomfield)",female,45,1,1,F.C.C. 13529,26.25,,S +442,0,3,"Hampe, Mr. Leon",male,20,0,0,345769,9.5,,S +443,0,3,"Petterson, Mr. Johan Emil",male,25,1,0,347076,7.775,,S +444,1,2,"Reynaldo, Ms. Encarnacion",female,28,0,0,230434,13,,S +445,1,3,"Johannesen-Bratthammer, Mr. Bernt",male,,0,0,65306,8.1125,,S +446,1,1,"Dodge, Master. Washington",male,4,0,2,33638,81.8583,A34,S +447,1,2,"Mellinger, Miss. Madeleine Violet",female,13,0,1,250644,19.5,,S +448,1,1,"Seward, Mr. Frederic Kimber",male,34,0,0,113794,26.55,,S +449,1,3,"Baclini, Miss. Marie Catherine",female,5,2,1,2666,19.2583,,C +450,1,1,"Peuchen, Major. Arthur Godfrey",male,52,0,0,113786,30.5,C104,S +451,0,2,"West, Mr. Edwy Arthur",male,36,1,2,C.A. 34651,27.75,,S +452,0,3,"Hagland, Mr. Ingvald Olai Olsen",male,,1,0,65303,19.9667,,S +453,0,1,"Foreman, Mr. Benjamin Laventall",male,30,0,0,113051,27.75,C111,C +454,1,1,"Goldenberg, Mr. Samuel L",male,49,1,0,17453,89.1042,C92,C +455,0,3,"Peduzzi, Mr. Joseph",male,,0,0,A/5 2817,8.05,,S +456,1,3,"Jalsevac, Mr. Ivan",male,29,0,0,349240,7.8958,,C +457,0,1,"Millet, Mr. Francis Davis",male,65,0,0,13509,26.55,E38,S +458,1,1,"Kenyon, Mrs. Frederick R (Marion)",female,,1,0,17464,51.8625,D21,S +459,1,2,"Toomey, Miss. Ellen",female,50,0,0,F.C.C. 13531,10.5,,S +460,0,3,"O'Connor, Mr. Maurice",male,,0,0,371060,7.75,,Q +461,1,1,"Anderson, Mr. Harry",male,48,0,0,19952,26.55,E12,S +462,0,3,"Morley, Mr. William",male,34,0,0,364506,8.05,,S +463,0,1,"Gee, Mr. Arthur H",male,47,0,0,111320,38.5,E63,S +464,0,2,"Milling, Mr. Jacob Christian",male,48,0,0,234360,13,,S +465,0,3,"Maisner, Mr. Simon",male,,0,0,A/S 2816,8.05,,S +466,0,3,"Goncalves, Mr. Manuel Estanslas",male,38,0,0,SOTON/O.Q. 3101306,7.05,,S +467,0,2,"Campbell, Mr. William",male,,0,0,239853,0,,S +468,0,1,"Smart, Mr. John Montgomery",male,56,0,0,113792,26.55,,S +469,0,3,"Scanlan, Mr. James",male,,0,0,36209,7.725,,Q +470,1,3,"Baclini, Miss. Helene Barbara",female,0.75,2,1,2666,19.2583,,C +471,0,3,"Keefe, Mr. Arthur",male,,0,0,323592,7.25,,S +472,0,3,"Cacic, Mr. Luka",male,38,0,0,315089,8.6625,,S +473,1,2,"West, Mrs. Edwy Arthur (Ada Mary Worth)",female,33,1,2,C.A. 34651,27.75,,S +474,1,2,"Jerwan, Mrs. Amin S (Marie Marthe Thuillard)",female,23,0,0,SC/AH Basle 541,13.7917,D,C +475,0,3,"Strandberg, Miss. Ida Sofia",female,22,0,0,7553,9.8375,,S +476,0,1,"Clifford, Mr. George Quincy",male,,0,0,110465,52,A14,S +477,0,2,"Renouf, Mr. Peter Henry",male,34,1,0,31027,21,,S +478,0,3,"Braund, Mr. Lewis Richard",male,29,1,0,3460,7.0458,,S +479,0,3,"Karlsson, Mr. Nils August",male,22,0,0,350060,7.5208,,S +480,1,3,"Hirvonen, Miss. Hildur E",female,2,0,1,3101298,12.2875,,S +481,0,3,"Goodwin, Master. Harold Victor",male,9,5,2,CA 2144,46.9,,S +482,0,2,"Frost, Mr. Anthony Wood ""Archie""",male,,0,0,239854,0,,S +483,0,3,"Rouse, Mr. Richard Henry",male,50,0,0,A/5 3594,8.05,,S +484,1,3,"Turkula, Mrs. (Hedwig)",female,63,0,0,4134,9.5875,,S +485,1,1,"Bishop, Mr. Dickinson H",male,25,1,0,11967,91.0792,B49,C +486,0,3,"Lefebre, Miss. Jeannie",female,,3,1,4133,25.4667,,S +487,1,1,"Hoyt, Mrs. Frederick Maxfield (Jane Anne Forby)",female,35,1,0,19943,90,C93,S +488,0,1,"Kent, Mr. Edward Austin",male,58,0,0,11771,29.7,B37,C +489,0,3,"Somerton, Mr. Francis William",male,30,0,0,A.5. 18509,8.05,,S +490,1,3,"Coutts, Master. Eden Leslie ""Neville""",male,9,1,1,C.A. 37671,15.9,,S +491,0,3,"Hagland, Mr. Konrad Mathias Reiersen",male,,1,0,65304,19.9667,,S +492,0,3,"Windelov, Mr. Einar",male,21,0,0,SOTON/OQ 3101317,7.25,,S +493,0,1,"Molson, Mr. Harry Markland",male,55,0,0,113787,30.5,C30,S +494,0,1,"Artagaveytia, Mr. Ramon",male,71,0,0,PC 17609,49.5042,,C +495,0,3,"Stanley, Mr. Edward Roland",male,21,0,0,A/4 45380,8.05,,S +496,0,3,"Yousseff, Mr. Gerious",male,,0,0,2627,14.4583,,C +497,1,1,"Eustis, Miss. Elizabeth Mussey",female,54,1,0,36947,78.2667,D20,C +498,0,3,"Shellard, Mr. Frederick William",male,,0,0,C.A. 6212,15.1,,S +499,0,1,"Allison, Mrs. Hudson J C (Bessie Waldo Daniels)",female,25,1,2,113781,151.55,C22 C26,S +500,0,3,"Svensson, Mr. Olof",male,24,0,0,350035,7.7958,,S +501,0,3,"Calic, Mr. Petar",male,17,0,0,315086,8.6625,,S +502,0,3,"Canavan, Miss. Mary",female,21,0,0,364846,7.75,,Q +503,0,3,"O'Sullivan, Miss. Bridget Mary",female,,0,0,330909,7.6292,,Q +504,0,3,"Laitinen, Miss. Kristina Sofia",female,37,0,0,4135,9.5875,,S +505,1,1,"Maioni, Miss. Roberta",female,16,0,0,110152,86.5,B79,S +506,0,1,"Penasco y Castellana, Mr. Victor de Satode",male,18,1,0,PC 17758,108.9,C65,C +507,1,2,"Quick, Mrs. Frederick Charles (Jane Richards)",female,33,0,2,26360,26,,S +508,1,1,"Bradley, Mr. George (""George Arthur Brayton"")",male,,0,0,111427,26.55,,S +509,0,3,"Olsen, Mr. Henry Margido",male,28,0,0,C 4001,22.525,,S +510,1,3,"Lang, Mr. Fang",male,26,0,0,1601,56.4958,,S +511,1,3,"Daly, Mr. Eugene Patrick",male,29,0,0,382651,7.75,,Q +512,0,3,"Webber, Mr. James",male,,0,0,SOTON/OQ 3101316,8.05,,S +513,1,1,"McGough, Mr. James Robert",male,36,0,0,PC 17473,26.2875,E25,S +514,1,1,"Rothschild, Mrs. Martin (Elizabeth L. Barrett)",female,54,1,0,PC 17603,59.4,,C +515,0,3,"Coleff, Mr. Satio",male,24,0,0,349209,7.4958,,S +516,0,1,"Walker, Mr. William Anderson",male,47,0,0,36967,34.0208,D46,S +517,1,2,"Lemore, Mrs. (Amelia Milley)",female,34,0,0,C.A. 34260,10.5,F33,S +518,0,3,"Ryan, Mr. Patrick",male,,0,0,371110,24.15,,Q +519,1,2,"Angle, Mrs. William A (Florence ""Mary"" Agnes Hughes)",female,36,1,0,226875,26,,S +520,0,3,"Pavlovic, Mr. Stefo",male,32,0,0,349242,7.8958,,S +521,1,1,"Perreault, Miss. Anne",female,30,0,0,12749,93.5,B73,S +522,0,3,"Vovk, Mr. Janko",male,22,0,0,349252,7.8958,,S +523,0,3,"Lahoud, Mr. Sarkis",male,,0,0,2624,7.225,,C +524,1,1,"Hippach, Mrs. Louis Albert (Ida Sophia Fischer)",female,44,0,1,111361,57.9792,B18,C +525,0,3,"Kassem, Mr. Fared",male,,0,0,2700,7.2292,,C +526,0,3,"Farrell, Mr. James",male,40.5,0,0,367232,7.75,,Q +527,1,2,"Ridsdale, Miss. Lucy",female,50,0,0,W./C. 14258,10.5,,S +528,0,1,"Farthing, Mr. John",male,,0,0,PC 17483,221.7792,C95,S +529,0,3,"Salonen, Mr. Johan Werner",male,39,0,0,3101296,7.925,,S +530,0,2,"Hocking, Mr. Richard George",male,23,2,1,29104,11.5,,S +531,1,2,"Quick, Miss. Phyllis May",female,2,1,1,26360,26,,S +532,0,3,"Toufik, Mr. Nakli",male,,0,0,2641,7.2292,,C +533,0,3,"Elias, Mr. Joseph Jr",male,17,1,1,2690,7.2292,,C +534,1,3,"Peter, Mrs. Catherine (Catherine Rizk)",female,,0,2,2668,22.3583,,C +535,0,3,"Cacic, Miss. Marija",female,30,0,0,315084,8.6625,,S +536,1,2,"Hart, Miss. Eva Miriam",female,7,0,2,F.C.C. 13529,26.25,,S +537,0,1,"Butt, Major. Archibald Willingham",male,45,0,0,113050,26.55,B38,S +538,1,1,"LeRoy, Miss. Bertha",female,30,0,0,PC 17761,106.425,,C +539,0,3,"Risien, Mr. Samuel Beard",male,,0,0,364498,14.5,,S +540,1,1,"Frolicher, Miss. Hedwig Margaritha",female,22,0,2,13568,49.5,B39,C +541,1,1,"Crosby, Miss. Harriet R",female,36,0,2,WE/P 5735,71,B22,S +542,0,3,"Andersson, Miss. Ingeborg Constanzia",female,9,4,2,347082,31.275,,S +543,0,3,"Andersson, Miss. Sigrid Elisabeth",female,11,4,2,347082,31.275,,S +544,1,2,"Beane, Mr. Edward",male,32,1,0,2908,26,,S +545,0,1,"Douglas, Mr. Walter Donald",male,50,1,0,PC 17761,106.425,C86,C +546,0,1,"Nicholson, Mr. Arthur Ernest",male,64,0,0,693,26,,S +547,1,2,"Beane, Mrs. Edward (Ethel Clarke)",female,19,1,0,2908,26,,S +548,1,2,"Padro y Manent, Mr. Julian",male,,0,0,SC/PARIS 2146,13.8625,,C +549,0,3,"Goldsmith, Mr. Frank John",male,33,1,1,363291,20.525,,S +550,1,2,"Davies, Master. John Morgan Jr",male,8,1,1,C.A. 33112,36.75,,S +551,1,1,"Thayer, Mr. John Borland Jr",male,17,0,2,17421,110.8833,C70,C +552,0,2,"Sharp, Mr. Percival James R",male,27,0,0,244358,26,,S +553,0,3,"O'Brien, Mr. Timothy",male,,0,0,330979,7.8292,,Q +554,1,3,"Leeni, Mr. Fahim (""Philip Zenni"")",male,22,0,0,2620,7.225,,C +555,1,3,"Ohman, Miss. Velin",female,22,0,0,347085,7.775,,S +556,0,1,"Wright, Mr. George",male,62,0,0,113807,26.55,,S +557,1,1,"Duff Gordon, Lady. (Lucille Christiana Sutherland) (""Mrs Morgan"")",female,48,1,0,11755,39.6,A16,C +558,0,1,"Robbins, Mr. Victor",male,,0,0,PC 17757,227.525,,C +559,1,1,"Taussig, Mrs. Emil (Tillie Mandelbaum)",female,39,1,1,110413,79.65,E67,S +560,1,3,"de Messemaeker, Mrs. Guillaume Joseph (Emma)",female,36,1,0,345572,17.4,,S +561,0,3,"Morrow, Mr. Thomas Rowan",male,,0,0,372622,7.75,,Q +562,0,3,"Sivic, Mr. Husein",male,40,0,0,349251,7.8958,,S +563,0,2,"Norman, Mr. Robert Douglas",male,28,0,0,218629,13.5,,S +564,0,3,"Simmons, Mr. John",male,,0,0,SOTON/OQ 392082,8.05,,S +565,0,3,"Meanwell, Miss. (Marion Ogden)",female,,0,0,SOTON/O.Q. 392087,8.05,,S +566,0,3,"Davies, Mr. Alfred J",male,24,2,0,A/4 48871,24.15,,S +567,0,3,"Stoytcheff, Mr. Ilia",male,19,0,0,349205,7.8958,,S +568,0,3,"Palsson, Mrs. Nils (Alma Cornelia Berglund)",female,29,0,4,349909,21.075,,S +569,0,3,"Doharr, Mr. Tannous",male,,0,0,2686,7.2292,,C +570,1,3,"Jonsson, Mr. Carl",male,32,0,0,350417,7.8542,,S +571,1,2,"Harris, Mr. George",male,62,0,0,S.W./PP 752,10.5,,S +572,1,1,"Appleton, Mrs. Edward Dale (Charlotte Lamson)",female,53,2,0,11769,51.4792,C101,S +573,1,1,"Flynn, Mr. John Irwin (""Irving"")",male,36,0,0,PC 17474,26.3875,E25,S +574,1,3,"Kelly, Miss. Mary",female,,0,0,14312,7.75,,Q +575,0,3,"Rush, Mr. Alfred George John",male,16,0,0,A/4. 20589,8.05,,S +576,0,3,"Patchett, Mr. George",male,19,0,0,358585,14.5,,S +577,1,2,"Garside, Miss. Ethel",female,34,0,0,243880,13,,S +578,1,1,"Silvey, Mrs. William Baird (Alice Munger)",female,39,1,0,13507,55.9,E44,S +579,0,3,"Caram, Mrs. Joseph (Maria Elias)",female,,1,0,2689,14.4583,,C +580,1,3,"Jussila, Mr. Eiriik",male,32,0,0,STON/O 2. 3101286,7.925,,S +581,1,2,"Christy, Miss. Julie Rachel",female,25,1,1,237789,30,,S +582,1,1,"Thayer, Mrs. John Borland (Marian Longstreth Morris)",female,39,1,1,17421,110.8833,C68,C +583,0,2,"Downton, Mr. William James",male,54,0,0,28403,26,,S +584,0,1,"Ross, Mr. John Hugo",male,36,0,0,13049,40.125,A10,C +585,0,3,"Paulner, Mr. Uscher",male,,0,0,3411,8.7125,,C +586,1,1,"Taussig, Miss. Ruth",female,18,0,2,110413,79.65,E68,S +587,0,2,"Jarvis, Mr. John Denzil",male,47,0,0,237565,15,,S +588,1,1,"Frolicher-Stehli, Mr. Maxmillian",male,60,1,1,13567,79.2,B41,C +589,0,3,"Gilinski, Mr. Eliezer",male,22,0,0,14973,8.05,,S +590,0,3,"Murdlin, Mr. Joseph",male,,0,0,A./5. 3235,8.05,,S +591,0,3,"Rintamaki, Mr. Matti",male,35,0,0,STON/O 2. 3101273,7.125,,S +592,1,1,"Stephenson, Mrs. Walter Bertram (Martha Eustis)",female,52,1,0,36947,78.2667,D20,C +593,0,3,"Elsbury, Mr. William James",male,47,0,0,A/5 3902,7.25,,S +594,0,3,"Bourke, Miss. Mary",female,,0,2,364848,7.75,,Q +595,0,2,"Chapman, Mr. John Henry",male,37,1,0,SC/AH 29037,26,,S +596,0,3,"Van Impe, Mr. Jean Baptiste",male,36,1,1,345773,24.15,,S +597,1,2,"Leitch, Miss. Jessie Wills",female,,0,0,248727,33,,S +598,0,3,"Johnson, Mr. Alfred",male,49,0,0,LINE,0,,S +599,0,3,"Boulos, Mr. Hanna",male,,0,0,2664,7.225,,C +600,1,1,"Duff Gordon, Sir. Cosmo Edmund (""Mr Morgan"")",male,49,1,0,PC 17485,56.9292,A20,C +601,1,2,"Jacobsohn, Mrs. Sidney Samuel (Amy Frances Christy)",female,24,2,1,243847,27,,S +602,0,3,"Slabenoff, Mr. Petco",male,,0,0,349214,7.8958,,S +603,0,1,"Harrington, Mr. Charles H",male,,0,0,113796,42.4,,S +604,0,3,"Torber, Mr. Ernst William",male,44,0,0,364511,8.05,,S +605,1,1,"Homer, Mr. Harry (""Mr E Haven"")",male,35,0,0,111426,26.55,,C +606,0,3,"Lindell, Mr. Edvard Bengtsson",male,36,1,0,349910,15.55,,S +607,0,3,"Karaic, Mr. Milan",male,30,0,0,349246,7.8958,,S +608,1,1,"Daniel, Mr. Robert Williams",male,27,0,0,113804,30.5,,S +609,1,2,"Laroche, Mrs. Joseph (Juliette Marie Louise Lafargue)",female,22,1,2,SC/Paris 2123,41.5792,,C +610,1,1,"Shutes, Miss. Elizabeth W",female,40,0,0,PC 17582,153.4625,C125,S +611,0,3,"Andersson, Mrs. Anders Johan (Alfrida Konstantia Brogren)",female,39,1,5,347082,31.275,,S +612,0,3,"Jardin, Mr. Jose Neto",male,,0,0,SOTON/O.Q. 3101305,7.05,,S +613,1,3,"Murphy, Miss. Margaret Jane",female,,1,0,367230,15.5,,Q +614,0,3,"Horgan, Mr. John",male,,0,0,370377,7.75,,Q +615,0,3,"Brocklebank, Mr. William Alfred",male,35,0,0,364512,8.05,,S +616,1,2,"Herman, Miss. Alice",female,24,1,2,220845,65,,S +617,0,3,"Danbom, Mr. Ernst Gilbert",male,34,1,1,347080,14.4,,S +618,0,3,"Lobb, Mrs. William Arthur (Cordelia K Stanlick)",female,26,1,0,A/5. 3336,16.1,,S +619,1,2,"Becker, Miss. Marion Louise",female,4,2,1,230136,39,F4,S +620,0,2,"Gavey, Mr. Lawrence",male,26,0,0,31028,10.5,,S +621,0,3,"Yasbeck, Mr. Antoni",male,27,1,0,2659,14.4542,,C +622,1,1,"Kimball, Mr. Edwin Nelson Jr",male,42,1,0,11753,52.5542,D19,S +623,1,3,"Nakid, Mr. Sahid",male,20,1,1,2653,15.7417,,C +624,0,3,"Hansen, Mr. Henry Damsgaard",male,21,0,0,350029,7.8542,,S +625,0,3,"Bowen, Mr. David John ""Dai""",male,21,0,0,54636,16.1,,S +626,0,1,"Sutton, Mr. Frederick",male,61,0,0,36963,32.3208,D50,S +627,0,2,"Kirkland, Rev. Charles Leonard",male,57,0,0,219533,12.35,,Q +628,1,1,"Longley, Miss. Gretchen Fiske",female,21,0,0,13502,77.9583,D9,S +629,0,3,"Bostandyeff, Mr. Guentcho",male,26,0,0,349224,7.8958,,S +630,0,3,"O'Connell, Mr. Patrick D",male,,0,0,334912,7.7333,,Q +631,1,1,"Barkworth, Mr. Algernon Henry Wilson",male,80,0,0,27042,30,A23,S +632,0,3,"Lundahl, Mr. Johan Svensson",male,51,0,0,347743,7.0542,,S +633,1,1,"Stahelin-Maeglin, Dr. Max",male,32,0,0,13214,30.5,B50,C +634,0,1,"Parr, Mr. William Henry Marsh",male,,0,0,112052,0,,S +635,0,3,"Skoog, Miss. Mabel",female,9,3,2,347088,27.9,,S +636,1,2,"Davis, Miss. Mary",female,28,0,0,237668,13,,S +637,0,3,"Leinonen, Mr. Antti Gustaf",male,32,0,0,STON/O 2. 3101292,7.925,,S +638,0,2,"Collyer, Mr. Harvey",male,31,1,1,C.A. 31921,26.25,,S +639,0,3,"Panula, Mrs. Juha (Maria Emilia Ojala)",female,41,0,5,3101295,39.6875,,S +640,0,3,"Thorneycroft, Mr. Percival",male,,1,0,376564,16.1,,S +641,0,3,"Jensen, Mr. Hans Peder",male,20,0,0,350050,7.8542,,S +642,1,1,"Sagesser, Mlle. Emma",female,24,0,0,PC 17477,69.3,B35,C +643,0,3,"Skoog, Miss. Margit Elizabeth",female,2,3,2,347088,27.9,,S +644,1,3,"Foo, Mr. Choong",male,,0,0,1601,56.4958,,S +645,1,3,"Baclini, Miss. Eugenie",female,0.75,2,1,2666,19.2583,,C +646,1,1,"Harper, Mr. Henry Sleeper",male,48,1,0,PC 17572,76.7292,D33,C +647,0,3,"Cor, Mr. Liudevit",male,19,0,0,349231,7.8958,,S +648,1,1,"Simonius-Blumer, Col. Oberst Alfons",male,56,0,0,13213,35.5,A26,C +649,0,3,"Willey, Mr. Edward",male,,0,0,S.O./P.P. 751,7.55,,S +650,1,3,"Stanley, Miss. Amy Zillah Elsie",female,23,0,0,CA. 2314,7.55,,S +651,0,3,"Mitkoff, Mr. Mito",male,,0,0,349221,7.8958,,S +652,1,2,"Doling, Miss. Elsie",female,18,0,1,231919,23,,S +653,0,3,"Kalvik, Mr. Johannes Halvorsen",male,21,0,0,8475,8.4333,,S +654,1,3,"O'Leary, Miss. Hanora ""Norah""",female,,0,0,330919,7.8292,,Q +655,0,3,"Hegarty, Miss. Hanora ""Nora""",female,18,0,0,365226,6.75,,Q +656,0,2,"Hickman, Mr. Leonard Mark",male,24,2,0,S.O.C. 14879,73.5,,S +657,0,3,"Radeff, Mr. Alexander",male,,0,0,349223,7.8958,,S +658,0,3,"Bourke, Mrs. John (Catherine)",female,32,1,1,364849,15.5,,Q +659,0,2,"Eitemiller, Mr. George Floyd",male,23,0,0,29751,13,,S +660,0,1,"Newell, Mr. Arthur Webster",male,58,0,2,35273,113.275,D48,C +661,1,1,"Frauenthal, Dr. Henry William",male,50,2,0,PC 17611,133.65,,S +662,0,3,"Badt, Mr. Mohamed",male,40,0,0,2623,7.225,,C +663,0,1,"Colley, Mr. Edward Pomeroy",male,47,0,0,5727,25.5875,E58,S +664,0,3,"Coleff, Mr. Peju",male,36,0,0,349210,7.4958,,S +665,1,3,"Lindqvist, Mr. Eino William",male,20,1,0,STON/O 2. 3101285,7.925,,S +666,0,2,"Hickman, Mr. Lewis",male,32,2,0,S.O.C. 14879,73.5,,S +667,0,2,"Butler, Mr. Reginald Fenton",male,25,0,0,234686,13,,S +668,0,3,"Rommetvedt, Mr. Knud Paust",male,,0,0,312993,7.775,,S +669,0,3,"Cook, Mr. Jacob",male,43,0,0,A/5 3536,8.05,,S +670,1,1,"Taylor, Mrs. Elmer Zebley (Juliet Cummins Wright)",female,,1,0,19996,52,C126,S +671,1,2,"Brown, Mrs. Thomas William Solomon (Elizabeth Catherine Ford)",female,40,1,1,29750,39,,S +672,0,1,"Davidson, Mr. Thornton",male,31,1,0,F.C. 12750,52,B71,S +673,0,2,"Mitchell, Mr. Henry Michael",male,70,0,0,C.A. 24580,10.5,,S +674,1,2,"Wilhelms, Mr. Charles",male,31,0,0,244270,13,,S +675,0,2,"Watson, Mr. Ennis Hastings",male,,0,0,239856,0,,S +676,0,3,"Edvardsson, Mr. Gustaf Hjalmar",male,18,0,0,349912,7.775,,S +677,0,3,"Sawyer, Mr. Frederick Charles",male,24.5,0,0,342826,8.05,,S +678,1,3,"Turja, Miss. Anna Sofia",female,18,0,0,4138,9.8417,,S +679,0,3,"Goodwin, Mrs. Frederick (Augusta Tyler)",female,43,1,6,CA 2144,46.9,,S +680,1,1,"Cardeza, Mr. Thomas Drake Martinez",male,36,0,1,PC 17755,512.3292,B51 B53 B55,C +681,0,3,"Peters, Miss. Katie",female,,0,0,330935,8.1375,,Q +682,1,1,"Hassab, Mr. Hammad",male,27,0,0,PC 17572,76.7292,D49,C +683,0,3,"Olsvigen, Mr. Thor Anderson",male,20,0,0,6563,9.225,,S +684,0,3,"Goodwin, Mr. Charles Edward",male,14,5,2,CA 2144,46.9,,S +685,0,2,"Brown, Mr. Thomas William Solomon",male,60,1,1,29750,39,,S +686,0,2,"Laroche, Mr. Joseph Philippe Lemercier",male,25,1,2,SC/Paris 2123,41.5792,,C +687,0,3,"Panula, Mr. Jaako Arnold",male,14,4,1,3101295,39.6875,,S +688,0,3,"Dakic, Mr. Branko",male,19,0,0,349228,10.1708,,S +689,0,3,"Fischer, Mr. Eberhard Thelander",male,18,0,0,350036,7.7958,,S +690,1,1,"Madill, Miss. Georgette Alexandra",female,15,0,1,24160,211.3375,B5,S +691,1,1,"Dick, Mr. Albert Adrian",male,31,1,0,17474,57,B20,S +692,1,3,"Karun, Miss. Manca",female,4,0,1,349256,13.4167,,C +693,1,3,"Lam, Mr. Ali",male,,0,0,1601,56.4958,,S +694,0,3,"Saad, Mr. Khalil",male,25,0,0,2672,7.225,,C +695,0,1,"Weir, Col. John",male,60,0,0,113800,26.55,,S +696,0,2,"Chapman, Mr. Charles Henry",male,52,0,0,248731,13.5,,S +697,0,3,"Kelly, Mr. James",male,44,0,0,363592,8.05,,S +698,1,3,"Mullens, Miss. Katherine ""Katie""",female,,0,0,35852,7.7333,,Q +699,0,1,"Thayer, Mr. John Borland",male,49,1,1,17421,110.8833,C68,C +700,0,3,"Humblen, Mr. Adolf Mathias Nicolai Olsen",male,42,0,0,348121,7.65,F G63,S +701,1,1,"Astor, Mrs. John Jacob (Madeleine Talmadge Force)",female,18,1,0,PC 17757,227.525,C62 C64,C +702,1,1,"Silverthorne, Mr. Spencer Victor",male,35,0,0,PC 17475,26.2875,E24,S +703,0,3,"Barbara, Miss. Saiide",female,18,0,1,2691,14.4542,,C +704,0,3,"Gallagher, Mr. Martin",male,25,0,0,36864,7.7417,,Q +705,0,3,"Hansen, Mr. Henrik Juul",male,26,1,0,350025,7.8542,,S +706,0,2,"Morley, Mr. Henry Samuel (""Mr Henry Marshall"")",male,39,0,0,250655,26,,S +707,1,2,"Kelly, Mrs. Florence ""Fannie""",female,45,0,0,223596,13.5,,S +708,1,1,"Calderhead, Mr. Edward Pennington",male,42,0,0,PC 17476,26.2875,E24,S +709,1,1,"Cleaver, Miss. Alice",female,22,0,0,113781,151.55,,S +710,1,3,"Moubarek, Master. Halim Gonios (""William George"")",male,,1,1,2661,15.2458,,C +711,1,1,"Mayne, Mlle. Berthe Antonine (""Mrs de Villiers"")",female,24,0,0,PC 17482,49.5042,C90,C +712,0,1,"Klaber, Mr. Herman",male,,0,0,113028,26.55,C124,S +713,1,1,"Taylor, Mr. Elmer Zebley",male,48,1,0,19996,52,C126,S +714,0,3,"Larsson, Mr. August Viktor",male,29,0,0,7545,9.4833,,S +715,0,2,"Greenberg, Mr. Samuel",male,52,0,0,250647,13,,S +716,0,3,"Soholt, Mr. Peter Andreas Lauritz Andersen",male,19,0,0,348124,7.65,F G73,S +717,1,1,"Endres, Miss. Caroline Louise",female,38,0,0,PC 17757,227.525,C45,C +718,1,2,"Troutt, Miss. Edwina Celia ""Winnie""",female,27,0,0,34218,10.5,E101,S +719,0,3,"McEvoy, Mr. Michael",male,,0,0,36568,15.5,,Q +720,0,3,"Johnson, Mr. Malkolm Joackim",male,33,0,0,347062,7.775,,S +721,1,2,"Harper, Miss. Annie Jessie ""Nina""",female,6,0,1,248727,33,,S +722,0,3,"Jensen, Mr. Svend Lauritz",male,17,1,0,350048,7.0542,,S +723,0,2,"Gillespie, Mr. William Henry",male,34,0,0,12233,13,,S +724,0,2,"Hodges, Mr. Henry Price",male,50,0,0,250643,13,,S +725,1,1,"Chambers, Mr. Norman Campbell",male,27,1,0,113806,53.1,E8,S +726,0,3,"Oreskovic, Mr. Luka",male,20,0,0,315094,8.6625,,S +727,1,2,"Renouf, Mrs. Peter Henry (Lillian Jefferys)",female,30,3,0,31027,21,,S +728,1,3,"Mannion, Miss. Margareth",female,,0,0,36866,7.7375,,Q +729,0,2,"Bryhl, Mr. Kurt Arnold Gottfrid",male,25,1,0,236853,26,,S +730,0,3,"Ilmakangas, Miss. Pieta Sofia",female,25,1,0,STON/O2. 3101271,7.925,,S +731,1,1,"Allen, Miss. Elisabeth Walton",female,29,0,0,24160,211.3375,B5,S +732,0,3,"Hassan, Mr. Houssein G N",male,11,0,0,2699,18.7875,,C +733,0,2,"Knight, Mr. Robert J",male,,0,0,239855,0,,S +734,0,2,"Berriman, Mr. William John",male,23,0,0,28425,13,,S +735,0,2,"Troupiansky, Mr. Moses Aaron",male,23,0,0,233639,13,,S +736,0,3,"Williams, Mr. Leslie",male,28.5,0,0,54636,16.1,,S +737,0,3,"Ford, Mrs. Edward (Margaret Ann Watson)",female,48,1,3,W./C. 6608,34.375,,S +738,1,1,"Lesurer, Mr. Gustave J",male,35,0,0,PC 17755,512.3292,B101,C +739,0,3,"Ivanoff, Mr. Kanio",male,,0,0,349201,7.8958,,S +740,0,3,"Nankoff, Mr. Minko",male,,0,0,349218,7.8958,,S +741,1,1,"Hawksford, Mr. Walter James",male,,0,0,16988,30,D45,S +742,0,1,"Cavendish, Mr. Tyrell William",male,36,1,0,19877,78.85,C46,S +743,1,1,"Ryerson, Miss. Susan Parker ""Suzette""",female,21,2,2,PC 17608,262.375,B57 B59 B63 B66,C +744,0,3,"McNamee, Mr. Neal",male,24,1,0,376566,16.1,,S +745,1,3,"Stranden, Mr. Juho",male,31,0,0,STON/O 2. 3101288,7.925,,S +746,0,1,"Crosby, Capt. Edward Gifford",male,70,1,1,WE/P 5735,71,B22,S +747,0,3,"Abbott, Mr. Rossmore Edward",male,16,1,1,C.A. 2673,20.25,,S +748,1,2,"Sinkkonen, Miss. Anna",female,30,0,0,250648,13,,S +749,0,1,"Marvin, Mr. Daniel Warner",male,19,1,0,113773,53.1,D30,S +750,0,3,"Connaghton, Mr. Michael",male,31,0,0,335097,7.75,,Q +751,1,2,"Wells, Miss. Joan",female,4,1,1,29103,23,,S +752,1,3,"Moor, Master. Meier",male,6,0,1,392096,12.475,E121,S +753,0,3,"Vande Velde, Mr. Johannes Joseph",male,33,0,0,345780,9.5,,S +754,0,3,"Jonkoff, Mr. Lalio",male,23,0,0,349204,7.8958,,S +755,1,2,"Herman, Mrs. Samuel (Jane Laver)",female,48,1,2,220845,65,,S +756,1,2,"Hamalainen, Master. Viljo",male,0.67,1,1,250649,14.5,,S +757,0,3,"Carlsson, Mr. August Sigfrid",male,28,0,0,350042,7.7958,,S +758,0,2,"Bailey, Mr. Percy Andrew",male,18,0,0,29108,11.5,,S +759,0,3,"Theobald, Mr. Thomas Leonard",male,34,0,0,363294,8.05,,S +760,1,1,"Rothes, the Countess. of (Lucy Noel Martha Dyer-Edwards)",female,33,0,0,110152,86.5,B77,S +761,0,3,"Garfirth, Mr. John",male,,0,0,358585,14.5,,S +762,0,3,"Nirva, Mr. Iisakki Antino Aijo",male,41,0,0,SOTON/O2 3101272,7.125,,S +763,1,3,"Barah, Mr. Hanna Assi",male,20,0,0,2663,7.2292,,C +764,1,1,"Carter, Mrs. William Ernest (Lucile Polk)",female,36,1,2,113760,120,B96 B98,S +765,0,3,"Eklund, Mr. Hans Linus",male,16,0,0,347074,7.775,,S +766,1,1,"Hogeboom, Mrs. John C (Anna Andrews)",female,51,1,0,13502,77.9583,D11,S +767,0,1,"Brewe, Dr. Arthur Jackson",male,,0,0,112379,39.6,,C +768,0,3,"Mangan, Miss. Mary",female,30.5,0,0,364850,7.75,,Q +769,0,3,"Moran, Mr. Daniel J",male,,1,0,371110,24.15,,Q +770,0,3,"Gronnestad, Mr. Daniel Danielsen",male,32,0,0,8471,8.3625,,S +771,0,3,"Lievens, Mr. Rene Aime",male,24,0,0,345781,9.5,,S +772,0,3,"Jensen, Mr. Niels Peder",male,48,0,0,350047,7.8542,,S +773,0,2,"Mack, Mrs. (Mary)",female,57,0,0,S.O./P.P. 3,10.5,E77,S +774,0,3,"Elias, Mr. Dibo",male,,0,0,2674,7.225,,C +775,1,2,"Hocking, Mrs. Elizabeth (Eliza Needs)",female,54,1,3,29105,23,,S +776,0,3,"Myhrman, Mr. Pehr Fabian Oliver Malkolm",male,18,0,0,347078,7.75,,S +777,0,3,"Tobin, Mr. Roger",male,,0,0,383121,7.75,F38,Q +778,1,3,"Emanuel, Miss. Virginia Ethel",female,5,0,0,364516,12.475,,S +779,0,3,"Kilgannon, Mr. Thomas J",male,,0,0,36865,7.7375,,Q +780,1,1,"Robert, Mrs. Edward Scott (Elisabeth Walton McMillan)",female,43,0,1,24160,211.3375,B3,S +781,1,3,"Ayoub, Miss. Banoura",female,13,0,0,2687,7.2292,,C +782,1,1,"Dick, Mrs. Albert Adrian (Vera Gillespie)",female,17,1,0,17474,57,B20,S +783,0,1,"Long, Mr. Milton Clyde",male,29,0,0,113501,30,D6,S +784,0,3,"Johnston, Mr. Andrew G",male,,1,2,W./C. 6607,23.45,,S +785,0,3,"Ali, Mr. William",male,25,0,0,SOTON/O.Q. 3101312,7.05,,S +786,0,3,"Harmer, Mr. Abraham (David Lishin)",male,25,0,0,374887,7.25,,S +787,1,3,"Sjoblom, Miss. Anna Sofia",female,18,0,0,3101265,7.4958,,S +788,0,3,"Rice, Master. George Hugh",male,8,4,1,382652,29.125,,Q +789,1,3,"Dean, Master. Bertram Vere",male,1,1,2,C.A. 2315,20.575,,S +790,0,1,"Guggenheim, Mr. Benjamin",male,46,0,0,PC 17593,79.2,B82 B84,C +791,0,3,"Keane, Mr. Andrew ""Andy""",male,,0,0,12460,7.75,,Q +792,0,2,"Gaskell, Mr. Alfred",male,16,0,0,239865,26,,S +793,0,3,"Sage, Miss. Stella Anna",female,,8,2,CA. 2343,69.55,,S +794,0,1,"Hoyt, Mr. William Fisher",male,,0,0,PC 17600,30.6958,,C +795,0,3,"Dantcheff, Mr. Ristiu",male,25,0,0,349203,7.8958,,S +796,0,2,"Otter, Mr. Richard",male,39,0,0,28213,13,,S +797,1,1,"Leader, Dr. Alice (Farnham)",female,49,0,0,17465,25.9292,D17,S +798,1,3,"Osman, Mrs. Mara",female,31,0,0,349244,8.6833,,S +799,0,3,"Ibrahim Shawah, Mr. Yousseff",male,30,0,0,2685,7.2292,,C +800,0,3,"Van Impe, Mrs. Jean Baptiste (Rosalie Paula Govaert)",female,30,1,1,345773,24.15,,S +801,0,2,"Ponesell, Mr. Martin",male,34,0,0,250647,13,,S +802,1,2,"Collyer, Mrs. Harvey (Charlotte Annie Tate)",female,31,1,1,C.A. 31921,26.25,,S +803,1,1,"Carter, Master. William Thornton II",male,11,1,2,113760,120,B96 B98,S +804,1,3,"Thomas, Master. Assad Alexander",male,0.42,0,1,2625,8.5167,,C +805,1,3,"Hedman, Mr. Oskar Arvid",male,27,0,0,347089,6.975,,S +806,0,3,"Johansson, Mr. Karl Johan",male,31,0,0,347063,7.775,,S +807,0,1,"Andrews, Mr. Thomas Jr",male,39,0,0,112050,0,A36,S +808,0,3,"Pettersson, Miss. Ellen Natalia",female,18,0,0,347087,7.775,,S +809,0,2,"Meyer, Mr. August",male,39,0,0,248723,13,,S +810,1,1,"Chambers, Mrs. Norman Campbell (Bertha Griggs)",female,33,1,0,113806,53.1,E8,S +811,0,3,"Alexander, Mr. William",male,26,0,0,3474,7.8875,,S +812,0,3,"Lester, Mr. James",male,39,0,0,A/4 48871,24.15,,S +813,0,2,"Slemen, Mr. Richard James",male,35,0,0,28206,10.5,,S +814,0,3,"Andersson, Miss. Ebba Iris Alfrida",female,6,4,2,347082,31.275,,S +815,0,3,"Tomlin, Mr. Ernest Portage",male,30.5,0,0,364499,8.05,,S +816,0,1,"Fry, Mr. Richard",male,,0,0,112058,0,B102,S +817,0,3,"Heininen, Miss. Wendla Maria",female,23,0,0,STON/O2. 3101290,7.925,,S +818,0,2,"Mallet, Mr. Albert",male,31,1,1,S.C./PARIS 2079,37.0042,,C +819,0,3,"Holm, Mr. John Fredrik Alexander",male,43,0,0,C 7075,6.45,,S +820,0,3,"Skoog, Master. Karl Thorsten",male,10,3,2,347088,27.9,,S +821,1,1,"Hays, Mrs. Charles Melville (Clara Jennings Gregg)",female,52,1,1,12749,93.5,B69,S +822,1,3,"Lulic, Mr. Nikola",male,27,0,0,315098,8.6625,,S +823,0,1,"Reuchlin, Jonkheer. John George",male,38,0,0,19972,0,,S +824,1,3,"Moor, Mrs. (Beila)",female,27,0,1,392096,12.475,E121,S +825,0,3,"Panula, Master. Urho Abraham",male,2,4,1,3101295,39.6875,,S +826,0,3,"Flynn, Mr. John",male,,0,0,368323,6.95,,Q +827,0,3,"Lam, Mr. Len",male,,0,0,1601,56.4958,,S +828,1,2,"Mallet, Master. Andre",male,1,0,2,S.C./PARIS 2079,37.0042,,C +829,1,3,"McCormack, Mr. Thomas Joseph",male,,0,0,367228,7.75,,Q +830,1,1,"Stone, Mrs. George Nelson (Martha Evelyn)",female,62,0,0,113572,80,B28, +831,1,3,"Yasbeck, Mrs. Antoni (Selini Alexander)",female,15,1,0,2659,14.4542,,C +832,1,2,"Richards, Master. George Sibley",male,0.83,1,1,29106,18.75,,S +833,0,3,"Saad, Mr. Amin",male,,0,0,2671,7.2292,,C +834,0,3,"Augustsson, Mr. Albert",male,23,0,0,347468,7.8542,,S +835,0,3,"Allum, Mr. Owen George",male,18,0,0,2223,8.3,,S +836,1,1,"Compton, Miss. Sara Rebecca",female,39,1,1,PC 17756,83.1583,E49,C +837,0,3,"Pasic, Mr. Jakob",male,21,0,0,315097,8.6625,,S +838,0,3,"Sirota, Mr. Maurice",male,,0,0,392092,8.05,,S +839,1,3,"Chip, Mr. Chang",male,32,0,0,1601,56.4958,,S +840,1,1,"Marechal, Mr. Pierre",male,,0,0,11774,29.7,C47,C +841,0,3,"Alhomaki, Mr. Ilmari Rudolf",male,20,0,0,SOTON/O2 3101287,7.925,,S +842,0,2,"Mudd, Mr. Thomas Charles",male,16,0,0,S.O./P.P. 3,10.5,,S +843,1,1,"Serepeca, Miss. Augusta",female,30,0,0,113798,31,,C +844,0,3,"Lemberopolous, Mr. Peter L",male,34.5,0,0,2683,6.4375,,C +845,0,3,"Culumovic, Mr. Jeso",male,17,0,0,315090,8.6625,,S +846,0,3,"Abbing, Mr. Anthony",male,42,0,0,C.A. 5547,7.55,,S +847,0,3,"Sage, Mr. Douglas Bullen",male,,8,2,CA. 2343,69.55,,S +848,0,3,"Markoff, Mr. Marin",male,35,0,0,349213,7.8958,,C +849,0,2,"Harper, Rev. John",male,28,0,1,248727,33,,S +850,1,1,"Goldenberg, Mrs. Samuel L (Edwiga Grabowska)",female,,1,0,17453,89.1042,C92,C +851,0,3,"Andersson, Master. Sigvard Harald Elias",male,4,4,2,347082,31.275,,S +852,0,3,"Svensson, Mr. Johan",male,74,0,0,347060,7.775,,S +853,0,3,"Boulos, Miss. Nourelain",female,9,1,1,2678,15.2458,,C +854,1,1,"Lines, Miss. Mary Conover",female,16,0,1,PC 17592,39.4,D28,S +855,0,2,"Carter, Mrs. Ernest Courtenay (Lilian Hughes)",female,44,1,0,244252,26,,S +856,1,3,"Aks, Mrs. Sam (Leah Rosen)",female,18,0,1,392091,9.35,,S +857,1,1,"Wick, Mrs. George Dennick (Mary Hitchcock)",female,45,1,1,36928,164.8667,,S +858,1,1,"Daly, Mr. Peter Denis ",male,51,0,0,113055,26.55,E17,S +859,1,3,"Baclini, Mrs. Solomon (Latifa Qurban)",female,24,0,3,2666,19.2583,,C +860,0,3,"Razi, Mr. Raihed",male,,0,0,2629,7.2292,,C +861,0,3,"Hansen, Mr. Claus Peter",male,41,2,0,350026,14.1083,,S +862,0,2,"Giles, Mr. Frederick Edward",male,21,1,0,28134,11.5,,S +863,1,1,"Swift, Mrs. Frederick Joel (Margaret Welles Barron)",female,48,0,0,17466,25.9292,D17,S +864,0,3,"Sage, Miss. Dorothy Edith ""Dolly""",female,,8,2,CA. 2343,69.55,,S +865,0,2,"Gill, Mr. John William",male,24,0,0,233866,13,,S +866,1,2,"Bystrom, Mrs. (Karolina)",female,42,0,0,236852,13,,S +867,1,2,"Duran y More, Miss. Asuncion",female,27,1,0,SC/PARIS 2149,13.8583,,C +868,0,1,"Roebling, Mr. Washington Augustus II",male,31,0,0,PC 17590,50.4958,A24,S +869,0,3,"van Melkebeke, Mr. Philemon",male,,0,0,345777,9.5,,S +870,1,3,"Johnson, Master. Harold Theodor",male,4,1,1,347742,11.1333,,S +871,0,3,"Balkic, Mr. Cerin",male,26,0,0,349248,7.8958,,S +872,1,1,"Beckwith, Mrs. Richard Leonard (Sallie Monypeny)",female,47,1,1,11751,52.5542,D35,S +873,0,1,"Carlsson, Mr. Frans Olof",male,33,0,0,695,5,B51 B53 B55,S +874,0,3,"Vander Cruyssen, Mr. Victor",male,47,0,0,345765,9,,S +875,1,2,"Abelson, Mrs. Samuel (Hannah Wizosky)",female,28,1,0,P/PP 3381,24,,C +876,1,3,"Najib, Miss. Adele Kiamie ""Jane""",female,15,0,0,2667,7.225,,C +877,0,3,"Gustafsson, Mr. Alfred Ossian",male,20,0,0,7534,9.8458,,S +878,0,3,"Petroff, Mr. Nedelio",male,19,0,0,349212,7.8958,,S +879,0,3,"Laleff, Mr. Kristo",male,,0,0,349217,7.8958,,S +880,1,1,"Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)",female,56,0,1,11767,83.1583,C50,C +881,1,2,"Shelley, Mrs. William (Imanita Parrish Hall)",female,25,0,1,230433,26,,S +882,0,3,"Markun, Mr. Johann",male,33,0,0,349257,7.8958,,S +883,0,3,"Dahlberg, Miss. Gerda Ulrika",female,22,0,0,7552,10.5167,,S +884,0,2,"Banfield, Mr. Frederick James",male,28,0,0,C.A./SOTON 34068,10.5,,S +885,0,3,"Sutehall, Mr. Henry Jr",male,25,0,0,SOTON/OQ 392076,7.05,,S +886,0,3,"Rice, Mrs. William (Margaret Norton)",female,39,0,5,382652,29.125,,Q +887,0,2,"Montvila, Rev. Juozas",male,27,0,0,211536,13,,S +888,1,1,"Graham, Miss. Margaret Edith",female,19,0,0,112053,30,B42,S +889,0,3,"Johnston, Miss. Catherine Helen ""Carrie""",female,,1,2,W./C. 6607,23.45,,S +890,1,1,"Behr, Mr. Karl Howell",male,26,0,0,111369,30,C148,C +891,0,3,"Dooley, Mr. Patrick",male,32,0,0,370376,7.75,,Q diff --git a/data/world-population-by-country-2020.csv b/data/world-population-by-country-2020.csv new file mode 100644 index 0000000..78c1f46 --- /dev/null +++ b/data/world-population-by-country-2020.csv @@ -0,0 +1,236 @@ +no,Country (or dependency),Population 2020,Yearly Change,Net Change,Density (P/Km²),Land Area (Km²),Migrants (net),Fert. Rate,Med. Age,Urban Pop %,World Share +1,China,"1,439,323,776",0.39%,"5,540,090",153,"9,388,211","-348,399",1.7,38,61%,18.47% +2,India,"1,380,004,385",0.99%,"13,586,631",464,"2,973,190","-532,687",2.2,28,35%,17.70% +3,United States,"331,002,651",0.59%,"1,937,734",36,"9,147,420","954,806",1.8,38,83%,4.25% +4,Indonesia,"273,523,615",1.07%,"2,898,047",151,"1,811,570","-98,955",2.3,30,56%,3.51% +5,Pakistan,"220,892,340",2.00%,"4,327,022",287,"770,880","-233,379",3.6,23,35%,2.83% +6,Brazil,"212,559,417",0.72%,"1,509,890",25,"8,358,140","21,200",1.7,33,88%,2.73% +7,Nigeria,"206,139,589",2.58%,"5,175,990",226,"910,770","-60,000",5.4,18,52%,2.64% +8,Bangladesh,"164,689,383",1.01%,"1,643,222","1,265","130,170","-369,501",2.1,28,39%,2.11% +9,Russia,"145,934,462",0.04%,"62,206",9,"16,376,870","182,456",1.8,40,74%,1.87% +10,Mexico,"128,932,753",1.06%,"1,357,224",66,"1,943,950","-60,000",2.1,29,84%,1.65% +11,Japan,"126,476,461",-0.30%,"-383,840",347,"364,555","71,560",1.4,48,92%,1.62% +12,Ethiopia,"114,963,588",2.57%,"2,884,858",115,"1,000,000","30,000",4.3,19,21%,1.47% +13,Philippines,"109,581,078",1.35%,"1,464,463",368,"298,170","-67,152",2.6,26,47%,1.41% +14,Egypt,"102,334,404",1.94%,"1,946,331",103,"995,450","-38,033",3.3,25,43%,1.31% +15,Vietnam,"97,338,579",0.91%,"876,473",314,"310,070","-80,000",2.1,32,38%,1.25% +16,DR Congo,"89,561,403",3.19%,"2,770,836",40,"2,267,050","23,861",6,17,46%,1.15% +17,Turkey,"84,339,067",1.09%,"909,452",110,"769,630","283,922",2.1,32,76%,1.08% +18,Iran,"83,992,949",1.30%,"1,079,043",52,"1,628,550","-55,000",2.2,32,76%,1.08% +19,Germany,"83,783,942",0.32%,"266,897",240,"348,560","543,822",1.6,46,76%,1.07% +20,Thailand,"69,799,978",0.25%,"174,396",137,"510,890","19,444",1.5,40,51%,0.90% +21,United Kingdom,"67,886,011",0.53%,"355,839",281,"241,930","260,650",1.8,40,83%,0.87% +22,France,"65,273,511",0.22%,"143,783",119,"547,557","36,527",1.9,42,82%,0.84% +23,Italy,"60,461,826",-0.15%,"-88,249",206,"294,140","148,943",1.3,47,69%,0.78% +24,Tanzania,"59,734,218",2.98%,"1,728,755",67,"885,800","-40,076",4.9,18,37%,0.77% +25,South Africa,"59,308,690",1.28%,"750,420",49,"1,213,090","145,405",2.4,28,67%,0.76% +26,Myanmar,"54,409,800",0.67%,"364,380",83,"653,290","-163,313",2.2,29,31%,0.70% +27,Kenya,"53,771,296",2.28%,"1,197,323",94,"569,140","-10,000",3.5,20,28%,0.69% +28,South Korea,"51,269,185",0.09%,"43,877",527,"97,230","11,731",1.1,44,82%,0.66% +29,Colombia,"50,882,891",1.08%,"543,448",46,"1,109,500","204,796",1.8,31,80%,0.65% +30,Spain,"46,754,778",0.04%,"18,002",94,"498,800","40,000",1.3,45,80%,0.60% +31,Uganda,"45,741,007",3.32%,"1,471,413",229,"199,810","168,694",5,17,26%,0.59% +32,Argentina,"45,195,774",0.93%,"415,097",17,"2,736,690","4,800",2.3,32,93%,0.58% +33,Algeria,"43,851,044",1.85%,"797,990",18,"2,381,740","-10,000",3.1,29,73%,0.56% +34,Sudan,"43,849,260",2.42%,"1,036,022",25,"1,765,048","-50,000",4.4,20,35%,0.56% +35,Ukraine,"43,733,762",-0.59%,"-259,876",75,"579,320","10,000",1.4,41,69%,0.56% +36,Iraq,"40,222,493",2.32%,"912,710",93,"434,320","7,834",3.7,21,73%,0.52% +37,Afghanistan,"38,928,346",2.33%,"886,592",60,"652,860","-62,920",4.6,18,25%,0.50% +38,Poland,"37,846,611",-0.11%,"-41,157",124,"306,230","-29,395",1.4,42,60%,0.49% +39,Canada,"37,742,154",0.89%,"331,107",4,"9,093,510","242,032",1.5,41,81%,0.48% +40,Morocco,"36,910,560",1.20%,"438,791",83,"446,300","-51,419",2.4,30,64%,0.47% +41,Saudi Arabia,"34,813,871",1.59%,"545,343",16,"2,149,690","134,979",2.3,32,84%,0.45% +42,Uzbekistan,"33,469,203",1.48%,"487,487",79,"425,400","-8,863",2.4,28,50%,0.43% +43,Peru,"32,971,854",1.42%,"461,401",26,"1,280,000","99,069",2.3,31,79%,0.42% +44,Angola,"32,866,272",3.27%,"1,040,977",26,"1,246,700","6,413",5.6,17,67%,0.42% +45,Malaysia,"32,365,999",1.30%,"416,222",99,"328,550","50,000",2,30,78%,0.42% +46,Mozambique,"31,255,435",2.93%,"889,399",40,"786,380","-5,000",4.9,18,38%,0.40% +47,Ghana,"31,072,940",2.15%,"655,084",137,"227,540","-10,000",3.9,22,57%,0.40% +48,Yemen,"29,825,964",2.28%,"664,042",56,"527,970","-30,000",3.8,20,38%,0.38% +49,Nepal,"29,136,808",1.85%,"528,098",203,"143,350","41,710",1.9,25,21%,0.37% +50,Venezuela,"28,435,940",-0.28%,"-79,889",32,"882,050","-653,249",2.3,30,N.A.,0.36% +51,Madagascar,"27,691,018",2.68%,"721,711",48,"581,795","-1,500",4.1,20,39%,0.36% +52,Cameroon,"26,545,863",2.59%,"669,483",56,"472,710","-4,800",4.6,19,56%,0.34% +53,Côte d'Ivoire,"26,378,274",2.57%,"661,730",83,"318,000","-8,000",4.7,19,51%,0.34% +54,North Korea,"25,778,816",0.44%,"112,655",214,"120,410","-5,403",1.9,35,63%,0.33% +55,Australia,"25,499,884",1.18%,"296,686",3,"7,682,300","158,246",1.8,38,86%,0.33% +56,Niger,"24,206,644",3.84%,"895,929",19,"1,266,700","4,000",7,15,17%,0.31% +57,Taiwan,"23,816,775",0.18%,"42,899",673,"35,410","30,001",1.2,42,79%,0.31% +58,Sri Lanka,"21,413,249",0.42%,"89,516",341,"62,710","-97,986",2.2,34,18%,0.27% +59,Burkina Faso,"20,903,273",2.86%,"581,895",76,"273,600","-25,000",5.2,18,31%,0.27% +60,Mali,"20,250,833",3.02%,"592,802",17,"1,220,190","-40,000",5.9,16,44%,0.26% +61,Romania,"19,237,691",-0.66%,"-126,866",84,"230,170","-73,999",1.6,43,55%,0.25% +62,Malawi,"19,129,952",2.69%,"501,205",203,"94,280","-16,053",4.3,18,18%,0.25% +63,Chile,"19,116,201",0.87%,"164,163",26,"743,532","111,708",1.7,35,85%,0.25% +64,Kazakhstan,"18,776,707",1.21%,"225,280",7,"2,699,700","-18,000",2.8,31,58%,0.24% +65,Zambia,"18,383,955",2.93%,"522,925",25,"743,390","-8,000",4.7,18,45%,0.24% +66,Guatemala,"17,915,568",1.90%,"334,096",167,"107,160","-9,215",2.9,23,52%,0.23% +67,Ecuador,"17,643,054",1.55%,"269,392",71,"248,360","36,400",2.4,28,63%,0.23% +68,Syria,"17,500,658",2.52%,"430,523",95,"183,630","-427,391",2.8,26,60%,0.22% +69,Netherlands,"17,134,872",0.22%,"37,742",508,"33,720","16,000",1.7,43,92%,0.22% +70,Senegal,"16,743,927",2.75%,"447,563",87,"192,530","-20,000",4.7,19,49%,0.21% +71,Cambodia,"16,718,965",1.41%,"232,423",95,"176,520","-30,000",2.5,26,24%,0.21% +72,Chad,"16,425,864",3.00%,"478,988",13,"1,259,200","2,000",5.8,17,23%,0.21% +73,Somalia,"15,893,222",2.92%,"450,317",25,"627,340","-40,000",6.1,17,47%,0.20% +74,Zimbabwe,"14,862,924",1.48%,"217,456",38,"386,850","-116,858",3.6,19,38%,0.19% +75,Guinea,"13,132,795",2.83%,"361,549",53,"245,720","-4,000",4.7,18,39%,0.17% +76,Rwanda,"12,952,218",2.58%,"325,268",525,"24,670","-9,000",4.1,20,18%,0.17% +77,Benin,"12,123,200",2.73%,"322,049",108,"112,760","-2,000",4.9,19,48%,0.16% +78,Burundi,"11,890,784",3.12%,"360,204",463,"25,680","2,001",5.5,17,14%,0.15% +79,Tunisia,"11,818,619",1.06%,"123,900",76,"155,360","-4,000",2.2,33,70%,0.15% +80,Bolivia,"11,673,021",1.39%,"159,921",11,"1,083,300","-9,504",2.8,26,69%,0.15% +81,Belgium,"11,589,623",0.44%,"50,295",383,"30,280","48,000",1.7,42,98%,0.15% +82,Haiti,"11,402,528",1.24%,"139,451",414,"27,560","-35,000",3,24,57%,0.15% +83,Cuba,"11,326,616",-0.06%,"-6,867",106,"106,440","-14,400",1.6,42,78%,0.15% +84,South Sudan,"11,193,725",1.19%,"131,612",18,"610,952","-174,200",4.7,19,25%,0.14% +85,Dominican Republic,"10,847,910",1.01%,"108,952",225,"48,320","-30,000",2.4,28,85%,0.14% +86,Czech Republic (Czechia),"10,708,981",0.18%,"19,772",139,"77,240","22,011",1.6,43,74%,0.14% +87,Greece,"10,423,054",-0.48%,"-50,401",81,"128,900","-16,000",1.3,46,85%,0.13% +88,Jordan,"10,203,134",1.00%,"101,440",115,"88,780","10,220",2.8,24,91%,0.13% +89,Portugal,"10,196,709",-0.29%,"-29,478",111,"91,590","-6,000",1.3,46,66%,0.13% +90,Azerbaijan,"10,139,177",0.91%,"91,459",123,"82,658","1,200",2.1,32,56%,0.13% +91,Sweden,"10,099,265",0.63%,"62,886",25,"410,340","40,000",1.9,41,88%,0.13% +92,Honduras,"9,904,607",1.63%,"158,490",89,"111,890","-6,800",2.5,24,57%,0.13% +93,United Arab Emirates,"9,890,402",1.23%,"119,873",118,"83,600","40,000",1.4,33,86%,0.13% +94,Hungary,"9,660,351",-0.25%,"-24,328",107,"90,530","6,000",1.5,43,72%,0.12% +95,Tajikistan,"9,537,645",2.32%,"216,627",68,"139,960","-20,000",3.6,22,27%,0.12% +96,Belarus,"9,449,323",-0.03%,"-3,088",47,"202,910","8,730",1.7,40,79%,0.12% +97,Austria,"9,006,398",0.57%,"51,296",109,"82,409","65,000",1.5,43,57%,0.12% +98,Papua New Guinea,"8,947,024",1.95%,"170,915",20,"452,860",-800,3.6,22,13%,0.11% +99,Serbia,"8,737,371",-0.40%,"-34,864",100,"87,460","4,000",1.5,42,56%,0.11% +100,Israel,"8,655,535",1.60%,"136,158",400,"21,640","10,000",3,30,93%,0.11% +101,Switzerland,"8,654,622",0.74%,"63,257",219,"39,516","52,000",1.5,43,74%,0.11% +102,Togo,"8,278,724",2.43%,"196,358",152,"54,390","-2,000",4.4,19,43%,0.11% +103,Sierra Leone,"7,976,983",2.10%,"163,768",111,"72,180","-4,200",4.3,19,43%,0.10% +104,Hong Kong,"7,496,981",0.82%,"60,827","7,140","1,050","29,308",1.3,45,N.A.,0.10% +105,Laos,"7,275,560",1.48%,"106,105",32,"230,800","-14,704",2.7,24,36%,0.09% +106,Paraguay,"7,132,538",1.25%,"87,902",18,"397,300","-16,556",2.4,26,62%,0.09% +107,Bulgaria,"6,948,445",-0.74%,"-51,674",64,"108,560","-4,800",1.6,45,76%,0.09% +108,Libya,"6,871,292",1.38%,"93,840",4,"1,759,540","-1,999",2.3,29,78%,0.09% +109,Lebanon,"6,825,445",-0.44%,"-30,268",667,"10,230","-30,012",2.1,30,78%,0.09% +110,Nicaragua,"6,624,554",1.21%,"79,052",55,"120,340","-21,272",2.4,26,57%,0.08% +111,Kyrgyzstan,"6,524,195",1.69%,"108,345",34,"191,800","-4,000",3,26,36%,0.08% +112,El Salvador,"6,486,205",0.51%,"32,652",313,"20,720","-40,539",2.1,28,73%,0.08% +113,Turkmenistan,"6,031,200",1.50%,"89,111",13,"469,930","-5,000",2.8,27,53%,0.08% +114,Singapore,"5,850,342",0.79%,"46,005","8,358",700,"27,028",1.2,42,N.A.,0.08% +115,Denmark,"5,792,202",0.35%,"20,326",137,"42,430","15,200",1.8,42,88%,0.07% +116,Finland,"5,540,720",0.15%,"8,564",18,"303,890","14,000",1.5,43,86%,0.07% +117,Congo,"5,518,087",2.56%,"137,579",16,"341,500","-4,000",4.5,19,70%,0.07% +118,Slovakia,"5,459,642",0.05%,"2,629",114,"48,088","1,485",1.5,41,54%,0.07% +119,Norway,"5,421,241",0.79%,"42,384",15,"365,268","28,000",1.7,40,83%,0.07% +120,Oman,"5,106,626",2.65%,"131,640",16,"309,500","87,400",2.9,31,87%,0.07% +121,State of Palestine,"5,101,414",2.41%,"119,994",847,"6,020","-10,563",3.7,21,80%,0.07% +122,Costa Rica,"5,094,118",0.92%,"46,557",100,"51,060","4,200",1.8,33,80%,0.07% +123,Liberia,"5,057,681",2.44%,"120,307",53,"96,320","-5,000",4.4,19,53%,0.06% +124,Ireland,"4,937,786",1.13%,"55,291",72,"68,890","23,604",1.8,38,63%,0.06% +125,Central African Republic,"4,829,767",1.78%,"84,582",8,"622,980","-40,000",4.8,18,43%,0.06% +126,New Zealand,"4,822,233",0.82%,"39,170",18,"263,310","14,881",1.9,38,87%,0.06% +127,Mauritania,"4,649,658",2.74%,"123,962",5,"1,030,700","5,000",4.6,20,57%,0.06% +128,Panama,"4,314,767",1.61%,"68,328",58,"74,340","11,200",2.5,30,68%,0.06% +129,Kuwait,"4,270,571",1.51%,"63,488",240,"17,820","39,520",2.1,37,N.A.,0.05% +130,Croatia,"4,105,267",-0.61%,"-25,037",73,"55,960","-8,001",1.4,44,58%,0.05% +131,Moldova,"4,033,963",-0.23%,"-9,300",123,"32,850","-1,387",1.3,38,43%,0.05% +132,Georgia,"3,989,167",-0.19%,"-7,598",57,"69,490","-10,000",2.1,38,58%,0.05% +133,Eritrea,"3,546,421",1.41%,"49,304",35,"101,000","-39,858",4.1,19,63%,0.05% +134,Uruguay,"3,473,730",0.35%,"11,996",20,"175,020","-3,000",2,36,96%,0.04% +135,Bosnia and Herzegovina,"3,280,819",-0.61%,"-20,181",64,"51,000","-21,585",1.3,43,52%,0.04% +136,Mongolia,"3,278,290",1.65%,"53,123",2,"1,553,560",-852,2.9,28,67%,0.04% +137,Armenia,"2,963,243",0.19%,"5,512",104,"28,470","-4,998",1.8,35,63%,0.04% +138,Jamaica,"2,961,167",0.44%,"12,888",273,"10,830","-11,332",2,31,55%,0.04% +139,Qatar,"2,881,053",1.73%,"48,986",248,"11,610","40,000",1.9,32,96%,0.04% +140,Albania,"2,877,797",-0.11%,"-3,120",105,"27,400","-14,000",1.6,36,63%,0.04% +141,Puerto Rico,"2,860,853",-2.47%,"-72,555",323,"8,870","-97,986",1.2,44,N.A.,0.04% +142,Lithuania,"2,722,289",-1.35%,"-37,338",43,"62,674","-32,780",1.7,45,71%,0.03% +143,Namibia,"2,540,905",1.86%,"46,375",3,"823,290","-4,806",3.4,22,55%,0.03% +144,Gambia,"2,416,668",2.94%,"68,962",239,"10,120","-3,087",5.3,18,59%,0.03% +145,Botswana,"2,351,627",2.08%,"47,930",4,"566,730","3,000",2.9,24,73%,0.03% +146,Gabon,"2,225,734",2.45%,"53,155",9,"257,670","3,260",4,23,87%,0.03% +147,Lesotho,"2,142,249",0.80%,"16,981",71,"30,360","-10,047",3.2,24,31%,0.03% +148,North Macedonia,"2,083,374",0.00%,-85,83,"25,220","-1,000",1.5,39,59%,0.03% +149,Slovenia,"2,078,938",0.01%,284,103,"20,140","2,000",1.6,45,55%,0.03% +150,Guinea-Bissau,"1,968,001",2.45%,"47,079",70,"28,120","-1,399",4.5,19,45%,0.03% +151,Latvia,"1,886,198",-1.08%,"-20,545",30,"62,200","-14,837",1.7,44,69%,0.02% +152,Bahrain,"1,701,575",3.68%,"60,403","2,239",760,"47,800",2,32,89%,0.02% +153,Equatorial Guinea,"1,402,985",3.47%,"46,999",50,"28,050","16,000",4.6,22,73%,0.02% +154,Trinidad and Tobago,"1,399,488",0.32%,"4,515",273,"5,130",-800,1.7,36,52%,0.02% +155,Estonia,"1,326,535",0.07%,887,31,"42,390","3,911",1.6,42,68%,0.02% +156,Timor-Leste,"1,318,445",1.96%,"25,326",89,"14,870","-5,385",4.1,21,33%,0.02% +157,Mauritius,"1,271,768",0.17%,"2,100",626,"2,030",0,1.4,37,41%,0.02% +158,Cyprus,"1,207,359",0.73%,"8,784",131,"9,240","5,000",1.3,37,67%,0.02% +159,Eswatini,"1,160,164",1.05%,"12,034",67,"17,200","-8,353",3,21,30%,0.01% +160,Djibouti,"988,000",1.48%,"14,440",43,"23,180",900,2.8,27,79%,0.01% +161,Fiji,"896,445",0.73%,"6,492",49,"18,270","-6,202",2.8,28,59%,0.01% +162,Réunion,"895,312",0.72%,"6,385",358,"2,500","-1,256",2.3,36,100%,0.01% +163,Comoros,"869,601",2.20%,"18,715",467,"1,861","-2,000",4.2,20,29%,0.01% +164,Guyana,"786,552",0.48%,"3,786",4,"196,850","-6,000",2.5,27,27%,0.01% +165,Bhutan,"771,608",1.12%,"8,516",20,"38,117",320,2,28,46%,0.01% +166,Solomon Islands,"686,884",2.55%,"17,061",25,"27,990","-1,600",4.4,20,23%,0.01% +167,Macao,"649,335",1.39%,"8,890","21,645",30,"5,000",1.2,39,N.A.,0.01% +168,Montenegro,"628,066",0.01%,79,47,"13,450",-480,1.8,39,68%,0.01% +169,Luxembourg,"625,978",1.66%,"10,249",242,"2,590","9,741",1.5,40,88%,0.01% +170,Western Sahara,"597,339",2.55%,"14,876",2,"266,000","5,582",2.4,28,87%,0.01% +171,Suriname,"586,632",0.90%,"5,260",4,"156,000","-1,000",2.4,29,65%,0.01% +172,Cabo Verde,"555,987",1.10%,"6,052",138,"4,030","-1,342",2.3,28,68%,0.01% +173,Micronesia,"548,914",1.00%,"5,428",784,700,"-2,957",2.9,27,68%,0.01% +174,Maldives,"540,544",1.81%,"9,591","1,802",300,"11,370",1.9,30,35%,0.01% +175,Malta,"441,543",0.27%,"1,171","1,380",320,900,1.5,43,93%,0.01% +176,Brunei,"437,479",0.97%,"4,194",83,"5,270",0,1.8,32,80%,0.01% +177,Guadeloupe,"400,124",0.02%,68,237,"1,690","-1,440",2.2,44,N.A.,0.01% +178,Belize,"397,628",1.86%,"7,275",17,"22,810","1,200",2.3,25,46%,0.01% +179,Bahamas,"393,244",0.97%,"3,762",39,"10,010","1,000",1.8,32,86%,0.01% +180,Martinique,"375,265",-0.08%,-289,354,"1,060",-960,1.9,47,92%,0.00% +181,Iceland,"341,243",0.65%,"2,212",3,"100,250",380,1.8,37,94%,0.00% +182,Vanuatu,"307,145",2.42%,"7,263",25,"12,190",120,3.8,21,24%,0.00% +183,French Guiana,"298,682",2.70%,"7,850",4,"82,200","1,200",3.4,25,87%,0.00% +184,Barbados,"287,375",0.12%,350,668,430,-79,1.6,40,31%,0.00% +185,New Caledonia,"285,498",0.97%,"2,748",16,"18,280",502,2,34,72%,0.00% +186,French Polynesia,"280,908",0.58%,"1,621",77,"3,660","-1,000",2,34,64%,0.00% +187,Mayotte,"272,815",2.50%,"6,665",728,375,0,3.7,20,46%,0.00% +188,Sao Tome & Principe,"219,159",1.91%,"4,103",228,960,"-1,680",4.4,19,74%,0.00% +189,Samoa,"198,414",0.67%,"1,317",70,"2,830","-2,803",3.9,22,18%,0.00% +190,Saint Lucia,"183,627",0.46%,837,301,610,0,1.4,34,19%,0.00% +191,Channel Islands,"173,863",0.93%,"1,604",915,190,"1,351",1.5,43,30%,0.00% +192,Guam,"168,775",0.89%,"1,481",313,540,-506,2.3,31,95%,0.00% +193,Curaçao,"164,093",0.41%,669,370,444,515,1.8,42,89%,0.00% +194,Kiribati,"119,449",1.57%,"1,843",147,810,-800,3.6,23,57%,0.00% +195,Grenada,"112,523",0.46%,520,331,340,-200,2.1,32,35%,0.00% +196,St. Vincent & Grenadines,"110,940",0.32%,351,284,390,-200,1.9,33,53%,0.00% +197,Aruba,"106,766",0.43%,452,593,180,201,1.9,41,44%,0.00% +198,Tonga,"105,695",1.15%,"1,201",147,720,-800,3.6,22,24%,0.00% +199,U.S. Virgin Islands,"104,425",-0.15%,-153,298,350,-451,2,43,96%,0.00% +200,Seychelles,"98,347",0.62%,608,214,460,-200,2.5,34,56%,0.00% +201,Antigua and Barbuda,"97,929",0.84%,811,223,440,0,2,34,26%,0.00% +202,Isle of Man,"85,033",0.53%,449,149,570,,N.A.,N.A.,53%,0.00% +203,Andorra,"77,265",0.16%,123,164,470,,N.A.,N.A.,88%,0.00% +204,Dominica,"71,986",0.25%,178,96,750,,N.A.,N.A.,74%,0.00% +205,Cayman Islands,"65,722",1.19%,774,274,240,,N.A.,N.A.,97%,0.00% +206,Bermuda,"62,278",-0.36%,-228,"1,246",50,,N.A.,N.A.,97%,0.00% +207,Marshall Islands,"59,190",0.68%,399,329,180,,N.A.,N.A.,70%,0.00% +208,Northern Mariana Islands,"57,559",0.60%,343,125,460,,N.A.,N.A.,88%,0.00% +209,Greenland,"56,770",0.17%,98,0,"410,450",,N.A.,N.A.,87%,0.00% +210,American Samoa,"55,191",-0.22%,-121,276,200,,N.A.,N.A.,88%,0.00% +211,Saint Kitts & Nevis,"53,199",0.71%,376,205,260,,N.A.,N.A.,33%,0.00% +212,Faeroe Islands,"48,863",0.38%,185,35,"1,396",,N.A.,N.A.,43%,0.00% +213,Sint Maarten,"42,876",1.15%,488,"1,261",34,,N.A.,N.A.,96%,0.00% +214,Monaco,"39,242",0.71%,278,"26,337",1,,N.A.,N.A.,N.A.,0.00% +215,Turks and Caicos,"38,717",1.38%,526,41,950,,N.A.,N.A.,89%,0.00% +216,Saint Martin,"38,666",1.75%,664,730,53,,N.A.,N.A.,0%,0.00% +217,Liechtenstein,"38,128",0.29%,109,238,160,,N.A.,N.A.,15%,0.00% +218,San Marino,"33,931",0.21%,71,566,60,,N.A.,N.A.,97%,0.00% +219,Gibraltar,"33,691",-0.03%,-10,"3,369",10,,N.A.,N.A.,N.A.,0.00% +220,British Virgin Islands,"30,231",0.67%,201,202,150,,N.A.,N.A.,52%,0.00% +221,Caribbean Netherlands,"26,223",0.94%,244,80,328,,N.A.,N.A.,75%,0.00% +222,Palau,"18,094",0.48%,86,39,460,,N.A.,N.A.,N.A.,0.00% +223,Cook Islands,"17,564",0.09%,16,73,240,,N.A.,N.A.,75%,0.00% +224,Anguilla,"15,003",0.90%,134,167,90,,N.A.,N.A.,N.A.,0.00% +225,Tuvalu,"11,792",1.25%,146,393,30,,N.A.,N.A.,62%,0.00% +226,Wallis & Futuna,"11,239",-1.69%,-193,80,140,,N.A.,N.A.,0%,0.00% +227,Nauru,"10,824",0.63%,68,541,20,,N.A.,N.A.,N.A.,0.00% +228,Saint Barthelemy,"9,877",0.30%,30,470,21,,N.A.,N.A.,0%,0.00% +229,Saint Helena,"6,077",0.30%,18,16,390,,N.A.,N.A.,27%,0.00% +230,Saint Pierre & Miquelon,"5,794",-0.48%,-28,25,230,,N.A.,N.A.,100%,0.00% +231,Montserrat,"4,992",0.06%,3,50,100,,N.A.,N.A.,10%,0.00% +232,Falkland Islands,"3,480",3.05%,103,0,"12,170",,N.A.,N.A.,66%,0.00% +233,Niue,"1,626",0.68%,11,6,260,,N.A.,N.A.,46%,0.00% +234,Tokelau,"1,357",1.27%,17,136,10,,N.A.,N.A.,0%,0.00% +235,Holy See,801,0.25%,2,"2,003",0,,N.A.,N.A.,N.A.,0.00% diff --git a/data/world-population-forcast-2020-2050.csv b/data/world-population-forcast-2020-2050.csv new file mode 100644 index 0000000..621e50e --- /dev/null +++ b/data/world-population-forcast-2020-2050.csv @@ -0,0 +1,8 @@ +Year,Population,Yearly %,Yearly,Median,Fertility,Density +2020,"7,794,798,739",1.10%,"83,000,320",31,2.47,52 +2025,"8,184,437,460",0.98%,"77,927,744",32,2.54,55 +2030,"8,548,487,400",0.87%,"72,809,988",33,2.62,57 +2035,"8,887,524,213",0.78%,"67,807,363",34,2.7,60 +2040,"9,198,847,240",0.69%,"62,264,605",35,2.77,62 +2045,"9,481,803,274",0.61%,"56,591,207",35,2.85,64 +2050,"9,735,033,990",0.53%,"50,646,143",36,2.95,65 diff --git a/docs/path1.png b/docs/path1.png new file mode 100644 index 0000000000000000000000000000000000000000..a94aff4e59161e7abd4c8c20923a5596f7094c49 GIT binary patch literal 22640 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 literal 0 HcmV?d00001 diff --git a/docs/path2.png b/docs/path2.png new file mode 100644 index 0000000000000000000000000000000000000000..3b22399aa4a6871783030d686eb1a4b19a9bed13 GIT binary patch literal 76078 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 N7@1uuzjXV_zW^`RWu^cC literal 0 HcmV?d00001 diff --git a/docs/path3.png b/docs/path3.png new file mode 100644 index 0000000000000000000000000000000000000000..557256db46e81b78d13946712b1f107a82f9f9a7 GIT binary patch literal 132359 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
aWM+g6rUldQW4vykk*V!69UmIT8 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 literal 0 HcmV?d00001 diff --git a/docs/path4.png b/docs/path4.png new file mode 100644 index 0000000000000000000000000000000000000000..4f65865e508744a75e444b5462ed1065aa29069c GIT binary patch literal 39117 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 literal 0 HcmV?d00001 diff --git a/lec1.ipynb b/lec1.ipynb new file mode 100644 index 0000000..b1c12bc --- /dev/null +++ b/lec1.ipynb @@ -0,0 +1,737 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Работа с NumPy" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "matrix = \n", + " [[4 5 0]\n", + " [9 9 9]] \n", + "\n", + "tmatrix = \n", + " [[4 9]\n", + " [5 9]\n", + " [0 9]] \n", + "\n", + "vector = \n", + " [4 5 0 9 9 9] \n", + "\n", + "tvector = \n", + " [[4]\n", + " [5]\n", + " [0]\n", + " [9]\n", + " [9]\n", + " [9]] \n", + "\n", + "list_matrix = \n", + " [array([4, 5, 0]), array([9, 9, 9])] \n", + "\n", + "matrix as str = \n", + " [[4 5 0]\n", + " [9 9 9]] \n", + "\n", + "matrix type is \n", + "\n", + "vector type is \n", + "\n", + "list_matrix type is \n", + "\n", + "str_matrix type is \n", + "\n", + "formatted_vector = \n", + " 4; 5; 0; 9; 9; 9 \n", + "\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "matrix = np.array([[4, 5, 0], [9, 9, 9]])\n", + "print(\"matrix = \\n\", matrix, \"\\n\")\n", + "\n", + "tmatrix = matrix.T\n", + "print(\"tmatrix = \\n\", tmatrix, \"\\n\")\n", + "\n", + "vector = np.ravel(matrix)\n", + "print(\"vector = \\n\", vector, \"\\n\")\n", + "\n", + "tvector = np.reshape(vector, (6, 1))\n", + "print(\"tvector = \\n\", tvector, \"\\n\")\n", + "\n", + "list_matrix = list(matrix)\n", + "print(\"list_matrix = \\n\", list_matrix, \"\\n\")\n", + "\n", + "str_matrix = str(matrix)\n", + "print(\"matrix as str = \\n\", str_matrix, \"\\n\")\n", + "\n", + "print(\"matrix type is\", type(matrix), \"\\n\")\n", + "\n", + "print(\"vector type is\", type(vector), \"\\n\")\n", + "\n", + "print(\"list_matrix type is\", type(list_matrix), \"\\n\")\n", + "\n", + "print(\"str_matrix type is\", type(str_matrix), \"\\n\")\n", + "\n", + "formatted_vector = \"; \".join(map(str, vector))\n", + "print(\"formatted_vector = \\n\", formatted_vector, \"\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Работа с Pandas DataFrame\n", + "\n", + "https://pandas.pydata.org/docs/user_guide/10min.html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Работа с данными - чтение и запись CSV" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "df = pd.read_csv(\"data/world-population-by-country-2020.csv\", index_col=\"no\")\n", + "\n", + "df.to_csv(\"test.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Работа с данными - основные команды" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Country (or dependency) Population 2020 Yearly Change Net Change\n", + "no \n", + "1 China 1439323776 0.39 5540090\n", + "2 India 1380004385 0.99 13586631\n", + "3 United States 331002651 0.59 1937734\n", + "4 Indonesia 273523615 1.07 2898047\n", + "5 Pakistan 220892340 2.00 4327022\n", + " Country (or dependency) Population 2020 Yearly Change Net Change\n", + "no \n", + "231 Montserrat 4992 0.06 3\n", + "232 Falkland Islands 3480 3.05 103\n", + "233 Niue 1626 0.68 11\n", + "234 Tokelau 1357 1.27 17\n", + "235 Holy See 801 0.25 2\n" + ] + } + ], + "source": [ + "# df.info()\n", + "\n", + "# print(df.describe().transpose())\n", + "\n", + "from click import clear\n", + "\n", + "\n", + "cleared_df = df.drop(\n", + " df.columns.difference([\n", + " \"Country (or dependency)\", \"Population 2020\", \"Yearly Change\", \"Net Change\"\n", + " ]\n", + " ),\n", + " axis=1,\n", + ")\n", + "# print(cleared_df.head())\n", + "# print(cleared_df.tail())\n", + "cleared_df['Population 2020'] = cleared_df['Population 2020'].apply(\n", + " lambda x: int(\"\".join(x.split(\",\")))\n", + ")\n", + "cleared_df[\"Net Change\"] = cleared_df[\"Net Change\"].apply(\n", + " lambda x: int(\"\".join(x.split(\",\")))\n", + ")\n", + "cleared_df[\"Yearly Change\"] = cleared_df[\"Yearly Change\"].apply(\n", + " lambda x: float(\"\".join(x.rstrip('%')))\n", + ")\n", + "\n", + "sorted_df = cleared_df.sort_values(\n", + " [\"Population 2020\", \"Net Change\", \"Country (or dependency)\"], ascending=[False, False, True]\n", + ")\n", + "print(sorted_df.head())\n", + "print(sorted_df.tail())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Работа с данными - работа с элементами" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "no\n", + "1 China\n", + "2 India\n", + "3 United States\n", + "4 Indonesia\n", + "5 Pakistan\n", + " ... \n", + "231 Montserrat\n", + "232 Falkland Islands\n", + "233 Niue\n", + "234 Tokelau\n", + "235 Holy See\n", + "Name: Country (or dependency), Length: 235, dtype: object\n", + "Country (or dependency) Israel\n", + "Population 2020 8,655,535\n", + "Yearly Change 1.60%\n", + "Net Change 136,158\n", + "Density (P/Km²) 400\n", + "Land Area (Km²) 21,640\n", + "Migrants (net) 10,000\n", + "Fert. Rate 3\n", + "Med. Age 30\n", + "Urban Pop % 93%\n", + "World Share 0.11%\n", + "Name: 100, dtype: object\n", + "Israel\n", + " Country (or dependency) Population 2020\n", + "no \n", + "100 Israel 8,655,535\n", + "101 Switzerland 8,654,622\n", + "102 Togo 8,278,724\n", + "103 Sierra Leone 7,976,983\n", + "104 Hong Kong 7,496,981\n", + ".. ... ...\n", + "196 St. Vincent & Grenadines 110,940\n", + "197 Aruba 106,766\n", + "198 Tonga 105,695\n", + "199 U.S. Virgin Islands 104,425\n", + "200 Seychelles 98,347\n", + "\n", + "[101 rows x 2 columns]\n", + " Country (or dependency) Population 2020 Yearly Change Net Change \\\n", + "no \n", + "1 China 1,439,323,776 0.39% 5,540,090 \n", + "2 India 1,380,004,385 0.99% 13,586,631 \n", + "3 United States 331,002,651 0.59% 1,937,734 \n", + "\n", + " Density (P/Km²) Land Area (Km²) Migrants (net) Fert. Rate Med. Age \\\n", + "no \n", + "1 153 9,388,211 -348,399 1.7 38 \n", + "2 464 2,973,190 -532,687 2.2 28 \n", + "3 36 9,147,420 954,806 1.8 38 \n", + "\n", + " Urban Pop % World Share \n", + "no \n", + "1 61% 18.47% \n", + "2 35% 17.70% \n", + "3 83% 4.25% \n", + "Country (or dependency) China\n", + "Population 2020 1,439,323,776\n", + "Yearly Change 0.39%\n", + "Net Change 5,540,090\n", + "Density (P/Km²) 153\n", + "Land Area (Km²) 9,388,211\n", + "Migrants (net) -348,399\n", + "Fert. Rate 1.7\n", + "Med. Age 38\n", + "Urban Pop % 61%\n", + "World Share 18.47%\n", + "Name: 1, dtype: object\n", + " Country (or dependency) Population 2020\n", + "no \n", + "3 United States 331,002,651\n", + "4 Indonesia 273,523,615\n", + "5 Pakistan 220,892,340\n", + " Country (or dependency) Yearly Change\n", + "no \n", + "4 Indonesia 1.07%\n", + "5 Pakistan 2.00%\n" + ] + } + ], + "source": [ + "print(df[\"Country (or dependency)\"])\n", + "\n", + "print(df.loc[100])\n", + "\n", + "print(df.loc[100, \"Country (or dependency)\"])\n", + "\n", + "print(df.loc[100:200, [\"Country (or dependency)\", \"Population 2020\"]])\n", + "\n", + "print(df[0:3])\n", + "\n", + "print(df.iloc[0])\n", + "\n", + "print(df.iloc[2:5, 0:2])\n", + "\n", + "print(df.iloc[[3, 4], [0, 2]])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Работа с данными - отбор и группировка" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Population 2020 Yearly Change Net Change \\\n", + "Country (or dependency) \n", + "China 1439323776 0.39 5540090 \n", + "India 1380004385 0.99 13586631 \n", + "United States 331002651 0.59 1937734 \n", + "Indonesia 273523615 1.07 2898047 \n", + "Pakistan 220892340 2.00 4327022 \n", + "... ... ... ... \n", + "Montserrat 4992 0.06 3 \n", + "Falkland Islands 3480 3.05 103 \n", + "Niue 1626 0.68 11 \n", + "Tokelau 1357 1.27 17 \n", + "Holy See 801 0.25 2 \n", + "\n", + " Capital Continent \n", + "Country (or dependency) \n", + "China Beijing Asia \n", + "India New Delhi Asia \n", + "United States Washington, D.C. North America \n", + "Indonesia Jakarta Asia \n", + "Pakistan Islamabad Asia \n", + "... ... ... \n", + "Montserrat Brades North America \n", + "Falkland Islands Stanley South America \n", + "Niue Alofi Oceania \n", + "Tokelau Nukunonu Oceania \n", + "Holy See NaN NaN \n", + "\n", + "[235 rows x 5 columns]\n" + ] + } + ], + "source": [ + "# s_values = df[\"Sex\"].unique()\n", + "# print(s_values)\n", + "df2 = pd.read_csv(\n", + " \"data/countries-continents-capitals.csv\", index_col=\"Country/Territory\",\n", + " encoding = \"ISO-8859-1\"\n", + ")\n", + "\n", + "\n", + "# for s_value in s_values:\n", + "\n", + "\n", + "# count = df[df[\"Sex\"] == s_value].shape[0]\n", + "\n", + "\n", + "# s_total += count\n", + "\n", + "\n", + "# print(s_value, \"count =\", count)\n", + "\n", + "\n", + "# print(\"Total count = \", s_total)\n", + "\n", + "extended_df = cleared_df.set_index(\"Country (or dependency)\").join(\n", + " df2\n", + ")\n", + "print(extended_df)\n", + "\n", + "\n", + "# print(extended_df.groupby([\"Continent\"]).agg({\"population\" : [\"sum\"]}))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Визуализация - Исходные данные" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Population 2020 Yearly Change Continent\n", + "Country (or dependency) \n", + "China 1439323776 0.39 Asia\n", + "India 1380004385 0.99 Asia\n", + "United States 331002651 0.59 North America\n", + "Indonesia 273523615 1.07 Asia\n", + "Pakistan 220892340 2.00 Asia\n", + "... ... ... ...\n", + "Montserrat 4992 0.06 North America\n", + "Falkland Islands 3480 3.05 South America\n", + "Niue 1626 0.68 Oceania\n", + "Tokelau 1357 1.27 Oceania\n", + "Holy See 801 0.25 NaN\n", + "\n", + "[235 rows x 3 columns]\n" + ] + } + ], + "source": [ + "data = extended_df[[\"Population 2020\", \"Yearly Change\", \"Continent\"]].copy()\n", + "data.dropna(subset=[\"Population 2020\"], inplace=True)\n", + "print(data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Визуализация - Сводка пяти чисел\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Population 2020 \\\n", + " min q1 q2 median \n", + "Continent \n", + "Africa 98347 2509845.75 13042506.5 13042506.5 \n", + "Asia 437479 5985985.50 18138682.5 18138682.5 \n", + "Europe 33691 1326535.00 5459642.0 5459642.0 \n", + "North America 4992 67288.00 395436.0 395436.0 \n", + "Oceania 1357 27368.25 144112.0 144112.0 \n", + "South America 3480 1458346.50 14658037.5 14658037.5 \n", + "\n", + " \n", + " q3 max \n", + "Continent \n", + "Africa 31118563.75 206139589 \n", + "Asia 52054338.75 1439323776 \n", + "Europe 10423054.00 145934462 \n", + "North America 6589966.75 331002651 \n", + "Oceania 488471.75 25499884 \n", + "South America 31837875.50 212559417 \n", + " Population 2020 \n", + " low_iqr iqr high_iqr\n", + "Continent \n", + "Africa 0 28608718.00 7.403164e+07\n", + "Asia 0 46068353.25 1.211569e+08\n", + "Europe 0 9096519.00 2.406783e+07\n", + "North America 0 6522678.75 1.637398e+07\n", + "Oceania 0 461103.50 1.180127e+06\n", + "South America 0 30379529.00 7.740717e+07\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def q1(x):\n", + " return x.quantile(0.25)\n", + "\n", + "\n", + "# median = quantile(0.5)\n", + "def q2(x):\n", + " return x.quantile(0.5)\n", + "\n", + "\n", + "def q3(x):\n", + " return x.quantile(0.75)\n", + "\n", + "\n", + "def iqr(x):\n", + " return q3(x) - q1(x)\n", + "\n", + "\n", + "def low_iqr(x):\n", + " return max(0, q1(x) - 1.5 * iqr(x))\n", + "\n", + "\n", + "def high_iqr(x):\n", + " return q3(x) + 1.5 * iqr(x)\n", + "\n", + "\n", + "quantiles = (\n", + " data[[\"Continent\", \"Population 2020\"]]\n", + " .groupby([\"Continent\"])\n", + " .aggregate([\"min\", q1, q2, \"median\", q3, \"max\"])\n", + ")\n", + "print(quantiles)\n", + "\n", + "iqrs = (\n", + " data[[\"Continent\", \"Population 2020\"]]\n", + " .groupby([\"Continent\"])\n", + " .aggregate([low_iqr, iqr, high_iqr])\n", + ")\n", + "print(iqrs)\n", + "\n", + "data.boxplot(column=\"Population 2020\", by=\"Continent\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Визуализация - Гистограмма" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAGvCAYAAAC9yRSTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4D0lEQVR4nO3de1yUZf7/8fcgB/EAiApIgZJ5TFPzFKklSuEhV9PdNM3TWq6bmIpWumVkWqipmaayta7o5qEs9WtaluFpS7TEQ+kaah6wdNAyQHBFhPv3hw/nt5OHYBiY4fb1fDzux6O57muu+VzCMu+95rrnthiGYQgAAMCkPFxdAAAAQGki7AAAAFMj7AAAAFMj7AAAAFMj7AAAAFMj7AAAAFMj7AAAAFMj7AAAAFPzdHUB7qCwsFCnT59W1apVZbFYXF0OAAAoAsMwdOHCBYWGhsrD4+brN4QdSadPn1ZYWJirywAAAA44deqU7rzzzpueJ+xIqlq1qqSr/1h+fn4urgYAABRFdna2wsLCbO/jN0PYkWwfXfn5+RF2AAAoZ35vCwoblAEAgKkRdgAAgKnxMRYA4JYKCgqUn5/v6jJwG/Ly8lKFChVKPA5hBwBwQ4ZhyGq1KjMz09Wl4DYWEBCgkJCQEn01DGEHAHBD14JOUFCQKlWqxPeQoUwZhqGLFy/q7NmzkqRatWo5PBZhBwBwnYKCAlvQqV69uqvLwW3K19dXknT27FkFBQU5/JEWG5QBANe5tkenUqVKLq4Et7trv4Ml2TdG2AEA3BQfXcHVnPE7SNgBAACmRtgBAKAUdOzYUWPGjHGbcW5nbFAGABRLnQkbyvT1TkzrXqz+Q4YM0ZIlSyRd/Z6W8PBwDRo0SH/729/k6em+b3tbt25VVFSUfv31VwUEBNjaV69eLS8vr1J97f3792vatGn68ssv9fPPP6tOnToaMWKERo8efV2NcXFxOnjwoMLCwvTSSy9pyJAhtvMJCQlavXq1vv/+e/n6+uqBBx7Q9OnT1aBBA1ufS5cuady4cVq5cqXy8vIUExOjBQsWKDg4uNTmx8oOAMB0unTpojNnzujIkSMaN26cXnnlFb3xxhuuLsshgYGBv3ujy5JKTU1VUFCQ3nvvPR08eFAvvviiJk6cqLffftvW5/jx4+revbuioqK0b98+jRkzRk899ZQ+++wzW59t27Zp5MiR2rlzpzZt2qT8/Hw98sgjys3NtfUZO3asPv74Y61atUrbtm3T6dOn1bt371KdH2EHAGA6Pj4+CgkJUe3atfXXv/5V0dHRWrdunSTp119/1aBBg1StWjVVqlRJXbt21ZEjR2zPTUpKUkBAgNauXat69eqpYsWKiomJ0alTp2x9hgwZol69etm95pgxY9SxY8eb1vSvf/1LrVq1UtWqVRUSEqL+/fvbvkPmxIkTioqKkiRVq1ZNFovFtmLy24+xilr/Z599pkaNGqlKlSq28Hczf/7zn/XWW2/poYce0l133aUnn3xSQ4cO1erVq219EhMTFRERoVmzZqlRo0aKjY3VH//4R7355pu2Phs3btSQIUN0zz33qFmzZkpKSlJ6erpSU1MlSVlZWVq0aJFmz56tTp06qWXLllq8eLF27NihnTt33rS+kiLsAABMz9fXV5cvX5Z0Najs3r1b69atU0pKigzDULdu3ewubb548aJee+01LV26VF999ZUyMzPVr1+/EtWQn5+vKVOmaP/+/Vq7dq1OnDhhCzRhYWH66KOPJElpaWk6c+aM3nrrrRuOU9T6Z86cqX/961/avn270tPTNX78+GLVm5WVpcDAQNvjlJQURUdH2/WJiYlRSkrKLceQZBsnNTVV+fn5duM0bNhQ4eHhtxynpNz3w0uTuNln28X9DBoAUHyGYSg5OVmfffaZRo0apSNHjmjdunX66quv9MADD0iSli1bprCwMK1du1Z/+tOfJF0NJm+//bbatm0rSVqyZIkaNWqkr7/+Wm3atHGolj//+c+2/77rrrs0d+5ctW7dWjk5OapSpYotEAQFBdnt2flfxak/MTFRdevWlSTFxsbq1VdfLXKtO3bs0Pvvv68NG/7/e5jVar1uX01wcLCys7P13//+1/YFgNcUFhZqzJgxateunZo0aWIbw9vb+7r5BQcHy2q1Frm+4mJlBwBgOuvXr1eVKlVUsWJFde3aVX379tUrr7yiQ4cOydPT0xZiJKl69epq0KCBDh06ZGvz9PRU69atbY8bNmyogIAAuz7FlZqaqh49eig8PFxVq1bVQw89JElKT08v8hhFrb9SpUq2oCNdvdXCtY/Mfs+BAwfUs2dPxcfH65FHHilybb81cuRIHThwQCtXrnR4DGdhZQcAYDpRUVFauHChvL29FRoa6vSrsDw8PGQYhl3brb7hNzc3VzExMYqJidGyZctUs2ZNpaenKyYmxvbxmjP99uoti8VyXb038p///EedO3fW8OHD9dJLL9mdCwkJUUZGhl1bRkaG/Pz8rlvViY2N1fr167V9+3bdeeeddmNcvnxZmZmZdqs7GRkZCgkJKer0io2VHQCA6VSuXFl33323wsPD7YJOo0aNdOXKFe3atcvW9ssvvygtLU2NGze2tV25ckW7d++2PU5LS1NmZqYaNWokSapZs+Z1G3737dt303q+//57/fLLL5o2bZo6dOighg0bXrfS4u3tLenqfclupqj1O+LgwYOKiorS4MGD9dprr113PjIyUsnJyXZtmzZtUmRkpO2xYRiKjY3VmjVrtHnzZkVERNj1b9mypby8vOzGSUtLU3p6ut04zkbYAQDcNurVq6eePXvq6aef1pdffqn9+/frySef1B133KGePXva+nl5eWnUqFHatWuXUlNTNWTIEN1///22/TqdOnXS7t27tXTpUh05ckTx8fE6cODATV83PDxc3t7emjdvno4dO6Z169ZpypQpdn1q164ti8Wi9evX69y5c8rJyXG4/uI6cOCAoqKi9MgjjyguLk5Wq1VWq1Xnzp2z9RkxYoSOHTum559/Xt9//70WLFigDz74QGPHjrX1GTlypN577z0tX75cVatWtY3z3//+V5Lk7++vYcOGKS4uTlu2bFFqaqqGDh2qyMhI3X///Q7X/3sIOwCA28rixYvVsmVLPfroo4qMjJRhGPrkk0/sPvqpVKmSXnjhBfXv31/t2rVTlSpV9P7779vOx8TEaNKkSXr++efVunVrXbhwQYMGDbrpa9asWVNJSUlatWqVGjdurGnTpmnmzJl2fe644w5NnjxZEyZMUHBwsGJjYx2uv7g+/PBDnTt3Tu+9955q1aplO/5331JERIQ2bNigTZs2qVmzZpo1a5b+8Y9/KCYmxtZn4cKFysrKUseOHe3G+d9/uzfffFOPPvqo+vTpowcffFAhISF2l7iXBotRlA/xTC47O1v+/v7KysqSn5+fU8fmaiwA5dGlS5d0/PhxRUREqGLFiq4up0wlJSVpzJgxyszMdHUp0K1/F4v6/s3KDgAAMDXCDgAAMDXCDgAA/2PIkCF8hGUyhB0AAGBqhB0AAGBqhB0AwE1xwS5czRm/g4QdAMB1rn1ny8WLF11cCW53134HS/I9Qtwb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HQAAYGqEHQAAYGqEHQAAYGqEHQAAYGqEHQAAYGouDTvbt29Xjx49FBoaKovForVr19rO5efn64UXXlDTpk1VuXJlhYaGatCgQTp9+rTdGOfPn9eAAQPk5+engIAADRs2TDk5OWU8EwAA4K5cGnZyc3PVrFkzzZ8//7pzFy9e1J49ezRp0iTt2bNHq1evVlpamv7whz/Y9RswYIAOHjyoTZs2af369dq+fbuGDx9eVlMAAABuzmIYhuHqIiTJYrFozZo16tWr1037fPPNN2rTpo1Onjyp8PBwHTp0SI0bN9Y333yjVq1aSZI2btyobt266ccff1RoaGiRXjs7O1v+/v7KysqSn5+fM6ZjU2fChhu2n5jW3amvAwDA7aao79/las9OVlaWLBaLAgICJEkpKSkKCAiwBR1Jio6OloeHh3bt2nXTcfLy8pSdnW13AAAAcyo3YefSpUt64YUX9MQTT9jSm9VqVVBQkF0/T09PBQYGymq13nSshIQE+fv7246wsLBSrR0AALhOuQg7+fn5evzxx2UYhhYuXFji8SZOnKisrCzbcerUKSdUCQAA3JGnqwv4PdeCzsmTJ7V582a7z+RCQkJ09uxZu/5XrlzR+fPnFRISctMxfXx85OPjU2o1AwAA9+HWKzvXgs6RI0f0xRdfqHr16nbnIyMjlZmZqdTUVFvb5s2bVVhYqLZt25Z1uQAAwA25dGUnJydHR48etT0+fvy49u3bp8DAQNWqVUt//OMftWfPHq1fv14FBQW2fTiBgYHy9vZWo0aN1KVLFz399NNKTExUfn6+YmNj1a9fvyJfiQUAAMzNpWFn9+7dioqKsj2Oi4uTJA0ePFivvPKK1q1bJ0lq3ry53fO2bNmijh07SpKWLVum2NhYde7cWR4eHurTp4/mzp1bJvUDAAD359Kw07FjR93qa36K8hVAgYGBWr58uTPLAgAAJuLWe3YAAABKirADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMzaGwc+zYMWfXAQAAUCocCjt33323oqKi9N577+nSpUvOrgkA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9PLLL9v6PP/888rNzdXw4cOVmZmp9u3ba+PGjapYsaLT6gAAAOWXxfjfryMuogMHDqhz58667777tHnzZv3hD3/QwYMHdf78eX311VeqW7duadRaarKzs+Xv76+srCyn79+pM2HDDdtPTOvu1NcBAOB2U9T3b4f27DRp0kSHDx9W+/bt1bNnT+Xm5qp3797au3dvuQs6AADA3Ir9MVZ+fr66dOmixMREvfjii6VREwAAgNMUe2XHy8tL3377bWnUAgAA4HQOfYz15JNPatGiRc6uBQAAwOkcuhrrypUr+uc//6kvvvhCLVu2vO5+WLNnz3ZKcQAAACVVrLBz7Ngx1alTRwcOHNB9990nSbabdF7jzHtjAQAAlFSxwk69evV05swZbdmyRdLV20PMnTv3uhtxAgAAuIti7dn57VfyfPrpp8rNzXVqQQAAAM7k0Ablaxz4PkIAAIAyVaywY7FYrtuTwx4dAADgzoq1Z8cwDA0ZMsR2s89Lly5pxIgR112NtXr1audVCAAAUALFCjuDBw+2e/zkk086tRgAAABnK1bYWbx4cWnVAQAAUCpKtEEZAADA3RF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqbl92Pnpp5/05JNPqnr16vL19VXTpk21e/du23nDMPTyyy+rVq1a8vX1VXR0tI4cOeLCigEAgDtx67Dz66+/ql27dvLy8tKnn36q//znP5o1a5aqVatm6zNjxgzNnTtXiYmJ2rVrlypXrqyYmBhdunTJhZUDAAB34enqAm5l+vTpCgsL0+LFi21tERERtv82DENz5szRSy+9pJ49e0qSli5dquDgYK1du1b9+vUr85oBAIB7ceuVnXXr1qlVq1b605/+pKCgILVo0ULvvvuu7fzx48dltVoVHR1ta/P391fbtm2VkpJy03Hz8vKUnZ1tdwAAAHNy67Bz7NgxLVy4UPXq1dNnn32mv/71r3r22We1ZMkSSZLVapUkBQcH2z0vODjYdu5GEhIS5O/vbzvCwsJKbxIAAMCl3DrsFBYW6r777tPrr7+uFi1aaPjw4Xr66aeVmJhYonEnTpyorKws23Hq1CknVQwAANyN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DinuvH/LXa/GIuyU0Lx584zw8HDD29vbaNOmjbFz507buYceesgYPHiwXf8PPvjAqF+/vuHt7W3cc889xoYNG8q4Yucpztxr165tSLruiI+PL/vCnaC4P/f/VV7DjmEUf947duww2rZta/j4+Bh33XWX8dprrxlXrlwp46qdozhzz8/PN1555RWjbt26RsWKFY2wsDDjmWeeMX799deyL7wEtmzZcsP/3V6b6+DBg42HHnrouuc0b97c8Pb2Nu666y5j8eLFZV63MxR37g899NAt+5cXjvzM/5e7hh2LYZh4TRUAANz22LMDAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABKxfbt29WjRw+FhobKYrFo7dq1xR7jgw8+UPPmzVWpUiXVrl1bb7zxRrHHIOwAAIBSkZubq2bNmmn+/PkOPf/TTz/VgAEDNGLECB04cEALFizQm2++qbfffrtY4/ANygAAoNRZLBatWbNGvXr1srXl5eXpxRdf1IoVK5SZmakmTZpo+vTp6tixoySpf//+ys/P16pVq2zPmTdvnmbMmKH09HRZLJYivTYrOwAAwCViY2OVkpKilStX6ttvv9Wf/vQndenSRUeOHJF0NQxVrFjR7jm+vr768ccfdfLkySK/DmEHAACUufT0dC1evFirVq1Shw4dVLduXY0fP17t27fX4sWLJUkxMTFavXq1kpOTVVhYqMOHD2vWrFmSpDNnzhT5tTxLZQYAAAC38N1336mgoED169e3a8/Ly1P16tUlSU8//bR++OEHPfroo8rPz5efn59Gjx6tV155RR4eRV+vIewAAIAyl5OTowoVKig1NVUVKlSwO1elShVJV/f5TJ8+Xa+//rqsVqtq1qyp5ORkSdJdd91V5Nci7AAAgDLXokULFRQU6OzZs+rQocMt+1aoUEF33HGHJGnFihWKjIxUzZo1i/xahB0AAFAqcnJydPToUdvj48ePa9++fQoMDFT9+vU1YMAADRo0SLNmzVKLFi107tw5JScn695771X37t31888/68MPP1THjh116dIl2x6fbdu2FasOLj0HAAClYuvWrYqKirquffDgwUpKSlJ+fr6mTp2qpUuX6qefflKNGjV0//33a/LkyWratKl+/vln9ejRQ999950Mw1BkZKRee+01tW3btlh1EHYAAICpcek5AAAwNcIOAAAwNcIOAAAwNcIOAAAwNcIOAAAwNcIOAAAwNcIOAAAwNcIOAAAwNcIOAAAwNcIOAAAwNcIOAAAwNcIOAAAwtf8HhWAsE6MtAjwAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data.plot.hist(column=[\"Population 2020\"], bins=80)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Визуализация - Точечная диаграмма" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Country (or dependency) Population 2020 Yearly Change Net Change\n", + "no \n", + "1 China 1439323776 0.39 5540090\n", + "2 India 1380004385 0.99 13586631\n", + "3 United States 331002651 0.59 1937734\n", + "4 Indonesia 273523615 1.07 2898047\n", + "5 Pakistan 220892340 2.00 4327022\n", + ".. ... ... ... ...\n", + "231 Montserrat 4992 0.06 3\n", + "232 Falkland Islands 3480 3.05 103\n", + "233 Niue 1626 0.68 11\n", + "234 Tokelau 1357 1.27 17\n", + "235 Holy See 801 0.25 2\n", + "\n", + "[235 rows x 4 columns]\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAHACAYAAABJddlbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFRklEQVR4nO3deVxWZf7/8fcNCogIgigukTvmimjpqLlTmBNp0+JXHUWzGsutzCmdcm0hM/c0p2VcmkatXGq0tELNJZdcUDNUXDEFBTcEFQ2u3x/9vMc7UW/kxhs8r+fjcT8e3te5zjmfcw5wvz3nOue2GWOMAAAA7nAe7i4AAADgdiD0AAAASyD0AAAASyD0AAAASyD0AAAASyD0AAAASyD0AAAASyD0AAAASyD0AAAASyD0AAAAS7B06Fm9erWio6NVsWJF2Ww2LV68OM/L+Oyzz9SwYUP5+vqqcuXKGjdunOsLBQAA+Wbp0JOZmanw8HBNmzbtlub/5ptv1L17d/Xt21c///yzpk+frokTJ+q9995zcaUAACC/bHzh6O9sNpsWLVqkzp0729uysrL06quvau7cuTpz5ozq1aunsWPHqk2bNpKkbt266fLly/r888/t80ydOlXvvPOOkpKSZLPZbvNWAACA67H0mZ6b6d+/v9avX6958+Zpx44deuKJJ9ShQwclJiZK+j0U+fj4OMxTokQJ/frrrzp8+LA7SgYAANdB6LmOpKQkzZw5U59//rlatmyp6tWra8iQIbr//vs1c+ZMSVJUVJQWLlyouLg45eTkaO/evRo/frwkKTk52Z3lAwCAPyjm7gIKq507dyo7O1thYWEO7VlZWSpTpowk6ZlnntH+/fv18MMP6/Lly/L399egQYM0atQoeXiQJwEAKEwIPdeRkZEhT09PbdmyRZ6eng7T/Pz8JP0+Dmjs2LF66623lJKSorJlyyouLk6SVK1atdteMwAAuD5Cz3VEREQoOztbJ06cUMuWLW/Y19PTU5UqVZIkzZ07V82aNVPZsmVvR5kAAMBJlg49GRkZ2rdvn/39wYMHFR8fr6CgIIWFhal79+7q2bOnxo8fr4iICKWmpiouLk4NGjTQn//8Z6WlpemLL75QmzZtdPHiRfsYoB9++MGNWwUAAHJj6VvWV61apbZt217THhMTo1mzZuny5ct64403NGfOHB09elTBwcH605/+pNGjR6t+/fpKS0tTdHS0du7cKWOMmjVrpjfffFNNmzZ1w9YAAIAbsXToAQAA1sEtRgAAwBIIPQAAwBIsN5A5JydHx44dU6lSpfiaCAAAighjjM6dO6eKFSve8rPwLBd6jh07ptDQUHeXAQAAbsGRI0d011133dK8lgs9pUqVkvT7TvP393dzNQAAwBnp6ekKDQ21f47fCsuFniuXtPz9/Qk9AAAUMfkZmsJAZgAAYAmEHgAAYAmEHgAAYAmEHgAAYAmEHgAAYAmEHgAAYAmEHgAAYAmEHgAAYAmEHgAAYAmEHgAAYAmW+xqKgnQgNUOHT51XlTIlVTW4pLvLAQAAVyH0uMCZ85c0cG68Viem2tta1SyrqV0jFOBb3I2VAQCAK7i85QID58Zr3b40h7Z1+9I0YO42N1UEAAD+iNCTTwdSM7Q6MVXZxji0Zxuj1YmpOpiW6abKAADA1Qg9+XT41PkbTj90ktADAEBhQOjJp8pBvjecXqUMA5oBACgMCD35VK2sn1rVLCtPm82h3dNmU6uaZbmLCwCAQoLQ4wJTu0aoRY1gh7YWNYI1tWuEmyoCAAB/xC3rLhDgW1xz+jTRwbRMHTqZyXN6AAAohAg9LlQ1mLADAEBh5dbLW6tXr1Z0dLQqVqwom82mxYsXOz3vunXrVKxYMTVs2LDA6gMAAHcOt4aezMxMhYeHa9q0aXma78yZM+rZs6fat29fQJUBAIA7jVsvbz300EN66KGH8jxf37591a1bN3l6eubp7BAAALCuInf31syZM3XgwAGNHDnS3aUAAIAipEgNZE5MTNTQoUO1Zs0aFSvmXOlZWVnKysqyv09PTy+o8gAAQCFWZM70ZGdnq1u3bho9erTCwsKcni82NlYBAQH2V2hoaAFWCQAACiubMX/4pkw3sdlsWrRokTp37pzr9DNnzigwMFCenp72tpycHBlj5OnpqW+//Vbt2rW7Zr7czvSEhobq7Nmz8vf3d/l2oGg7kJqhw6fO86wlAChk0tPTFRAQkK/P7yJzecvf3187d+50aJs+fbpWrFihL774QlWrVs11Pm9vb3l7e9+OElGEnTl/SQPnxmt1Yqq9rVXNspraNUIBvsXdWBkAwFXcGnoyMjK0b98++/uDBw8qPj5eQUFBuvvuuzVs2DAdPXpUc+bMkYeHh+rVq+cwf7ly5eTj43NNO5BXA+fGa92+NIe2dfvSNGDuNs3p08RNVQEAXMmtY3o2b96siIgIRUT8/h1VgwcPVkREhEaMGCFJSk5OVlJSkjtLhAUcSM3Q6sRUZf/hSm+2MVqdmKqDaZluqgwA4EqFZkzP7eKKa4K4s6zcc0K9Z/503ekze9+ntrXK3caKAAB/5IrP7yJz9xZQUCoH+d5wepUyDGgGgDsBoQeWV62sn1rVLCtPm82h3dNmU6uaZbmLCwDuEIQeQNLUrhFqUSPYoa1FjWBN7RrhpooAAK5WZG5ZBwpSgG9xzenTRAfTMnXoZCbP6QGAOxChB7hK1WDCDgDcqbi8BQAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALIHQAwAALMGtoWf16tWKjo5WxYoVZbPZtHjx4hv2X7hwoR544AGVLVtW/v7+atasmZYvX357igUAAEWaW0NPZmamwsPDNW3aNKf6r169Wg888IC+/vprbdmyRW3btlV0dLS2bdtWwJUCAICizmaMMe4uQpJsNpsWLVqkzp0752m+unXrqkuXLhoxYoRT/dPT0xUQEKCzZ8/K39//FioFAAC3mys+v4v0mJ6cnBydO3dOQUFB7i4FAAAUcsXcXUB+vPvuu8rIyNCTTz553T5ZWVnKysqyv09PT78dpQEAgEKmyJ7p+c9//qPRo0frs88+U7ly5a7bLzY2VgEBAfZXaGjobawSAAAUFkUy9MybN09PP/20PvvsM0VGRt6w77Bhw3T27Fn768iRI7epSgAAUJgUuctbc+fO1VNPPaV58+bpz3/+8037e3t7y9vb+zZUBgAACjO3hp6MjAzt27fP/v7gwYOKj49XUFCQ7r77bg0bNkxHjx7VnDlzJP1+SSsmJkaTJ09W06ZNlZKSIkkqUaKEAgIC3LINAACgaHDr5a3NmzcrIiJCERERkqTBgwcrIiLCfvt5cnKykpKS7P0/+OAD/fbbb+rXr58qVKhgfw0aNMgt9QMAgKKj0Dyn53bhOT0AABQ9ln9ODwAAgLMIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBIIPQAAwBKK5XWGTZs2af369UpJSZEklS9fXs2aNVOTJk1cXhwAAICrOB16Tpw4occee0zr1q3T3XffrZCQEEnS8ePH9eKLL6pFixZasGCBypUrV2DFAgAA3CqnL289//zzys7OVkJCgg4dOqSNGzdq48aNOnTokBISEpSTk6N+/foVZK0AAAC3zGaMMc50LFWqlFavXq2IiIhcp2/ZskVt2rTRuXPnXFqgq6WnpysgIEBnz56Vv7+/u8sBAABOcMXnt9Nnery9vZWenn7d6efOnZO3t3eeVr569WpFR0erYsWKstlsWrx48U3nWbVqlRo1aiRvb2/VqFFDs2bNytM6AQCANTkderp06aKYmBgtWrTIIfykp6dr0aJF6t27t7p27ZqnlWdmZio8PFzTpk1zqv/Bgwf15z//WW3btlV8fLxeeOEFPf3001q+fHme1gsAAKzH6YHMEyZMUE5Ojv7v//5Pv/32m7y8vCRJly5dUrFixdSnTx+9++67eVr5Qw89pIceesjp/jNmzFDVqlU1fvx4SVLt2rW1du1aTZw4UVFRUXlaNwAAsBanQ4+3t7fef/99jR07Vlu2bHG4Zb1x48a3ZXzM+vXrFRkZ6dAWFRWlF1544brzZGVlKSsry/7+RpfoAADAnSvPz+nx9/dX27ZtC6KWm0pJSbHfKn9FSEiI0tPTdeHCBZUoUeKaeWJjYzV69OjbVSIAACik8vRE5gsXLmjt2rX65Zdfrpl28eJFzZkzx2WFucqwYcN09uxZ++vIkSPuLgkAALiB06Fn7969ql27tlq1aqX69eurdevWOnbsmH362bNn1bt37wIp8ory5cvr+PHjDm3Hjx+Xv79/rmd5pN8vy/n7+zu8AACA9Tgdel555RXVq1dPJ06c0J49e1SqVCndf//9SkpKKsj6HDRr1kxxcXEObd99952aNWt222oAAABFk9Oh58cff1RsbKyCg4NVo0YN/fe//1VUVJRatmypAwcO3NLKMzIyFB8fr/j4eEm/35IeHx9vD1LDhg1Tz5497f379u2rAwcO6OWXX9bu3bs1ffp0ffbZZ3rxxRdvaf0AAMA6nA49Fy5cULFi/xv3bLPZ9P777ys6OlqtW7fW3r1787zyzZs3KyIiwv6U58GDBysiIkIjRoyQJCUnJzucSapataqWLl2q7777TuHh4Ro/frw++ugjblcHAAA35fTXUDRp0kQDBgxQjx49rpnWv39/ffrpp0pPT1d2drbLi3QlvoYCAICi57Z+DcWjjz6quXPn5jrtvffeU9euXeVkfgIAALjtnD7Tc6fgTA8AAEXPbT3T80d/fNIxAABAYZan0PPdd9+pY8eOCgwMlK+vr3x9fRUYGKiOHTvq+++/L6gaAQAA8s3p0DN79mx17NhRAQEBmjhxopYsWaIlS5Zo4sSJKl26tDp27KhPPvmkIGsFAAC4ZU6P6QkLC9OgQYPUr1+/XKdPnz5dEydOVGJioksLdDXG9AAAUPTc1jE9SUlJ13zD+dXat2+vX3/99ZaKAAAAKGhOh566devq448/vu70f/3rX6pTp45LigIAAHC1Yjfv8rvx48fr4Ycf1rJlyxQZGamQkBBJv3/hZ1xcnA4cOKClS5cWWKEAAAD54XToadOmjX7++We9//772rBhg1JSUiT9/s3nDz30kPr27asqVaoUVJ0AAAD5wsMJAQBAoefWhxMCAAAUJXkKPdOnT1dkZKSefPJJxcXFOUxLS0tTtWrVXFocAACAqzgdeqZMmaK///3vuueee+Tt7a2OHTsqNjbWPj07O1uHDx8ukCIBAADyy+mBzP/85z/14Ycfqlu3bpKk5557Tp07d9aFCxc0ZsyYAisQAADAFZwOPQcPHlTz5s3t75s3b64VK1YoMjJSly9f1gsvvFAQ9QEAALiE06EnODhYR44ccbgtvV69elqxYoXatWunY8eOFUR9AAAALuH0mJ77779fCxcuvKa9Tp06iouL0zfffOPSwgAAAFzJ6TM9Q4cO1ZYtW3KdVrduXa1YsUILFixwWWEAAACuxMMJAQBAocfDCQEAAJxE6AEAAJZA6AEAAJZA6AEAAJZA6AEAAJaQ59Bz/Phx9ejRQxUrVlSxYsXk6enp8AIAACiMnH5OzxW9evVSUlKShg8frgoVKshmsxVEXQAAAC6V59Czdu1arVmzRg0bNiyAcgAAAApGni9vhYaGymLPMwQAAHeAPIeeSZMmaejQoTp06FABlAMAAFAw8nx5q0uXLjp//ryqV68uX19fFS9e3GH6qVOnXFYcAACAq+Q59EyaNKkAygAAAChYeQ49MTExBVEHAABAgcpz6JGk7OxsLV68WAkJCZKkunXr6pFHHuE5PQAAoNDKc+jZt2+fOnbsqKNHj6pWrVqSpNjYWIWGhmrp0qWqXr26y4sEAADIrzzfvTVw4EBVr15dR44c0datW7V161YlJSWpatWqGjhwYEHUCAAAkG95PtPzww8/aMOGDQoKCrK3lSlTRm+//bZatGjh0uIAAABcJc9nery9vXXu3Llr2jMyMuTl5eWSogAAAFwtz6Hn4Ycf1rPPPquNGzfKGCNjjDZs2KC+ffvqkUceKYgaAQAA8i3PoWfKlCmqXr26mjVrJh8fH/n4+KhFixaqUaOGJk+eXBA1AgAA5Fuex/SULl1aX375pRITE7V7925JUu3atVWjRg2XFwcAAOAqt/ScHkmqWbOmatas6cpaAAAACoxToWfw4MF6/fXXVbJkSQ0ePPiGfSdMmOCSwgAAAFzJqdCzbds2Xb582f5vAACAosZmjDHuLGDatGkaN26cUlJSFB4erqlTp6pJkybX7T9p0iS9//77SkpKUnBwsB5//HHFxsbKx8fHqfWlp6crICBAZ8+elb+/v6s2AwAAFCBXfH7n+e6tp556Ktfn9GRmZuqpp57K07Lmz5+vwYMHa+TIkdq6davCw8MVFRWlEydO5Nr/P//5j4YOHaqRI0cqISFBH3/8sebPn69//OMfed0MAABgMXk+0+Pp6ank5GSVK1fOoT0tLU3ly5fXb7/95vSymjZtqvvuu0/vvfeeJCknJ0ehoaEaMGCAhg4dek3//v37KyEhQXFxcfa2l156SRs3btTatWudWidnegAAKHpu65me9PR0nT17VsYYnTt3Tunp6fbX6dOn9fXXX18ThG7k0qVL2rJliyIjI/9XjIeHIiMjtX79+lznad68ubZs2aJNmzZJkg4cOKCvv/5aHTt2vO56srKyHGpNT093ukYAAHDncPqW9dKlS8tms8lmsyksLOya6TabTaNHj3Z6xWlpacrOzlZISIhDe0hIiP35P3/UrVs3paWl6f7775cxRr/99pv69u17w8tbsbGxeaoLAADcmZwOPStXrpQxRu3atdOCBQscvnDUy8tLlStXVsWKFQukyCtWrVqlt956S9OnT1fTpk21b98+DRo0SK+//rqGDx+e6zzDhg1zuM0+PT1doaGhBVonAAAofJwOPa1bt5YkHTx4UKGhofLwyPMYaAfBwcHy9PTU8ePHHdqPHz+u8uXL5zrP8OHD1aNHDz399NOSpPr16yszM1PPPvusXn311Vxr8vb2lre3d75qBQAARV+en8hcuXJlSdL58+eVlJSkS5cuOUxv0KCBU8vx8vJS48aNFRcXp86dO0v6fSBzXFyc+vfvn+s858+fvybYeHp6SpLcfOc9AAAo5PIcelJTU9W7d2998803uU7Pzs52elmDBw9WTEyM7r33XjVp0kSTJk1SZmamevfuLUnq2bOnKlWqpNjYWElSdHS0JkyYoIiICPvlreHDhys6OtoefgAAAHKT59Dzwgsv6MyZM9q4caPatGmjRYsW6fjx43rjjTc0fvz4PC2rS5cuSk1N1YgRI5SSkqKGDRtq2bJl9sHNSUlJDmd2XnvtNdlsNr322ms6evSoypYtq+joaL355pt53QwAAGAxeX5OT4UKFfTll1+qSZMm8vf31+bNmxUWFqavvvpK77zzjtPPy3EXntMDAEDR45YnMmdmZtqfxxMYGKjU1FRJvw8q3rp16y0VAQAAUNDyHHpq1aqlPXv2SJLCw8P1z3/+U0ePHtWMGTNUoUIFlxcIAADgCnke0zNo0CAlJydLkkaOHKkOHTro008/lZeXl2bNmuXq+gAAAFwi39+yfv78ee3evVt33323goODXVVXgWFMDwAARY8rPr/zfKbnj3x9fdWoUaP8LgYAAKBAORV6rv4ah5uZMGHCLRcDAABQUJwKPdu2bXNqYTabLV/FAAAAFBSnQs/KlSsLug4AAIAClb9vDQUAACgi8jyQuW3btje8jLVixYp8FQQAAFAQ8hx6GjZs6PD+8uXLio+P188//6yYmBhX1QUAAOBSeQ49EydOzLV91KhRysjI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dPbsWfvryJEjLqkdAAAULW4NPV5eXmrcuLHi4uLsbTk5OYqLi1OzZs2uO98777yj119/XcuWLdO99957w3V4e3vL39/f4QUAAKzH7d+9NXjwYMXExOjee+9VkyZNNGnSJGVmZqp3796SpJ49e6pSpUqKjY2VJI0dO1YjRozQf/7zH1WpUkUpKSmSJD8/P/n5+bltOwAAQOHm9tDTpUsXpaamasSIEUpJSVHDhg21bNky++DmpKQkeXj874TU+++/r0uXLunxxx93WM7IkSM1atSo21k6AAAoQtz+nJ7bjef0AABQ9Lji87tI370FAADgLEIPAACwBEIPAACwBEIPAACwBLffvXW7XRm3zddRAABQdFz53M7P/VeWCz3nzp2TJL6OAgCAIujcuXMKCAi4pXktd8t6Tk6Ojh07plKlSslms7l02enp6QoNDdWRI0e4Hb6I4hgWbRy/oo9jWPQV1DE0xujcuXOqWLGiw/P78sJyZ3o8PDx01113Feg6+LqLoo9jWLRx/Io+jmHRVxDH8FbP8FzBQGYAAGAJhB4AAGAJhB4X8vb21siRI+Xt7e3uUnCLOIZFG8ev6OMYFn2F+RhabiAzAACwJs70AAAASyD0AAAASyD05IHNZtPixYuvO33VqlWy2Ww6c+bMbasJBePqY33o0CHZbDbFx8e7taairEqVKpo0aVKBLPtmv5dwj8J2XPj7fOtmzZql0qVLX3d6Udq3hJ6rpKSkaMCAAapWrZq8vb0VGhqq6OhoxcXFOTV/8+bNlZycnO/nCCB/evXqpc6dO7tseaGhoUpOTla9evVctsyioE2bNnrhhReuab/ZH8Dc/PTTT3r22Wft72/nB2Jqaqqee+453X333fL29lb58uUVFRWldevW5bueggxz7uTq36HCwOp/n3v16iWbzSabzSYvLy/VqFFDY8aM0W+//ZbvZedl37o7IFnu4YTXc+jQIbVo0UKlS5fWuHHjVL9+fV2+fFnLly9Xv379tHv37psuw8vLS+XLl78N1eJ28vT05LjmU9myZd227scee0yXLl3S7NmzVa1aNR0/flxxcXE6efKk22rC7cffZ6lDhw6aOXOmsrKy9PXXX6tfv34qXry4hg0blq/lFqV9y5me/+/555+XzWbTpk2b9NhjjyksLEx169bV4MGDtWHDBnu/tLQ0Pfroo/L19VXNmjX11Vdf2af9McFe+R/x8uXLVbt2bfn5+alDhw5KTk62z/PTTz/pgQceUHBwsAICAtS6dWtt3br1tm33na5NmzYaOHCgXn75ZQUFBal8+fIaNWqUQ5/ExES1atVKPj4+qlOnjr777juH6X+8vJWdna0+ffqoatWqKlGihGrVqqXJkyffpi0qfK6cFXj33XdVoUIFlSlTRv369dPly5ftfa4+I1KlShVJ0qOPPiqbzWZ/L0lffvmlGjVqJB8fH1WrVk2jR492+J/ozY7VH505c0Zr1qzR2LFj1bZtW1WuXFlNmjTRsGHD9Mgjj9ywnv3796tTp04KCQmRn5+f7rvvPn3//ff2Zbdp00aHDx/Wiy++aP8f9BVr165Vy5YtVaJECYWGhmrgwIHKzMy0T58+fbpq1qwpHx8fhYSE6PHHH3d6f99urvgdkqSdO3eqXbt2KlGihMqUKaNnn31WGRkZ9unO/BxlZWVpyJAhqlSpkkqWLKmmTZtq1apV9umHDx9WdHS0AgMDVbJkSdWtW1dff/21pGv/Pp88eVJdu3ZVpUqV5Ovrq/r162vu3Lmu23GF0JUznZUrV9Zzzz2nyMhIffXVV5owYYLq16+vkiVLKjQ0VM8//7zDsfmj1NRU3XvvvXr00UeVlZV1zb693nE4dOiQ2rZtK0kKDAyUzWZTr169JEnLli3T/fffr9KlS6tMmTJ6+OGHtX//fvs6r/wdXrhwodq2bStfX1+Fh4dr/fr1edoHhB5Jp06d0rJly9SvXz+VLFnymulXn8ofPXq0nnzySe3YsUMdO3ZU9+7dderUqesu+/z583r33Xf1ySefaPXq1UpKStKQIUPs08+dO6eYmBitXbtWGzZsUM2aNdWxY0f7F6Mi/2bPnq2SJUtq48aNeueddzRmzBj7H+WcnBz95S9/kZeXlzZu3KgZM2bolVdeueHycnJydNddd+nzzz/XL7/8ohEjRugf//iHPvvss9uxOYXSypUrtX//fq1cuVKzZ8/WrFmzNGvWrFz7/vTTT5KkmTNnKjk52f5+zZo16tmzpwYNGqRffvlF//znPzVr1iy9+eabkm7tWPn5+cnPz0+LFy9WVlZWnurJyMhQx44dFRcXp23btqlDhw6Kjo5WUlKSJGnhwoW66667NGbMGCUnJ9v/M7N//3516NBBjz32mHbs2KH58+dr7dq16t+/vyRp8+bNGjhwoMaMGaM9e/Zo2bJlatWqlbO72i3y+zuUmZmpqKgoBQYG6qefftLnn3+u77//3r5PrrjZz1H//v21fv16zZs3Tzt27NATTzyhDh06KDExUZLUr18/ZWVlafXq1dq5c6fGjh0rPz+/XLfp4sWLaty4sZYuXaqff/5Zzz77rHr06KFNmza5cM8VbiVKlNClS5fk4eGhKVOmaNeuXZo9e7ZWrFihl19+Odd5jhw5opYtW6pevXr64osvcn0Wz/WOQ2hoqBYsWCBJ2rNnj5KTk+3/YczMzNTgwYO1efNmxcXFycPDQ48++qhycnIclv3qq69qyJAhio+PV1hYmLp27Zq3S3QGZuPGjUaSWbhw4Q37STKvvfaa/X1GRoaRZL755htjjDErV640kszp06eNMcbMnDnTSDL79u2zzzNt2jQTEhJy3XVkZ2ebUqVKmf/+97/52CJri4mJMZ06dTLGGNO6dWtz//33O0y/7777zCuvvGKMMWb58uWmWLFi5ujRo/bp33zzjZFkFi1aZIwx5uDBg0aS2bZt23XX2a9fP/PYY4+5dDvcrXXr1mbQoEHXtM+cOdMEBATY38fExJjKlSub3377zd72xBNPmC5dutjfV65c2UycONH+/ur9e0X79u3NW2+95dD2ySefmAoVKhhjnDtWufniiy9MYGCg8fHxMc2bNzfDhg0z27dvd+hzs2VcUbduXTN16tTrbpcxxvTp08c8++yzDm1r1qwxHh4e5sKFC2bBggXG39/fpKen33R97uLq36EPPvjABAYGmoyMDHufpUuXGg8PD5OSkmJf541+jg4fPmw8PT0d1mPM7z83w4YNM8YYU79+fTNq1Khct+mPf59z8+c//9m89NJL151elF19THNycsx3331nvL29zZAhQ67p+/nnn5syZcrY31/5nd+9e7cJDQ01AwcONDk5Ofbpf9y3+T0OxhiTmppqJJmdO3caY/73d/ijjz6y99m1a5eRZBISEpzZBcYYYzjTo9+/udVZDRo0sP+7ZMmS8vf314kTJ67b39fXV9WrV7e/r1ChgkP/48eP65lnnlHNmjUVEBAgf39/ZWRk2P83ify7+phJjscgISFBoaGhqlixon16s2bNbrrMadOmqXHjxipbtqz8/Pz0wQcfWPqY1a1bV56envb3f/w5d8b27ds1ZswY+9kZPz8/PfPMM0pOTtb58+dv+Vg99thjOnbsmL766it16NBBq1atUqNGja57JuqKjIwMDRkyRLVr11bp0qXl5+enhISEmx7n7du3a9asWQ7bERUVpZycHB08eFAPPPCAKleurGrVqqlHjx769NNPdf78eaf2kbvk93coISFB4eHhDmfSW7RooZycHO3Zs8fedqOfo507dyo7O1thYWEO+/aHH36wXwYZOHCg3njjDbVo0UIjR47Ujh07rrtN2dnZev3111W/fn0FBQXJz89Py5cvv6N/j5csWSI/Pz/5+PjooYceUpcuXTRq1Ch9//33at++vSpVqqRSpUqpR48eOnnypMPP5YULF9SyZUv95S9/0eTJkx0u5/5RXo7DFYmJieratauqVasmf39/+2XmPx6Pq38WK1SoIEl5+ltD6JFUs2ZN2Ww2pwYrFy9e3OG9zWa75vTbzfpfHbJiYmIUHx+vyZMn68cff1R8fLzKlCmjS5cu5XErcD15PWY3M2/ePA0ZMkR9+vTRt99+q/j4ePXu3fuOO2b+/v46e/bsNe1nzpy55i4NV+zjjIwMjR49WvHx8fbXzp07lZiYKB8fn7xvwFV8fHz0wAMPaPjw4frxxx/Vq1cvjRw58obzDBkyRIsWLdJbb72lNWvWKD4+XvXr17/pcc7IyNDf/vY3h+3Yvn27EhMTVb16dZUqVUpbt27V3LlzVaFCBY0YMULh4eGF+nZfV/8O3cp6MjIy5OnpqS1btjjs24SEBPslkqeffloHDhxQjx49tHPnTt17772aOnVqrusaN26cJk+erFdeeUUrV65UfHy8oqKi7rjf46u1bdtW8fHxSkxM1IULFzR79mylpqbq4YcfVoMGDbRgwQJt2bJF06ZNkySHfeHt7a3IyEgtWbJER48eveF68nIcroiOjtapU6f04YcfauPGjdq4ceM1NUiOPyNXgldefhYJPZKCgoIUFRWladOmOQw2vKIg/xitW7dOAwcOVMeOHVW3bl15e3srLS2twNYHR7Vr19aRI0ccBpdfPXA9N+vWrVPz5s31/PPPKyIiQjVq1HAYcHenqFWrVq6D6rdu3aqwsLB8Lbt48eLKzs52aGvUqJH27NmjGjVqXPPy8PC4pWN1PXXq1HH4Xc+tnnXr1qlXr1569NFHVb9+fZUvX16HDh1y6OPl5ZXrdvzyyy+5boeXl5ckqVixYoqMjNQ777yjHTt26NChQ1qxYsUtbYu7OXNcateure3btzvs83Xr1snDw0O1atVyaj0RERHKzs7WiRMnrtmvV985FBoaqr59+2rhwoV66aWX9OGHH+a6vHXr1qlTp07661//qvDwcFWrVk179+7Ny6YXOSVLllSNGjV09913q1ix32/e3rJli3JycjR+/Hj96U9/UlhYmI4dO3bNvB4eHvrkk0/UuHFjtW3bNtc+V7vecbjyO3D1783Jkye1Z88evfbaa2rfvr1q166t06dPu2qzHbejQJZaBE2bNk3Z2dlq0qSJFixYoMTERCUkJGjKlClOnUK/VTVr1tQnn3yihIQEbdy4Ud27d1eJEiUKbH1wFBkZqbCwMMXExGj79u1as2aNXn311RvOU7NmTW3evFnLly/X3r17NXz4cPvg1zvJc889p71792rgwIHasWOH9uzZowkTJmju3Ll66aWX8rXsKlWqKC4uTikpKfY/biNGjNCcOXM0evRo7dq1SwkJCZo3b55ee+01Sbd2rE6ePKl27drp3//+t3bs2KGDBw/q888/1zvvvKNOnTrdsJ6aNWtq4cKF9jM13bp1u+Z/lFWqVNHq1at19OhR+39WXnnlFf3444/q37+//X/VX375pX3Q7pIlSzRlyhTFx8fr8OHDmjNnjnJycpz+8C9snDku3bt3l4+Pj2JiYvTzzz9r5cqVGjBggHr06KGQkBCn1hMWFqbu3burZ8+eWrhwoQ4ePKhNmzYpNjZWS5culSS98MILWr58uQ4ePKitW7dq5cqVql27dq7Lq1mzpr777jv9+OOPSkhI0N/+9jcdP348fzujCKpRo4YuX76sqVOn6sCBA/rkk080Y8aMXPt6enrq008/VXh4uNq1a6eUlJRc+93oOFSuXFk2m01LlixRamqqMjIyFBgYqDJlyuiDDz7Qvn37tGLFCg0ePLhAtpfQ8/9Vq1ZNW7duVdu2bfXSSy+pXr16euCBBxQXF6f333+/wNb78ccf6/Tp02rUqJF69OihgQMHqly5cgW2Pjjy8PDQokWLdOHCBTVp0kRPP/20/W6h6/nb3/6mv/zlL+rSpYuaNm2qkydP6vnnn79NFd8+1apV0+rVq7V7925FRkaqadOm+uyzz/T555+rQ4cO+Vr2+PHj9d133yk0NFQRERGSpKioKC1ZskTffvut7rvvPv3pT3/S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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "print(cleared_df)\n", + "cleared_df.head(5).plot.scatter(x=\"Country (or dependency)\", y=\"Population 2020\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Визуализация - Столбчатая диаграмма" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# plot = data.groupby([\"Pclass\", \"Survived\"]).size().unstack().plot.bar(color=[\"pink\", \"green\"])\n", + "# plot.legend([\"Not survived\", \"Survived\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Визуализация - Временные ряды" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Year Population Yearly % Yearly Median Fertility Density\n", + "0 2020 7,794,798,739 1.10% 83,000,320 31 2.47 52\n", + "1 2025 8,184,437,460 0.98% 77,927,744 32 2.54 55\n", + "2 2030 8,548,487,400 0.87% 72,809,988 33 2.62 57\n", + "3 2035 8,887,524,213 0.78% 67,807,363 34 2.70 60\n", + "4 2040 9,198,847,240 0.69% 62,264,605 35 2.77 62\n", + "5 2045 9,481,803,274 0.61% 56,591,207 35 2.85 64\n", + "6 2050 9,735,033,990 0.53% 50,646,143 36 2.95 65\n", + "\n", + "RangeIndex: 7 entries, 0 to 6\n", + "Data columns (total 7 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Year 7 non-null int64 \n", + " 1 Population 7 non-null object \n", + " 2 Yearly % 7 non-null object \n", + " 3 Yearly 7 non-null object \n", + " 4 Median 7 non-null int64 \n", + " 5 Fertility 7 non-null float64\n", + " 6 Density 7 non-null int64 \n", + "dtypes: float64(1), int64(3), object(3)\n", + "memory usage: 524.0+ bytes\n", + "['Year' 'Population' 'Yearly %' 'Yearly' 'Median' 'Fertility' 'Density']\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAHACAYAAACBGTONAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYcklEQVR4nO3deXQUVd7G8W+ns4csAoEkEMKeQNi3COIIYzAwwKDiAqKyiKMDLsiAwIxsIiLqKAgKjrKjIIgCyghKEBwEZV/CHgQTIBDWrGTrrvcPXnsmJkAaknQneT7n9Dl09a3Kr4oi/VB17y2TYRgGIiIiIk7MxdEFiIiIiNyMAouIiIg4PQUWERERcXoKLCIiIuL0FFhERETE6SmwiIiIiNNTYBERERGnp8AiIiIiTk+BRURERJyeAouIiIg4vXIXWH744Qd69uxJSEgIJpOJlStX2r2NZcuW0aJFC7y9vQkLC+Ott94q/kJFRESkyMpdYMnIyKB58+a8//77t7T+N998Q79+/Xj22WeJi4vjgw8+4N1332XmzJnFXKmIiIgUlak8P/zQZDLx5Zdfcv/999uWZWdn849//IMlS5Zw5coVmjRpwtSpU+nUqRMAjz32GLm5uSxfvty2zowZM3jzzTdJSEjAZDKV8l6IiIhIubvCcjPPPfccW7duZenSpezbt4+HH36Yrl27cuzYMeBaoPH09My3jpeXF6dOneLXX391RMkiIiIVXoUKLAkJCcybN4/ly5dz9913U69ePUaMGEHHjh2ZN28eADExMXzxxRfExsZitVo5evQo//znPwFISkpyZPkiIiIVlqujCyhN+/fvx2Kx0LBhw3zLs7OzqVKlCgBPP/00x48fp0ePHuTm5uLn58eLL77IhAkTcHGpUPlORETEaVSowJKeno7ZbGbnzp2YzeZ8n1WqVAm41u9l6tSpvP7665w9e5bAwEBiY2MBqFu3bqnXLCIiIhUssLRs2RKLxUJycjJ33333DduazWZq1KgBwJIlS2jfvj2BgYGlUaaIiIj8TrkLLOnp6cTHx9venzhxgj179lC5cmUaNmxIv379ePLJJ/nnP/9Jy5YtOX/+PLGxsTRr1ozu3btz4cIFPv/8czp16kRWVpatz8umTZscuFciIiIVW7kb1rxx40Y6d+5cYHn//v2ZP38+ubm5vPbaayxcuJDTp09TtWpV7rzzTiZOnEjTpk25cOECPXv2ZP/+/RiGQfv27Zk8eTJRUVEO2BsRERGBchhYREREpPzRsBcRERFxegosIiIi4vTKRadbq9XKmTNn8PX11dT5IiIiZYRhGKSlpRESEnLTuc7KRWA5c+YMoaGhji5DREREbkFiYiI1a9a8YZtyEVh8fX2Bazvs5+fn4GpERESkKFJTUwkNDbV9j99IuQgsv90G8vPzU2AREREpY4rSnUOdbkVERMTpKbCIiIiI01NgEREREadXLvqwFJXFYiE3N9fRZUgJcXNzK/AUbhERKR8qRGAxDIOzZ89y5coVR5ciJSwgIICgoCDNxyMiUs5UiMDyW1ipVq0a3t7e+jIrhwzDIDMzk+TkZACCg4MdXJGIiBSnch9YLBaLLaxUqVLF0eVICfLy8gIgOTmZatWq6faQiEg5Ynen27S0NIYNG0ZYWBheXl506NCB7du3X7f9gAEDMJlMBV6RkZG2NhMmTCjweURExK3t0e/81mfF29u7WLYnzu23v2f1VRIRKV/sDiyDBw/mu+++Y9GiRezfv5/77ruP6OhoTp8+XWj76dOnk5SUZHslJiZSuXJlHn744XztIiMj87XbvHnzre3Rdeg2UMWgv2cRkfLJrltCV69eZcWKFaxatYo//OEPwLWrI1999RWzZs3itddeK7COv78//v7+tvcrV67k8uXLDBw4MH8hrq4EBQXdyj6IiIhIOWfXFZa8vDwsFguenp75lnt5eRX5isicOXOIjo4mLCws3/Jjx44REhJC3bp16devHwkJCdfdRnZ2NqmpqfleUjI6derEsGHDnGY7IiJSMdkVWHx9fWnfvj2TJk3izJkzWCwWFi9ezNatW0lKSrrp+mfOnOGbb75h8ODB+ZZHRUUxf/581q5dy6xZszhx4gR33303aWlphW5nypQptis3/v7+5fZJzf/b/8fd3Z369evz6quvkpeX5+jSrmvjxo2YTKYCQ8i/+OILJk2a5JiiRESkzLO7D8uiRYswDIMaNWrg4eHBe++9R9++fXFxufmmFixYQEBAAPfff3++5d26dePhhx+mWbNmxMTE8O9//5srV66wbNmyQrczZswYUlJSbK/ExER7d6PM6Nq1K0lJSRw7doy//e1vTJgwgbfeesvRZdmtcuXKRXoap4iIOJ/k1Cz2nbri0BrsDiz16tVj06ZNpKen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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from datetime import datetime\n", + "import matplotlib.dates as md\n", + "\n", + "ts = pd.read_csv(\"data/world-population-forcast-2020-2050.csv\", encoding=\"ISO-8859-1\")\n", + "print(ts)\n", + "ts.iloc[:, 1] = ts.iloc[:, 1].apply(lambda row: int(\"\".join(str(row).split(\",\"))))\n", + "ts.info()\n", + "\n", + "print(ts.columns.values)\n", + "plot = ts.plot.line(x=\"Year\", y=\"Population\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/lec2.ipynb b/lec2.ipynb new file mode 100644 index 0000000..4ba7802 --- /dev/null +++ b/lec2.ipynb @@ -0,0 +1,1085 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Загрузка данных в DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 891 entries, 1 to 891\n", + "Data columns (total 11 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Survived 891 non-null int64 \n", + " 1 Pclass 891 non-null int64 \n", + " 2 Name 891 non-null object \n", + " 3 Sex 891 non-null object \n", + " 4 Age 714 non-null float64\n", + " 5 SibSp 891 non-null int64 \n", + " 6 Parch 891 non-null int64 \n", + " 7 Ticket 891 non-null object \n", + " 8 Fare 891 non-null float64\n", + " 9 Cabin 204 non-null object \n", + " 10 Embarked 889 non-null object \n", + "dtypes: float64(2), int64(4), object(5)\n", + "memory usage: 83.5+ KB\n", + "(891, 11)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", + "
" + ], + "text/plain": [ + " Survived Pclass \\\n", + "PassengerId \n", + "1 0 3 \n", + "2 1 1 \n", + "3 1 3 \n", + "4 1 1 \n", + "5 0 3 \n", + "\n", + " Name Sex Age \\\n", + "PassengerId \n", + "1 Braund, Mr. Owen Harris male 22.0 \n", + "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", + "3 Heikkinen, Miss. Laina female 26.0 \n", + "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", + "5 Allen, Mr. William Henry male 35.0 \n", + "\n", + " SibSp Parch Ticket Fare Cabin Embarked \n", + "PassengerId \n", + "1 1 0 A/5 21171 7.2500 NaN S \n", + "2 1 0 PC 17599 71.2833 C85 C \n", + "3 0 0 STON/O2. 3101282 7.9250 NaN S \n", + "4 1 0 113803 53.1000 C123 S \n", + "5 0 0 373450 8.0500 NaN S " + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "df = pd.read_csv(\"data/titanic.csv\", index_col=\"PassengerId\")\n", + "\n", + "df.info()\n", + "\n", + "print(df.shape)\n", + "\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Получение сведений о пропущенных данных" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Типы пропущенных данных:\n", + "- None - представление пустых данных в Python\n", + "- NaN - представление пустых данных в Pandas\n", + "- '' - пустая строка" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Survived 0\n", + "Pclass 0\n", + "Name 0\n", + "Sex 0\n", + "Age 177\n", + "SibSp 0\n", + "Parch 0\n", + "Ticket 0\n", + "Fare 0\n", + "Cabin 687\n", + "Embarked 2\n", + "dtype: int64\n", + "\n", + "Survived False\n", + "Pclass False\n", + "Name False\n", + "Sex False\n", + "Age True\n", + "SibSp False\n", + "Parch False\n", + "Ticket False\n", + "Fare False\n", + "Cabin True\n", + "Embarked True\n", + "dtype: bool\n", + "\n", + "Age процент пустых значений: %19.87\n", + "Cabin процент пустых значений: %77.10\n", + "Embarked процент пустых значений: %0.22\n" + ] + } + ], + "source": [ + "# Количество пустых значений признаков\n", + "print(df.isnull().sum())\n", + "\n", + "print()\n", + "\n", + "# Есть ли пустые значения признаков\n", + "print(df.isnull().any())\n", + "\n", + "print()\n", + "\n", + "# Процент пустых значений признаков\n", + "for i in df.columns:\n", + " null_rate = df[i].isnull().sum() / len(df) * 100\n", + " if null_rate > 0:\n", + " print(f\"{i} процент пустых значений: %{null_rate:.2f}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Заполнение пропущенных данных\n", + "\n", + "https://pythonmldaily.com/posts/pandas-dataframes-search-drop-empty-values\n", + "\n", + "https://scales.arabpsychology.com/stats/how-to-fill-nan-values-with-median-in-pandas/" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(891, 11)\n", + "Survived False\n", + "Pclass False\n", + "Name False\n", + "Sex False\n", + "Age False\n", + "SibSp False\n", + "Parch False\n", + "Ticket False\n", + "Fare False\n", + "Cabin False\n", + "Embarked False\n", + "dtype: bool\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarkedAgeFillNAAgeFillMedian
PassengerId
88702Montvila, Rev. Juozasmale27.00021153613.00NaNS27.027.0
88811Graham, Miss. Margaret Edithfemale19.00011205330.00B42S19.019.0
88903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.45NaNS0.028.0
89011Behr, Mr. Karl Howellmale26.00011136930.00C148C26.026.0
89103Dooley, Mr. Patrickmale32.0003703767.75NaNQ32.032.0
\n", + "
" + ], + "text/plain": [ + " Survived Pclass Name \\\n", + "PassengerId \n", + "887 0 2 Montvila, Rev. Juozas \n", + "888 1 1 Graham, Miss. Margaret Edith \n", + "889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "890 1 1 Behr, Mr. Karl Howell \n", + "891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \\\n", + "PassengerId \n", + "887 male 27.0 0 0 211536 13.00 NaN S \n", + "888 female 19.0 0 0 112053 30.00 B42 S \n", + "889 female NaN 1 2 W./C. 6607 23.45 NaN S \n", + "890 male 26.0 0 0 111369 30.00 C148 C \n", + "891 male 32.0 0 0 370376 7.75 NaN Q \n", + "\n", + " AgeFillNA AgeFillMedian \n", + "PassengerId \n", + "887 27.0 27.0 \n", + "888 19.0 19.0 \n", + "889 0.0 28.0 \n", + "890 26.0 26.0 \n", + "891 32.0 32.0 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fillna_df = df.fillna(0)\n", + "\n", + "print(fillna_df.shape)\n", + "\n", + "print(fillna_df.isnull().any())\n", + "\n", + "# Замена пустых данных на 0\n", + "df[\"AgeFillNA\"] = df[\"Age\"].fillna(0)\n", + "\n", + "# Замена пустых данных на медиану\n", + "df[\"AgeFillMedian\"] = df[\"Age\"].fillna(df[\"Age\"].median())\n", + "\n", + "df.tail()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarkedAgeFillNAAgeFillMedianAgeCopy
PassengerId
88702Montvila, Rev. Juozasmale27.00021153613.00NaNS27.027.027.0
88811Graham, Miss. Margaret Edithfemale19.00011205330.00B42S19.019.019.0
88903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.45NaNS0.028.00.0
89011Behr, Mr. Karl Howellmale26.00011136930.00C148C26.026.026.0
89103Dooley, Mr. Patrickmale32.0003703767.75NaNQ32.032.032.0
\n", + "
" + ], + "text/plain": [ + " Survived Pclass Name \\\n", + "PassengerId \n", + "887 0 2 Montvila, Rev. Juozas \n", + "888 1 1 Graham, Miss. Margaret Edith \n", + "889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "890 1 1 Behr, Mr. Karl Howell \n", + "891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \\\n", + "PassengerId \n", + "887 male 27.0 0 0 211536 13.00 NaN S \n", + "888 female 19.0 0 0 112053 30.00 B42 S \n", + "889 female NaN 1 2 W./C. 6607 23.45 NaN S \n", + "890 male 26.0 0 0 111369 30.00 C148 C \n", + "891 male 32.0 0 0 370376 7.75 NaN Q \n", + "\n", + " AgeFillNA AgeFillMedian AgeCopy \n", + "PassengerId \n", + "887 27.0 27.0 27.0 \n", + "888 19.0 19.0 19.0 \n", + "889 0.0 28.0 0.0 \n", + "890 26.0 26.0 26.0 \n", + "891 32.0 32.0 32.0 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"AgeCopy\"] = df[\"Age\"]\n", + "\n", + "# Замена данных сразу в DataFrame без копирования\n", + "df.fillna({\"AgeCopy\": 0}, inplace=True)\n", + "\n", + "df.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Удаление наблюдений с пропусками" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(183, 14)\n", + "Survived False\n", + "Pclass False\n", + "Name False\n", + "Sex False\n", + "Age False\n", + "SibSp False\n", + "Parch False\n", + "Ticket False\n", + "Fare False\n", + "Cabin False\n", + "Embarked False\n", + "dtype: bool\n" + ] + } + ], + "source": [ + "dropna_df = df.dropna()\n", + "\n", + "print(dropna_df.shape)\n", + "\n", + "print(fillna_df.isnull().any())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Создание выборок данных\n", + "\n", + "Библиотека scikit-learn\n", + "\n", + "https://scikit-learn.org/stable/index.html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Функция для создания выборок\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "\n", + "def split_stratified_into_train_val_test(\n", + " df_input,\n", + " stratify_colname=\"y\",\n", + " frac_train=0.6,\n", + " frac_val=0.15,\n", + " frac_test=0.25,\n", + " random_state=None,\n", + "):\n", + " \"\"\"\n", + " Splits a Pandas dataframe into three subsets (train, val, and test)\n", + " following fractional ratios provided by the user, where each subset is\n", + " stratified by the values in a specific column (that is, each subset has\n", + " the same relative frequency of the values in the column). It performs this\n", + " splitting by running train_test_split() twice.\n", + "\n", + " Parameters\n", + " ----------\n", + " df_input : Pandas dataframe\n", + " Input dataframe to be split.\n", + " stratify_colname : str\n", + " The name of the column that will be used for stratification. Usually\n", + " this column would be for the label.\n", + " frac_train : float\n", + " frac_val : float\n", + " frac_test : float\n", + " The ratios with which the dataframe will be split into train, val, and\n", + " test data. The values should be expressed as float fractions and should\n", + " sum to 1.0.\n", + " random_state : int, None, or RandomStateInstance\n", + " Value to be passed to train_test_split().\n", + "\n", + " Returns\n", + " -------\n", + " df_train, df_val, df_test :\n", + " Dataframes containing the three splits.\n", + " \"\"\"\n", + "\n", + " if frac_train + frac_val + frac_test != 1.0:\n", + " raise ValueError(\n", + " \"fractions %f, %f, %f do not add up to 1.0\"\n", + " % (frac_train, frac_val, frac_test)\n", + " )\n", + "\n", + " if stratify_colname not in df_input.columns:\n", + " raise ValueError(\"%s is not a column in the dataframe\" % (stratify_colname))\n", + "\n", + " X = df_input # Contains all columns.\n", + " y = df_input[\n", + " [stratify_colname]\n", + " ] # Dataframe of just the column on which to stratify.\n", + "\n", + " # Split original dataframe into train and temp dataframes.\n", + " df_train, df_temp, y_train, y_temp = train_test_split(\n", + " X, y, stratify=y, test_size=(1.0 - frac_train), random_state=random_state\n", + " )\n", + "\n", + " # Split the temp dataframe into val and test dataframes.\n", + " relative_frac_test = frac_test / (frac_val + frac_test)\n", + " df_val, df_test, y_val, y_test = train_test_split(\n", + " df_temp,\n", + " y_temp,\n", + " stratify=y_temp,\n", + " test_size=relative_frac_test,\n", + " random_state=random_state,\n", + " )\n", + "\n", + " assert len(df_input) == len(df_train) + len(df_val) + len(df_test)\n", + "\n", + " return df_train, df_val, df_test" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pclass\n", + "3 491\n", + "1 216\n", + "2 184\n", + "Name: count, dtype: int64\n", + "Обучающая выборка: (534, 3)\n", + "Pclass\n", + "3 294\n", + "1 130\n", + "2 110\n", + "Name: count, dtype: int64\n", + "Контрольная выборка: (178, 3)\n", + "Pclass\n", + "3 98\n", + "1 43\n", + "2 37\n", + "Name: count, dtype: int64\n", + "Тестовая выборка: (179, 3)\n", + "Pclass\n", + "3 99\n", + "1 43\n", + "2 37\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "# Вывод распределения количества наблюдений по меткам (классам)\n", + "print(df.Pclass.value_counts())\n", + "\n", + "data = df[[\"Pclass\", \"Survived\", \"AgeFillMedian\"]].copy()\n", + "\n", + "df_train, df_val, df_test = split_stratified_into_train_val_test(\n", + " data, stratify_colname=\"Pclass\", frac_train=0.60, frac_val=0.20, frac_test=0.20\n", + ")\n", + "\n", + "print(\"Обучающая выборка: \", df_train.shape)\n", + "print(df_train.Pclass.value_counts())\n", + "\n", + "print(\"Контрольная выборка: \", df_val.shape)\n", + "print(df_val.Pclass.value_counts())\n", + "\n", + "print(\"Тестовая выборка: \", df_test.shape)\n", + "print(df_test.Pclass.value_counts())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Выборка с избытком (oversampling)\n", + "\n", + "https://www.blog.trainindata.com/oversampling-techniques-for-imbalanced-data/\n", + "\n", + "https://datacrayon.com/machine-learning/class-imbalance-and-oversampling/\n", + "\n", + "Выборка с недостатком (undersampling)\n", + "\n", + "https://machinelearningmastery.com/random-oversampling-and-undersampling-for-imbalanced-classification/\n", + "\n", + "Библиотека imbalanced-learn\n", + "\n", + "https://imbalanced-learn.org/stable/" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Обучающая выборка: (534, 3)\n", + "Pclass\n", + "3 294\n", + "1 130\n", + "2 110\n", + "Name: count, dtype: int64\n", + "Обучающая выборка после oversampling: (864, 3)\n", + "Pclass\n", + "3 294\n", + "2 290\n", + "1 280\n", + "Name: count, dtype: int64\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PclassSurvivedAgeFillMedian
03028.000000
13032.000000
23128.000000
31045.000000
4307.000000
............
8592026.887761
860210.890459
8612017.481437
8622017.078473
8632117.220445
\n", + "

864 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " Pclass Survived AgeFillMedian\n", + "0 3 0 28.000000\n", + "1 3 0 32.000000\n", + "2 3 1 28.000000\n", + "3 1 0 45.000000\n", + "4 3 0 7.000000\n", + ".. ... ... ...\n", + "859 2 0 26.887761\n", + "860 2 1 0.890459\n", + "861 2 0 17.481437\n", + "862 2 0 17.078473\n", + "863 2 1 17.220445\n", + "\n", + "[864 rows x 3 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from imblearn.over_sampling import ADASYN\n", + "\n", + "ada = ADASYN()\n", + "\n", + "print(\"Обучающая выборка: \", df_train.shape)\n", + "print(df_train.Pclass.value_counts())\n", + "\n", + "X_resampled, y_resampled = ada.fit_resample(df_train, df_train[\"Pclass\"])\n", + "df_train_adasyn = pd.DataFrame(X_resampled)\n", + "\n", + "print(\"Обучающая выборка после oversampling: \", df_train_adasyn.shape)\n", + "print(df_train_adasyn.Pclass.value_counts())\n", + "\n", + "df_train_adasyn" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/mai b/mai deleted file mode 160000 index 28c17ca..0000000 --- a/mai +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 28c17ca62774e3c8666acecf0a6c83e24b27d67f diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..3899a43 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,3116 @@ +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "anyio" +version = "4.4.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] + +[[package]] +name = "apiflask" +version = "2.2.0" +description = "A lightweight web API framework based on Flask and marshmallow-code projects." +optional = false +python-versions = "*" +files = [ + {file = "APIFlask-2.2.0-py3-none-any.whl", hash = "sha256:dd0dc111538c7f284c09a01d90aaf04f1e716ba116886d5a3aa5b1ffa4cce2f4"}, + {file = "apiflask-2.2.0.tar.gz", hash = "sha256:17fc4d4e852a483c51e4c98f158113f00b41258de22ae323397766bd99335206"}, +] + +[package.dependencies] +apispec = ">=6" +flask = ">=2" +flask-httpauth = ">=4" +flask-marshmallow = ">=1.0.0" +marshmallow = ">=3.20" +webargs = ">=8.3" + +[package.extras] +async = ["asgiref (>=3.2)"] +dotenv = ["python-dotenv"] +yaml = ["pyyaml"] + +[[package]] +name = "apispec" +version = "6.6.1" +description = "A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)." +optional = false +python-versions = ">=3.8" +files = [ + {file = "apispec-6.6.1-py3-none-any.whl", hash = "sha256:6460315cb38ac6a2ff42d9e2b8dc0435c37d4428d3abeda96ff97b5dc8eb6b94"}, + {file = "apispec-6.6.1.tar.gz", hash = "sha256:f5caa47cee75fe03b9c50b5594048b4c052eeca2c212e0dac12dbb6175d9a659"}, +] + +[package.dependencies] +packaging = ">=21.3" + +[package.extras] +dev = ["apispec[tests]", "pre-commit (>=3.5,<4.0)", "tox"] +docs = ["apispec[marshmallow]", "pyyaml (==6.0.1)", "sphinx (==7.3.7)", "sphinx-issues (==4.1.0)", "sphinx-rtd-theme (==2.0.0)"] +marshmallow = ["marshmallow (>=3.18.0)"] +tests = ["apispec[marshmallow,yaml]", "openapi-spec-validator (==0.7.1)", "pytest"] +yaml = ["PyYAML (>=3.10)"] + +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] + +[[package]] +name = "asttokens" +version = "2.4.1" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = "*" +files = [ + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, +] + +[package.dependencies] +six = ">=1.12.0" + +[package.extras] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] + +[[package]] +name = "async-lru" +version = "2.0.4" +description = "Simple LRU cache for asyncio" +optional = false +python-versions = ">=3.8" +files = [ + {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"}, + {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, +] + +[[package]] +name = "attrs" +version = "24.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "babel" +version = "2.16.0" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.8" +files = [ + {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, + {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "bleach" +version = "6.1.0" +description = "An easy safelist-based HTML-sanitizing tool." +optional = false +python-versions = ">=3.8" +files = [ + {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, + {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, +] + +[package.dependencies] +six = ">=1.9.0" +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.3)"] + +[[package]] +name = "blinker" +version = "1.8.2" +description = "Fast, simple object-to-object and broadcast signaling" +optional = false +python-versions = ">=3.8" +files = [ + {file = "blinker-1.8.2-py3-none-any.whl", hash = "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01"}, + {file = "blinker-1.8.2.tar.gz", hash = "sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83"}, +] + +[[package]] +name = "certifi" +version = "2024.8.30" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, +] + +[[package]] +name = "cffi" +version = "1.17.0" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9338cc05451f1942d0d8203ec2c346c830f8e86469903d5126c1f0a13a2bcbb"}, + {file = "cffi-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0ce71725cacc9ebf839630772b07eeec220cbb5f03be1399e0457a1464f8e1a"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c815270206f983309915a6844fe994b2fa47e5d05c4c4cef267c3b30e34dbe42"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6bdcd415ba87846fd317bee0774e412e8792832e7805938987e4ede1d13046d"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a98748ed1a1df4ee1d6f927e151ed6c1a09d5ec21684de879c7ea6aa96f58f2"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a048d4f6630113e54bb4b77e315e1ba32a5a31512c31a273807d0027a7e69ab"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24aa705a5f5bd3a8bcfa4d123f03413de5d86e497435693b638cbffb7d5d8a1b"}, + {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:856bf0924d24e7f93b8aee12a3a1095c34085600aa805693fb7f5d1962393206"}, + {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4304d4416ff032ed50ad6bb87416d802e67139e31c0bde4628f36a47a3164bfa"}, + {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:331ad15c39c9fe9186ceaf87203a9ecf5ae0ba2538c9e898e3a6967e8ad3db6f"}, + {file = "cffi-1.17.0-cp310-cp310-win32.whl", hash = "sha256:669b29a9eca6146465cc574659058ed949748f0809a2582d1f1a324eb91054dc"}, + {file = "cffi-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:48b389b1fd5144603d61d752afd7167dfd205973a43151ae5045b35793232aa2"}, + {file = "cffi-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5d97162c196ce54af6700949ddf9409e9833ef1003b4741c2b39ef46f1d9720"}, + {file = "cffi-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ba5c243f4004c750836f81606a9fcb7841f8874ad8f3bf204ff5e56332b72b9"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb9333f58fc3a2296fb1d54576138d4cf5d496a2cc118422bd77835e6ae0b9cb"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:435a22d00ec7d7ea533db494da8581b05977f9c37338c80bc86314bec2619424"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1df34588123fcc88c872f5acb6f74ae59e9d182a2707097f9e28275ec26a12d"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df8bb0010fdd0a743b7542589223a2816bdde4d94bb5ad67884348fa2c1c67e8"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8b5b9712783415695663bd463990e2f00c6750562e6ad1d28e072a611c5f2a6"}, + {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffef8fd58a36fb5f1196919638f73dd3ae0db1a878982b27a9a5a176ede4ba91"}, + {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e67d26532bfd8b7f7c05d5a766d6f437b362c1bf203a3a5ce3593a645e870b8"}, + {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45f7cd36186db767d803b1473b3c659d57a23b5fa491ad83c6d40f2af58e4dbb"}, + {file = "cffi-1.17.0-cp311-cp311-win32.whl", hash = "sha256:a9015f5b8af1bb6837a3fcb0cdf3b874fe3385ff6274e8b7925d81ccaec3c5c9"}, + {file = "cffi-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:b50aaac7d05c2c26dfd50c3321199f019ba76bb650e346a6ef3616306eed67b0"}, + {file = "cffi-1.17.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aec510255ce690d240f7cb23d7114f6b351c733a74c279a84def763660a2c3bc"}, + {file = "cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2770bb0d5e3cc0e31e7318db06efcbcdb7b31bcb1a70086d3177692a02256f59"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db9a30ec064129d605d0f1aedc93e00894b9334ec74ba9c6bdd08147434b33eb"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47eef975d2b8b721775a0fa286f50eab535b9d56c70a6e62842134cf7841195"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3e0992f23bbb0be00a921eae5363329253c3b86287db27092461c887b791e5e"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6107e445faf057c118d5050560695e46d272e5301feffda3c41849641222a828"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb862356ee9391dc5a0b3cbc00f416b48c1b9a52d252d898e5b7696a5f9fe150"}, + {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1c13185b90bbd3f8b5963cd8ce7ad4ff441924c31e23c975cb150e27c2bf67a"}, + {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17c6d6d3260c7f2d94f657e6872591fe8733872a86ed1345bda872cfc8c74885"}, + {file = "cffi-1.17.0-cp312-cp312-win32.whl", hash = "sha256:c3b8bd3133cd50f6b637bb4322822c94c5ce4bf0d724ed5ae70afce62187c492"}, + {file = "cffi-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:dca802c8db0720ce1c49cce1149ff7b06e91ba15fa84b1d59144fef1a1bc7ac2"}, + {file = "cffi-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce01337d23884b21c03869d2f68c5523d43174d4fc405490eb0091057943118"}, + {file = "cffi-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cab2eba3830bf4f6d91e2d6718e0e1c14a2f5ad1af68a89d24ace0c6b17cced7"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b9cbc8f7ac98a739558eb86fabc283d4d564dafed50216e7f7ee62d0d25377"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b00e7bcd71caa0282cbe3c90966f738e2db91e64092a877c3ff7f19a1628fdcb"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41f4915e09218744d8bae14759f983e466ab69b178de38066f7579892ff2a555"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4760a68cab57bfaa628938e9c2971137e05ce48e762a9cb53b76c9b569f1204"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:011aff3524d578a9412c8b3cfaa50f2c0bd78e03eb7af7aa5e0df59b158efb2f"}, + {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a003ac9edc22d99ae1286b0875c460351f4e101f8c9d9d2576e78d7e048f64e0"}, + {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ef9528915df81b8f4c7612b19b8628214c65c9b7f74db2e34a646a0a2a0da2d4"}, + {file = "cffi-1.17.0-cp313-cp313-win32.whl", hash = "sha256:70d2aa9fb00cf52034feac4b913181a6e10356019b18ef89bc7c12a283bf5f5a"}, + {file = "cffi-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:b7b6ea9e36d32582cda3465f54c4b454f62f23cb083ebc7a94e2ca6ef011c3a7"}, + {file = "cffi-1.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:964823b2fc77b55355999ade496c54dde161c621cb1f6eac61dc30ed1b63cd4c"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:516a405f174fd3b88829eabfe4bb296ac602d6a0f68e0d64d5ac9456194a5b7e"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dec6b307ce928e8e112a6bb9921a1cb00a0e14979bf28b98e084a4b8a742bd9b"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4094c7b464cf0a858e75cd14b03509e84789abf7b79f8537e6a72152109c76e"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2404f3de742f47cb62d023f0ba7c5a916c9c653d5b368cc966382ae4e57da401"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa9d43b02a0c681f0bfbc12d476d47b2b2b6a3f9287f11ee42989a268a1833c"}, + {file = "cffi-1.17.0-cp38-cp38-win32.whl", hash = "sha256:0bb15e7acf8ab35ca8b24b90af52c8b391690ef5c4aec3d31f38f0d37d2cc499"}, + {file = "cffi-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:93a7350f6706b31f457c1457d3a3259ff9071a66f312ae64dc024f049055f72c"}, + {file = "cffi-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1a2ddbac59dc3716bc79f27906c010406155031a1c801410f1bafff17ea304d2"}, + {file = "cffi-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6327b572f5770293fc062a7ec04160e89741e8552bf1c358d1a23eba68166759"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbc183e7bef690c9abe5ea67b7b60fdbca81aa8da43468287dae7b5c046107d4"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bdc0f1f610d067c70aa3737ed06e2726fd9d6f7bfee4a351f4c40b6831f4e82"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d872186c1617d143969defeadac5a904e6e374183e07977eedef9c07c8953bf"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d46ee4764b88b91f16661a8befc6bfb24806d885e27436fdc292ed7e6f6d058"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f76a90c345796c01d85e6332e81cab6d70de83b829cf1d9762d0a3da59c7932"}, + {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e60821d312f99d3e1569202518dddf10ae547e799d75aef3bca3a2d9e8ee693"}, + {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:eb09b82377233b902d4c3fbeeb7ad731cdab579c6c6fda1f763cd779139e47c3"}, + {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24658baf6224d8f280e827f0a50c46ad819ec8ba380a42448e24459daf809cf4"}, + {file = "cffi-1.17.0-cp39-cp39-win32.whl", hash = "sha256:0fdacad9e0d9fc23e519efd5ea24a70348305e8d7d85ecbb1a5fa66dc834e7fb"}, + {file = "cffi-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:7cbc78dc018596315d4e7841c8c3a7ae31cc4d638c9b627f87d52e8abaaf2d29"}, + {file = "cffi-1.17.0.tar.gz", hash = "sha256:f3157624b7558b914cb039fd1af735e5e8049a87c817cc215109ad1c8779df76"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "comm" +version = "0.2.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "contourpy" +version = "1.3.0" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.9" +files = [ + {file = "contourpy-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:880ea32e5c774634f9fcd46504bf9f080a41ad855f4fef54f5380f5133d343c7"}, + {file = "contourpy-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:76c905ef940a4474a6289c71d53122a4f77766eef23c03cd57016ce19d0f7b42"}, + {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f8557cbb07415a4d6fa191f20fd9d2d9eb9c0b61d1b2f52a8926e43c6e9af7"}, + {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36f965570cff02b874773c49bfe85562b47030805d7d8360748f3eca570f4cab"}, + {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cacd81e2d4b6f89c9f8a5b69b86490152ff39afc58a95af002a398273e5ce589"}, + {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69375194457ad0fad3a839b9e29aa0b0ed53bb54db1bfb6c3ae43d111c31ce41"}, + {file = "contourpy-1.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a52040312b1a858b5e31ef28c2e865376a386c60c0e248370bbea2d3f3b760d"}, + {file = "contourpy-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3faeb2998e4fcb256542e8a926d08da08977f7f5e62cf733f3c211c2a5586223"}, + {file = "contourpy-1.3.0-cp310-cp310-win32.whl", hash = "sha256:36e0cff201bcb17a0a8ecc7f454fe078437fa6bda730e695a92f2d9932bd507f"}, + {file = "contourpy-1.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:87ddffef1dbe5e669b5c2440b643d3fdd8622a348fe1983fad7a0f0ccb1cd67b"}, + {file = "contourpy-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0fa4c02abe6c446ba70d96ece336e621efa4aecae43eaa9b030ae5fb92b309ad"}, + {file = "contourpy-1.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:834e0cfe17ba12f79963861e0f908556b2cedd52e1f75e6578801febcc6a9f49"}, + {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbc4c3217eee163fa3984fd1567632b48d6dfd29216da3ded3d7b844a8014a66"}, + {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4865cd1d419e0c7a7bf6de1777b185eebdc51470800a9f42b9e9decf17762081"}, + {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:303c252947ab4b14c08afeb52375b26781ccd6a5ccd81abcdfc1fafd14cf93c1"}, + {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637f674226be46f6ba372fd29d9523dd977a291f66ab2a74fbeb5530bb3f445d"}, + {file = "contourpy-1.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:76a896b2f195b57db25d6b44e7e03f221d32fe318d03ede41f8b4d9ba1bff53c"}, + {file = "contourpy-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e1fd23e9d01591bab45546c089ae89d926917a66dceb3abcf01f6105d927e2cb"}, + {file = "contourpy-1.3.0-cp311-cp311-win32.whl", hash = "sha256:d402880b84df3bec6eab53cd0cf802cae6a2ef9537e70cf75e91618a3801c20c"}, + {file = "contourpy-1.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:6cb6cc968059db9c62cb35fbf70248f40994dfcd7aa10444bbf8b3faeb7c2d67"}, + {file = "contourpy-1.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:570ef7cf892f0afbe5b2ee410c507ce12e15a5fa91017a0009f79f7d93a1268f"}, + {file = "contourpy-1.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:da84c537cb8b97d153e9fb208c221c45605f73147bd4cadd23bdae915042aad6"}, + {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0be4d8425bfa755e0fd76ee1e019636ccc7c29f77a7c86b4328a9eb6a26d0639"}, + {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c0da700bf58f6e0b65312d0a5e695179a71d0163957fa381bb3c1f72972537c"}, + {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb8b141bb00fa977d9122636b16aa67d37fd40a3d8b52dd837e536d64b9a4d06"}, + {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3634b5385c6716c258d0419c46d05c8aa7dc8cb70326c9a4fb66b69ad2b52e09"}, + {file = "contourpy-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0dce35502151b6bd35027ac39ba6e5a44be13a68f55735c3612c568cac3805fd"}, + {file = "contourpy-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:aea348f053c645100612b333adc5983d87be69acdc6d77d3169c090d3b01dc35"}, + {file = "contourpy-1.3.0-cp312-cp312-win32.whl", hash = "sha256:90f73a5116ad1ba7174341ef3ea5c3150ddf20b024b98fb0c3b29034752c8aeb"}, + {file = "contourpy-1.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:b11b39aea6be6764f84360fce6c82211a9db32a7c7de8fa6dd5397cf1d079c3b"}, + {file = "contourpy-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3e1c7fa44aaae40a2247e2e8e0627f4bea3dd257014764aa644f319a5f8600e3"}, + {file = "contourpy-1.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:364174c2a76057feef647c802652f00953b575723062560498dc7930fc9b1cb7"}, + {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32b238b3b3b649e09ce9aaf51f0c261d38644bdfa35cbaf7b263457850957a84"}, + {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d51fca85f9f7ad0b65b4b9fe800406d0d77017d7270d31ec3fb1cc07358fdea0"}, + {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:732896af21716b29ab3e988d4ce14bc5133733b85956316fb0c56355f398099b"}, + {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d73f659398a0904e125280836ae6f88ba9b178b2fed6884f3b1f95b989d2c8da"}, + {file = "contourpy-1.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c6c7c2408b7048082932cf4e641fa3b8ca848259212f51c8c59c45aa7ac18f14"}, + {file = "contourpy-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f317576606de89da6b7e0861cf6061f6146ead3528acabff9236458a6ba467f8"}, + {file = "contourpy-1.3.0-cp313-cp313-win32.whl", hash = "sha256:31cd3a85dbdf1fc002280c65caa7e2b5f65e4a973fcdf70dd2fdcb9868069294"}, + {file = "contourpy-1.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4553c421929ec95fb07b3aaca0fae668b2eb5a5203d1217ca7c34c063c53d087"}, + {file = "contourpy-1.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:345af746d7766821d05d72cb8f3845dfd08dd137101a2cb9b24de277d716def8"}, + {file = "contourpy-1.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3bb3808858a9dc68f6f03d319acd5f1b8a337e6cdda197f02f4b8ff67ad2057b"}, + {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:420d39daa61aab1221567b42eecb01112908b2cab7f1b4106a52caaec8d36973"}, + {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4d63ee447261e963af02642ffcb864e5a2ee4cbfd78080657a9880b8b1868e18"}, + {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:167d6c890815e1dac9536dca00828b445d5d0df4d6a8c6adb4a7ec3166812fa8"}, + {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:710a26b3dc80c0e4febf04555de66f5fd17e9cf7170a7b08000601a10570bda6"}, + {file = "contourpy-1.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:75ee7cb1a14c617f34a51d11fa7524173e56551646828353c4af859c56b766e2"}, + {file = "contourpy-1.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:33c92cdae89ec5135d036e7218e69b0bb2851206077251f04a6c4e0e21f03927"}, + {file = "contourpy-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a11077e395f67ffc2c44ec2418cfebed032cd6da3022a94fc227b6faf8e2acb8"}, + {file = "contourpy-1.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e8134301d7e204c88ed7ab50028ba06c683000040ede1d617298611f9dc6240c"}, + {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e12968fdfd5bb45ffdf6192a590bd8ddd3ba9e58360b29683c6bb71a7b41edca"}, + {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fd2a0fc506eccaaa7595b7e1418951f213cf8255be2600f1ea1b61e46a60c55f"}, + {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4cfb5c62ce023dfc410d6059c936dcf96442ba40814aefbfa575425a3a7f19dc"}, + {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68a32389b06b82c2fdd68276148d7b9275b5f5cf13e5417e4252f6d1a34f72a2"}, + {file = "contourpy-1.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94e848a6b83da10898cbf1311a815f770acc9b6a3f2d646f330d57eb4e87592e"}, + {file = "contourpy-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d78ab28a03c854a873787a0a42254a0ccb3cb133c672f645c9f9c8f3ae9d0800"}, + {file = "contourpy-1.3.0-cp39-cp39-win32.whl", hash = "sha256:81cb5ed4952aae6014bc9d0421dec7c5835c9c8c31cdf51910b708f548cf58e5"}, + {file = "contourpy-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:14e262f67bd7e6eb6880bc564dcda30b15e351a594657e55b7eec94b6ef72843"}, + {file = "contourpy-1.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fe41b41505a5a33aeaed2a613dccaeaa74e0e3ead6dd6fd3a118fb471644fd6c"}, + {file = "contourpy-1.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eca7e17a65f72a5133bdbec9ecf22401c62bcf4821361ef7811faee695799779"}, + {file = "contourpy-1.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1ec4dc6bf570f5b22ed0d7efba0dfa9c5b9e0431aeea7581aa217542d9e809a4"}, + {file = "contourpy-1.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:00ccd0dbaad6d804ab259820fa7cb0b8036bda0686ef844d24125d8287178ce0"}, + {file = "contourpy-1.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca947601224119117f7c19c9cdf6b3ab54c5726ef1d906aa4a69dfb6dd58102"}, + {file = "contourpy-1.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6ec93afeb848a0845a18989da3beca3eec2c0f852322efe21af1931147d12cb"}, + {file = "contourpy-1.3.0.tar.gz", hash = "sha256:7ffa0db17717a8ffb127efd0c95a4362d996b892c2904db72428d5b52e1938a4"}, +] + +[package.dependencies] +numpy = ">=1.23" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "debugpy" +version = "1.8.5" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.5-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:7e4d594367d6407a120b76bdaa03886e9eb652c05ba7f87e37418426ad2079f7"}, + {file = "debugpy-1.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4413b7a3ede757dc33a273a17d685ea2b0c09dbd312cc03f5534a0fd4d40750a"}, + {file = "debugpy-1.8.5-cp310-cp310-win32.whl", hash = "sha256:dd3811bd63632bb25eda6bd73bea8e0521794cda02be41fa3160eb26fc29e7ed"}, + {file = "debugpy-1.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:b78c1250441ce893cb5035dd6f5fc12db968cc07f91cc06996b2087f7cefdd8e"}, + {file = "debugpy-1.8.5-cp311-cp311-macosx_12_0_universal2.whl", hash = "sha256:606bccba19f7188b6ea9579c8a4f5a5364ecd0bf5a0659c8a5d0e10dcee3032a"}, + {file = "debugpy-1.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db9fb642938a7a609a6c865c32ecd0d795d56c1aaa7a7a5722d77855d5e77f2b"}, + {file = "debugpy-1.8.5-cp311-cp311-win32.whl", hash = "sha256:4fbb3b39ae1aa3e5ad578f37a48a7a303dad9a3d018d369bc9ec629c1cfa7408"}, + {file = "debugpy-1.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:345d6a0206e81eb68b1493ce2fbffd57c3088e2ce4b46592077a943d2b968ca3"}, + {file = "debugpy-1.8.5-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:5b5c770977c8ec6c40c60d6f58cacc7f7fe5a45960363d6974ddb9b62dbee156"}, + {file = "debugpy-1.8.5-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0a65b00b7cdd2ee0c2cf4c7335fef31e15f1b7056c7fdbce9e90193e1a8c8cb"}, + {file = "debugpy-1.8.5-cp312-cp312-win32.whl", hash = "sha256:c9f7c15ea1da18d2fcc2709e9f3d6de98b69a5b0fff1807fb80bc55f906691f7"}, + {file = "debugpy-1.8.5-cp312-cp312-win_amd64.whl", hash = "sha256:28ced650c974aaf179231668a293ecd5c63c0a671ae6d56b8795ecc5d2f48d3c"}, + {file = "debugpy-1.8.5-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:3df6692351172a42af7558daa5019651f898fc67450bf091335aa8a18fbf6f3a"}, + {file = "debugpy-1.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd04a73eb2769eb0bfe43f5bfde1215c5923d6924b9b90f94d15f207a402226"}, + {file = "debugpy-1.8.5-cp38-cp38-win32.whl", hash = "sha256:8f913ee8e9fcf9d38a751f56e6de12a297ae7832749d35de26d960f14280750a"}, + {file = "debugpy-1.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:a697beca97dad3780b89a7fb525d5e79f33821a8bc0c06faf1f1289e549743cf"}, + {file = "debugpy-1.8.5-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:0a1029a2869d01cb777216af8c53cda0476875ef02a2b6ff8b2f2c9a4b04176c"}, + {file = "debugpy-1.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84c276489e141ed0b93b0af648eef891546143d6a48f610945416453a8ad406"}, + {file = "debugpy-1.8.5-cp39-cp39-win32.whl", hash = "sha256:ad84b7cde7fd96cf6eea34ff6c4a1b7887e0fe2ea46e099e53234856f9d99a34"}, + {file = "debugpy-1.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:7b0fe36ed9d26cb6836b0a51453653f8f2e347ba7348f2bbfe76bfeb670bfb1c"}, + {file = "debugpy-1.8.5-py2.py3-none-any.whl", hash = "sha256:55919dce65b471eff25901acf82d328bbd5b833526b6c1364bd5133754777a44"}, + {file = "debugpy-1.8.5.zip", hash = "sha256:b2112cfeb34b4507399d298fe7023a16656fc553ed5246536060ca7bd0e668d0"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "executing" +version = "2.1.0" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.8" +files = [ + {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, + {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastjsonschema" +version = "2.20.0" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"}, + {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "flask" +version = "3.0.3" +description = "A simple framework for building complex web applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "flask-3.0.3-py3-none-any.whl", hash = "sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3"}, + {file = "flask-3.0.3.tar.gz", hash = "sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842"}, +] + +[package.dependencies] +blinker = ">=1.6.2" +click = ">=8.1.3" +itsdangerous = ">=2.1.2" +Jinja2 = ">=3.1.2" +Werkzeug = ">=3.0.0" + +[package.extras] +async = ["asgiref (>=3.2)"] +dotenv = ["python-dotenv"] + +[[package]] +name = "flask-cors" +version = "5.0.0" +description = "A Flask extension adding a decorator for CORS support" +optional = false +python-versions = "*" +files = [ + {file = "Flask_Cors-5.0.0-py2.py3-none-any.whl", hash = "sha256:b9e307d082a9261c100d8fb0ba909eec6a228ed1b60a8315fd85f783d61910bc"}, + {file = "flask_cors-5.0.0.tar.gz", hash = "sha256:5aadb4b950c4e93745034594d9f3ea6591f734bb3662e16e255ffbf5e89c88ef"}, +] + +[package.dependencies] +Flask = ">=0.9" + +[[package]] +name = "flask-httpauth" +version = "4.8.0" +description = "HTTP authentication for Flask routes" +optional = false +python-versions = "*" +files = [ + {file = "Flask-HTTPAuth-4.8.0.tar.gz", hash = "sha256:66568a05bc73942c65f1e2201ae746295816dc009edd84b482c44c758d75097a"}, + {file = "Flask_HTTPAuth-4.8.0-py3-none-any.whl", hash = "sha256:a58fedd09989b9975448eef04806b096a3964a7feeebc0a78831ff55685b62b0"}, +] + +[package.dependencies] +flask = "*" + +[[package]] +name = "flask-marshmallow" +version = "1.2.1" +description = "Flask + marshmallow for beautiful APIs" +optional = false +python-versions = ">=3.8" +files = [ + {file = "flask_marshmallow-1.2.1-py3-none-any.whl", hash = "sha256:10b5048ecfaa26f7c8d0aed7d81083164450e6be8e81c04b3d4a586b3f7b6678"}, + {file = "flask_marshmallow-1.2.1.tar.gz", hash = "sha256:00ee96399ed664963afff3b5d6ee518640b0f91dbc2aace2b5abcf32f40ef23a"}, +] + +[package.dependencies] +Flask = ">=2.2" +marshmallow = ">=3.0.0" + +[package.extras] +dev = ["flask-marshmallow[tests]", "pre-commit (>=3.5,<4.0)", "tox"] +docs = ["Sphinx (==7.2.6)", "marshmallow-sqlalchemy (>=0.19.0)", "sphinx-issues (==4.0.0)"] +sqlalchemy = ["flask-sqlalchemy (>=3.0.0)", "marshmallow-sqlalchemy (>=0.29.0)"] +tests = ["flask-marshmallow[sqlalchemy]", "pytest"] + +[[package]] +name = "fonttools" +version = "4.53.1" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.53.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0679a30b59d74b6242909945429dbddb08496935b82f91ea9bf6ad240ec23397"}, + {file = "fonttools-4.53.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8bf06b94694251861ba7fdeea15c8ec0967f84c3d4143ae9daf42bbc7717fe3"}, + {file = "fonttools-4.53.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b96cd370a61f4d083c9c0053bf634279b094308d52fdc2dd9a22d8372fdd590d"}, + {file = "fonttools-4.53.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1c7c5aa18dd3b17995898b4a9b5929d69ef6ae2af5b96d585ff4005033d82f0"}, + {file = "fonttools-4.53.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e013aae589c1c12505da64a7d8d023e584987e51e62006e1bb30d72f26522c41"}, + {file = "fonttools-4.53.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9efd176f874cb6402e607e4cc9b4a9cd584d82fc34a4b0c811970b32ba62501f"}, + {file = "fonttools-4.53.1-cp310-cp310-win32.whl", hash = "sha256:c8696544c964500aa9439efb6761947393b70b17ef4e82d73277413f291260a4"}, + {file = "fonttools-4.53.1-cp310-cp310-win_amd64.whl", hash = "sha256:8959a59de5af6d2bec27489e98ef25a397cfa1774b375d5787509c06659b3671"}, + {file = "fonttools-4.53.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:da33440b1413bad53a8674393c5d29ce64d8c1a15ef8a77c642ffd900d07bfe1"}, + {file = "fonttools-4.53.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ff7e5e9bad94e3a70c5cd2fa27f20b9bb9385e10cddab567b85ce5d306ea923"}, + {file = "fonttools-4.53.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6e7170d675d12eac12ad1a981d90f118c06cf680b42a2d74c6c931e54b50719"}, + {file = "fonttools-4.53.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bee32ea8765e859670c4447b0817514ca79054463b6b79784b08a8df3a4d78e3"}, + {file = "fonttools-4.53.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6e08f572625a1ee682115223eabebc4c6a2035a6917eac6f60350aba297ccadb"}, + {file = "fonttools-4.53.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b21952c092ffd827504de7e66b62aba26fdb5f9d1e435c52477e6486e9d128b2"}, + {file = "fonttools-4.53.1-cp311-cp311-win32.whl", hash = "sha256:9dfdae43b7996af46ff9da520998a32b105c7f098aeea06b2226b30e74fbba88"}, + {file = "fonttools-4.53.1-cp311-cp311-win_amd64.whl", hash = "sha256:d4d0096cb1ac7a77b3b41cd78c9b6bc4a400550e21dc7a92f2b5ab53ed74eb02"}, + {file = "fonttools-4.53.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d92d3c2a1b39631a6131c2fa25b5406855f97969b068e7e08413325bc0afba58"}, + {file = "fonttools-4.53.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3b3c8ebafbee8d9002bd8f1195d09ed2bd9ff134ddec37ee8f6a6375e6a4f0e8"}, + {file = "fonttools-4.53.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32f029c095ad66c425b0ee85553d0dc326d45d7059dbc227330fc29b43e8ba60"}, + {file = "fonttools-4.53.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10f5e6c3510b79ea27bb1ebfcc67048cde9ec67afa87c7dd7efa5c700491ac7f"}, + {file = "fonttools-4.53.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f677ce218976496a587ab17140da141557beb91d2a5c1a14212c994093f2eae2"}, + {file = "fonttools-4.53.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9e6ceba2a01b448e36754983d376064730690401da1dd104ddb543519470a15f"}, + {file = "fonttools-4.53.1-cp312-cp312-win32.whl", hash = "sha256:791b31ebbc05197d7aa096bbc7bd76d591f05905d2fd908bf103af4488e60670"}, + {file = "fonttools-4.53.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ed170b5e17da0264b9f6fae86073be3db15fa1bd74061c8331022bca6d09bab"}, + {file = "fonttools-4.53.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c818c058404eb2bba05e728d38049438afd649e3c409796723dfc17cd3f08749"}, + {file = "fonttools-4.53.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:651390c3b26b0c7d1f4407cad281ee7a5a85a31a110cbac5269de72a51551ba2"}, + {file = "fonttools-4.53.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e54f1bba2f655924c1138bbc7fa91abd61f45c68bd65ab5ed985942712864bbb"}, + {file = "fonttools-4.53.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9cd19cf4fe0595ebdd1d4915882b9440c3a6d30b008f3cc7587c1da7b95be5f"}, + {file = "fonttools-4.53.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2af40ae9cdcb204fc1d8f26b190aa16534fcd4f0df756268df674a270eab575d"}, + {file = "fonttools-4.53.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:35250099b0cfb32d799fb5d6c651220a642fe2e3c7d2560490e6f1d3f9ae9169"}, + {file = "fonttools-4.53.1-cp38-cp38-win32.whl", hash = "sha256:f08df60fbd8d289152079a65da4e66a447efc1d5d5a4d3f299cdd39e3b2e4a7d"}, + {file = "fonttools-4.53.1-cp38-cp38-win_amd64.whl", hash = "sha256:7b6b35e52ddc8fb0db562133894e6ef5b4e54e1283dff606fda3eed938c36fc8"}, + {file = "fonttools-4.53.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:75a157d8d26c06e64ace9df037ee93a4938a4606a38cb7ffaf6635e60e253b7a"}, + {file = "fonttools-4.53.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4824c198f714ab5559c5be10fd1adf876712aa7989882a4ec887bf1ef3e00e31"}, + {file = "fonttools-4.53.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:becc5d7cb89c7b7afa8321b6bb3dbee0eec2b57855c90b3e9bf5fb816671fa7c"}, + {file = "fonttools-4.53.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84ec3fb43befb54be490147b4a922b5314e16372a643004f182babee9f9c3407"}, + {file = "fonttools-4.53.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:73379d3ffdeecb376640cd8ed03e9d2d0e568c9d1a4e9b16504a834ebadc2dfb"}, + {file = "fonttools-4.53.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:02569e9a810f9d11f4ae82c391ebc6fb5730d95a0657d24d754ed7763fb2d122"}, + {file = "fonttools-4.53.1-cp39-cp39-win32.whl", hash = "sha256:aae7bd54187e8bf7fd69f8ab87b2885253d3575163ad4d669a262fe97f0136cb"}, + {file = "fonttools-4.53.1-cp39-cp39-win_amd64.whl", hash = "sha256:e5b708073ea3d684235648786f5f6153a48dc8762cdfe5563c57e80787c29fbb"}, + {file = "fonttools-4.53.1-py3-none-any.whl", hash = "sha256:f1f8758a2ad110bd6432203a344269f445a2907dc24ef6bccfd0ac4e14e0d71d"}, + {file = "fonttools-4.53.1.tar.gz", hash = "sha256:e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.1.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.5" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, + {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.26.0)"] + +[[package]] +name = "httpx" +version = "0.27.2" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, + {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "idna" +version = "3.8" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "idna-3.8-py3-none-any.whl", hash = "sha256:050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac"}, + {file = "idna-3.8.tar.gz", hash = "sha256:d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603"}, +] + +[[package]] +name = "imbalanced-learn" +version = "0.12.3" +description = "Toolbox for imbalanced dataset in machine learning." +optional = false +python-versions = "*" +files = [ + {file = "imbalanced-learn-0.12.3.tar.gz", hash = "sha256:5b00796a01419e9102bd425e27c319d58d1f6cf2dfa751e02ed7f4edf67c3c1b"}, + {file = "imbalanced_learn-0.12.3-py3-none-any.whl", hash = "sha256:0e83e8226cb27dd567dff6aef0136bde0f54922ea1bd9d5f38f62701dc51a152"}, +] + +[package.dependencies] +joblib = ">=1.1.1" +numpy = ">=1.17.3" +scikit-learn = ">=1.0.2" +scipy = ">=1.5.0" +threadpoolctl = ">=2.0.0" + +[package.extras] +docs = ["keras (>=2.4.3)", "matplotlib (>=3.1.2)", "memory-profiler (>=0.57.0)", "numpydoc (>=1.5.0)", "pandas (>=1.0.5)", "pydata-sphinx-theme (>=0.13.3)", "seaborn (>=0.9.0)", "sphinx (>=6.0.0)", "sphinx-copybutton (>=0.5.2)", "sphinx-design (>=0.5.0)", "sphinx-gallery (>=0.13.0)", "sphinxcontrib-bibtex (>=2.4.1)", "tensorflow (>=2.4.3)"] +examples = ["keras (>=2.4.3)", "matplotlib (>=3.1.2)", "pandas (>=1.0.5)", "seaborn (>=0.9.0)", "tensorflow (>=2.4.3)"] +optional = ["keras (>=2.4.3)", "pandas (>=1.0.5)", "tensorflow (>=2.4.3)"] +tests = ["black (>=23.3.0)", "flake8 (>=3.8.2)", "keras (>=2.4.3)", "mypy (>=1.3.0)", "pandas (>=1.0.5)", "pytest (>=5.0.1)", "pytest-cov (>=2.9.0)", "tensorflow (>=2.4.3)"] + +[[package]] +name = "ipykernel" +version = "6.29.5" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.27.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.10" +files = [ + {file = "ipython-8.27.0-py3-none-any.whl", hash = "sha256:f68b3cb8bde357a5d7adc9598d57e22a45dfbea19eb6b98286fa3b288c9cd55c"}, + {file = "ipython-8.27.0.tar.gz", hash = "sha256:0b99a2dc9f15fd68692e898e5568725c6d49c527d36a9fb5960ffbdeaa82ff7e"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} +prompt-toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5.13.0" + +[package.extras] +all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "intersphinx-registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing-extensions"] +kernel = ["ipykernel"] +matplotlib = ["matplotlib"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["packaging", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] + +[[package]] +name = "ipywidgets" +version = "8.1.5" +description = "Jupyter interactive widgets" +optional = false +python-versions = ">=3.7" +files = [ + {file = "ipywidgets-8.1.5-py3-none-any.whl", hash = "sha256:3290f526f87ae6e77655555baba4f36681c555b8bdbbff430b70e52c34c86245"}, + {file = "ipywidgets-8.1.5.tar.gz", hash = "sha256:870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = ">=6.1.0" +jupyterlab-widgets = ">=3.0.12,<3.1.0" +traitlets = ">=4.3.1" +widgetsnbextension = ">=4.0.12,<4.1.0" + +[package.extras] +test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "itsdangerous" +version = "2.2.0" +description = "Safely pass data to untrusted environments and back." +optional = false +python-versions = ">=3.8" +files = [ + {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, + {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, +] + +[[package]] +name = "jedi" +version = "0.19.1" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, +] + +[package.dependencies] +parso = ">=0.8.3,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "joblib" +version = "1.4.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.8" +files = [ + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, +] + +[[package]] +name = "json5" +version = "0.9.25" +description = "A Python implementation of the JSON5 data format." +optional = false +python-versions = ">=3.8" +files = [ + {file = "json5-0.9.25-py3-none-any.whl", hash = "sha256:34ed7d834b1341a86987ed52f3f76cd8ee184394906b6e22a1e0deb9ab294e8f"}, + {file = "json5-0.9.25.tar.gz", hash = "sha256:548e41b9be043f9426776f05df8635a00fe06104ea51ed24b67f908856e151ae"}, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +rpds-py = ">=0.7.1" +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=24.6.0", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] + +[[package]] +name = "jsonschema-specifications" +version = "2023.12.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, + {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "jupyter" +version = "1.1.1" +description = "Jupyter metapackage. Install all the Jupyter components in one go." +optional = false +python-versions = "*" +files = [ + {file = "jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83"}, + {file = "jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a"}, +] + +[package.dependencies] +ipykernel = "*" +ipywidgets = "*" +jupyter-console = "*" +jupyterlab = "*" +nbconvert = "*" +notebook = "*" + +[[package]] +name = "jupyter-client" +version = "8.6.2" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.6.2-py3-none-any.whl", hash = "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f"}, + {file = "jupyter_client-8.6.2.tar.gz", hash = "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df"}, +] + +[package.dependencies] +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +description = "Jupyter terminal console" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, + {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, +] + +[package.dependencies] +ipykernel = ">=6.14" +ipython = "*" +jupyter-client = ">=7.0.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +prompt-toolkit = ">=3.0.30" +pygments = "*" +pyzmq = ">=17" +traitlets = ">=5.4" + +[package.extras] +test = ["flaky", "pexpect", "pytest"] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.10.0" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_events-0.10.0-py3-none-any.whl", hash = "sha256:4b72130875e59d57716d327ea70d3ebc3af1944d3717e5a498b8a06c6c159960"}, + {file = "jupyter_events-0.10.0.tar.gz", hash = "sha256:670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22"}, +] + +[package.dependencies] +jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +referencing = "*" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] + +[[package]] +name = "jupyter-lsp" +version = "2.2.5" +description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001"}, + {file = "jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da"}, +] + +[package.dependencies] +jupyter-server = ">=1.1.2" + +[[package]] +name = "jupyter-server" +version = "2.14.2" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.14.2-py3-none-any.whl", hash = "sha256:47ff506127c2f7851a17bf4713434208fc490955d0e8632e95014a9a9afbeefd"}, + {file = "jupyter_server-2.14.2.tar.gz", hash = "sha256:66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = ">=21.1" +jinja2 = ">=3.0.3" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.9.0" +jupyter-server-terminals = ">=0.4.4" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = ">=5.0" +packaging = ">=22.0" +prometheus-client = ">=0.9" +pywinpty = {version = ">=2.0.1", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = ">=1.7" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyterlab" +version = "4.2.5" +description = "JupyterLab computational environment" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab-4.2.5-py3-none-any.whl", hash = "sha256:73b6e0775d41a9fee7ee756c80f58a6bed4040869ccc21411dc559818874d321"}, + {file = "jupyterlab-4.2.5.tar.gz", hash = "sha256:ae7f3a1b8cb88b4f55009ce79fa7c06f99d70cd63601ee4aa91815d054f46f75"}, +] + +[package.dependencies] +async-lru = ">=1.0.0" +httpx = ">=0.25.0" +ipykernel = ">=6.5.0" +jinja2 = ">=3.0.3" +jupyter-core = "*" +jupyter-lsp = ">=2.0.0" +jupyter-server = ">=2.4.0,<3" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2" +packaging = "*" +setuptools = ">=40.1.0" +tornado = ">=6.2.0" +traitlets = "*" + +[package.extras] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.3.5)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.3.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.2)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.1.post2)", "matplotlib (==3.8.3)", "nbconvert (>=7.0.0)", "pandas (==2.2.1)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] +test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] +upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)", "pyyaml-include (<3.0)", "tomli-w (<2.0)"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-server" +version = "2.27.3" +description = "A set of server components for JupyterLab and JupyterLab like applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, + {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, +] + +[package.dependencies] +babel = ">=2.10" +jinja2 = ">=3.0.3" +json5 = ">=0.9.0" +jsonschema = ">=4.18.0" +jupyter-server = ">=1.21,<3" +packaging = ">=21.3" +requests = ">=2.31" + +[package.extras] +docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] +openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] +test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest (>=7.0,<8)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.13" +description = "Jupyter interactive widgets for JupyterLab" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyterlab_widgets-3.0.13-py3-none-any.whl", hash = "sha256:e3cda2c233ce144192f1e29914ad522b2f4c40e77214b0cc97377ca3d323db54"}, + {file = "jupyterlab_widgets-3.0.13.tar.gz", hash = "sha256:a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed"}, +] + +[[package]] +name = "kiwisolver" +version = "1.4.7" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.8" +files = [ + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5d5abf8f8ec1f4e22882273c423e16cae834c36856cac348cfbfa68e01c40f3a"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:aeb3531b196ef6f11776c21674dba836aeea9d5bd1cf630f869e3d90b16cfade"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7d755065e4e866a8086c9bdada157133ff466476a2ad7861828e17b6026e22c"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08471d4d86cbaec61f86b217dd938a83d85e03785f51121e791a6e6689a3be95"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bbfcb7165ce3d54a3dfbe731e470f65739c4c1f85bb1018ee912bae139e263b"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d34eb8494bea691a1a450141ebb5385e4b69d38bb8403b5146ad279f4b30fa3"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9242795d174daa40105c1d86aba618e8eab7bf96ba8c3ee614da8302a9f95503"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a0f64a48bb81af7450e641e3fe0b0394d7381e342805479178b3d335d60ca7cf"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8e045731a5416357638d1700927529e2b8ab304811671f665b225f8bf8d8f933"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4322872d5772cae7369f8351da1edf255a604ea7087fe295411397d0cfd9655e"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e1631290ee9271dffe3062d2634c3ecac02c83890ada077d225e081aca8aab89"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:edcfc407e4eb17e037bca59be0e85a2031a2ac87e4fed26d3e9df88b4165f92d"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4d05d81ecb47d11e7f8932bd8b61b720bf0b41199358f3f5e36d38e28f0532c5"}, + {file = "kiwisolver-1.4.7-cp38-cp38-win32.whl", hash = "sha256:b38ac83d5f04b15e515fd86f312479d950d05ce2368d5413d46c088dda7de90a"}, + {file = "kiwisolver-1.4.7-cp38-cp38-win_amd64.whl", hash = "sha256:d83db7cde68459fc803052a55ace60bea2bae361fc3b7a6d5da07e11954e4b09"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9362ecfca44c863569d3d3c033dbe8ba452ff8eed6f6b5806382741a1334bd"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e8df2eb9b2bac43ef8b082e06f750350fbbaf2887534a5be97f6cf07b19d9583"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f32d6edbc638cde7652bd690c3e728b25332acbadd7cad670cc4a02558d9c417"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e2e6c39bd7b9372b0be21456caab138e8e69cc0fc1190a9dfa92bd45a1e6e904"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dda56c24d869b1193fcc763f1284b9126550eaf84b88bbc7256e15028f19188a"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79849239c39b5e1fd906556c474d9b0439ea6792b637511f3fe3a41158d89ca8"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e3bc157fed2a4c02ec468de4ecd12a6e22818d4f09cde2c31ee3226ffbefab2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3da53da805b71e41053dc670f9a820d1157aae77b6b944e08024d17bcd51ef88"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8705f17dfeb43139a692298cb6637ee2e59c0194538153e83e9ee0c75c2eddde"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:82a5c2f4b87c26bb1a0ef3d16b5c4753434633b83d365cc0ddf2770c93829e3c"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce8be0466f4c0d585cdb6c1e2ed07232221df101a4c6f28821d2aa754ca2d9e2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:409afdfe1e2e90e6ee7fc896f3df9a7fec8e793e58bfa0d052c8a82f99c37abb"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5b9c3f4ee0b9a439d2415012bd1b1cc2df59e4d6a9939f4d669241d30b414327"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win32.whl", hash = "sha256:a79ae34384df2b615eefca647a2873842ac3b596418032bef9a7283675962644"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:cf0438b42121a66a3a667de17e779330fc0f20b0d97d59d2f2121e182b0505e4"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_arm64.whl", hash = "sha256:764202cc7e70f767dab49e8df52c7455e8de0df5d858fa801a11aa0d882ccf3f"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bfa1acfa0c54932d5607e19a2c24646fb4c1ae2694437789129cf099789a3b00"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:eee3ea935c3d227d49b4eb85660ff631556841f6e567f0f7bda972df6c2c9935"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f3160309af4396e0ed04db259c3ccbfdc3621b5559b5453075e5de555e1f3a1b"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a17f6a29cf8935e587cc8a4dbfc8368c55edc645283db0ce9801016f83526c2d"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10849fb2c1ecbfae45a693c070e0320a91b35dd4bcf58172c023b994283a124d"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ac542bf38a8a4be2dc6b15248d36315ccc65f0743f7b1a76688ffb6b5129a5c2"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b01aac285f91ca889c800042c35ad3b239e704b150cfd3382adfc9dcc780e39"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48be928f59a1f5c8207154f935334d374e79f2b5d212826307d072595ad76a2e"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f37cfe618a117e50d8c240555331160d73d0411422b59b5ee217843d7b693608"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599b5c873c63a1f6ed7eead644a8a380cfbdf5db91dcb6f85707aaab213b1674"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:801fa7802e5cfabe3ab0c81a34c323a319b097dfb5004be950482d882f3d7225"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0c6c43471bc764fad4bc99c5c2d6d16a676b1abf844ca7c8702bdae92df01ee0"}, + {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, +] + +[[package]] +name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "marshmallow" +version = "3.22.0" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.8" +files = [ + {file = "marshmallow-3.22.0-py3-none-any.whl", hash = "sha256:71a2dce49ef901c3f97ed296ae5051135fd3febd2bf43afe0ae9a82143a494d9"}, + {file = "marshmallow-3.22.0.tar.gz", hash = "sha256:4972f529104a220bb8637d595aa4c9762afbe7f7a77d82dc58c1615d70c5823e"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<4.0)", "tox"] +docs = ["alabaster (==1.0.0)", "autodocsumm (==0.2.13)", "sphinx (==8.0.2)", "sphinx-issues (==4.1.0)", "sphinx-version-warning (==1.1.2)"] +tests = ["pytest", "pytz", "simplejson"] + +[[package]] +name = "matplotlib" +version = "3.9.2" +description = "Python plotting package" +optional = false +python-versions = ">=3.9" +files = [ + {file = "matplotlib-3.9.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9d78bbc0cbc891ad55b4f39a48c22182e9bdaea7fc0e5dbd364f49f729ca1bbb"}, + {file = "matplotlib-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c375cc72229614632c87355366bdf2570c2dac01ac66b8ad048d2dabadf2d0d4"}, + {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64"}, + {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66"}, + {file = "matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a"}, + {file = "matplotlib-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:3fd595f34aa8a55b7fc8bf9ebea8aa665a84c82d275190a61118d33fbc82ccae"}, + {file = "matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772"}, + {file = "matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41"}, + {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f"}, + {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447"}, + {file = "matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e"}, + {file = "matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7"}, + {file = "matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9"}, + {file = "matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d"}, + {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7"}, + {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c"}, + {file = "matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e"}, + {file = "matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3"}, + {file = "matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9"}, + {file = "matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa"}, + {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b"}, + {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413"}, + {file = "matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b"}, + {file = "matplotlib-3.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:f32c7410c7f246838a77d6d1eff0c0f87f3cb0e7c4247aebea71a6d5a68cab49"}, + {file = "matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03"}, + {file = "matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30"}, + {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51"}, + {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbe196377a8248972f5cede786d4c5508ed5f5ca4a1e09b44bda889958b33f8c"}, + {file = "matplotlib-3.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5816b1e1fe8c192cbc013f8f3e3368ac56fbecf02fb41b8f8559303f24c5015e"}, + {file = "matplotlib-3.9.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cef2a73d06601437be399908cf13aee74e86932a5ccc6ccdf173408ebc5f6bb2"}, + {file = "matplotlib-3.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e0830e188029c14e891fadd99702fd90d317df294c3298aad682739c5533721a"}, + {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ba9c1299c920964e8d3857ba27173b4dbb51ca4bab47ffc2c2ba0eb5e2cbc5"}, + {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd93b91ab47a3616b4d3c42b52f8363b88ca021e340804c6ab2536344fad9ca"}, + {file = "matplotlib-3.9.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6d1ce5ed2aefcdce11904fc5bbea7d9c21fff3d5f543841edf3dea84451a09ea"}, + {file = "matplotlib-3.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:b2696efdc08648536efd4e1601b5fd491fd47f4db97a5fbfd175549a7365c1b2"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d52a3b618cb1cbb769ce2ee1dcdb333c3ab6e823944e9a2d36e37253815f9556"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:039082812cacd6c6bec8e17a9c1e6baca230d4116d522e81e1f63a74d01d2e21"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6758baae2ed64f2331d4fd19be38b7b4eae3ecec210049a26b6a4f3ae1c85dcc"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:050598c2b29e0b9832cde72bcf97627bf00262adbc4a54e2b856426bb2ef0697"}, + {file = "matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.3.1" +numpy = ">=1.23" +packaging = ">=20.0" +pillow = ">=8" +pyparsing = ">=2.3.1" +python-dateutil = ">=2.7" + +[package.extras] +dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, +] + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mistune" +version = "3.0.2" +description = "A sane and fast Markdown parser with useful plugins and renderers" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"}, + {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, +] + +[[package]] +name = "nbclient" +version = "0.10.0" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "nbclient-0.10.0-py3-none-any.whl", hash = "sha256:f13e3529332a1f1f81d82a53210322476a168bb7090a0289c795fe9cc11c9d3f"}, + {file = "nbclient-0.10.0.tar.gz", hash = "sha256:4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +nbformat = ">=5.1" +traitlets = ">=5.4" + +[package.extras] +dev = ["pre-commit"] +docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "7.16.4" +description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbconvert-7.16.4-py3-none-any.whl", hash = "sha256:05873c620fe520b6322bf8a5ad562692343fe3452abda5765c7a34b7d1aa3eb3"}, + {file = "nbconvert-7.16.4.tar.gz", hash = "sha256:86ca91ba266b0a448dc96fa6c5b9d98affabde2867b363258703536807f9f7f4"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "!=5.0.0" +defusedxml = "*" +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<4" +nbclient = ">=0.5.0" +nbformat = ">=5.7" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.1" + +[package.extras] +all = ["flaky", "ipykernel", "ipython", "ipywidgets (>=7.5)", "myst-parser", "nbsphinx (>=0.2.12)", "playwright", "pydata-sphinx-theme", "pyqtwebengine (>=5.15)", "pytest (>=7)", "sphinx (==5.0.2)", "sphinxcontrib-spelling", "tornado (>=6.1)"] +docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] +qtpdf = ["pyqtwebengine (>=5.15)"] +qtpng = ["pyqtwebengine (>=5.15)"] +serve = ["tornado (>=6.1)"] +test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"] +webpdf = ["playwright"] + +[[package]] +name = "nbformat" +version = "5.10.4" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, +] + +[package.dependencies] +fastjsonschema = ">=2.15" +jsonschema = ">=2.6" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "notebook" +version = "7.2.2" +description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.8" +files = [ + {file = "notebook-7.2.2-py3-none-any.whl", hash = "sha256:c89264081f671bc02eec0ed470a627ed791b9156cad9285226b31611d3e9fe1c"}, + {file = "notebook-7.2.2.tar.gz", hash = "sha256:2ef07d4220421623ad3fe88118d687bc0450055570cdd160814a59cf3a1c516e"}, +] + +[package.dependencies] +jupyter-server = ">=2.4.0,<3" +jupyterlab = ">=4.2.0,<4.3" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2,<0.3" +tornado = ">=6.2.0" + +[package.extras] +dev = ["hatch", "pre-commit"] +docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.27.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numpy" +version = "2.1.0" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "numpy-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6326ab99b52fafdcdeccf602d6286191a79fe2fda0ae90573c5814cd2b0bc1b8"}, + {file = "numpy-2.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0937e54c09f7a9a68da6889362ddd2ff584c02d015ec92672c099b61555f8911"}, + {file = "numpy-2.1.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:30014b234f07b5fec20f4146f69e13cfb1e33ee9a18a1879a0142fbb00d47673"}, + {file = "numpy-2.1.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:899da829b362ade41e1e7eccad2cf274035e1cb36ba73034946fccd4afd8606b"}, + {file = "numpy-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08801848a40aea24ce16c2ecde3b756f9ad756586fb2d13210939eb69b023f5b"}, + {file = "numpy-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:398049e237d1aae53d82a416dade04defed1a47f87d18d5bd615b6e7d7e41d1f"}, + {file = "numpy-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0abb3916a35d9090088a748636b2c06dc9a6542f99cd476979fb156a18192b84"}, + {file = "numpy-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:10e2350aea18d04832319aac0f887d5fcec1b36abd485d14f173e3e900b83e33"}, + {file = "numpy-2.1.0-cp310-cp310-win32.whl", hash = "sha256:f6b26e6c3b98adb648243670fddc8cab6ae17473f9dc58c51574af3e64d61211"}, + {file = "numpy-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:f505264735ee074250a9c78247ee8618292091d9d1fcc023290e9ac67e8f1afa"}, + {file = "numpy-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:76368c788ccb4f4782cf9c842b316140142b4cbf22ff8db82724e82fe1205dce"}, + {file = "numpy-2.1.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:f8e93a01a35be08d31ae33021e5268f157a2d60ebd643cfc15de6ab8e4722eb1"}, + {file = "numpy-2.1.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:9523f8b46485db6939bd069b28b642fec86c30909cea90ef550373787f79530e"}, + {file = "numpy-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54139e0eb219f52f60656d163cbe67c31ede51d13236c950145473504fa208cb"}, + {file = "numpy-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5ebbf9fbdabed208d4ecd2e1dfd2c0741af2f876e7ae522c2537d404ca895c3"}, + {file = "numpy-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:378cb4f24c7d93066ee4103204f73ed046eb88f9ad5bb2275bb9fa0f6a02bd36"}, + {file = "numpy-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8f699a709120b220dfe173f79c73cb2a2cab2c0b88dd59d7b49407d032b8ebd"}, + {file = "numpy-2.1.0-cp311-cp311-win32.whl", hash = "sha256:ffbd6faeb190aaf2b5e9024bac9622d2ee549b7ec89ef3a9373fa35313d44e0e"}, + {file = "numpy-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:0af3a5987f59d9c529c022c8c2a64805b339b7ef506509fba7d0556649b9714b"}, + {file = "numpy-2.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fe76d75b345dc045acdbc006adcb197cc680754afd6c259de60d358d60c93736"}, + {file = "numpy-2.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f358ea9e47eb3c2d6eba121ab512dfff38a88db719c38d1e67349af210bc7529"}, + {file = "numpy-2.1.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:dd94ce596bda40a9618324547cfaaf6650b1a24f5390350142499aa4e34e53d1"}, + {file = "numpy-2.1.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b47c551c6724960479cefd7353656498b86e7232429e3a41ab83be4da1b109e8"}, + {file = "numpy-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0756a179afa766ad7cb6f036de622e8a8f16ffdd55aa31f296c870b5679d745"}, + {file = "numpy-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24003ba8ff22ea29a8c306e61d316ac74111cebf942afbf692df65509a05f111"}, + {file = "numpy-2.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b34fa5e3b5d6dc7e0a4243fa0f81367027cb6f4a7215a17852979634b5544ee0"}, + {file = "numpy-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c4f982715e65036c34897eb598d64aef15150c447be2cfc6643ec7a11af06574"}, + {file = "numpy-2.1.0-cp312-cp312-win32.whl", hash = "sha256:c4cd94dfefbefec3f8b544f61286584292d740e6e9d4677769bc76b8f41deb02"}, + {file = "numpy-2.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0cdef204199278f5c461a0bed6ed2e052998276e6d8ab2963d5b5c39a0500bc"}, + {file = "numpy-2.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8ab81ccd753859ab89e67199b9da62c543850f819993761c1e94a75a814ed667"}, + {file = "numpy-2.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:442596f01913656d579309edcd179a2a2f9977d9a14ff41d042475280fc7f34e"}, + {file = "numpy-2.1.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:848c6b5cad9898e4b9ef251b6f934fa34630371f2e916261070a4eb9092ffd33"}, + {file = "numpy-2.1.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:54c6a63e9d81efe64bfb7bcb0ec64332a87d0b87575f6009c8ba67ea6374770b"}, + {file = "numpy-2.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:652e92fc409e278abdd61e9505649e3938f6d04ce7ef1953f2ec598a50e7c195"}, + {file = "numpy-2.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ab32eb9170bf8ffcbb14f11613f4a0b108d3ffee0832457c5d4808233ba8977"}, + {file = "numpy-2.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:8fb49a0ba4d8f41198ae2d52118b050fd34dace4b8f3fb0ee34e23eb4ae775b1"}, + {file = "numpy-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:44e44973262dc3ae79e9063a1284a73e09d01b894b534a769732ccd46c28cc62"}, + {file = "numpy-2.1.0-cp313-cp313-win32.whl", hash = "sha256:ab83adc099ec62e044b1fbb3a05499fa1e99f6d53a1dde102b2d85eff66ed324"}, + {file = "numpy-2.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:de844aaa4815b78f6023832590d77da0e3b6805c644c33ce94a1e449f16d6ab5"}, + {file = "numpy-2.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:343e3e152bf5a087511cd325e3b7ecfd5b92d369e80e74c12cd87826e263ec06"}, + {file = "numpy-2.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f07fa2f15dabe91259828ce7d71b5ca9e2eb7c8c26baa822c825ce43552f4883"}, + {file = "numpy-2.1.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5474dad8c86ee9ba9bb776f4b99ef2d41b3b8f4e0d199d4f7304728ed34d0300"}, + {file = "numpy-2.1.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:1f817c71683fd1bb5cff1529a1d085a57f02ccd2ebc5cd2c566f9a01118e3b7d"}, + {file = "numpy-2.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a3336fbfa0d38d3deacd3fe7f3d07e13597f29c13abf4d15c3b6dc2291cbbdd"}, + {file = "numpy-2.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a894c51fd8c4e834f00ac742abad73fc485df1062f1b875661a3c1e1fb1c2f6"}, + {file = "numpy-2.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:9156ca1f79fc4acc226696e95bfcc2b486f165a6a59ebe22b2c1f82ab190384a"}, + {file = "numpy-2.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:624884b572dff8ca8f60fab591413f077471de64e376b17d291b19f56504b2bb"}, + {file = "numpy-2.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:15ef8b2177eeb7e37dd5ef4016f30b7659c57c2c0b57a779f1d537ff33a72c7b"}, + {file = "numpy-2.1.0-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:e5f0642cdf4636198a4990de7a71b693d824c56a757862230454629cf62e323d"}, + {file = "numpy-2.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15976718c004466406342789f31b6673776360f3b1e3c575f25302d7e789575"}, + {file = "numpy-2.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6c1de77ded79fef664d5098a66810d4d27ca0224e9051906e634b3f7ead134c2"}, + {file = "numpy-2.1.0.tar.gz", hash = "sha256:7dc90da0081f7e1da49ec4e398ede6a8e9cc4f5ebe5f9e06b443ed889ee9aaa2"}, +] + +[[package]] +name = "overrides" +version = "7.7.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "pandas" +version = "2.2.2" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, + {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, +] + +[package.dependencies] +numpy = {version = ">=1.26.0", markers = "python_version >= \"3.12\""} +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +description = "Utilities for writing pandoc filters in python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.4" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +files = [ + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, +] + +[package.extras] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] + +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pillow" +version = "10.4.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"}, + {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"}, + {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"}, + {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"}, + {file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"}, + {file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"}, + {file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"}, + {file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"}, + {file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"}, + {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"}, + {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"}, + {file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"}, + {file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"}, + {file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"}, + {file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"}, + {file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"}, + {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"}, + {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"}, + {file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"}, + {file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"}, + {file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"}, + {file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"}, + {file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"}, + {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"}, + {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"}, + {file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"}, + {file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"}, + {file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"}, + {file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"}, + {file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"}, + {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"}, + {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"}, + {file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"}, + {file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"}, + {file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"}, + {file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"}, + {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"}, + {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"}, + {file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"}, + {file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"}, + {file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"}, + {file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=7.3)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "platformdirs" +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] + +[[package]] +name = "prometheus-client" +version = "0.20.0" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.47" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10"}, + {file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "6.0.0" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "psutil-6.0.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a021da3e881cd935e64a3d0a20983bda0bb4cf80e4f74fa9bfcb1bc5785360c6"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1287c2b95f1c0a364d23bc6f2ea2365a8d4d9b726a3be7294296ff7ba97c17f0"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a3dbfb4de4f18174528d87cc352d1f788b7496991cca33c6996f40c9e3c92c"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6ec7588fb3ddaec7344a825afe298db83fe01bfaaab39155fa84cf1c0d6b13c3"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e7c870afcb7d91fdea2b37c24aeb08f98b6d67257a5cb0a8bc3ac68d0f1a68c"}, + {file = "psutil-6.0.0-cp27-none-win32.whl", hash = "sha256:02b69001f44cc73c1c5279d02b30a817e339ceb258ad75997325e0e6169d8b35"}, + {file = "psutil-6.0.0-cp27-none-win_amd64.whl", hash = "sha256:21f1fb635deccd510f69f485b87433460a603919b45e2a324ad65b0cc74f8fb1"}, + {file = "psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e8d0054fc88153ca0544f5c4d554d42e33df2e009c4ff42284ac9ebdef4132"}, + {file = "psutil-6.0.0-cp36-cp36m-win32.whl", hash = "sha256:fc8c9510cde0146432bbdb433322861ee8c3efbf8589865c8bf8d21cb30c4d14"}, + {file = "psutil-6.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:34859b8d8f423b86e4385ff3665d3f4d94be3cdf48221fbe476e883514fdb71c"}, + {file = "psutil-6.0.0-cp37-abi3-win32.whl", hash = "sha256:a495580d6bae27291324fe60cea0b5a7c23fa36a7cd35035a16d93bdcf076b9d"}, + {file = "psutil-6.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:33ea5e1c975250a720b3a6609c490db40dae5d83a4eb315170c4fe0d8b1f34b3"}, + {file = "psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0"}, + {file = "psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2"}, +] + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, + {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyparsing" +version = "3.1.4" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.1.4-py3-none-any.whl", hash = "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c"}, + {file = "pyparsing-3.1.4.tar.gz", hash = "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-json-logger" +version = "2.0.7" +description = "A python library adding a json log formatter" +optional = false +python-versions = ">=3.6" +files = [ + {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, + {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, +] + +[[package]] +name = "pytz" +version = "2024.1" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, +] + +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.13" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"}, + {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"}, + {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"}, + {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"}, + {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"}, + {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "pyzmq" +version = "26.2.0" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, + {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, + {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, + {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, + {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, + {file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"}, + {file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"}, + {file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, + {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, + {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "referencing" +version = "0.35.1" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, + {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "rpds-py" +version = "0.20.0" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rpds_py-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2"}, + {file = "rpds_py-0.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140"}, + {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f"}, + {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce"}, + {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94"}, + {file = "rpds_py-0.20.0-cp310-none-win32.whl", hash = "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee"}, + {file = "rpds_py-0.20.0-cp310-none-win_amd64.whl", hash = "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399"}, + {file = "rpds_py-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489"}, + {file = "rpds_py-0.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3"}, + {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272"}, + {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad"}, + {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58"}, + {file = "rpds_py-0.20.0-cp311-none-win32.whl", hash = "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0"}, + {file = "rpds_py-0.20.0-cp311-none-win_amd64.whl", hash = "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c"}, + {file = "rpds_py-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6"}, + {file = "rpds_py-0.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef"}, + {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821"}, + {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940"}, + {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174"}, + {file = "rpds_py-0.20.0-cp312-none-win32.whl", hash = "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139"}, + {file = "rpds_py-0.20.0-cp312-none-win_amd64.whl", hash = "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585"}, + {file = "rpds_py-0.20.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29"}, + {file = "rpds_py-0.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f"}, + {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c"}, + {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2"}, + {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57"}, + {file = "rpds_py-0.20.0-cp313-none-win32.whl", hash = "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a"}, + {file = "rpds_py-0.20.0-cp313-none-win_amd64.whl", hash = "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2"}, + {file = "rpds_py-0.20.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24"}, + {file = "rpds_py-0.20.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8"}, + {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e"}, + {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253"}, + {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a"}, + {file = "rpds_py-0.20.0-cp38-none-win32.whl", hash = "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5"}, + {file = "rpds_py-0.20.0-cp38-none-win_amd64.whl", hash = "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232"}, + {file = "rpds_py-0.20.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22"}, + {file = "rpds_py-0.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580"}, + {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b"}, + {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420"}, + {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b"}, + {file = "rpds_py-0.20.0-cp39-none-win32.whl", hash = "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7"}, + {file = "rpds_py-0.20.0-cp39-none-win_amd64.whl", hash = "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8"}, + {file = "rpds_py-0.20.0.tar.gz", hash = "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121"}, +] + +[[package]] +name = "scikit-learn" +version = "1.5.2" +description = "A set of python modules for machine learning and data mining" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scikit_learn-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:299406827fb9a4f862626d0fe6c122f5f87f8910b86fe5daa4c32dcd742139b6"}, + {file = "scikit_learn-1.5.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:2d4cad1119c77930b235579ad0dc25e65c917e756fe80cab96aa3b9428bd3fb0"}, + {file = "scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c412ccc2ad9bf3755915e3908e677b367ebc8d010acbb3f182814524f2e5540"}, + {file = "scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a686885a4b3818d9e62904d91b57fa757fc2bed3e465c8b177be652f4dd37c8"}, + {file = "scikit_learn-1.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:c15b1ca23d7c5f33cc2cb0a0d6aaacf893792271cddff0edbd6a40e8319bc113"}, + {file = "scikit_learn-1.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03b6158efa3faaf1feea3faa884c840ebd61b6484167c711548fce208ea09445"}, + {file = "scikit_learn-1.5.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1ff45e26928d3b4eb767a8f14a9a6efbf1cbff7c05d1fb0f95f211a89fd4f5de"}, + {file = "scikit_learn-1.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f763897fe92d0e903aa4847b0aec0e68cadfff77e8a0687cabd946c89d17e675"}, + {file = "scikit_learn-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8b0ccd4a902836493e026c03256e8b206656f91fbcc4fde28c57a5b752561f1"}, + {file = "scikit_learn-1.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:6c16d84a0d45e4894832b3c4d0bf73050939e21b99b01b6fd59cbb0cf39163b6"}, + {file = "scikit_learn-1.5.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f932a02c3f4956dfb981391ab24bda1dbd90fe3d628e4b42caef3e041c67707a"}, + {file = "scikit_learn-1.5.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:3b923d119d65b7bd555c73be5423bf06c0105678ce7e1f558cb4b40b0a5502b1"}, + {file = "scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f60021ec1574e56632be2a36b946f8143bf4e5e6af4a06d85281adc22938e0dd"}, + {file = "scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:394397841449853c2290a32050382edaec3da89e35b3e03d6cc966aebc6a8ae6"}, + {file = "scikit_learn-1.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:57cc1786cfd6bd118220a92ede80270132aa353647684efa385a74244a41e3b1"}, + {file = "scikit_learn-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:757c7d514ddb00ae249832fe87100d9c73c6ea91423802872d9e74970a0e40b9"}, + {file = "scikit_learn-1.5.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:52788f48b5d8bca5c0736c175fa6bdaab2ef00a8f536cda698db61bd89c551c1"}, + {file = "scikit_learn-1.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:643964678f4b5fbdc95cbf8aec638acc7aa70f5f79ee2cdad1eec3df4ba6ead8"}, + {file = "scikit_learn-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca64b3089a6d9b9363cd3546f8978229dcbb737aceb2c12144ee3f70f95684b7"}, + {file = "scikit_learn-1.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:3bed4909ba187aca80580fe2ef370d9180dcf18e621a27c4cf2ef10d279a7efe"}, + {file = "scikit_learn-1.5.2.tar.gz", hash = "sha256:b4237ed7b3fdd0a4882792e68ef2545d5baa50aca3bb45aa7df468138ad8f94d"}, +] + +[package.dependencies] +joblib = ">=1.2.0" +numpy = ">=1.19.5" +scipy = ">=1.6.0" +threadpoolctl = ">=3.1.0" + +[package.extras] +benchmark = ["matplotlib (>=3.3.4)", "memory_profiler (>=0.57.0)", "pandas (>=1.1.5)"] +build = ["cython (>=3.0.10)", "meson-python (>=0.16.0)", "numpy (>=1.19.5)", "scipy (>=1.6.0)"] +docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.3.4)", "memory_profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pydata-sphinx-theme (>=0.15.3)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)", "sphinx (>=7.3.7)", "sphinx-copybutton (>=0.5.2)", "sphinx-design (>=0.5.0)", "sphinx-design (>=0.6.0)", "sphinx-gallery (>=0.16.0)", "sphinx-prompt (>=1.4.0)", "sphinx-remove-toctrees (>=1.0.0.post1)", "sphinxcontrib-sass (>=0.3.4)", "sphinxext-opengraph (>=0.9.1)"] +examples = ["matplotlib (>=3.3.4)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)"] +install = ["joblib (>=1.2.0)", "numpy (>=1.19.5)", "scipy (>=1.6.0)", "threadpoolctl (>=3.1.0)"] +maintenance = ["conda-lock (==2.5.6)"] +tests = ["black (>=24.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.9)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pyarrow (>=12.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.2.1)", "scikit-image (>=0.17.2)"] + +[[package]] +name = "scipy" +version = "1.14.1" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3"}, + {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d"}, + {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69"}, + {file = "scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad"}, + {file = "scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8"}, + {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37"}, + {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2"}, + {file = "scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2"}, + {file = "scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc"}, + {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310"}, + {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066"}, + {file = "scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1"}, + {file = "scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e"}, + {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d"}, + {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e"}, + {file = "scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06"}, + {file = "scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84"}, + {file = "scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417"}, +] + +[package.dependencies] +numpy = ">=1.23.5,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<=7.3.7)", "sphinx-design (>=0.4.0)"] +test = ["Cython", "array-api-strict (>=2.0)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "send2trash" +version = "1.8.3" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "74.1.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-74.1.0-py3-none-any.whl", hash = "sha256:cee604bd76cc092355a4e43ec17aee5369095974f41f088676724dc6bc2c9ef8"}, + {file = "setuptools-74.1.0.tar.gz", hash = "sha256:bea195a800f510ba3a2bc65645c88b7e016fe36709fefc58a880c4ae8a0138d7"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "terminado" +version = "0.18.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "threadpoolctl" +version = "3.5.0" +description = "threadpoolctl" +optional = false +python-versions = ">=3.8" +files = [ + {file = "threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467"}, + {file = "threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107"}, +] + +[[package]] +name = "tinycss2" +version = "1.3.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tinycss2-1.3.0-py3-none-any.whl", hash = "sha256:54a8dbdffb334d536851be0226030e9505965bb2f30f21a4a82c55fb2a80fae7"}, + {file = "tinycss2-1.3.0.tar.gz", hash = "sha256:152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + +[[package]] +name = "tornado" +version = "6.4.1" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.8" +files = [ + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, + {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, + {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, + {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20240821" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-python-dateutil-2.9.0.20240821.tar.gz", hash = "sha256:9649d1dcb6fef1046fb18bebe9ea2aa0028b160918518c34589a46045f6ebd98"}, + {file = "types_python_dateutil-2.9.0.20240821-py3-none-any.whl", hash = "sha256:f5889fcb4e63ed4aaa379b44f93c32593d50b9a94c9a60a0c854d8cc3511cd57"}, +] + +[[package]] +name = "tzdata" +version = "2024.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "2.2.2" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webargs" +version = "8.4.0" +description = "Declarative parsing and validation of HTTP request objects, with built-in support for popular web frameworks, including Flask, Django, Bottle, Tornado, Pyramid, Falcon, and aiohttp." +optional = false +python-versions = ">=3.8" +files = [ + {file = "webargs-8.4.0-py3-none-any.whl", hash = "sha256:22324305fbca6a2c4cce1235280e8b56372fb3211a8dac2ac8ed1948315a6f53"}, + {file = "webargs-8.4.0.tar.gz", hash = "sha256:ea99368214a4ce613924be99d71db58c269631e95eff4fa09b7354e52dc006a5"}, +] + +[package.dependencies] +marshmallow = ">=3.0.0" +packaging = "*" + +[package.extras] +dev = ["Django (>=2.2.0)", "Flask (>=0.12.5)", "aiohttp (>=3.0.8)", "bottle (>=0.12.13)", "falcon (>=2.0.0)", "flake8 (==7.0.0)", "flake8-bugbear (==23.12.2)", "mypy (==1.8.0)", "pre-commit (>=2.4,<4.0)", "pyramid (>=1.9.1)", "pytest", "pytest-aiohttp (>=0.3.0)", "pytest-asyncio", "tornado (>=4.5.2)", "tox", "webtest (==3.0.0)", "webtest-aiohttp (==2.0.0)"] +docs = ["Django (>=2.2.0)", "Flask (>=0.12.5)", "Sphinx (==7.2.6)", "aiohttp (>=3.0.8)", "bottle (>=0.12.13)", "falcon (>=2.0.0)", "furo (==2023.9.10)", "pyramid (>=1.9.1)", "sphinx-issues (==3.0.1)", "tornado (>=4.5.2)"] +frameworks = ["Django (>=2.2.0)", "Flask (>=0.12.5)", "aiohttp (>=3.0.8)", "bottle (>=0.12.13)", "falcon (>=2.0.0)", "pyramid (>=1.9.1)", "tornado (>=4.5.2)"] +lint = ["flake8 (==7.0.0)", "flake8-bugbear (==23.12.2)", "mypy (==1.8.0)", "pre-commit (>=2.4,<4.0)"] +tests = ["Django (>=2.2.0)", "Flask (>=0.12.5)", "aiohttp (>=3.0.8)", "bottle (>=0.12.13)", "falcon (>=2.0.0)", "pyramid (>=1.9.1)", "pytest", "pytest-aiohttp (>=0.3.0)", "pytest-asyncio", "tornado (>=4.5.2)", "webtest (==3.0.0)", "webtest-aiohttp (==2.0.0)"] + +[[package]] +name = "webcolors" +version = "24.8.0" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.8" +files = [ + {file = "webcolors-24.8.0-py3-none-any.whl", hash = "sha256:fc4c3b59358ada164552084a8ebee637c221e4059267d0f8325b3b560f6c7f0a"}, + {file = "webcolors-24.8.0.tar.gz", hash = "sha256:08b07af286a01bcd30d583a7acadf629583d1f79bfef27dd2c2c5c263817277d"}, +] + +[package.extras] +docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] +tests = ["coverage[toml]"] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "werkzeug" +version = "3.0.4" +description = "The comprehensive WSGI web application library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "werkzeug-3.0.4-py3-none-any.whl", hash = "sha256:02c9eb92b7d6c06f31a782811505d2157837cea66aaede3e217c7c27c039476c"}, + {file = "werkzeug-3.0.4.tar.gz", hash = "sha256:34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306"}, +] + +[package.dependencies] +MarkupSafe = ">=2.1.1" + +[package.extras] +watchdog = ["watchdog (>=2.3)"] + +[[package]] +name = "widgetsnbextension" +version = "4.0.13" +description = "Jupyter interactive widgets for Jupyter Notebook" +optional = false +python-versions = ">=3.7" +files = [ + {file = "widgetsnbextension-4.0.13-py3-none-any.whl", hash = "sha256:74b2692e8500525cc38c2b877236ba51d34541e6385eeed5aec15a70f88a6c71"}, + {file = "widgetsnbextension-4.0.13.tar.gz", hash = "sha256:ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.12" +content-hash = "a7e3d516bde2d6e4173d8a9770fb5337a0c806dadaeda355084b262c1995f7ea" diff --git a/poetry.toml b/poetry.toml new file mode 100644 index 0000000..ab1033b --- /dev/null +++ b/poetry.toml @@ -0,0 +1,2 @@ +[virtualenvs] +in-project = true diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..0a91b71 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,24 @@ +[tool.poetry] +name = "mai" +version = "1.0.0" +description = "MAI Examples" +authors = ["Aleksey Filippov "] +readme = "readme.md" +package-mode = false + +[tool.poetry.dependencies] +python = "^3.12" +jupyter = "^1.1.1" +numpy = "^2.1.0" +pandas = "^2.2.2" +matplotlib = "^3.9.2" +flask = "^3.0.3" +apiflask = "^2.2.0" +flask-cors = "^5.0.0" +scikit-learn = "^1.5.2" +imbalanced-learn = "^0.12.3" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..fba5c63 --- /dev/null +++ b/readme.md @@ -0,0 +1,55 @@ +## Окружение и примеры для выполнения лабораторных работ по дисциплине "Методы ИИ" + +### Python + +Используется Python версии 3.12 + +Установщик https://www.python.org/ftp/python/3.12.5/python-3.12.5-amd64.exe + +### Poetry + +Для создания и настройки окружения проекта необходимо установить poetry + +**Для Windows (Powershell)** + +``` +(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python - +``` + +**Linux, macOS, Windows (WSL)** + +``` +curl -sSL https://install.python-poetry.org | python3 - +``` + +**Добавление poetry в PATH** + +1. Открыть настройки переменных среды \ + \ + \ + \ + \ +2. Изменить переменную Path текущего пользователя \ + \ + \ +3. Добавление пути `%APPDATA%\Python\Scripts` до исполняемого файла poetry \ + \ + + +### Создание окружения + +``` +poetry install +``` + +### Запуск тестового сервиса + +Запустить тестовый сервис можно с помощью VSCode (см. launch.json в каталоге .vscode). + +Также запустить тестовый сервис можно с помощью командной строки: + +1. Активация виртуального окружения -- `poetry shell` + +2. Запуск сервиса -- `python run.py` + +Для выходы из виртуального окружения используется команду `exit` diff --git a/run.py b/run.py new file mode 100644 index 0000000..39333c8 --- /dev/null +++ b/run.py @@ -0,0 +1,16 @@ +from backend import create_app + +app = create_app() + + +def __main(): + app.run( + host="127.0.0.1", + port=8080, + debug=True, + use_reloader=False, + ) + + +if __name__ == "__main__": + __main()