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/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/ckmai.iml b/.idea/ckmai.iml
new file mode 100644
index 0000000..039314d
--- /dev/null
+++ b/.idea/ckmai.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..f966c2e
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..75ce48c
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ 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/README.md b/README.md
deleted file mode 100644
index f621674..0000000
--- a/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Curse
-
diff --git a/data/students_education.csv b/data/students_education.csv
new file mode 100644
index 0000000..d4362c9
--- /dev/null
+++ b/data/students_education.csv
@@ -0,0 +1,1206 @@
+Education Level,Institution Type,Gender,Age,Device,IT Student,Location,Financial Condition,Internet Type,Network Type,Flexibility Level
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,No,Town,,Mobile Data,4G,Moderate
+College,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,,Mobile Data,4G,Moderate
+School,Private,Female,18,Mobile,No,Town,Poor,,3G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Male,11,,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,,Wifi,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+College,Private,Female,18,Mobile,No,Rural,,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+University,Public,Female,27,Computer,Yes,Town,Poor,Mobile Data,4G,Low
+University,Public,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Rich,Wifi,4G,High
+School,Public,Male,10,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+College,Public,Female,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+School,Public,Female,11,Mobile,No,Town,Mid,Wifi,3G,Low
+University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Male,27,Mobile,Yes,Rural,Poor,Mobile Data,4G,Moderate
+School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+University,Public,Male,27,Mobile,No,Rural,Mid,Mobile Data,4G,High
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Public,Female,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Public,Female,11,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,2G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+University,Private,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Poor,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Female,11,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Wifi,4G,Moderate
+School,Public,Male,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,No,Town,Mid,Wifi,3G,High
+School,Public,Male,10,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,Yes,Town,Poor,Mobile Data,3G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,3G,Moderate
+University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+College,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Public,Female,11,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Rich,Wifi,4G,High
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,High
+College,Public,Male,18,Mobile,No,Town,Poor,Mobile Data,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Female,23,Mobile,No,Town,Poor,Wifi,4G,Low
+University,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,4G,High
+School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+University,Public,Male,23,Computer,Yes,Town,Mid,Mobile Data,3G,Low
+School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+University,Private,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,High
+University,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+School,Public,Male,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+College,Public,Female,18,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+University,Public,Male,27,Mobile,No,Rural,Mid,Mobile Data,4G,High
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Rich,Wifi,4G,High
+School,Public,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Low
+University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Public,Male,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,9,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Computer,No,Town,Rich,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+College,Public,Male,18,Mobile,No,Town,Poor,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,Yes,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Public,Female,11,Mobile,No,Town,Mid,Wifi,3G,Low
+School,Public,Male,10,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+University,Private,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+School,Public,Female,11,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+School,Public,Female,18,Mobile,No,Rural,Rich,Mobile Data,4G,High
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+College,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Moderate
+College,Public,Female,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,Yes,Town,Poor,Wifi,3G,Low
+School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Female,27,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Female,23,Mobile,No,Town,Mid,Wifi,2G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Public,Male,27,Mobile,Yes,Town,Rich,Wifi,4G,High
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Wifi,4G,Moderate
+College,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Public,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,2G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+University,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+University,Private,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+University,Private,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+College,Public,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Female,9,Mobile,No,Town,Rich,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Private,Male,23,Tab,No,Town,Rich,Wifi,4G,High
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,No,Town,Rich,Wifi,4G,High
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,9,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+School,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Low
+College,Public,Male,18,Tab,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Female,23,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+University,Private,Female,23,Mobile,No,Town,Poor,Wifi,4G,Low
+University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Female,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+University,Public,Female,27,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,Yes,Rural,Rich,Wifi,4G,Low
+College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Computer,No,Town,Rich,Wifi,4G,High
+College,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Female,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,27,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+College,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Female,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,27,Computer,Yes,Town,Poor,Mobile Data,3G,Moderate
+School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,High
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+School,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Low
+University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Rich,Wifi,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+University,Public,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,High
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,27,Mobile,Yes,Town,Rich,Wifi,4G,High
+University,Private,Male,23,Computer,Yes,Town,Rich,Wifi,4G,High
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Low
+College,Public,Male,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Male,27,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+University,Public,Male,18,Computer,No,Town,Mid,Wifi,3G,Moderate
+University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+College,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Private,Male,9,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,High
+School,Private,Male,11,Computer,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+University,Public,Female,27,Computer,Yes,Town,Poor,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+University,Public,Female,27,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Female,23,Mobile,No,Town,Mid,Wifi,3G,High
+University,Private,Male,23,Mobile,Yes,Town,Rich,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,High
+School,Public,Male,9,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+University,Public,Female,23,Mobile,No,Town,Poor,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+University,Private,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,High
+University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+School,Private,Female,11,Mobile,No,Town,Rich,Wifi,3G,High
+University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+College,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+School,Public,Male,11,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+College,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Public,Male,11,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+University,Private,Male,27,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Public,Female,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Male,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,High
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+College,Public,Female,18,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+School,Private,Female,10,Mobile,No,Town,Rich,Wifi,4G,High
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Female,11,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Rich,Wifi,4G,High
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+College,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,18,Computer,No,Town,Mid,Wifi,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,27,Computer,Yes,Town,Poor,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+University,Private,Female,23,Mobile,No,Town,Mid,Wifi,2G,Moderate
+College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,High
+School,Private,Female,9,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,27,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,23,Computer,Yes,Town,Mid,Mobile Data,3G,Low
+University,Public,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,High
+University,Private,Female,23,Tab,Yes,Rural,Poor,Wifi,2G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Poor,Wifi,3G,Low
+College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,Yes,Rural,Rich,Wifi,4G,Low
+University,Private,Male,27,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Public,Female,9,Mobile,No,Town,Rich,Mobile Data,4G,Low
+University,Public,Female,23,Mobile,No,Town,Poor,Mobile Data,4G,Low
+University,Private,Female,23,Tab,No,Town,Rich,Wifi,4G,Moderate
+College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,9,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Public,Female,23,Mobile,No,Town,Poor,Mobile Data,4G,Low
+University,Private,Male,23,Computer,No,Town,Rich,Wifi,4G,High
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+School,Private,Male,11,Computer,No,Town,Mid,Wifi,4G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,High
+University,Public,Male,27,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+University,Public,Female,23,Mobile,No,Town,Mid,Wifi,3G,Low
+School,Public,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,4G,High
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Female,10,Mobile,No,Town,Rich,Wifi,4G,High
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+University,Public,Male,27,Mobile,Yes,Rural,Poor,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Public,Male,27,Mobile,Yes,Rural,Poor,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,Yes,Rural,Mid,Mobile Data,4G,Low
+University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+University,Private,Female,18,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+University,Public,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+University,Public,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+University,Private,Male,27,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Public,Male,11,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Poor,Wifi,3G,Low
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+University,Private,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Female,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Public,Female,9,Mobile,No,Town,Rich,Mobile Data,4G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Female,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Public,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,4G,Low
+College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Rich,Wifi,3G,High
+University,Public,Female,27,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,18,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+University,Private,Female,18,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Rich,Wifi,4G,High
+School,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+College,Public,Male,18,Tab,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,Yes,Town,Poor,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Female,23,Mobile,No,Town,Mid,Wifi,2G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Public,Male,18,Computer,No,Town,Mid,Wifi,3G,Moderate
+University,Public,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+University,Public,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,Moderate
+University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,High
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Tab,Yes,Rural,Poor,Wifi,2G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Poor,Wifi,3G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Female,23,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,High
+University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Computer,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Public,Male,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,High
+School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+School,Public,Male,11,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Female,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,High
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Public,Male,18,Computer,No,Town,Mid,Wifi,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+School,Public,Female,11,Mobile,No,Town,Mid,Wifi,3G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+University,Public,Male,27,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+School,Public,Female,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+University,Private,Female,18,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+College,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,27,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+University,Public,Male,18,Computer,No,Town,Mid,Wifi,3G,Moderate
+College,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Female,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,High
+School,Public,Female,11,Mobile,No,Town,Mid,Wifi,3G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,18,Computer,No,Town,Mid,Wifi,4G,Low
+College,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,Low
+College,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,27,Mobile,Yes,Rural,Poor,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+College,Public,Male,18,Mobile,Yes,Rural,Mid,Mobile Data,4G,Low
+University,Private,Female,23,Mobile,No,Town,Mid,Wifi,3G,High
+College,Public,Female,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,10,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,3G,Moderate
+School,Public,Male,10,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+College,Public,Male,18,Tab,Yes,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Tab,No,Town,Rich,Wifi,4G,High
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,10,Mobile,No,Town,Rich,Wifi,4G,High
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+University,Private,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Poor,Wifi,3G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Mid,Wifi,3G,High
+School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+School,Private,Male,10,Mobile,No,Town,Mid,Mobile Data,3G,Low
+University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Rich,Wifi,4G,High
+University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+University,Public,Male,27,Mobile,Yes,Rural,Poor,Mobile Data,4G,Moderate
+School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Public,Male,10,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Public,Male,10,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+University,Private,Female,23,Mobile,No,Town,Poor,Wifi,4G,Low
+School,Private,Male,11,Computer,No,Town,Mid,Wifi,4G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+University,Public,Male,18,Computer,No,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Public,Female,18,Mobile,No,Rural,Rich,Mobile Data,4G,High
+University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Low
+University,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Poor,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Female,23,Computer,No,Town,Rich,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Public,Male,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,27,Mobile,No,Rural,Mid,Mobile Data,4G,High
+School,Private,Male,11,Computer,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Public,Female,11,Mobile,No,Town,Mid,Wifi,3G,Low
+School,Private,Female,10,Mobile,No,Town,Mid,Wifi,3G,High
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Male,9,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+College,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Rich,Wifi,3G,High
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,23,Computer,Yes,Town,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+School,Public,Male,9,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Female,23,Tab,No,Town,Rich,Wifi,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+College,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Public,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+University,Public,Female,23,Mobile,No,Town,Mid,Wifi,3G,Low
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Female,18,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,Moderate
+College,Public,Male,18,Mobile,Yes,Rural,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,High
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+University,Private,Male,23,Mobile,Yes,Town,Rich,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+School,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+School,Private,Female,10,Mobile,No,Town,Mid,Wifi,3G,High
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+School,Private,Male,10,Mobile,No,Town,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Female,11,Mobile,No,Town,Rich,Wifi,3G,High
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+College,Public,Male,18,Tab,Yes,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Low
+School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Low
+School,Public,Male,10,Mobile,No,Town,Mid,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+University,Public,Male,23,Mobile,No,Town,Mid,Wifi,4G,Low
+University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,High
+School,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+College,Public,Male,18,Tab,Yes,Town,Mid,Wifi,4G,Moderate
+University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+School,Public,Female,11,Mobile,No,Town,Mid,Wifi,4G,Low
+School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Low
+School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+University,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+University,Private,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Female,18,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+University,Private,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+University,Public,Male,27,Mobile,Yes,Town,Rich,Wifi,4G,High
+University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+School,Public,Male,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+School,Private,Female,11,Mobile,No,Town,Rich,Wifi,3G,High
+School,Public,Male,9,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+College,Public,Female,18,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,Moderate
+University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+University,Private,Male,27,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+School,Private,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+College,Public,Male,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Mobile Data,4G,Moderate
+College,Public,Male,18,Mobile,Yes,Rural,Mid,Mobile Data,4G,Low
+University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
diff --git a/lab1.csv b/lab1.csv
new file mode 100644
index 0000000..70c26b3
--- /dev/null
+++ b/lab1.csv
@@ -0,0 +1,1206 @@
+,Education Level,Institution Type,Gender,Age,Device,IT Student,Location,Financial Condition,Internet Type,Network Type,Flexibility Level
+0,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+1,University,Private,Female,23,Mobile,No,Town,,Mobile Data,4G,Moderate
+2,College,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+3,School,Private,Female,11,Mobile,No,Town,,Mobile Data,4G,Moderate
+4,School,Private,Female,18,Mobile,No,Town,Poor,,3G,Low
+5,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+6,School,Private,Male,11,,No,Town,Mid,Wifi,4G,Low
+7,School,Private,Male,11,Mobile,No,Town,,Wifi,4G,Moderate
+8,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+9,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+10,University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+11,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+12,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+13,College,Private,Female,18,Mobile,No,Rural,,Wifi,4G,Low
+14,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+15,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+16,University,Public,Female,27,Computer,Yes,Town,Poor,Mobile Data,4G,Low
+17,University,Public,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+18,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+19,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+20,School,Private,Female,10,Mobile,No,Town,Rich,Wifi,4G,High
+21,School,Public,Male,10,Mobile,No,Town,Mid,Mobile Data,4G,Low
+22,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+23,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+24,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+25,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+26,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+27,University,Private,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+28,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+29,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+30,School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+31,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+32,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+33,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+34,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+35,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+36,College,Public,Female,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+37,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+38,University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+39,School,Public,Female,11,Mobile,No,Town,Mid,Wifi,3G,Low
+40,University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+41,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+42,School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+43,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+44,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+45,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+46,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+47,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+48,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+49,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+50,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+51,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+52,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+53,University,Public,Male,27,Mobile,Yes,Rural,Poor,Mobile Data,4G,Moderate
+54,School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+55,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+56,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+57,University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+58,School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+59,School,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+60,University,Private,Male,23,Mobile,No,Town,Mid,Wifi,4G,Moderate
+61,College,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+62,College,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+63,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+64,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+65,University,Public,Male,27,Mobile,No,Rural,Mid,Mobile Data,4G,High
+66,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+67,School,Public,Female,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+68,School,Public,Female,11,Mobile,No,Town,Mid,Wifi,4G,Low
+69,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+70,College,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+71,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+72,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+73,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+74,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+75,School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,2G,Low
+76,College,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+77,College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+78,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+79,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+80,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+81,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+82,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+83,School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+84,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+85,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+86,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+87,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+88,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+89,University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+90,University,Private,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+91,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+92,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+93,University,Private,Male,23,Mobile,Yes,Town,Poor,Mobile Data,3G,Low
+94,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+95,University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+96,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+97,School,Public,Female,11,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+98,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+99,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+100,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+101,School,Private,Female,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+102,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+103,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+104,School,Private,Female,9,Mobile,No,Town,Poor,Wifi,4G,Moderate
+105,School,Public,Male,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+106,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+107,School,Private,Female,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+108,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+109,University,Private,Female,23,Mobile,No,Town,Mid,Wifi,3G,High
+110,School,Public,Male,10,Mobile,No,Town,Mid,Mobile Data,4G,Low
+111,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+112,School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+113,University,Private,Male,23,Mobile,Yes,Town,Poor,Mobile Data,3G,Moderate
+114,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+115,University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+116,University,Public,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Low
+117,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+118,College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,3G,Moderate
+119,University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+120,College,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Moderate
+121,School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+122,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+123,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+124,University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+125,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+126,University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+127,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+128,School,Public,Female,11,Mobile,No,Town,Mid,Wifi,4G,Low
+129,University,Private,Male,23,Computer,Yes,Town,Rich,Wifi,4G,High
+130,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+131,University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Low
+132,University,Private,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,High
+133,College,Public,Male,18,Mobile,No,Town,Poor,Mobile Data,4G,Low
+134,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+135,University,Public,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+136,School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+137,University,Private,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+138,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+139,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+140,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+141,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+142,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+143,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+144,University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+145,University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+146,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,3G,Moderate
+147,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+148,University,Private,Female,23,Mobile,No,Town,Poor,Wifi,4G,Low
+149,University,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+150,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+151,College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+152,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,4G,High
+153,School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,Moderate
+154,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+155,University,Public,Male,23,Computer,Yes,Town,Mid,Mobile Data,3G,Low
+156,School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+157,University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+158,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+159,University,Private,Male,23,Computer,Yes,Town,Mid,Mobile Data,3G,Moderate
+160,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+161,University,Private,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,High
+162,University,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+163,School,Public,Male,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+164,College,Public,Female,18,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+165,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+166,College,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+167,University,Public,Male,27,Mobile,No,Rural,Mid,Mobile Data,4G,High
+168,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+169,College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Low
+170,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+171,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+172,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+173,University,Private,Male,23,Computer,Yes,Town,Rich,Wifi,4G,High
+174,School,Public,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+175,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+176,School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+177,College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Low
+178,University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+179,School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+180,School,Public,Male,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+181,School,Private,Male,9,Mobile,No,Town,Mid,Wifi,4G,Low
+182,School,Private,Female,9,Mobile,No,Town,Mid,Wifi,4G,Moderate
+183,University,Private,Female,23,Computer,No,Town,Rich,Wifi,4G,Moderate
+184,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+185,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+186,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+187,University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+188,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+189,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+190,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+191,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+192,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+193,School,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+194,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+195,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+196,College,Public,Male,18,Mobile,No,Town,Poor,Mobile Data,4G,Low
+197,School,Private,Male,11,Mobile,Yes,Town,Poor,Mobile Data,4G,Moderate
+198,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+199,School,Public,Female,11,Mobile,No,Town,Mid,Wifi,3G,Low
+200,School,Public,Male,10,Mobile,No,Town,Mid,Mobile Data,4G,Low
+201,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+202,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+203,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+204,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+205,School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+206,University,Private,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+207,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+208,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+209,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+210,School,Public,Female,11,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+211,School,Public,Female,18,Mobile,No,Rural,Rich,Mobile Data,4G,High
+212,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+213,College,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Moderate
+214,College,Public,Female,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+215,School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+216,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+217,School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+218,University,Private,Male,23,Mobile,Yes,Town,Poor,Wifi,3G,Low
+219,School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+220,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+221,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+222,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+223,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+224,University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+225,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+226,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+227,School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+228,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+229,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+230,School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+231,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+232,School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+233,School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+234,University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+235,University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+236,University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+237,University,Public,Female,27,Mobile,No,Town,Mid,Mobile Data,4G,Low
+238,University,Private,Female,23,Mobile,No,Town,Mid,Wifi,2G,Moderate
+239,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+240,University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+241,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+242,School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+243,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+244,School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+245,School,Private,Female,9,Mobile,No,Town,Poor,Wifi,4G,Moderate
+246,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+247,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+248,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+249,University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+250,University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+251,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+252,College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+253,University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+254,School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+255,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+256,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+257,University,Private,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+258,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+259,University,Public,Male,27,Mobile,Yes,Town,Rich,Wifi,4G,High
+260,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+261,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+262,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+263,School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+264,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+265,School,Private,Female,9,Mobile,No,Town,Poor,Wifi,4G,Moderate
+266,College,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+267,University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+268,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+269,University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+270,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+271,University,Private,Male,23,Mobile,No,Town,Mid,Wifi,4G,Moderate
+272,School,Public,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+273,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+274,School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,2G,Low
+275,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+276,University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+277,University,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+278,University,Private,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+279,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+280,University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+281,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+282,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+283,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+284,University,Private,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+285,College,Public,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,4G,Low
+286,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+287,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+288,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+289,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+290,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+291,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+292,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+293,University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+294,School,Public,Female,9,Mobile,No,Town,Rich,Mobile Data,4G,Low
+295,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+296,University,Private,Male,23,Tab,No,Town,Rich,Wifi,4G,High
+297,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+298,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+299,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+300,University,Private,Male,23,Computer,No,Town,Rich,Wifi,4G,High
+301,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+302,School,Private,Male,9,Mobile,No,Town,Mid,Wifi,4G,Low
+303,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+304,University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+305,School,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Low
+306,College,Public,Male,18,Tab,Yes,Town,Mid,Wifi,4G,Moderate
+307,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+308,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+309,University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+310,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+311,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+312,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+313,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+314,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+315,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+316,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+317,University,Public,Female,23,Mobile,No,Town,Mid,Wifi,4G,Low
+318,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+319,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+320,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+321,University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+322,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+323,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+324,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+325,University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+326,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+327,School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+328,University,Private,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+329,College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+330,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+331,University,Public,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+332,University,Private,Female,23,Mobile,No,Town,Poor,Wifi,4G,Low
+333,University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+334,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+335,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+336,University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+337,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+338,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+339,University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+340,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+341,College,Public,Female,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+342,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+343,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+344,University,Private,Female,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+345,University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+346,University,Public,Female,27,Mobile,No,Town,Mid,Mobile Data,4G,Low
+347,School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,Moderate
+348,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+349,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+350,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+351,University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+352,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+353,University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+354,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+355,College,Public,Male,18,Mobile,Yes,Rural,Rich,Wifi,4G,Low
+356,College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+357,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+358,School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+359,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+360,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+361,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+362,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+363,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+364,University,Private,Male,23,Mobile,Yes,Town,Poor,Mobile Data,3G,Low
+365,University,Private,Male,23,Computer,No,Town,Rich,Wifi,4G,High
+366,College,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Low
+367,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+368,College,Public,Female,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+369,School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+370,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+371,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+372,University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+373,University,Private,Male,27,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+374,College,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+375,School,Public,Female,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+376,School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+377,University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+378,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+379,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+380,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+381,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+382,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+383,University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+384,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+385,University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+386,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+387,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+388,University,Private,Male,27,Computer,Yes,Town,Poor,Mobile Data,3G,Moderate
+389,School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+390,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,High
+391,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+392,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+393,University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+394,School,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Low
+395,University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+396,University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+397,University,Private,Male,23,Mobile,Yes,Town,Rich,Wifi,4G,Low
+398,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+399,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+400,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+401,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+402,University,Public,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Low
+403,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+404,University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+405,University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+406,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,High
+407,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+408,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+409,University,Public,Male,27,Mobile,Yes,Town,Rich,Wifi,4G,High
+410,University,Private,Male,23,Computer,Yes,Town,Rich,Wifi,4G,High
+411,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+412,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+413,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+414,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+415,University,Public,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Low
+416,College,Public,Male,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+417,University,Private,Male,27,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+418,University,Public,Male,18,Computer,No,Town,Mid,Wifi,3G,Moderate
+419,University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+420,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+421,School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+422,School,Private,Female,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+423,College,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Low
+424,School,Private,Male,9,Mobile,No,Town,Mid,Wifi,4G,Low
+425,University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+426,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+427,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,High
+428,School,Private,Male,11,Computer,No,Town,Mid,Wifi,4G,Low
+429,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+430,University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+431,University,Public,Female,27,Computer,Yes,Town,Poor,Mobile Data,4G,Low
+432,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+433,University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+434,University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+435,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+436,University,Public,Female,27,Mobile,No,Town,Mid,Mobile Data,4G,Low
+437,University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+438,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+439,College,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+440,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+441,College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+442,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+443,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+444,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+445,University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+446,College,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+447,University,Private,Female,23,Mobile,No,Town,Mid,Wifi,3G,High
+448,University,Private,Male,23,Mobile,Yes,Town,Rich,Wifi,4G,Low
+449,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+450,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+451,University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,High
+452,School,Public,Male,9,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+453,School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+454,University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+455,University,Public,Female,23,Mobile,No,Town,Poor,Mobile Data,4G,Low
+456,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+457,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+458,University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+459,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,3G,Moderate
+460,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+461,University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+462,University,Private,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,High
+463,University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+464,School,Private,Female,11,Mobile,No,Town,Rich,Wifi,3G,High
+465,University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+466,College,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+467,School,Public,Male,11,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+468,College,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+469,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+470,University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+471,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,3G,Low
+472,School,Public,Male,11,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+473,University,Private,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+474,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+475,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+476,University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+477,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+478,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+479,University,Private,Male,27,Mobile,No,Town,Mid,Wifi,4G,Moderate
+480,College,Public,Female,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+481,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+482,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+483,College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+484,College,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+485,School,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+486,University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+487,University,Private,Male,23,Computer,Yes,Town,Mid,Mobile Data,3G,Moderate
+488,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+489,School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+490,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+491,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+492,College,Public,Male,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+493,University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,High
+494,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+495,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+496,School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+497,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+498,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+499,University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+500,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+501,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+502,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+503,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+504,College,Public,Female,18,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+505,College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+506,School,Private,Female,10,Mobile,No,Town,Rich,Wifi,4G,High
+507,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+508,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+509,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+510,School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+511,University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+512,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+513,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+514,School,Public,Female,11,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+515,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+516,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+517,University,Private,Male,23,Computer,Yes,Town,Rich,Wifi,4G,High
+518,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+519,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+520,College,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Low
+521,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+522,School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+523,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+524,University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+525,University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+526,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+527,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+528,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+529,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+530,University,Private,Male,23,Mobile,No,Town,Mid,Wifi,4G,Moderate
+531,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+532,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+533,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+534,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+535,University,Public,Male,18,Computer,No,Town,Mid,Wifi,3G,Moderate
+536,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+537,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+538,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+539,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+540,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+541,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+542,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+543,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+544,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+545,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+546,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+547,School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+548,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+549,University,Private,Male,27,Computer,Yes,Town,Poor,Mobile Data,3G,Moderate
+550,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+551,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+552,College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+553,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+554,University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+555,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+556,University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+557,University,Private,Female,23,Mobile,No,Town,Mid,Wifi,2G,Moderate
+558,College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+559,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+560,School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,High
+561,School,Private,Female,9,Mobile,No,Town,Mid,Wifi,4G,Moderate
+562,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+563,University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+564,University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Low
+565,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+566,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+567,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+568,College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,3G,Moderate
+569,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+570,University,Private,Male,27,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+571,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+572,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+573,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Low
+574,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+575,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+576,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+577,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+578,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+579,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+580,University,Public,Male,23,Computer,Yes,Town,Mid,Mobile Data,3G,Low
+581,University,Public,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+582,College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+583,College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+584,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,High
+585,University,Private,Female,23,Tab,Yes,Rural,Poor,Wifi,2G,Low
+586,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+587,University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+588,University,Private,Male,23,Mobile,Yes,Town,Poor,Wifi,3G,Low
+589,College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+590,School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+591,University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+592,University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+593,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+594,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+595,College,Public,Male,18,Mobile,Yes,Rural,Rich,Wifi,4G,Low
+596,University,Private,Male,27,Mobile,No,Town,Mid,Wifi,4G,Moderate
+597,University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+598,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+599,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+600,School,Public,Female,9,Mobile,No,Town,Rich,Mobile Data,4G,Low
+601,University,Public,Female,23,Mobile,No,Town,Poor,Mobile Data,4G,Low
+602,University,Private,Female,23,Tab,No,Town,Rich,Wifi,4G,Moderate
+603,College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+604,University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+605,University,Public,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+606,School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+607,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+608,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+609,School,Private,Male,9,Mobile,No,Town,Mid,Wifi,4G,Low
+610,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Low
+611,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+612,University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+613,University,Public,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+614,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+615,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+616,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+617,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,Low
+618,University,Public,Female,23,Mobile,No,Town,Poor,Mobile Data,4G,Low
+619,University,Private,Male,23,Computer,No,Town,Rich,Wifi,4G,High
+620,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+621,University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+622,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+623,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+624,School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+625,School,Private,Male,11,Computer,No,Town,Mid,Wifi,4G,Low
+626,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+627,School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+628,School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,High
+629,University,Public,Male,27,Mobile,No,Town,Mid,Wifi,4G,Moderate
+630,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+631,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+632,University,Private,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+633,University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+634,University,Public,Female,23,Mobile,No,Town,Mid,Wifi,3G,Low
+635,School,Public,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+636,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+637,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+638,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+639,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+640,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,4G,High
+641,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+642,College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+643,School,Private,Female,10,Mobile,No,Town,Rich,Wifi,4G,High
+644,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+645,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+646,University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+647,University,Public,Male,27,Mobile,Yes,Rural,Poor,Mobile Data,4G,Moderate
+648,University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+649,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+650,School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+651,University,Public,Male,27,Mobile,Yes,Rural,Poor,Mobile Data,4G,Moderate
+652,College,Public,Male,18,Mobile,Yes,Rural,Mid,Mobile Data,4G,Low
+653,University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+654,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+655,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+656,School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+657,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+658,University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+659,University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+660,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+661,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+662,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+663,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+664,University,Private,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+665,University,Private,Female,18,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+666,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+667,School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+668,University,Public,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Low
+669,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+670,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+671,University,Public,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+672,School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+673,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+674,University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+675,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+676,University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+677,School,Private,Male,9,Mobile,No,Town,Poor,Mobile Data,4G,Low
+678,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+679,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+680,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+681,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+682,University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+683,University,Private,Male,27,Mobile,No,Town,Mid,Wifi,4G,Moderate
+684,School,Public,Male,11,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+685,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+686,School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+687,University,Private,Male,23,Mobile,Yes,Town,Poor,Wifi,3G,Low
+688,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+689,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+690,University,Private,Male,27,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+691,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+692,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+693,School,Private,Female,9,Mobile,No,Town,Mid,Wifi,4G,Moderate
+694,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+695,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+696,School,Public,Female,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+697,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+698,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+699,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+700,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+701,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+702,School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+703,School,Public,Female,9,Mobile,No,Town,Rich,Mobile Data,4G,Low
+704,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+705,University,Private,Female,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+706,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+707,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+708,University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+709,College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+710,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+711,College,Public,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,4G,Low
+712,College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Low
+713,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+714,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+715,School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+716,School,Private,Female,11,Mobile,No,Town,Rich,Wifi,3G,High
+717,University,Public,Female,27,Mobile,No,Town,Mid,Mobile Data,4G,Low
+718,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+719,University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+720,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+721,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+722,University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+723,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+724,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+725,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+726,University,Private,Female,18,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+727,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+728,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+729,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+730,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+731,University,Private,Female,18,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+732,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+733,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+734,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+735,School,Private,Male,11,Mobile,No,Town,Rich,Wifi,4G,High
+736,School,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+737,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+738,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+739,University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+740,College,Public,Male,18,Tab,Yes,Town,Mid,Wifi,4G,Moderate
+741,School,Private,Male,11,Mobile,Yes,Town,Poor,Mobile Data,4G,Moderate
+742,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+743,University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+744,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+745,University,Public,Male,23,Mobile,No,Town,Mid,Wifi,4G,Low
+746,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+747,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+748,University,Private,Male,23,Mobile,No,Town,Poor,Mobile Data,4G,High
+749,University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+750,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+751,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+752,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+753,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+754,University,Private,Female,23,Mobile,No,Town,Mid,Wifi,2G,Moderate
+755,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+756,University,Public,Male,18,Computer,No,Town,Mid,Wifi,3G,Moderate
+757,University,Public,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Low
+758,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+759,College,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+760,College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+761,University,Public,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+762,University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,Moderate
+763,University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+764,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+765,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+766,School,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+767,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+768,College,Public,Male,18,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+769,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,High
+770,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+771,University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+772,University,Private,Female,23,Tab,Yes,Rural,Poor,Wifi,2G,Low
+773,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+774,University,Private,Male,23,Mobile,Yes,Town,Poor,Wifi,3G,Low
+775,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+776,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+777,University,Public,Female,23,Mobile,No,Town,Mid,Wifi,4G,Low
+778,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,Low
+779,School,Private,Female,9,Mobile,No,Town,Mid,Wifi,4G,Moderate
+780,University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+781,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+782,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Low
+783,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+784,University,Private,Male,23,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+785,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+786,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+787,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+788,School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,High
+789,University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+790,University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+791,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+792,School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+793,School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+794,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+795,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+796,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+797,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+798,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+799,University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+800,University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+801,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+802,School,Private,Male,11,Computer,No,Town,Mid,Wifi,4G,Low
+803,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+804,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,3G,Low
+805,School,Public,Male,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+806,School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+807,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+808,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+809,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+810,University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+811,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+812,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+813,University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Low
+814,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,High
+815,School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+816,School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+817,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+818,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+819,School,Public,Male,11,Mobile,No,Rural,Poor,Mobile Data,3G,Low
+820,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+821,School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+822,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+823,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+824,University,Private,Female,18,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+825,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+826,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+827,University,Private,Female,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+828,University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+829,School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+830,College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+831,School,Private,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+832,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+833,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+834,University,Private,Female,23,Computer,Yes,Town,Mid,Wifi,3G,Low
+835,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+836,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+837,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+838,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+839,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,Low
+840,School,Private,Female,9,Mobile,No,Town,Mid,Wifi,4G,Moderate
+841,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,High
+842,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+843,University,Public,Male,18,Computer,No,Town,Mid,Wifi,3G,Moderate
+844,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+845,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+846,University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+847,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+848,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,High
+849,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+850,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+851,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+852,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+853,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+854,School,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+855,College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+856,School,Public,Female,11,Mobile,No,Town,Mid,Wifi,3G,Low
+857,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Moderate
+858,University,Public,Male,27,Mobile,No,Town,Mid,Wifi,4G,Moderate
+859,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+860,University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+861,University,Private,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+862,University,Public,Female,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+863,School,Public,Female,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+864,University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+865,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+866,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+867,University,Private,Female,18,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+868,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+869,School,Private,Female,10,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+870,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+871,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+872,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+873,School,Private,Female,18,Mobile,No,Town,Poor,Mobile Data,3G,Low
+874,College,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+875,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+876,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+877,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+878,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+879,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+880,University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+881,School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Low
+882,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+883,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+884,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+885,School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+886,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+887,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+888,University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+889,University,Private,Male,27,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+890,University,Public,Male,18,Computer,No,Town,Mid,Wifi,3G,Moderate
+891,College,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Moderate
+892,School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+893,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+894,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,Low
+895,University,Private,Female,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+896,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+897,School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+898,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+899,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+900,College,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Moderate
+901,University,Private,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+902,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+903,College,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+904,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+905,School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,High
+906,School,Public,Female,11,Mobile,No,Town,Mid,Wifi,3G,Low
+907,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+908,School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,Moderate
+909,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Low
+910,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+911,University,Public,Male,18,Computer,No,Town,Mid,Wifi,4G,Low
+912,College,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+913,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+914,School,Private,Female,10,Mobile,No,Town,Poor,Mobile Data,3G,Low
+915,College,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+916,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+917,University,Public,Male,27,Mobile,Yes,Rural,Poor,Mobile Data,4G,Moderate
+918,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+919,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+920,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+921,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+922,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+923,College,Public,Male,18,Mobile,Yes,Rural,Mid,Mobile Data,4G,Low
+924,University,Private,Female,23,Mobile,No,Town,Mid,Wifi,3G,High
+925,College,Public,Female,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+926,University,Public,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Low
+927,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+928,School,Private,Male,10,Mobile,No,Town,Mid,Mobile Data,3G,Low
+929,School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+930,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+931,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+932,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+933,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,3G,Moderate
+934,School,Public,Male,10,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+935,College,Public,Male,18,Tab,Yes,Town,Mid,Wifi,4G,Moderate
+936,University,Private,Male,23,Tab,No,Town,Rich,Wifi,4G,High
+937,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+938,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+939,School,Private,Female,10,Mobile,No,Town,Rich,Wifi,4G,High
+940,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Low
+941,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+942,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+943,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+944,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+945,College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+946,College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+947,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+948,College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+949,University,Private,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+950,University,Private,Male,23,Mobile,Yes,Town,Poor,Wifi,3G,Low
+951,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+952,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+953,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+954,School,Private,Female,10,Mobile,No,Town,Mid,Wifi,3G,High
+955,School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+956,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+957,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Moderate
+958,School,Private,Male,10,Mobile,No,Town,Mid,Mobile Data,3G,Low
+959,University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+960,University,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+961,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+962,University,Private,Male,23,Computer,Yes,Town,Rich,Wifi,4G,High
+963,University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+964,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+965,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+966,University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+967,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+968,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+969,University,Public,Male,27,Mobile,Yes,Rural,Poor,Mobile Data,4G,Moderate
+970,School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+971,School,Private,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+972,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+973,School,Public,Male,18,Mobile,No,Town,Rich,Mobile Data,4G,Moderate
+974,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,3G,Low
+975,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+976,College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+977,School,Public,Male,10,Mobile,No,Town,Mid,Mobile Data,4G,Low
+978,School,Public,Male,10,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+979,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+980,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+981,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+982,University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Low
+983,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+984,College,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+985,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+986,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+987,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+988,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+989,University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+990,University,Private,Female,23,Mobile,No,Town,Poor,Wifi,4G,Low
+991,School,Private,Male,11,Computer,No,Town,Mid,Wifi,4G,Low
+992,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+993,University,Public,Male,18,Computer,No,Town,Mid,Wifi,4G,Low
+994,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+995,School,Public,Female,18,Mobile,No,Rural,Rich,Mobile Data,4G,High
+996,University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+997,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+998,School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Low
+999,University,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,4G,Moderate
+1000,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+1001,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+1002,University,Private,Male,23,Mobile,Yes,Town,Poor,Mobile Data,3G,Moderate
+1003,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1004,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1005,School,Private,Male,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+1006,University,Private,Female,23,Computer,No,Town,Rich,Wifi,4G,Moderate
+1007,University,Private,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1008,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+1009,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+1010,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+1011,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+1012,University,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+1013,University,Public,Female,27,Mobile,No,Town,Mid,Wifi,4G,Low
+1014,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+1015,College,Private,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+1016,College,Public,Male,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1017,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1018,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+1019,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+1020,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+1021,University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+1022,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1023,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+1024,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+1025,University,Public,Male,27,Mobile,No,Rural,Mid,Mobile Data,4G,High
+1026,School,Private,Male,11,Computer,No,Town,Mid,Wifi,4G,Low
+1027,School,Private,Female,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+1028,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1029,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+1030,School,Public,Female,11,Mobile,No,Town,Mid,Wifi,3G,Low
+1031,School,Private,Female,10,Mobile,No,Town,Mid,Wifi,3G,High
+1032,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+1033,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+1034,University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,Moderate
+1035,University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+1036,School,Private,Male,9,Mobile,No,Town,Mid,Wifi,4G,Low
+1037,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+1038,College,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,3G,Low
+1039,School,Private,Female,11,Mobile,No,Town,Rich,Wifi,3G,High
+1040,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+1041,University,Private,Female,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+1042,University,Private,Male,23,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+1043,University,Public,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Low
+1044,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+1045,University,Public,Male,23,Computer,Yes,Town,Mid,Mobile Data,3G,Low
+1046,University,Private,Male,23,Tab,No,Town,Mid,Wifi,4G,Moderate
+1047,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1048,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1049,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+1050,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1051,University,Private,Male,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+1052,School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+1053,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+1054,School,Public,Male,9,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+1055,School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1056,University,Private,Female,23,Tab,No,Town,Rich,Wifi,4G,Moderate
+1057,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Low
+1058,University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,Moderate
+1059,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+1060,University,Public,Male,27,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+1061,University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+1062,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,3G,Moderate
+1063,College,Private,Female,18,Computer,No,Town,Mid,Wifi,4G,Moderate
+1064,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+1065,University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+1066,School,Public,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1067,University,Public,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Low
+1068,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+1069,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+1070,University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+1071,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+1072,School,Public,Male,11,Mobile,No,Town,Mid,Wifi,4G,High
+1073,University,Public,Female,23,Mobile,No,Town,Mid,Wifi,3G,Low
+1074,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+1075,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+1076,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,High
+1077,College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1078,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+1079,College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,2G,Low
+1080,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1081,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+1082,University,Private,Male,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+1083,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1084,University,Private,Female,18,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+1085,School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,Moderate
+1086,College,Public,Male,18,Mobile,Yes,Rural,Mid,Mobile Data,4G,Low
+1087,University,Private,Male,23,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+1088,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+1089,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1090,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+1091,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+1092,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1093,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+1094,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+1095,University,Private,Female,23,Computer,Yes,Town,Rich,Wifi,4G,High
+1096,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+1097,University,Private,Male,23,Mobile,Yes,Town,Rich,Wifi,4G,Low
+1098,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+1099,School,Private,Female,11,Mobile,No,Town,Poor,Wifi,3G,Moderate
+1100,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+1101,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1102,College,Public,Female,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+1103,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+1104,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,Moderate
+1105,School,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+1106,School,Private,Female,10,Mobile,No,Town,Mid,Wifi,3G,High
+1107,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+1108,School,Private,Male,10,Mobile,No,Town,Mid,Mobile Data,3G,Low
+1109,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+1110,College,Public,Male,18,Mobile,No,Town,Mid,Wifi,3G,Moderate
+1111,College,Public,Male,18,Mobile,No,Rural,Poor,Mobile Data,3G,Moderate
+1112,School,Private,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1113,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+1114,School,Private,Female,11,Mobile,No,Town,Rich,Wifi,3G,High
+1115,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+1116,College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1117,University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1118,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+1119,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,3G,Moderate
+1120,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1121,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1122,School,Public,Male,18,Mobile,No,Town,Mid,Wifi,4G,Moderate
+1123,College,Public,Male,18,Tab,Yes,Town,Mid,Wifi,4G,Moderate
+1124,University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Low
+1125,School,Public,Female,11,Mobile,No,Town,Rich,Wifi,4G,Moderate
+1126,University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Low
+1127,School,Public,Male,10,Mobile,No,Town,Mid,Mobile Data,4G,Low
+1128,School,Private,Male,11,Mobile,No,Town,Mid,Wifi,4G,Moderate
+1129,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+1130,School,Private,Male,11,Mobile,No,Town,Poor,Wifi,4G,Low
+1131,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+1132,College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+1133,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1134,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+1135,University,Private,Female,18,Computer,Yes,Town,Mid,Wifi,4G,Moderate
+1136,University,Private,Female,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+1137,University,Private,Female,23,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+1138,University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+1139,University,Public,Male,23,Mobile,No,Town,Mid,Wifi,4G,Low
+1140,University,Private,Female,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+1141,School,Private,Male,11,Mobile,No,Town,Rich,Mobile Data,3G,High
+1142,School,Public,Female,18,Mobile,No,Town,Mid,Mobile Data,4G,Low
+1143,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1144,College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+1145,College,Public,Male,18,Tab,Yes,Town,Mid,Wifi,4G,Moderate
+1146,University,Private,Male,23,Computer,No,Town,Mid,Wifi,4G,Moderate
+1147,School,Private,Female,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1148,College,Public,Male,18,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1149,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1150,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+1151,School,Public,Female,11,Mobile,No,Town,Mid,Wifi,4G,Low
+1152,School,Private,Female,9,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1153,School,Private,Female,11,Mobile,Yes,Town,Mid,Mobile Data,4G,Moderate
+1154,University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Low
+1155,School,Private,Female,9,Mobile,No,Town,Poor,Mobile Data,4G,Moderate
+1156,College,Public,Male,18,Mobile,Yes,Town,Mid,Wifi,4G,Moderate
+1157,University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+1158,University,Public,Female,23,Mobile,No,Rural,Mid,Mobile Data,2G,Low
+1159,School,Private,Male,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
+1160,University,Private,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+1161,School,Public,Female,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1162,University,Private,Female,18,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+1163,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1164,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1165,University,Private,Male,23,Mobile,Yes,Rural,Mid,Mobile Data,3G,Moderate
+1166,School,Private,Female,11,Computer,No,Town,Mid,Wifi,4G,Moderate
+1167,University,Public,Female,23,Mobile,No,Town,Mid,Mobile Data,4G,Low
+1168,University,Private,Male,23,Computer,Yes,Rural,Mid,Wifi,4G,Moderate
+1169,College,Private,Female,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1170,University,Private,Male,23,Mobile,Yes,Rural,Poor,Mobile Data,3G,Moderate
+1171,University,Public,Male,27,Mobile,Yes,Town,Rich,Wifi,4G,High
+1172,University,Public,Male,23,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+1173,College,Public,Female,18,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+1174,University,Public,Male,23,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1175,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+1176,University,Public,Male,27,Computer,Yes,Town,Rich,Wifi,4G,High
+1177,School,Public,Male,10,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1178,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,4G,Moderate
+1179,School,Private,Female,11,Mobile,No,Town,Rich,Wifi,3G,High
+1180,School,Public,Male,9,Mobile,No,Rural,Mid,Mobile Data,4G,Low
+1181,College,Public,Male,18,Mobile,Yes,Town,Mid,Mobile Data,4G,Low
+1182,University,Private,Male,23,Computer,Yes,Rural,Mid,Mobile Data,3G,Moderate
+1183,College,Public,Female,18,Mobile,No,Rural,Poor,Mobile Data,4G,Low
+1184,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+1185,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Low
+1186,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+1187,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+1188,School,Private,Male,10,Mobile,No,Town,Rich,Wifi,4G,Moderate
+1189,University,Private,Female,23,Mobile,Yes,Town,Mid,Wifi,4G,Low
+1190,University,Private,Male,27,Mobile,Yes,Town,Mid,Wifi,3G,Moderate
+1191,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+1192,College,Public,Male,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+1193,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+1194,School,Private,Male,11,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1195,University,Private,Male,23,Computer,Yes,Town,Poor,Wifi,4G,High
+1196,College,Public,Male,18,Mobile,No,Rural,Mid,Mobile Data,3G,Low
+1197,University,Private,Male,23,Computer,Yes,Town,Mid,Mobile Data,4G,Moderate
+1198,College,Public,Male,18,Mobile,Yes,Rural,Mid,Mobile Data,4G,Low
+1199,University,Private,Male,23,Computer,Yes,Town,Mid,Wifi,4G,Low
+1200,College,Private,Female,18,Mobile,No,Town,Mid,Wifi,4G,Low
+1201,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Moderate
+1202,School,Private,Male,11,Mobile,No,Town,Mid,Mobile Data,3G,Moderate
+1203,College,Private,Female,18,Mobile,No,Rural,Mid,Wifi,4G,Low
+1204,School,Private,Female,11,Mobile,No,Town,Poor,Mobile Data,3G,Moderate
diff --git a/lab1.ipynb b/lab1.ipynb
new file mode 100644
index 0000000..521bd88
--- /dev/null
+++ b/lab1.ipynb
@@ -0,0 +1,926 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "# загрузка данных\n",
+ "df = pd.read_csv(\"data/students_education.csv\")\n",
+ "# сохранение данных\n",
+ "df.to_csv(\"lab1.csv\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "RangeIndex: 1205 entries, 0 to 1204\n",
+ "Data columns (total 11 columns):\n",
+ " # Column Non-Null Count Dtype \n",
+ "--- ------ -------------- ----- \n",
+ " 0 Education Level 1205 non-null object\n",
+ " 1 Institution Type 1205 non-null object\n",
+ " 2 Gender 1205 non-null object\n",
+ " 3 Age 1205 non-null int64 \n",
+ " 4 Device 1204 non-null object\n",
+ " 5 IT Student 1205 non-null object\n",
+ " 6 Location 1205 non-null object\n",
+ " 7 Financial Condition 1201 non-null object\n",
+ " 8 Internet Type 1204 non-null object\n",
+ " 9 Network Type 1205 non-null object\n",
+ " 10 Flexibility Level 1205 non-null object\n",
+ "dtypes: int64(1), object(10)\n",
+ "memory usage: 103.7+ KB\n"
+ ]
+ }
+ ],
+ "source": [
+ "# получение сведений о датафрейме\n",
+ "df.info()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Education Level object\n",
+ "Institution Type object\n",
+ "Gender object\n",
+ "Age int64\n",
+ "Device object\n",
+ "IT Student object\n",
+ "Location object\n",
+ "Financial Condition object\n",
+ "Internet Type object\n",
+ "Network Type object\n",
+ "Flexibility Level object\n",
+ "dtype: object"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.dtypes"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0 University\n",
+ "1 University\n",
+ "2 College\n",
+ "3 School\n",
+ "4 School\n",
+ " ... \n",
+ "95 University\n",
+ "96 School\n",
+ "97 School\n",
+ "98 University\n",
+ "99 College\n",
+ "Name: Education Level, Length: 100, dtype: object\n"
+ ]
+ }
+ ],
+ "source": [
+ "# вывод первых 100 строк из столбца Education Level\n",
+ "education = df.iloc[0:100, 0]\n",
+ "print(education)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Education Level Institution Type Gender Age Device IT Student \\\n",
+ "54 School Private Male 9 Mobile No \n",
+ "55 School Private Female 9 Mobile No \n",
+ "1155 School Private Female 9 Mobile No \n",
+ "886 School Private Female 9 Mobile No \n",
+ "916 School Private Female 9 Mobile No \n",
+ "... ... ... ... ... ... ... \n",
+ "1157 University Public Male 27 Computer Yes \n",
+ "714 University Public Female 27 Mobile No \n",
+ "717 University Public Female 27 Mobile No \n",
+ "16 University Public Female 27 Computer Yes \n",
+ "1190 University Private Male 27 Mobile Yes \n",
+ "\n",
+ " Location Financial Condition Internet Type Network Type Flexibility Level \n",
+ "54 Town Poor Mobile Data 4G Low \n",
+ "55 Town Mid Mobile Data 4G Moderate \n",
+ "1155 Town Poor Mobile Data 4G Moderate \n",
+ "886 Town Poor Mobile Data 4G Moderate \n",
+ "916 Town Mid Mobile Data 4G Moderate \n",
+ "... ... ... ... ... ... \n",
+ "1157 Town Rich Wifi 4G High \n",
+ "714 Town Mid Wifi 4G Low \n",
+ "717 Town Mid Mobile Data 4G Low \n",
+ "16 Town Poor Mobile Data 4G Low \n",
+ "1190 Town Mid Wifi 3G Moderate \n",
+ "\n",
+ "[1205 rows x 11 columns]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# сортировка датафрейма по возрасту\n",
+ "sorted_df = df.sort_values(by=\"Age\")\n",
+ "print(sorted_df)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Education Level Institution Type Gender Age Device IT Student \\\n",
+ "0 University Private Male 23 Tab No \n",
+ "1 University Private Female 23 Mobile No \n",
+ "2 College Public Female 18 Mobile No \n",
+ "4 School Private Female 18 Mobile No \n",
+ "8 College Public Male 18 Mobile No \n",
+ "... ... ... ... ... ... ... \n",
+ "1198 College Public Male 18 Mobile Yes \n",
+ "1199 University Private Male 23 Computer Yes \n",
+ "1200 College Private Female 18 Mobile No \n",
+ "1201 College Private Female 18 Mobile No \n",
+ "1203 College Private Female 18 Mobile No \n",
+ "\n",
+ " Location Financial Condition Internet Type Network Type Flexibility Level \n",
+ "0 Town Mid Wifi 4G Moderate \n",
+ "1 Town NaN Mobile Data 4G Moderate \n",
+ "2 Town Mid Wifi 4G Moderate \n",
+ "4 Town Poor NaN 3G Low \n",
+ "8 Town Mid Wifi 4G Low \n",
+ "... ... ... ... ... ... \n",
+ "1198 Rural Mid Mobile Data 4G Low \n",
+ "1199 Town Mid Wifi 4G Low \n",
+ "1200 Town Mid Wifi 4G Low \n",
+ "1201 Rural Mid Wifi 4G Moderate \n",
+ "1203 Rural Mid Wifi 4G Low \n",
+ "\n",
+ "[720 rows x 11 columns]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# вывод студентов, которым 18 лет и больше\n",
+ "Age = df[df['Age'] >= 18]\n",
+ "print(Age)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Education Level \n",
+ " Institution Type \n",
+ " Gender \n",
+ " Age \n",
+ " Device \n",
+ " IT Student \n",
+ " Financial Condition \n",
+ " Internet Type \n",
+ " Network Type \n",
+ " Flexibility Level \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " University \n",
+ " Private \n",
+ " Male \n",
+ " 23 \n",
+ " Tab \n",
+ " No \n",
+ " Mid \n",
+ " Wifi \n",
+ " 4G \n",
+ " Moderate \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " University \n",
+ " Private \n",
+ " Female \n",
+ " 23 \n",
+ " Mobile \n",
+ " No \n",
+ " NaN \n",
+ " Mobile Data \n",
+ " 4G \n",
+ " Moderate \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " College \n",
+ " Public \n",
+ " Female \n",
+ " 18 \n",
+ " Mobile \n",
+ " No \n",
+ " Mid \n",
+ " Wifi \n",
+ " 4G \n",
+ " Moderate \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " School \n",
+ " Private \n",
+ " Female \n",
+ " 11 \n",
+ " Mobile \n",
+ " No \n",
+ " NaN \n",
+ " Mobile Data \n",
+ " 4G \n",
+ " Moderate \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " School \n",
+ " Private \n",
+ " Female \n",
+ " 18 \n",
+ " Mobile \n",
+ " No \n",
+ " Poor \n",
+ " NaN \n",
+ " 3G \n",
+ " Low \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Education Level Institution Type Gender Age Device IT Student \\\n",
+ "0 University Private Male 23 Tab No \n",
+ "1 University Private Female 23 Mobile No \n",
+ "2 College Public Female 18 Mobile No \n",
+ "3 School Private Female 11 Mobile No \n",
+ "4 School Private Female 18 Mobile No \n",
+ "\n",
+ " Financial Condition Internet Type Network Type Flexibility Level \n",
+ "0 Mid Wifi 4G Moderate \n",
+ "1 NaN Mobile Data 4G Moderate \n",
+ "2 Mid Wifi 4G Moderate \n",
+ "3 NaN Mobile Data 4G Moderate \n",
+ "4 Poor NaN 3G Low "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.drop(['Location'], axis=1).head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Education Level \n",
+ " Institution Type \n",
+ " Gender \n",
+ " Age \n",
+ " Device \n",
+ " IT Student \n",
+ " Location \n",
+ " Financial Condition \n",
+ " Internet Type \n",
+ " Network Type \n",
+ " Flexibility Level \n",
+ " age_group \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " University \n",
+ " Private \n",
+ " Male \n",
+ " 23 \n",
+ " Tab \n",
+ " No \n",
+ " Town \n",
+ " Mid \n",
+ " Wifi \n",
+ " 4G \n",
+ " Moderate \n",
+ " average \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " University \n",
+ " Private \n",
+ " Female \n",
+ " 23 \n",
+ " Mobile \n",
+ " No \n",
+ " Town \n",
+ " NaN \n",
+ " Mobile Data \n",
+ " 4G \n",
+ " Moderate \n",
+ " average \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " College \n",
+ " Public \n",
+ " Female \n",
+ " 18 \n",
+ " Mobile \n",
+ " No \n",
+ " Town \n",
+ " Mid \n",
+ " Wifi \n",
+ " 4G \n",
+ " Moderate \n",
+ " average \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " School \n",
+ " Private \n",
+ " Female \n",
+ " 11 \n",
+ " Mobile \n",
+ " No \n",
+ " Town \n",
+ " NaN \n",
+ " Mobile Data \n",
+ " 4G \n",
+ " Moderate \n",
+ " young \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " School \n",
+ " Private \n",
+ " Female \n",
+ " 18 \n",
+ " Mobile \n",
+ " No \n",
+ " Town \n",
+ " Poor \n",
+ " NaN \n",
+ " 3G \n",
+ " Low \n",
+ " average \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 1200 \n",
+ " College \n",
+ " Private \n",
+ " Female \n",
+ " 18 \n",
+ " Mobile \n",
+ " No \n",
+ " Town \n",
+ " Mid \n",
+ " Wifi \n",
+ " 4G \n",
+ " Low \n",
+ " average \n",
+ " \n",
+ " \n",
+ " 1201 \n",
+ " College \n",
+ " Private \n",
+ " Female \n",
+ " 18 \n",
+ " Mobile \n",
+ " No \n",
+ " Rural \n",
+ " Mid \n",
+ " Wifi \n",
+ " 4G \n",
+ " Moderate \n",
+ " average \n",
+ " \n",
+ " \n",
+ " 1202 \n",
+ " School \n",
+ " Private \n",
+ " Male \n",
+ " 11 \n",
+ " Mobile \n",
+ " No \n",
+ " Town \n",
+ " Mid \n",
+ " Mobile Data \n",
+ " 3G \n",
+ " Moderate \n",
+ " young \n",
+ " \n",
+ " \n",
+ " 1203 \n",
+ " College \n",
+ " Private \n",
+ " Female \n",
+ " 18 \n",
+ " Mobile \n",
+ " No \n",
+ " Rural \n",
+ " Mid \n",
+ " Wifi \n",
+ " 4G \n",
+ " Low \n",
+ " average \n",
+ " \n",
+ " \n",
+ " 1204 \n",
+ " School \n",
+ " Private \n",
+ " Female \n",
+ " 11 \n",
+ " Mobile \n",
+ " No \n",
+ " Town \n",
+ " Poor \n",
+ " Mobile Data \n",
+ " 3G \n",
+ " Moderate \n",
+ " young \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
1205 rows × 12 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Education Level Institution Type Gender Age Device IT Student \\\n",
+ "0 University Private Male 23 Tab No \n",
+ "1 University Private Female 23 Mobile No \n",
+ "2 College Public Female 18 Mobile No \n",
+ "3 School Private Female 11 Mobile No \n",
+ "4 School Private Female 18 Mobile No \n",
+ "... ... ... ... ... ... ... \n",
+ "1200 College Private Female 18 Mobile No \n",
+ "1201 College Private Female 18 Mobile No \n",
+ "1202 School Private Male 11 Mobile No \n",
+ "1203 College Private Female 18 Mobile No \n",
+ "1204 School Private Female 11 Mobile No \n",
+ "\n",
+ " Location Financial Condition Internet Type Network Type \\\n",
+ "0 Town Mid Wifi 4G \n",
+ "1 Town NaN Mobile Data 4G \n",
+ "2 Town Mid Wifi 4G \n",
+ "3 Town NaN Mobile Data 4G \n",
+ "4 Town Poor NaN 3G \n",
+ "... ... ... ... ... \n",
+ "1200 Town Mid Wifi 4G \n",
+ "1201 Rural Mid Wifi 4G \n",
+ "1202 Town Mid Mobile Data 3G \n",
+ "1203 Rural Mid Wifi 4G \n",
+ "1204 Town Poor Mobile Data 3G \n",
+ "\n",
+ " Flexibility Level age_group \n",
+ "0 Moderate average \n",
+ "1 Moderate average \n",
+ "2 Moderate average \n",
+ "3 Moderate young \n",
+ "4 Low average \n",
+ "... ... ... \n",
+ "1200 Low average \n",
+ "1201 Moderate average \n",
+ "1202 Moderate young \n",
+ "1203 Low average \n",
+ "1204 Moderate young \n",
+ "\n",
+ "[1205 rows x 12 columns]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# добавление нового столбца Возрастная группа\n",
+ "def age_group(value):\n",
+ " if value < 18:\n",
+ " return \"young\"\n",
+ " else:\n",
+ " return \"average\"\n",
+ "\n",
+ "df['age_group'] = df['Age'].map(age_group)\n",
+ "display(df)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Education Level Institution Type Gender Age Device IT Student \\\n",
+ "0 University Private Male 23 Tab No \n",
+ "2 College Public Female 18 Mobile No \n",
+ "5 School Private Male 11 Mobile No \n",
+ "8 College Public Male 18 Mobile No \n",
+ "9 School Private Male 11 Mobile No \n",
+ "... ... ... ... ... ... ... \n",
+ "1200 College Private Female 18 Mobile No \n",
+ "1201 College Private Female 18 Mobile No \n",
+ "1202 School Private Male 11 Mobile No \n",
+ "1203 College Private Female 18 Mobile No \n",
+ "1204 School Private Female 11 Mobile No \n",
+ "\n",
+ " Location Financial Condition Internet Type Network Type \\\n",
+ "0 Town Mid Wifi 4G \n",
+ "2 Town Mid Wifi 4G \n",
+ "5 Town Poor Mobile Data 3G \n",
+ "8 Town Mid Wifi 4G \n",
+ "9 Town Mid Mobile Data 3G \n",
+ "... ... ... ... ... \n",
+ "1200 Town Mid Wifi 4G \n",
+ "1201 Rural Mid Wifi 4G \n",
+ "1202 Town Mid Mobile Data 3G \n",
+ "1203 Rural Mid Wifi 4G \n",
+ "1204 Town Poor Mobile Data 3G \n",
+ "\n",
+ " Flexibility Level age_group \n",
+ "0 Moderate average \n",
+ "2 Moderate average \n",
+ "5 Low young \n",
+ "8 Low average \n",
+ "9 Moderate young \n",
+ "... ... ... \n",
+ "1200 Low average \n",
+ "1201 Moderate average \n",
+ "1202 Moderate young \n",
+ "1203 Low average \n",
+ "1204 Moderate young \n",
+ "\n",
+ "[1199 rows x 12 columns]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# удаление строк с пустыми значениями\n",
+ "df_cleaned = df.dropna()\n",
+ "print(df_cleaned)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Education Level Institution Type Gender Age Device IT Student \\\n",
+ "0 University Private Male 23 Tab No \n",
+ "1 University Private Female 23 Mobile No \n",
+ "2 College Public Female 18 Mobile No \n",
+ "3 School Private Female 11 Mobile No \n",
+ "4 School Private Female 18 Mobile No \n",
+ "... ... ... ... ... ... ... \n",
+ "1200 College Private Female 18 Mobile No \n",
+ "1201 College Private Female 18 Mobile No \n",
+ "1202 School Private Male 11 Mobile No \n",
+ "1203 College Private Female 18 Mobile No \n",
+ "1204 School Private Female 11 Mobile No \n",
+ "\n",
+ " Location Financial Condition Internet Type Network Type \\\n",
+ "0 Town Mid Wifi 4G \n",
+ "1 Town Mid Mobile Data 4G \n",
+ "2 Town Mid Wifi 4G \n",
+ "3 Town Mid Mobile Data 4G \n",
+ "4 Town Poor NaN 3G \n",
+ "... ... ... ... ... \n",
+ "1200 Town Mid Wifi 4G \n",
+ "1201 Rural Mid Wifi 4G \n",
+ "1202 Town Mid Mobile Data 3G \n",
+ "1203 Rural Mid Wifi 4G \n",
+ "1204 Town Poor Mobile Data 3G \n",
+ "\n",
+ " Flexibility Level age_group \n",
+ "0 Moderate average \n",
+ "1 Moderate average \n",
+ "2 Moderate average \n",
+ "3 Moderate young \n",
+ "4 Low average \n",
+ "... ... ... \n",
+ "1200 Low average \n",
+ "1201 Moderate average \n",
+ "1202 Moderate young \n",
+ "1203 Low average \n",
+ "1204 Moderate young \n",
+ "\n",
+ "[1205 rows x 12 columns]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Вычисление моды (наиболее часто встречающегося значения) для пустых значений\n",
+ "mode_Financial = df['Financial Condition'].mode()[0] \n",
+ "df.fillna({'Financial Condition':mode_Financial}, inplace=True)\n",
+ "print(df)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# линейная диаграмма (средний возраст по уровню образования)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(df[[\"Education Level\", \"Age\"]].groupby(\"Education Level\").mean())\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGdCAYAAAD60sxaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAyJ0lEQVR4nO3de1xU9b7/8TcioKhAqNyOgOY1EqzMaE7atmQLyjFNehwtTWu7tdzYRbq42dvU7IJp2W2bdh4PFH2cTLOjlZaaV8xCTdNMLVI3hR5upltQTK7r90fH+TXKdZxhGNfr+Xisx8O11nd95/Ply9C7Nd+Z8TAMwxAAAICJtHB1AQAAAE2NAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEynpasLaA6qq6uVl5endu3aycPDw9XlAACABjAMQ+fOnVNYWJhatGjcPR0CkKS8vDyFh4e7ugwAAGCHEydOqFOnTo26hgAkqV27dpJ++wH6+fm5uBoAANAQJSUlCg8Pt/53vDEIQJL1ZS8/Pz8CEAAAbsae5SssggYAAKZDAAIAAKZDAAIAAKbDGiAAAJqYYRiqrKxUVVWVq0tp1jw9PdWyZUunfEQNAQgAgCZUXl6u/Px8XbhwwdWluAVfX1+FhobK29vbof0SgAAAaCLV1dXKycmRp6enwsLC5O3tzQfw1sIwDJWXl+vUqVPKyclR9+7dG/1hh3UhAAEA0ETKy8tVXV2t8PBw+fr6urqcZq9169by8vLSzz//rPLycrVq1cphfbMIGgCAJubIOxnXOmf9rJgBAABgOgQgAABgOqwBAgDAxTr/9dMmfbyf5iTadV1WVpb69++vhIQEffpp09bsaNwBAgAADZKenq7HHntMO3bsUF5enqvLuSoEIAAAUK/z589r5cqVmjx5shITE5WRkWFz/pNPPlH37t3VqlUr3XXXXVq6dKk8PDx09uxZa5udO3dqwIABat26tcLDw/X444+rtLS0aQfyfwhAAACgXh988IF69eqlnj17auzYsVq8eLEMw5Ak5eTk6L777tOIESP07bff6pFHHtHf//53m+uPHz+uhIQEJSUl6eDBg1q5cqV27typKVOmuGI4rAECAFxbalpPY++aF/x/6enpGjt2rCQpISFBxcXFyszM1MCBA/Xuu++qZ8+emjdvniSpZ8+eOnTokF566SXr9WlpaRozZoyefPJJSVL37t311ltv6Q9/+IMWLlzo0M/4aQjuAAEAgDplZ2drz549uv/++yVJLVu21KhRo5Senm49369fP5trbrvtNpv9b7/9VhkZGWrbtq11i4+Pt346dlPjDhAAAKhTenq6KisrFRYWZj1mGIZ8fHz0j3/8o0F9nD9/Xo888ogef/zxK85FREQ4rNaGIgABAIBaVVZWatmyZXrttdc0ePBgm3MjRozQ+++/r549e+qzzz6zOff111/b7N9yyy06cuSIunXr5vSaG4IABAAAarVu3Tr961//0oQJE+Tv729zLikpSenp6frggw80f/58TZs2TRMmTNCBAwes7xK79GWv06ZN0+23364pU6boz3/+s9q0aaMjR45o06ZNDb6L5EisAQIAALVKT09XXFzcFeFH+i0A7d27V+fOndOHH36o1atXKyYmRgsXLrS+C8zHx0eSFBMTo8zMTP34448aMGCAbr75Zs2YMcPmZbWmxB0gAABcrDm/S23t2rW1nrvtttusb4WPiYnRPffcYz330ksvqVOnTjbv7urXr58+//xz5xXbCAQgAABw1d555x3169dP7du315dffql58+a57DN+GoIABAAArtrRo0f14osv6syZM4qIiNBTTz2l1NRUV5dVKwIQAAC4aq+//rpef/11V5fRYCyCBgAApkMAAgAApkMAAgCgiV165xTq56yfFQEIAIAm4uXlJUm6cOGCiytxH5d+Vpd+do7CImgAAJqIp6enAgICVFRUJEny9fW1flIybBmGoQsXLqioqEgBAQHy9PR0aP8EIAAAmlBISIgkWUMQ6hYQEGD9mTkSAQgAgCbk4eGh0NBQBQUFqaKiwtXlNGteXl4Ov/NzCQEIAAAX8PT0dNp/3FE/FkEDAADTcWkAWrhwoWJiYuTn5yc/Pz9ZLBatX7/een7gwIHy8PCw2R599FGbPnJzc5WYmChfX18FBQXpmWeeUWVlZVMPBQAAuBGXvgTWqVMnzZkzR927d5dhGFq6dKmGDx+u/fv368Ybb5QkTZw4UbNnz7Ze4+vra/13VVWVEhMTFRISoq+++kr5+fkaN26cvLy89PLLLzf5eK4Vnf/6aY3Hm/O3FQMA0BguDUDDhg2z2X/ppZe0cOFC7dq1yxqAfH19a139/fnnn+vIkSPavHmzgoODddNN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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# гистограмма\n",
+ "df.plot.hist(column=[\"Age\"], bins=80)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Age Axes(0.125,0.11;0.775x0.77)\n",
+ "dtype: object"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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a2vTq1evKqcPAABwYA7qO0Ov//jbCSecsM8xdXV1+wyhJFmwYEF69OiRM888M9dff302bdq017Hbt29PU1NTqwUAAKAaBxxDu3btyg033JALLrgggwYN2uOYjRs35tZbb8111123z2ONGTMm9957b+bPn5+//du/zcKFCzN27Njs3Llzj+NnzJiRbt26tSx9+/Y90MsAAAAKVdWPyf2+yZMnZ/ny5XniiSf2uL2pqSkXXXRR3v72t+eWW27Z57GuuOKKlj+fddZZGTx4cE4//fQsWLAgI0aM2G38tGnTMnXq1FbnEkQAAEA1DujJ0JQpU/Lwww/nsccey8knn7zb9pdffjljxoxJ165dM3fu3BxzzDFVHb9///456aSTUl9fv8fttbW1qaura7UAAABUo6oYqlQqmTJlSubOnZtHH300/fr1221MU1NTRo0alWOPPTYPPfRQOnbsWPWknn/++WzatCm9e/euel8AAID9UVUMTZ48Od/73vdy3333pWvXrmloaEhDQ0O2bt2a5L9CqLm5OXfeeWeamppaxvz+938GDhyYuXPnJkm2bNmST33qU1m8eHHWrFmT+fPnZ/z48RkwYEBGjx59CC8VAADgv1T1naHbb789STJs2LBW6+++++5MmjQpTz/9dJ566qkkyYABA1qNWb16dU477bQkyYoVK1reRNe+ffs8++yzueeee7J58+b06dMno0aNyq233pra2toDuSYAAIA3VFUMVSqVfW4fNmzYG475w+N06tQpP/rRj6qZBgAAwEE7qN8zBAAA8GYlhgAAgCKJIQAAoEhiCAAAKJIYAgAAiiSGAACAIokhAACgSGIIAAAokhgCAACKJIYAAIAiiSEAAKBIYggAACiSGAIAAIokhgAAgCKJIQAAoEhiCAAAKJIYAgAAiiSGAACAIokhAACgSGIIAAAokhgCAACKJIYAAIAiiSEAAKBIYggAACiSGAIAAIokhgAAgCKJIQAAoEhiCAAAKJIYAgAAiiSGAACAIokhAACgSGIIAAAokhgCAACKJIYAAIAiiSEAAKBIYggAACiSGAIAAIokhgAAgCKJIQAAoEhiCAAAKJIYAgAAiiSGAACAIokhAACgSGIIAAAokhgCAACKJIYAAIAiiSEAAKBIYggAACiSGAIAAIokhgAAgCKJIQAAoEhiCAAAKJIYAgAAiiSGAACAIokhAACgSGIIAAAokhgCAACKJIYAAIAiiSEAAKBIYggAACiSGAIAAIokhgAAgCKJIQAAoEhiCAAAKJIYAgAAiiSGAACAIokhAACgSFXF0IwZM3Leeeela9eu6dGjRyZMmJAVK1a0GrNt27ZMnjw5J554Yrp06ZLLLrssGzZs2OdxK5VKbrrppvTu3TudOnXKyJEjs3LlyuqvBgAAYD9VFUMLFy7M5MmTs3jx4jzyyCPZsWNHRo0alebm5pYxf/M3f5N/+Zd/yQ9+8IMsXLgw69aty6WXXrrP437lK1/Jt771rdxxxx156qmn0rlz54wePTrbtm07sKsCAAB4Ax2qGTxv3rxWn2fNmpUePXpk6dKlufDCC9PY2Jg777wz9913X97//vcnSe6+++78yZ/8SRYvXpz3vve9ux2zUqnktttuy4033pjx48cnSe6999707NkzDz74YK644ooDvTYAAIC9OqjvDDU2NiZJTjjhhCTJ0qVLs2PHjowcObJlzMCBA3PKKadk0aJFezzG6tWr09DQ0Gqfbt26ZciQIXvdZ/v27Wlqamq1AAAAVOOAY2jXrl254YYbcsEFF2TQoEFJkoaGhhx77LE5/vjjW43t2bNnGhoa9nic19f37Nlzv/eZMWNGunXr1rL07dv3QC8DAAAo1AHH0OTJk7N8+fLMmTPnUM5nv0ybNi2NjY0ty9q1a4/4HAAAgDe3A4qhKVOm5OGHH85jjz2Wk08+uWV9r1698uqrr2bz5s2txm/YsCG9evXa47FeX/+Hb5zb1z61tbWpq6trtQAAAFSjqhiqVCqZMmVK5s6dm0cffTT9+vVrtf3cc8/NMccck/nz57esW7FiRZ577rmcf/75ezxmv3790qtXr1b7NDU15amnntrrPgAAAAerqhiaPHlyvve97+W+++5L165d09DQkIaGhmzdujXJ7158cM0112Tq1Kl57LHHsnTp0lx99dU5//zzW71JbuDAgZk7d26SpKamJjfccEO++MUv5qGHHsovf/nLXHXVVenTp08mTJhw6K4UAADg91T1au3bb789STJs2LBW6+++++5MmjQpSfLNb34z7dq1y2WXXZbt27dn9OjR+fu///tW41esWNHyJrok+fSnP53m5uZcd9112bx5c4YOHZp58+alY8eOB3BJAAAAb6yqGKpUKm84pmPHjpk5c2Zmzpy5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AACAIokhAACgSGIIAAAokhgCAACKJIYAAIAiiSEAAKBIYggAACiSGAIAAIokhgAAgCKJIQAAoEhiCAAAKJIYAgAAiiSGAACAIokhAACgSGIIAAAokhgCAACKVHUMPf744xk3blz69OmTmpqaPPjggy3bduzYkc985jM566yz0rlz5/Tp0ydXXXVV1q1bt89j3nLLLampqWm1DBw4sOqLAQAA2F9Vx1Bzc3POPvvszJw5c7dtr7zySp5++ul8/vOfz9NPP50HHnggK1asyMUXX/yGx33HO96R9evXtyxPPPFEtVMDAADYbx2q3WHs2LEZO3bsHrd169YtjzzySKt13/72t/Oe97wnzz33XE455ZS9T6RDh/Tq1ava6QAAAByQw/6docbGxtTU1OT444/f57iVK1emT58+6d+/fz760Y/mueee2+vY7du3p6mpqdUCAABQjcMaQ9u2bctnPvOZXHnllamrq9vruCFDhmTWrFmZN29ebr/99qxevTrve9/78vLLL+9x/IwZM9KtW7eWpW/fvofrEgAAgLeowxZDO3bsyIc+9KFUKpXcfvvt+xw7duzYfPCDH8zgwYMzevTo/Ou//ms2b96cf/iHf9jj+GnTpqWxsbFlWbt27eG4BAAA4C2s6u8M7Y/XQ+g3v/lNHn300X0+FdqT448/PmeccUbq6+v3uL22tja1tbWHYqoAAEChDvmToddDaOXKlfnxj3+cE088sepjbNmyJatWrUrv3r0P9fQAAACSHEAMbdmyJcuWLcuyZcuSJKtXr86yZcvy3HPPZceOHbn88suzZMmSzJ49Ozt37kxDQ0MaGhry6quvthxjxIgR+fa3v93y+ZOf/GQWLlyYNWvW5Mknn8wll1yS9u3b58orrzz4KwQAANiDqn9MbsmSJRk+fHjL56lTpyZJJk6cmFtuuSUPPfRQkuSd73xnq/0ee+yxDBs2LEmyatWqbNy4sWXb888/nyuvvDKbNm1K9+7dM3To0CxevDjdu3evdnoAAAD7peoYGjZsWCqVyl6372vb69asWdPq85w5c6qdBgAAwEE57L9nCAAA4GgkhgAAgCKJIQAAoEhiCAAAKJIYAgAAiiSGAACAIokhAACgSGIIAAAokhgCAACKJIYAAIAiiSEAAKBIYggAACiSGAIAAIokhgAAgCKJIQAAoEhiCAAAKJIYAgAAiiSG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2bIlt9xyS374wx9m/fr1ee2117J169a9Phl65plnsmXLlpx44omt1m/duvUNf9wCgMOje/fuueiiizJr1qxUKpVcdNFFOemkk1qNWblyZW666aY89dRT2bhxY8sToeeeey6DBg3a7ZjPPPNMHnvssXTp0mW3batWrcoZZ5xxeC4GjjJiCI6wzp07Z8CAAa3WbdmyJdOnT8+ll1662/iOHTu2/PmYY45p+XNNTc1e171+E/zkJz+ZRx55JF/72tcyYMCAdOrUKZdffnleffXVPc5ty5Yt6d27dxYsWLDbtuOPP37/LhCAQ+4v//IvW34MeubMmbttHzduXE499dR897vfTZ8+fbJr164MGjRon/++HzduXP72b/92t229e/c+tJOHo5gYgqPAOeeckxUrVuwWSQfrpz/9aSZNmpRLLrkkye9ufmvWrNnnPBoaGtKhQ4ecdtpph3QuABy4MWPG5NVXX01NTU1Gjx7datumTZuyYsWKfPe738373ve+JMkTTzyxz+Odc845+ad/+qecdtpp6dDBfw5SLi9QgKPATTfdlHvvvTfTp0/Pv//7v+fXv/515syZkxtvvPGgjvvHf/zHeeCBB7Js2bI888wz+chHPrLXL9MmyciRI3P++ednwoQJ+bd/+7esWbMmTz75ZP7X//pfWbJkyUHNBYAD1759+/z617/Or371q7Rv377Vtre97W058cQT87//9/9OfX19Hn300UydOnWfx5s8eXJeeumlXHnllfn5z3+eVatW5Uc/+lGuvvrq7Ny583BeChxVxBAcBUaPHp2HH344//Zv/5bzzjsv733ve/PNb34zp5566kEd9xvf+Ebe9ra35U//9E8zbty4jB49Ouecc85ex9fU1ORf//Vfc+GFF+bqq6/OGWeckSuuuCK/+c1vWr6jBEDbqKurS11d3W7r27Vrlzlz5mTp0qUZNGhQ/uZv/iZf/epX93msPn365Kc//Wl27tyZUaNG5ayzzsoNN9yQ448/Pu3a+c9DylFTqVQqbT0JAACAI036AwAARRJDAABAkcQQAABQJDEEAAAUSQwBAABFEkMAAECRxBAAAFAkMQQAABRJDAEAAEUSQwAAQJHEEAAAUCQxBAAAFOn/A/FQtkDgztbSAAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# ящик с усами\n",
+ "df.plot.box(column=\"Age\", by=\"Gender\", figsize=(10, 8))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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v7+/unbtqsjIyLNuY7fblZWV5fYCAAA4o0zDSnJysiSpWbNmbu3NmjVzLfu9qVOnyt/f3/UKCgoqy5IAAICX8/jdQBMmTFBmZqbrlZSU5OmSAACAhZRpWGnevLkkKSUlxa09JSXFtez3fHx85Ofn5/YCAAA4o0zDSps2bdS8eXOFhYW52rKysrR582Z169atLA8FAACqiFLfDZSTk6ODBw+63ickJCg6OloNGzZUq1at9MQTT+jVV19Vu3bt1KZNG7344osKDAzUwIEDy7JuAABQRZQ6rERFRal3796u9+PGjZMkDRs2TKGhoXr22WeVm5urkSNHKiMjQzfddJOWL18uX1/fsqsaAABUGaUOK7169ZIx5g+X22w2vfLKK3rllVcuqjAAAADJAncDAQAAnAthBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWBphBQAAWFqZh5VJkybJZrO5va644oqyPgwAAKgiapTHTq+88kqtWrXq14PUKJfDAACAKqBcUkSNGjXUvHnz8tg1AACoYsplzMqBAwcUGBioyy67TEOHDlViYuIfrmu325WVleX2AgAAOKPMw0rXrl0VGhqq5cuXa8aMGUpISFDPnj2VnZ191vWnTp0qf39/1ysoKKisSwIAAF7MZowx5XmAjIwMtW7dWu+8846GDx9eYrndbpfdbne9z8rKUlBQkDIzM+Xn51emtayKTdGIuVFluk8AALzR4dfuKNP9ZWVlyd/fv1y+v8t95GtAQIDat2+vgwcPnnW5j4+PfHx8yrsMAADgpcr9OSs5OTmKj49XixYtyvtQAACgEirzsPL0009r3bp1Onz4sDZu3Ki7775b1atX15AhQ8r6UAAAoAoo826go0ePasiQITp16pSaNGmim266SZs2bVKTJk3K+lAAAKAKKPOwsnDhwrLeJQAAqMKYGwgAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFgaYQUAAFhauYWV6dOn69JLL5Wvr6+6du2qLVu2lNehAABAJVYuYWXRokUaN26cJk6cqO3bt+vqq69WSEiIUlNTy+NwAACgEiuXsPLOO+/okUce0UMPPaSOHTtq5syZqlOnjj799NPyOBwAAKjEapT1DgsLC7Vt2zZNmDDB1VatWjX16dNHkZGRJda32+2y2+2u95mZmZKkrKyssi5NuTnZctrzyny/AAB4m7L+nj2zP2NMme5XKoewcvLkSTkcDjVr1sytvVmzZtq3b1+J9adOnaqXX365RHtQUFBZlwYAAH7h/1757Dc7O1v+/v5lus8yDyulNWHCBI0bN8713ul0Kj09XY0aNZLNZivTY2VlZSkoKEhJSUny8/Mr031bQWU/P6nynyPn5/0q+zlyft6vvM7RGKPs7GwFBgaW2T7PKPOw0rhxY1WvXl0pKSlu7SkpKWrevHmJ9X18fOTj4+PWFhAQUNZlufHz86u0/wilyn9+UuU/R87P+1X2c+T8vF95nGNZX1E5o8wH2NaqVUvXX3+9wsLCXG1Op1NhYWHq1q1bWR8OAABUcuXSDTRu3DgNGzZMf/nLX9SlSxe99957ys3N1UMPPVQehwMAAJVYuYSV++67T2lpaXrppZeUnJysa665RsuXLy8x6Lai+fj4aOLEiSW6nSqLyn5+UuU/R87P+1X2c+T8vJ83nqPNlMc9RgAAAGWEuYEAAIClEVYAAIClEVYAAIClVcqwMmnSJF1zzTWu9w8++KAGDhzosXqAqig0NLTcn5kk8fONqunSSy/Ve++959EaKupnXLJoWElOTtbjjz+uyy67TD4+PgoKClL//v3dnt0CoPylpaXp0UcfVatWreTj46PmzZsrJCREERERni4N8Eq9evXSE088UaK9tF/8W7du1ciRI8uusAtw3333af/+/a73v79QUJY8/rj93zt8+LB69OihgIAAvfnmm+rUqZOKioq0YsUKjR49+qzzCwEoH4MGDVJhYaHmzJmjyy67TCkpKQoLC9OpU6c8XRpQpTVp0qRc92+MkcPhUI0afxwTateurdq1a5drHWdY7srKY489JpvNpi1btmjQoEFq3769rrzySo0bN06bNm2SJCUmJmrAgAGqV6+e/Pz89Pe//73E4/3Pxel0aurUqWrTpo1q166tq6++Wl999ZXbOt9//73atWsnX19f9e7dW3PmzJHNZlNGRoZrnfDwcPXs2VO1a9dWUFCQxo4dq9zc3DL5HABPy8jI0IYNG/T666+rd+/eat26tbp06aIJEyborrvucq0zatQoNWvWTL6+vrrqqqu0ZMkSt/2sWLFCHTp0UL169dSvXz+dOHHCtczpdOqVV15Ry5Yt5ePj43om02/t2rVLf/3rX1W7dm01atRII0eOVE5OTvl/AICHnOnafOutt9SiRQs1atRIo0ePVlFRkWud33YDPfDAA7rvvvvc9lFUVKTGjRtr7ty5kv78e2/t2rWy2WxatmyZrr/+evn4+Cg8PFwxMTHq3bu36tevLz8/P11//fWKioqS5H41KDQ0VC+//LJiYmJks9lks9kUGhqqhx9+WHfeeWeJ2po2bapZs2ad92diqbCSnp6u5cuXa/To0apbt26J5QEBAXI6nRowYIDS09O1bt06rVy5UocOHSrxP+pcpk6dqrlz52rmzJnas2ePnnzySf3jH//QunXrJEkJCQm69957NXDgQMXExGjUqFF6/vnn3fYRHx+vfv36adCgQdq5c6cWLVqk8PBwjRkz5uI+BMAi6tWrp3r16mnx4sWy2+0lljudTt1+++2KiIjQZ599ptjYWL322muqXr26a528vDy99dZbmjdvntavX6/ExEQ9/fTTruX//e9/9fbbb+utt97Szp07FRISorvuuksHDhyQJOXm5iokJEQNGjTQ1q1b9eWXX2rVqlX8nKHSW7NmjeLj47VmzRrNmTNHoaGhCg0NPeu6Q4cO1Q8//OAW4lesWKG8vDzdfffdkv78e++M5557Tq+99pr27t2rzp07a+jQoWrZsqW2bt2qbdu26bnnnlPNmjVL1HDffffpqaee0pVXXqkTJ07oxIkTuu+++zRixAgtX77c7Y+UJUuWKC8vr1Tf2zIWsnnzZiPJfPPNN3+4zk8//WSqV69uEhMTXW179uwxksyWLVuMMcZMnDjRXH311a7lw4YNMwMGDDDGGFNQUGDq1KljNm7c6Lbf4cOHmyFDhhhjjBk/fry56qqr3JY///zzRpI5ffq0a/2RI0e6rbNhwwZTrVo1k5+fX6rzBqzqq6++Mg0aNDC+vr6me/fuZsKECSYmJsYYY8yKFStMtWrVTFxc3Fm3nT17tpFkDh486GqbPn26adasmet9YGCgmTx5stt2N9xwg3nssceMMcZ8/PHHpkGDBiYnJ8e1/McffzTVqlUzycnJxhj3n2/A6m655Rbz73//u0T77Nmzjb+/vzHm53/TrVu3NsXFxa7lgwcPNvfdd5/rfevWrc27775rjDGmqKjING7c2MydO9e1fMiQIa71z+d7b82aNUaSWbx4sds69evXN6GhoWc9l9/WbEzJ794zOnbsaF5//XXX+/79+5sHH3zwrPv8I5a6smLO42G6e/fuVVBQkIKCglxtHTt2VEBAgPbu3fun2x88eFB5eXm67bbbXH851qtXT3PnzlV8fLwkKS4uTjfccIPbdl26dHF7HxMTo9DQULd9hISEyOl0KiEh4XxOF7C8QYMG6fjx4/r+++/Vr18/rV27Vtddd51CQ0MVHR2tli1bqn379n+4fZ06dXT55Ze73rdo0UKpqamSfp6m/vjx4+rRo4fbNj169HD9LO/du1dXX32125XWHj16yOl0Ki4urixPFbCUK6+80u0q5W9/dn6vRo0a+vvf/6758+dL+vmK5HfffaehQ4dKOr/vvTP+8pe/uL0fN26cRowYoT59+ui1114rsf75GDFihGbPni1JSklJ0bJly/Twww+Xah+WGmDbrl072Wy2ch1Ee+Yy2Y8//qhLLrnEbVlp5knIycnRqFGjNHbs2BLLWrVqdXFFAhbi6+ur2267TbfddptefPFFjRgxQhMnTnTrzvkjv79cbLPZzuuPEqCy8vPzU2ZmZon2jIwM+fv7u96f7WfH6XT+4X6HDh2qW265RampqVq5cqVq166tfv36SSrd997vh2BMmjRJDzzwgH788UctW7ZMEydO1MKFC13dS+fjn//8p5577jlFRkZq48aNatOmjXr27Hne20sWG7PSsGFDhYSEaPr06WcdqJqRkaEOHTooKSlJSUlJrvbY2FhlZGSoY8eOf3qMjh07ysfHR4mJiWrbtq3b68zVmuDgYNcAojO2bt3q9v66665TbGxsiX20bdtWtWrVupDTB7xCx44dlZubq86dO+vo0aNuty6Whp+fnwIDA0vcBh0REeH6We7QoYNiYmLcfh9ERESoWrVqCg4OvvCTADwkODhY27dvL9G+ffv2c16l/DPdu3dXUFCQFi1apPnz52vw4MGuwHM+33vn0r59ez355JP66aefdM8997iukvxerVq15HA4SrQ3atRIAwcO1OzZsxUaGqqHHnqo1OdnqSsrkjR9+nT16NFDXbp00SuvvKLOnTuruLhYK1eu1IwZMxQbG6tOnTpp6NCheu+991RcXKzHHntMt9xyS4nLV2dTv359Pf3003ryySfldDp10003KTMzUxEREfLz89OwYcM0atQovfPOOxo/fryGDx+u6Oho18Amm80mSRo/frxuvPFGjRkzRiNGjFDdunUVGxurlStXatq0aeX5EQEV4tSpUxo8eLAefvhhde7cWfXr11dUVJTeeOMNDRgwQLfccotuvvlmDRo0SO+8847atm2rffv2yWazuf6i+zPPPPOMJk6cqMsvv1zXXHONZs+erejoaNfl7KFDh2rixIkaNmyYJk2apLS0ND3++OP6v//7P4/P4g5ciEcffVTTpk3T2LFjNWLECPn4+OjHH3/U559/rh9++OGi9v3AAw9o5syZ2r9/v9asWeNqP5/vvbPJz8/XM888o3vvvVdt2rTR0aNHtXXrVg0aNOis61966aVKSEhwdRHXr1/fdeVmxIgRuvPOO+VwOP7weOdUqhEuFeT48eNm9OjRpnXr1qZWrVrmkksuMXfddZdZs2aNMcaYI0eOmLvuusvUrVvX1K9f3wwePNg12M6Ycw+wNcYYp9Np3nvvPRMcHGxq1qxpmjRpYkJCQsy6detc63z33Xembdu2xsfHx/Tq1cvMmDHDSHIbPLtlyxZz2223mXr16pm6deuazp07lxgsCHirgoIC89xzz5nrrrvO+Pv7mzp16pjg4GDzwgsvmLy8PGOMMadOnTIPPfSQadSokfH19TVXXXWVWbJkiTGm5OA7Y4z59ttvzW9/7TgcDjNp0iRzySWXmJo1a5qrr77aLFu2zG2bnTt3mt69extfX1/TsGFD88gjj5js7GzXcgbYwtuc+e5o0qSJ8ff3N127djXffvuta/nZ/k3/+9//Nrfccovr/W8H2J4RGxtrJJnWrVsbp9PptuzPvvfODLA9cxOJMcbY7XZz//33m6CgIFOrVi0TGBhoxowZ4/oe/P3PeEFBgRk0aJAJCAgwkszs2bPdjt+6dWvzt7/9rdSflzHG2IyhA/l8TJ48WTNnznTrfgIAAH8uJydHl1xyiWbPnq177rmn1NtbrhvIKj788EPdcMMNatSokSIiIvTmm2/ybAcAAErB6XTq5MmTevvttxUQEOB6oGRpEVb+wIEDB/Tqq68qPT1drVq10lNPPaUJEyZ4uiwAALxGYmKi2rRpo5YtWyo0NPScj+8/F7qBAACApVnq1mUAAIDfI6wAAABLI6wAAABLI6wAAABLI6wAAABLI6wAlYzNZtPixYs9XYYefPBBDRw40NNllLvQ0FAFBAR4ugygUiOsABb14IMPymazlXid77w7FeXw4cOy2WyKjo52a//vf//rmlOrPFklnAEoPzwUDrCwfv36lZjh9PdTulvVb6e7B4CLwZUVwMJ8fHzUvHlzt1eDBg1cyw8cOKCbb75Zvr6+6tixo1auXOm2/dq1a2Wz2ZSRkeFqi46Ols1m0+HDh11tERER6tWrl+rUqaMGDRooJCREp0+fliQtX75cN910kwICAtSoUSPdeeedio+Pd23bpk0bSdK1114rm82mXr16SSrZDWS32zV27Fg1bdpUvr6+uummm7R169YStYaFhekvf/mL6tSpo+7duysuLu6iPsP//e9/6tChg3x9fXXFFVfoww8/dC3r3r27xo8f77Z+WlqaatasqfXr17vqfvrpp3XJJZeobt266tq1q9auXXtRNQEoHcIK4KWcTqfuuece1apVS5s3b9bMmTNLfPGej+joaN16663q2LGjIiMjFR4erv79+8vhcEiScnNzNW7cOEVFRSksLEzVqlXT3XffLafTKUnasmWLJGnVqlU6ceKEvvnmm7Me59lnn9XXX3+tOXPmaPv27Wrbtq1CQkKUnp7utt7zzz+vt99+W1FRUapRo4YefvjhUp/TGfPnz9dLL72kyZMna+/evZoyZYpefPFFzZkzR5I0dOhQLVy4UL99kPeiRYsUGBionj17SpLGjBmjyMhILVy4UDt37tTgwYPVr18/HThw4ILrAlBKFzRXM4ByN2zYMFO9enVTt25dt9fkyZONMcasWLHC1KhRwxw7dsy1zbJly4wk13TzZ5v2fceOHUaSSUhIMMYYM2TIENOjR4/zristLc1IMrt27TLGGJOQkGAkmR07dpSo/8w09zk5OaZmzZpm/vz5ruWFhYUmMDDQvPHGG261rlq1yrXOjz/+aCS5pqQ/m9+e7+9dfvnlZsGCBW5t//nPf0y3bt2MMcakpqaaGjVqmPXr17uWd+vWzYwfP94YY8yRI0dM9erV3T5jY4y59dZbzYQJE4wxxsyePdv4+/v/YX0ALh5jVgAL6927t2bMmOHW1rBhQ0nS3r17FRQUpMDAQNeybt26lfoY0dHRGjx48B8uP3DggF566SVt3rxZJ0+edF1RSUxM1FVXXXVex4iPj1dRUZF69OjhaqtZs6a6dOmivXv3uq3buXNn13+3aNFCkpSamqpWrVqd9zlJP18Rio+P1/Dhw/XII4+42ouLi13jaZo0aaK+fftq/vz56tmzpxISEhQZGamPPvpIkrRr1y45HA61b9/ebd92u12NGjUqVT0ALhxhBbCwunXrqm3bthe8fbVqP/f0mt90cxQVFbmtU7t27XPuo3///mrdurU++eQTBQYGyul06qqrrlJhYeEF13UuNWvWdP23zWaTJFdAKo2cnBxJ0ieffKKuXbu6Latevbrrv4cOHaqxY8fqgw8+0IIFC9SpUyd16tTJtY/q1atr27ZtbttIUr169UpdE4ALw5gVwEt16NBBSUlJOnHihKtt06ZNbus0adJEktzW+f0txp07d1ZYWNhZj3Hq1CnFxcXphRde0K233qoOHTq4Bt6eUatWLUlyjXE5m8svv1y1atVSRESEq62oqEhbt25Vx44dz3GWF65Zs2YKDAzUoUOH1LZtW7fXmUHBkjRgwAAVFBRo+fLlWrBggYYOHepadu2118rhcCg1NbXEPpo3b14udQMoiSsrgIXZ7XYlJye7tdWoUUONGzdWnz591L59ew0bNkxvvvmmsrKy9Pzzz7ut27ZtWwUFBWnSpEmaPHmy9u/fr7ffftttnQkTJqhTp0567LHH9K9//Uu1atXSmjVrNHjwYDVs2FCNGjXSxx9/rBYtWigxMVHPPfec2/ZNmzZV7dq1tXz5crVs2VK+vr4lbluuW7euHn30UT3zzDNq2LChWrVqpTfeeEN5eXkaPnz4RX9OCQkJJUJYu3bt9PLLL2vs2LHy9/dXv379ZLfbFRUVpdOnT2vcuHGu2gYOHKgXX3xRe/fu1ZAhQ1z7aN++vYYOHap//vOfevvtt3XttdcqLS1NYWFh6ty5s+64446Lrh3AefD0oBkAZzds2DAjqcQrODjYtU5cXJy56aabTK1atUz79u3N8uXLSww4DQ8PN506dTK+vr6mZ8+e5ssvv3QbYGuMMWvXrjXdu3c3Pj4+JiAgwISEhLgG5a5cudJ06NDB+Pj4mM6dO5u1a9eWOMYnn3xigoKCTLVq1cwtt9ziqv/MAFtjjMnPzzePP/64ady4sfHx8TE9evQwW7ZscS0/n8HAZ3O2z0iS2bBhgzHGmPnz55trrrnG1KpVyzRo0MDcfPPN5ptvvnHbx9KlS40kc/PNN5fYf2FhoXnppZfMpZdeamrWrGlatGhh7r77brNz505jDANsgYpgM+Y3ndkAAAAWw5gVAABgaYQVAABgaYQVAABgaYQVAABgaYQVAABgaYQVAABgaYQVAABgaYQVAABgaYQVAABgaYQVAABgaYQVAABgaf8fNJ5Opf4pWhEAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# диаграмма с областями \n",
+ "data = (df[[ \"Education Level\", \"Age\"]].groupby(['Education Level']).mean())\n",
+ "data.plot.area()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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0L/+9S81bNhQHTt21BNPPKE77rijvMsDgEI1nbXB/u+fFwwqx0pQlprP2qBsXf1CPsa4Ix/FunFuSkqKli1bpiNHjkiS2rRpowkTJsjX17dUiyuqn3/+WT179pSfn58WLlyodu3aKSsrS1988YUmTZqkH374oVzqAoCiuD6o3TiP4FZ5hb+6XfHJmfbpK7o67m39vfTZ42buHEH5cfqig/3796t58+b6y1/+onPnzuncuXN69dVX1bx5c3333XeuqLFQjz32mGw2m/bu3avhw4erZcuWatOmjaZNm6avv/5akpSYmKghQ4bIy8tLPj4+uvfee3XmzJkiv0dOTo4iIyMVHBwsDw8PdejQQR999JHDOuvXr1eLFi1Uq1Yt9e3bV++8845sNptSUlLs6+zevVu9evWSh4eHAgMDNWXKFGVkZJTKzwEAUHFcH9aud/hUehlXgorA6cA2depURURE6Oeff9batWu1du1aJSQkaPDgwXriiSdcUGLBzp07p02bNmnSpEny9PTMtdzPz085OTkaMmSIzp07p507d2rz5s366aefNHLkyCK/T2RkpFasWKGlS5fq+++/19SpU3X//fdr586dkqSEhATdc889Gjp0qA4ePKiHH35YTz/9tEMbx48f18CBAzV8+HDFxsZq1apV2r17tyZPnpzv+166dIkrcYFKLK+9a84sR8XUvJBxDWHccQOnD4nu379f//jHP1Sjxm+b1qhRQ3/605/UpUuXUi2uKI4dOybLsgq8ke/WrVt16NAhJSQkKDAwUJK0YsUKtWnTRvv27VPXrl0LfI9Lly7pxRdf1JYtW3TrrbdKkpo1a6bdu3frrbfeUp8+ffTWW28pNDRUCxculCSFhobq8OHDmj9/vr2dyMhIjRkzxh5sW7Roob/+9a/q06ePlixZolq1auV678jISD333HNO/UwAAGYr7H4KV8qkClQkTu9h8/HxUWJiYq75J06ckLe3d6kU5Yyi3JXkyJEjCgwMtIc16eoNgP38/Ozn4RXk2LFjyszM1IABA+Tl5WV/rVixQsePH5ckxcfH5wp+3bp1c5g+ePCgoqKiHNoIDw9XTk6OEhIS8nzv2bNnKzU11f46ceJEofUCAMxWvZDlxTrBHJWa078TI0eO1AMPPKBFixapR48ekqTo6GjNmDFDo0ePLvUCC9OiRQvZbDaXXliQnn71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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# диаграмма рассеяния \n",
+ "df.plot.scatter(x =\"Age\", y =\"Education Level\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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+AtEJZhOIj5GJScOxcdg+SOw9Z+mk4j8IqKxY++t8/Wmk4iPUslJdTtWOO6UcvJH00kk0HX4A/zhLxCVaDqJ+DCVnJyp9AR8MhE2/q/pJBKIIhpB/+nQ5QbTScQPqOTk3HL+A8se1NQ94jntBzj23qKTTCcRP6GSk/OrLIev/wpfzoDKEtNpxF/FNIM+T+nYm7icSk5q51gOfDwedq40nUT8SWg0XP4A9BoDIRGm04gfUslJ3Xz/sePaukPbTScRX2YJhotvhd9M0GUB4lYqOak7mw3++y58/hwczzGdRnxNu36OoUlNiSMeoJKT+rNWwIY34cvpmsZHapbcBX7/DLS6wnQSCSAqOXFeRQlkvAFf/QVKjplOI94mpjn89nHoeqOmwxGPU8mJ65QWwDevwjczobzQdBoxLSoZeo2GS+/USSVijEpOXK/oCPznJVg/V5cdBKImbaD3/Y49twZhptNIgFPJifsUH3PcNWXdbMjPNZ1G3K1pd7hsLKRdA0FBptOIACo58QSbDbKWQ8Y/HBO2iv+wBEOHq6HnPdDiMtNpRM6gkhPPOrzDUXabF+m4nS8Lj4Xut0DPuyAu1XQakXNSyYkZpQWw6W1Y9wYc3Wk6jdSKBVJ6Qtdh0GUYhEaaDiRSI5WcmGW3w65V8N18yF4JlaWmE8npEtIcMwJ0uh4aXWg6jUidqOTEe5QVQvYnsP0DR+FVFJtOFLhimkGnIdBlKCR3Np1GpN5UcuKdyosh+1PY/j5kfQoVRaYT+b/wWEi/FjoPhQsv0xmS4hdUcuL9Kkoce3bbP4CsT6D8pOlE/iOmueM2W+37Q9vf67o28TsqOfEtFaWOY3g7/+2Y1PVotulEviU8Flr8D7T6DbS6EuLbmE4k4lYqOfFtBXmw5z+Q86Xjz+N7TCfyLsFhkNoTWl7hKLWm3SAo2HQqEY9RyYl/KciDfd/CvgzHnwe2gLXcdCrPiUyApI5wQTfHMGRqL903UgKaSk78W0Up5G2GQ9vgSPZPjyw4sQ/sNtPp6q9BuGM+tqROjlJLTHd8rAlIRapRyUlgqiiFY7uqF9/RbDiy07tObIlo7DidPy4VktJ/KbMmrTXsKFILKjmR0xXkQeFBx9x4Jccdj+Ljv3xccrz6eyX5YKtwfK4l2FE+1f4McvxpCfrltZBwaBgPkfHQsInjERkPkYkQcwHENIXopo7lRKTeVHIirmC3a0JQES+kqz1FXEEFJ+KVVHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3VHIiIuK3/h+MJCsTcZ/WdAAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# круговая диаграмма \n",
+ "data = (df[[ \"Device\", \"Age\"]].groupby(['Device']).count())\n",
+ "data.plot.pie(x ='Device', y ='Age')"
+ ]
+ }
+ ],
+ "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.5"
+ },
+ "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/poetry.lock b/poetry.lock
new file mode 100644
index 0000000..7ae692c
--- /dev/null
+++ b/poetry.lock
@@ -0,0 +1,3061 @@
+# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
+
+[[package]]
+name = "anyio"
+version = "4.6.2.post1"
+description = "High level compatibility layer for multiple asynchronous event loop implementations"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"},
+ {file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"},
+]
+
+[package.dependencies]
+idna = ">=2.8"
+sniffio = ">=1.1"
+
+[package.extras]
+doc = ["Sphinx (>=7.4,<8.0)", "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", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"]
+trio = ["trio (>=0.26.1)"]
+
+[[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 = "3.0.0"
+description = "Annotate AST trees with source code positions"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"},
+ {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"},
+]
+
+[package.extras]
+astroid = ["astroid (>=2,<4)"]
+test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"]
+
+[[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.2.0"
+description = "An easy safelist-based HTML-sanitizing tool."
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"},
+ {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"},
+]
+
+[package.dependencies]
+webencodings = "*"
+
+[package.extras]
+css = ["tinycss2 (>=1.1.0,<1.5)"]
+
+[[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.1"
+description = "Foreign Function Interface for Python calling C code."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"},
+ {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"},
+ {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"},
+ {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"},
+ {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"},
+ {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"},
+ {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"},
+ {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"},
+ {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"},
+ {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"},
+ {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"},
+ {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"},
+ {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"},
+ {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"},
+ {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"},
+ {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"},
+ {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"},
+ {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"},
+ {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"},
+ {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"},
+ {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"},
+ {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"},
+ {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"},
+ {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"},
+ {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"},
+ {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"},
+ {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"},
+ {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"},
+ {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"},
+ {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"},
+ {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"},
+ {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"},
+ {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"},
+ {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"},
+ {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"},
+ {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"},
+ {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"},
+ {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"},
+ {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"},
+ {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"},
+ {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"},
+ {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"},
+ {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"},
+ {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"},
+ {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"},
+ {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"},
+ {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"},
+ {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"},
+ {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"},
+ {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"},
+ {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"},
+ {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"},
+ {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"},
+ {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"},
+ {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"},
+ {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"},
+ {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"},
+ {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"},
+ {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"},
+ {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"},
+ {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"},
+ {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"},
+ {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"},
+ {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"},
+ {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"},
+ {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"},
+ {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"},
+]
+
+[package.dependencies]
+pycparser = "*"
+
+[[package]]
+name = "charset-normalizer"
+version = "3.4.0"
+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.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"},
+ {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"},
+ {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"},
+ {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"},
+ {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"},
+ {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"},
+ {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"},
+ {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"},
+ {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"},
+ {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"},
+]
+
+[[package]]
+name = "cloudpickle"
+version = "3.1.0"
+description = "Pickler class to extend the standard pickle.Pickler functionality"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "cloudpickle-3.1.0-py3-none-any.whl", hash = "sha256:fe11acda67f61aaaec473e3afe030feb131d78a43461b718185363384f1ba12e"},
+ {file = "cloudpickle-3.1.0.tar.gz", hash = "sha256:81a929b6e3c7335c863c771d673d105f02efdb89dfaba0c90495d1c64796601b"},
+]
+
+[[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.1"
+description = "Python library for calculating contours of 2D quadrilateral grids"
+optional = false
+python-versions = ">=3.10"
+files = [
+ {file = "contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab"},
+ {file = "contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124"},
+ {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1"},
+ {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b"},
+ {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453"},
+ {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3"},
+ {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277"},
+ {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595"},
+ {file = "contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697"},
+ {file = "contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e"},
+ {file = "contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b"},
+ {file = "contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc"},
+ {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86"},
+ {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6"},
+ {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85"},
+ {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c"},
+ {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291"},
+ {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f"},
+ {file = "contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375"},
+ {file = "contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9"},
+ {file = "contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509"},
+ {file = "contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc"},
+ {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454"},
+ {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80"},
+ {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec"},
+ {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9"},
+ {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b"},
+ {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d"},
+ {file = "contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e"},
+ {file = "contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d"},
+ {file = "contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2"},
+ {file = "contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5"},
+ {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81"},
+ {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2"},
+ {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7"},
+ {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c"},
+ {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3"},
+ {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1"},
+ {file = "contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82"},
+ {file = "contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd"},
+ {file = "contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30"},
+ {file = "contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751"},
+ {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342"},
+ {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c"},
+ {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f"},
+ {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda"},
+ {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242"},
+ {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1"},
+ {file = "contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1"},
+ {file = "contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546"},
+ {file = "contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6"},
+ {file = "contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750"},
+ {file = "contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53"},
+ {file = "contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699"},
+]
+
+[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.9"
+description = "An implementation of the Debug Adapter Protocol for Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "debugpy-1.8.9-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:cfe1e6c6ad7178265f74981edf1154ffce97b69005212fbc90ca22ddfe3d017e"},
+ {file = "debugpy-1.8.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada7fb65102a4d2c9ab62e8908e9e9f12aed9d76ef44880367bc9308ebe49a0f"},
+ {file = "debugpy-1.8.9-cp310-cp310-win32.whl", hash = "sha256:c36856343cbaa448171cba62a721531e10e7ffb0abff838004701454149bc037"},
+ {file = "debugpy-1.8.9-cp310-cp310-win_amd64.whl", hash = "sha256:17c5e0297678442511cf00a745c9709e928ea4ca263d764e90d233208889a19e"},
+ {file = "debugpy-1.8.9-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:b74a49753e21e33e7cf030883a92fa607bddc4ede1aa4145172debc637780040"},
+ {file = "debugpy-1.8.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d22dacdb0e296966d7d74a7141aaab4bec123fa43d1a35ddcb39bf9fd29d70"},
+ {file = "debugpy-1.8.9-cp311-cp311-win32.whl", hash = "sha256:8138efff315cd09b8dcd14226a21afda4ca582284bf4215126d87342bba1cc66"},
+ {file = "debugpy-1.8.9-cp311-cp311-win_amd64.whl", hash = "sha256:ff54ef77ad9f5c425398efb150239f6fe8e20c53ae2f68367eba7ece1e96226d"},
+ {file = "debugpy-1.8.9-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:957363d9a7a6612a37458d9a15e72d03a635047f946e5fceee74b50d52a9c8e2"},
+ {file = "debugpy-1.8.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e565fc54b680292b418bb809f1386f17081d1346dca9a871bf69a8ac4071afe"},
+ {file = "debugpy-1.8.9-cp312-cp312-win32.whl", hash = "sha256:3e59842d6c4569c65ceb3751075ff8d7e6a6ada209ceca6308c9bde932bcef11"},
+ {file = "debugpy-1.8.9-cp312-cp312-win_amd64.whl", hash = "sha256:66eeae42f3137eb428ea3a86d4a55f28da9bd5a4a3d369ba95ecc3a92c1bba53"},
+ {file = "debugpy-1.8.9-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:957ecffff80d47cafa9b6545de9e016ae8c9547c98a538ee96ab5947115fb3dd"},
+ {file = "debugpy-1.8.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1efbb3ff61487e2c16b3e033bc8595aea578222c08aaf3c4bf0f93fadbd662ee"},
+ {file = "debugpy-1.8.9-cp313-cp313-win32.whl", hash = "sha256:7c4d65d03bee875bcb211c76c1d8f10f600c305dbd734beaed4077e902606fee"},
+ {file = "debugpy-1.8.9-cp313-cp313-win_amd64.whl", hash = "sha256:e46b420dc1bea64e5bbedd678148be512442bc589b0111bd799367cde051e71a"},
+ {file = "debugpy-1.8.9-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:472a3994999fe6c0756945ffa359e9e7e2d690fb55d251639d07208dbc37caea"},
+ {file = "debugpy-1.8.9-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:365e556a4772d7d0d151d7eb0e77ec4db03bcd95f26b67b15742b88cacff88e9"},
+ {file = "debugpy-1.8.9-cp38-cp38-win32.whl", hash = "sha256:54a7e6d3014c408eb37b0b06021366ee985f1539e12fe49ca2ee0d392d9ceca5"},
+ {file = "debugpy-1.8.9-cp38-cp38-win_amd64.whl", hash = "sha256:8e99c0b1cc7bf86d83fb95d5ccdc4ad0586d4432d489d1f54e4055bcc795f693"},
+ {file = "debugpy-1.8.9-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:7e8b079323a56f719977fde9d8115590cb5e7a1cba2fcee0986ef8817116e7c1"},
+ {file = "debugpy-1.8.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6953b335b804a41f16a192fa2e7851bdcfd92173cbb2f9f777bb934f49baab65"},
+ {file = "debugpy-1.8.9-cp39-cp39-win32.whl", hash = "sha256:7e646e62d4602bb8956db88b1e72fe63172148c1e25c041e03b103a25f36673c"},
+ {file = "debugpy-1.8.9-cp39-cp39-win_amd64.whl", hash = "sha256:3d9755e77a2d680ce3d2c5394a444cf42be4a592caaf246dbfbdd100ffcf7ae5"},
+ {file = "debugpy-1.8.9-py2.py3-none-any.whl", hash = "sha256:cc37a6c9987ad743d9c3a14fa1b1a14b7e4e6041f9dd0c8abf8895fe7a97b899"},
+ {file = "debugpy-1.8.9.zip", hash = "sha256:1339e14c7d980407248f09824d1b25ff5c5616651689f1e0f0e51bdead3ea13e"},
+]
+
+[[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.21.1"
+description = "Fastest Python implementation of JSON schema"
+optional = false
+python-versions = "*"
+files = [
+ {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"},
+ {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"},
+]
+
+[package.extras]
+devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"]
+
+[[package]]
+name = "featuretools"
+version = "1.31.0"
+description = "a framework for automated feature engineering"
+optional = false
+python-versions = "<4,>=3.9"
+files = [
+ {file = "featuretools-1.31.0-py3-none-any.whl", hash = "sha256:87c94e9ae959c89acd83da96bd2583f3ef0f6daaa9639cbb6e46dbde2c742a18"},
+ {file = "featuretools-1.31.0.tar.gz", hash = "sha256:01bfb17fcc1715b4c3623c7bc94a8982122c4a0fa03350ed478601bb81f90155"},
+]
+
+[package.dependencies]
+cloudpickle = ">=1.5.0"
+holidays = ">=0.17"
+numpy = ">=1.25.0"
+packaging = ">=20.0"
+pandas = ">=2.0.0"
+psutil = ">=5.7.0"
+scipy = ">=1.10.0"
+tqdm = ">=4.66.3"
+woodwork = ">=0.28.0"
+
+[package.extras]
+autonormalize = ["autonormalize (>=2.0.1)"]
+complete = ["featuretools[dask,nlp,premium]"]
+dask = ["dask[dataframe] (>=2023.2.0)", "distributed (>=2023.2.0)"]
+dev = ["black[jupyter] (>=23.1.0)", "featuretools[dask,docs,test]", "pre-commit (>=2.20.0)", "ruff (>=0.1.6)"]
+docs = ["Sphinx (==5.1.1)", "autonormalize (>=2.0.1)", "click (>=7.0.0)", "featuretools[dask,test]", "ipython (==8.4.0)", "jupyter (==1.0.0)", "jupyter-client (>=8.0.2)", "matplotlib (==3.7.2)", "myst-parser (==0.18.0)", "nbconvert (==6.5.0)", "nbsphinx (==0.8.9)", "pydata-sphinx-theme (==0.9.0)", "sphinx-copybutton (==0.5.0)", "sphinx-inline-tabs (==2022.1.2b11)"]
+nlp = ["nlp-primitives (>=2.12.0)"]
+premium = ["premium-primitives (>=0.0.3)"]
+sklearn = ["featuretools-sklearn-transformer (>=1.0.0)"]
+sql = ["featuretools-sql (>=0.0.1)", "psycopg2-binary (>=2.9.3)"]
+test = ["boto3 (>=1.34.32)", "composeml (>=0.8.0)", "graphviz (>=0.8.4)", "moto[all] (>=5.0.0)", "pip (>=23.3.0)", "pyarrow (>=14.0.1)", "pympler (>=0.8)", "pytest (>=7.1.2)", "pytest-cov (>=3.0.0)", "pytest-timeout (>=2.1.0)", "pytest-xdist (>=2.5.0)", "smart-open (>=5.0.0)", "urllib3 (>=1.26.18)"]
+tsfresh = ["featuretools-tsfresh-primitives (>=1.0.0)"]
+
+[[package]]
+name = "fonttools"
+version = "4.55.1"
+description = "Tools to manipulate font files"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "fonttools-4.55.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c17a6f9814f83772cd6d9c9009928e1afa4ab66210a31ced721556651075a9a0"},
+ {file = "fonttools-4.55.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c4d14eecc814826a01db87a40af3407c892ba49996bc6e49961e386cd78b537c"},
+ {file = "fonttools-4.55.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8589f9a15dc005592b94ecdc45b4dfae9bbe9e73542e89af5a5e776e745db83b"},
+ {file = "fonttools-4.55.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfee95bd9395bcd9e6c78955387554335109b6a613db71ef006020b42f761c58"},
+ {file = "fonttools-4.55.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:34fa2ecc0bf1923d1a51bf2216a006de2c3c0db02c6aa1470ea50b62b8619bd5"},
+ {file = "fonttools-4.55.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9c1c48483148bfb1b9ad951133ceea957faa004f6cb475b67e7bc75d482b48f8"},
+ {file = "fonttools-4.55.1-cp310-cp310-win32.whl", hash = "sha256:3e2fc388ca7d023b3c45badd71016fd4185f93e51a22cfe4bd65378af7fba759"},
+ {file = "fonttools-4.55.1-cp310-cp310-win_amd64.whl", hash = "sha256:c4c36c71f69d2b3ee30394b0986e5f8b2c461e7eff48dde49b08a90ded9fcdbd"},
+ {file = "fonttools-4.55.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5daab3a55d460577f45bb8f5a8eca01fa6cde43ef2ab943b527991f54b735c41"},
+ {file = "fonttools-4.55.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:acf1e80cf96c2fbc79e46f669d8713a9a79faaebcc68e31a9fbe600cf8027992"},
+ {file = "fonttools-4.55.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e88a0329f7f88a210f09f79c088fb64f8032fc3ab65e2390a40b7d3a11773026"},
+ {file = "fonttools-4.55.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03105b42259a8a94b2f0cbf1bee45f7a8a34e7b26c946a8fb89b4967e44091a8"},
+ {file = "fonttools-4.55.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9af3577e821649879ab5774ad0e060af34816af556c77c6d3820345d12bf415e"},
+ {file = "fonttools-4.55.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:34bd5de3d0ad085359b79a96575cd6bd1bc2976320ef24a2aa152ead36dbf656"},
+ {file = "fonttools-4.55.1-cp311-cp311-win32.whl", hash = "sha256:5da92c4b637f0155a41f345fa81143c8e17425260fcb21521cb2ad4d2cea2a95"},
+ {file = "fonttools-4.55.1-cp311-cp311-win_amd64.whl", hash = "sha256:f70234253d15f844e6da1178f019a931f03181463ce0c7b19648b8c370527b07"},
+ {file = "fonttools-4.55.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9c372e527d58ba64b695f15f8014e97bc8826cf64d3380fc89b4196edd3c0fa8"},
+ {file = "fonttools-4.55.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:845a967d3bef3245ba81fb5582dc731f6c2c8417fa211f1068c56893504bc000"},
+ {file = "fonttools-4.55.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03be82bcd4ba4418adf10e6165743f824bb09d6594c2743d7f93ea50968805b"},
+ {file = "fonttools-4.55.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c42e935cf146f826f556d977660dac88f2fa3fb2efa27d5636c0b89a60c16edf"},
+ {file = "fonttools-4.55.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:96328bf91e05621d8e40d9f854af7a262cb0e8313e9b38e7f3a7f3c4c0caaa8b"},
+ {file = "fonttools-4.55.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:291acec4d774e8cd2d8472d88c04643a77a3324a15247951bd6cfc969799b69e"},
+ {file = "fonttools-4.55.1-cp312-cp312-win32.whl", hash = "sha256:6d768d6632809aec1c3fa8f195b173386d85602334701a6894a601a4d3c80368"},
+ {file = "fonttools-4.55.1-cp312-cp312-win_amd64.whl", hash = "sha256:2a3850afdb0be1f79a1e95340a2059226511675c5b68098d4e49bfbeb48a8aab"},
+ {file = "fonttools-4.55.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0c88d427eaf8bd8497b9051f56e0f5f9fb96a311aa7c72cda35e03e18d59cd16"},
+ {file = "fonttools-4.55.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f062c95a725a79fd908fe8407b6ad63e230e1c7d6dece2d5d6ecaf843d6927f6"},
+ {file = "fonttools-4.55.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f298c5324c45cad073475146bf560f4110ce2dc2488ff12231a343ec489f77bc"},
+ {file = "fonttools-4.55.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f06dbb71344ffd85a6cb7e27970a178952f0bdd8d319ed938e64ba4bcc41700"},
+ {file = "fonttools-4.55.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4c46b3525166976f5855b1f039b02433dc51eb635fb54d6a111e0c5d6e6cdc4c"},
+ {file = "fonttools-4.55.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:af46f52a21e086a2f89b87bd941c9f0f91e5f769e1a5eb3b37c912228814d3e5"},
+ {file = "fonttools-4.55.1-cp313-cp313-win32.whl", hash = "sha256:cd7f36335c5725a3fd724cc667c10c3f5254e779bdc5bffefebb33cf5a75ecb1"},
+ {file = "fonttools-4.55.1-cp313-cp313-win_amd64.whl", hash = "sha256:5d6394897710ccac7f74df48492d7f02b9586ff0588c66a2c218844e90534b22"},
+ {file = "fonttools-4.55.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:52c4f4b383c56e1a4fe8dab1b63c2269ba9eab0695d2d8e033fa037e61e6f1ef"},
+ {file = "fonttools-4.55.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d83892dafdbd62b56545c77b6bd4fa49eef6ec1d6b95e042ee2c930503d1831e"},
+ {file = "fonttools-4.55.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604d5bf16f811fcaaaec2dde139f7ce958462487565edcd54b6fadacb2942083"},
+ {file = "fonttools-4.55.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3324b92feb5fd084923a8e89a8248afd5b9f9d81ab9517d7b07cc84403bd448"},
+ {file = "fonttools-4.55.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:30f8b1ca9b919c04850678d026fc330c19acaa9e3b282fcacc09a5eb3c8d20c3"},
+ {file = "fonttools-4.55.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:1835c98df2cf28c86a66d234895c87df7b9325fd079a8019c5053a389ff55d23"},
+ {file = "fonttools-4.55.1-cp38-cp38-win32.whl", hash = "sha256:9f202703720a7cc0049f2ed1a2047925e264384eb5cc4d34f80200d7b17f1b6a"},
+ {file = "fonttools-4.55.1-cp38-cp38-win_amd64.whl", hash = "sha256:2efff20aed0338d37c2ff58766bd67f4b9607ded61cf3d6baf1b3e25ea74e119"},
+ {file = "fonttools-4.55.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3032d9bf010c395e6eca2851666cafb1f4ecde85d420188555e928ad0144326e"},
+ {file = "fonttools-4.55.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0794055588c30ffe25426048e8a7c0a5271942727cd61fc939391e37f4d580d5"},
+ {file = "fonttools-4.55.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13ba980e3ffd3206b8c63a365f90dc10eeec27da946d5ee5373c3a325a46d77c"},
+ {file = "fonttools-4.55.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d7063babd7434a17a5e355e87de9b2306c85a5c19c7da0794be15c58aab0c39"},
+ {file = "fonttools-4.55.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ed84c15144015a58ef550dd6312884c9fb31a2dbc31a6467bcdafd63be7db476"},
+ {file = "fonttools-4.55.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e89419d88b0bbfdb55209e03a17afa2d20db3c2fa0d785543c9d0875668195d5"},
+ {file = "fonttools-4.55.1-cp39-cp39-win32.whl", hash = "sha256:6eb781e401b93cda99356bc043ababead2a5096550984d8a4ecf3d5c9f859dc2"},
+ {file = "fonttools-4.55.1-cp39-cp39-win_amd64.whl", hash = "sha256:db1031acf04523c5a51c3e1ae19c21a1c32bc5f820a477dd4659a02f9cb82002"},
+ {file = "fonttools-4.55.1-py3-none-any.whl", hash = "sha256:4bcfb11f90f48b48c366dd638d773a52fca0d1b9e056dc01df766bf5835baa08"},
+ {file = "fonttools-4.55.1.tar.gz", hash = "sha256:85bb2e985718b0df96afc659abfe194c171726054314b019dbbfed31581673c7"},
+]
+
+[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 = "holidays"
+version = "0.62"
+description = "Open World Holidays Framework"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "holidays-0.62-py3-none-any.whl", hash = "sha256:4db5019092279716276a9fdaa65d4edd066257a6b8caecbfde7e4af520b349f2"},
+ {file = "holidays-0.62.tar.gz", hash = "sha256:85020562b176f19bb83779d0aa9926ea1dd7fe00568ec119d6e8c907afbdc22c"},
+]
+
+[package.dependencies]
+python-dateutil = "*"
+
+[[package]]
+name = "httpcore"
+version = "1.0.7"
+description = "A minimal low-level HTTP client."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"},
+ {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"},
+]
+
+[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,<1.0)"]
+
+[[package]]
+name = "httpx"
+version = "0.28.0"
+description = "The next generation HTTP client."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "httpx-0.28.0-py3-none-any.whl", hash = "sha256:dc0b419a0cfeb6e8b34e85167c0da2671206f5095f1baa9663d23bcfd6b535fc"},
+ {file = "httpx-0.28.0.tar.gz", hash = "sha256:0858d3bab51ba7e386637f22a61d8ccddaeec5f3fe4209da3a6168dbb91573e0"},
+]
+
+[package.dependencies]
+anyio = "*"
+certifi = "*"
+httpcore = "==1.*"
+idna = "*"
+
+[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.10"
+description = "Internationalized Domain Names in Applications (IDNA)"
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
+ {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
+]
+
+[package.extras]
+all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
+
+[[package]]
+name = "imbalanced-learn"
+version = "0.12.4"
+description = "Toolbox for imbalanced dataset in machine learning."
+optional = false
+python-versions = "*"
+files = [
+ {file = "imbalanced-learn-0.12.4.tar.gz", hash = "sha256:8153ba385d296b07d97e0901a2624a86c06b48c94c2f92da3a5354827697b7a3"},
+ {file = "imbalanced_learn-0.12.4-py3-none-any.whl", hash = "sha256:d47fc599160d3ea882e712a3a6b02bdd353c1a6436d8d68d41b1922e6ee4a703"},
+]
+
+[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 = "importlib-resources"
+version = "6.4.5"
+description = "Read resources from Python packages"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"},
+ {file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"},
+]
+
+[package.extras]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
+cover = ["pytest-cov"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+enabler = ["pytest-enabler (>=2.2)"]
+test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"]
+type = ["pytest-mypy"]
+
+[[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.30.0"
+description = "IPython: Productive Interactive Computing"
+optional = false
+python-versions = ">=3.10"
+files = [
+ {file = "ipython-8.30.0-py3-none-any.whl", hash = "sha256:85ec56a7e20f6c38fce7727dcca699ae4ffc85985aa7b23635a8008f918ae321"},
+ {file = "ipython-8.30.0.tar.gz", hash = "sha256:cb0a405a306d2995a5cbb9901894d240784a9f341394c6ba3f4fe8c6eb89ff6e"},
+]
+
+[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 = "jedi"
+version = "0.19.2"
+description = "An autocompletion tool for Python that can be used for text editors."
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"},
+ {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"},
+]
+
+[package.dependencies]
+parso = ">=0.8.4,<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 (<9.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.10.0"
+description = "A Python implementation of the JSON5 data format."
+optional = false
+python-versions = ">=3.8.0"
+files = [
+ {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"},
+ {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"},
+]
+
+[package.extras]
+dev = ["build (==1.2.2.post1)", "coverage (==7.5.3)", "mypy (==1.13.0)", "pip (==24.3.1)", "pylint (==3.2.3)", "ruff (==0.7.3)", "twine (==5.1.1)", "uv (==0.5.1)"]
+
+[[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 = "2024.10.1"
+description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"},
+ {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"},
+]
+
+[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.3"
+description = "Jupyter protocol implementation and client libraries"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"},
+ {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"},
+]
+
+[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.3.1"
+description = "JupyterLab computational environment"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "jupyterlab-4.3.1-py3-none-any.whl", hash = "sha256:2d9a1c305bc748e277819a17a5d5e22452e533e835f4237b2f30f3b0e491e01f"},
+ {file = "jupyterlab-4.3.1.tar.gz", hash = "sha256:a4a338327556443521731d82f2a6ccf926df478914ca029616621704d47c3c65"},
+]
+
+[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.6.9)"]
+docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<8.1.0)", "sphinx-copybutton"]
+docs-screenshots = ["altair (==5.4.1)", "ipython (==8.16.1)", "ipywidgets (==8.1.5)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.2.post3)", "matplotlib (==3.9.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.3)", "scipy (==1.14.1)", "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 = "3.0.2"
+description = "Safely add untrusted strings to HTML/XML markup."
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"},
+ {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"},
+]
+
+[[package]]
+name = "matplotlib"
+version = "3.9.3"
+description = "Python plotting package"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "matplotlib-3.9.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:41b016e3be4e740b66c79a031a0a6e145728dbc248142e751e8dab4f3188ca1d"},
+ {file = "matplotlib-3.9.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e0143975fc2a6d7136c97e19c637321288371e8f09cff2564ecd73e865ea0b9"},
+ {file = "matplotlib-3.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f459c8ee2c086455744723628264e43c884be0c7d7b45d84b8cd981310b4815"},
+ {file = "matplotlib-3.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:687df7ceff57b8f070d02b4db66f75566370e7ae182a0782b6d3d21b0d6917dc"},
+ {file = "matplotlib-3.9.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:edd14cf733fdc4f6e6fe3f705af97676a7e52859bf0044aa2c84e55be739241c"},
+ {file = "matplotlib-3.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:1c40c244221a1adbb1256692b1133c6fb89418df27bf759a31a333e7912a4010"},
+ {file = "matplotlib-3.9.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:cf2a60daf6cecff6828bc608df00dbc794380e7234d2411c0ec612811f01969d"},
+ {file = "matplotlib-3.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:213d6dc25ce686516208d8a3e91120c6a4fdae4a3e06b8505ced5b716b50cc04"},
+ {file = "matplotlib-3.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c52f48eb75fcc119a4fdb68ba83eb5f71656999420375df7c94cc68e0e14686e"},
+ {file = "matplotlib-3.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3c93796b44fa111049b88a24105e947f03c01966b5c0cc782e2ee3887b790a3"},
+ {file = "matplotlib-3.9.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cd1077b9a09b16d8c3c7075a8add5ffbfe6a69156a57e290c800ed4d435bef1d"},
+ {file = "matplotlib-3.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:c96eeeb8c68b662c7747f91a385688d4b449687d29b691eff7068a4602fe6dc4"},
+ {file = "matplotlib-3.9.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0a361bd5583bf0bcc08841df3c10269617ee2a36b99ac39d455a767da908bbbc"},
+ {file = "matplotlib-3.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e14485bb1b83eeb3d55b6878f9560240981e7bbc7a8d4e1e8c38b9bd6ec8d2de"},
+ {file = "matplotlib-3.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a8d279f78844aad213c4935c18f8292a9432d51af2d88bca99072c903948045"},
+ {file = "matplotlib-3.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6c12514329ac0d03128cf1dcceb335f4fbf7c11da98bca68dca8dcb983153a9"},
+ {file = "matplotlib-3.9.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6e9de2b390d253a508dd497e9b5579f3a851f208763ed67fdca5dc0c3ea6849c"},
+ {file = "matplotlib-3.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d796272408f8567ff7eaa00eb2856b3a00524490e47ad505b0b4ca6bb8a7411f"},
+ {file = "matplotlib-3.9.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:203d18df84f5288973b2d56de63d4678cc748250026ca9e1ad8f8a0fd8a75d83"},
+ {file = "matplotlib-3.9.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b651b0d3642991259109dc0351fc33ad44c624801367bb8307be9bfc35e427ad"},
+ {file = "matplotlib-3.9.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66d7b171fecf96940ce069923a08ba3df33ef542de82c2ff4fe8caa8346fa95a"},
+ {file = "matplotlib-3.9.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be0ba61f6ff2e6b68e4270fb63b6813c9e7dec3d15fc3a93f47480444fd72f0"},
+ {file = "matplotlib-3.9.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d6b2e8856dec3a6db1ae51aec85c82223e834b228c1d3228aede87eee2b34f9"},
+ {file = "matplotlib-3.9.3-cp313-cp313-win_amd64.whl", hash = "sha256:90a85a004fefed9e583597478420bf904bb1a065b0b0ee5b9d8d31b04b0f3f70"},
+ {file = "matplotlib-3.9.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3119b2f16de7f7b9212ba76d8fe6a0e9f90b27a1e04683cd89833a991682f639"},
+ {file = "matplotlib-3.9.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:87ad73763d93add1b6c1f9fcd33af662fd62ed70e620c52fcb79f3ac427cf3a6"},
+ {file = "matplotlib-3.9.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:026bdf3137ab6022c866efa4813b6bbeddc2ed4c9e7e02f0e323a7bca380dfa0"},
+ {file = "matplotlib-3.9.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760a5e89ebbb172989e8273024a1024b0f084510b9105261b3b00c15e9c9f006"},
+ {file = "matplotlib-3.9.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a42b9dc42de2cfe357efa27d9c50c7833fc5ab9b2eb7252ccd5d5f836a84e1e4"},
+ {file = "matplotlib-3.9.3-cp313-cp313t-win_amd64.whl", hash = "sha256:e0fcb7da73fbf67b5f4bdaa57d85bb585a4e913d4a10f3e15b32baea56a67f0a"},
+ {file = "matplotlib-3.9.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:031b7f5b8e595cc07def77ec5b58464e9bb67dc5760be5d6f26d9da24892481d"},
+ {file = "matplotlib-3.9.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9fa6e193c14d6944e0685cdb527cb6b38b0e4a518043e7212f214113af7391da"},
+ {file = "matplotlib-3.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e6eefae6effa0c35bbbc18c25ee6e0b1da44d2359c3cd526eb0c9e703cf055d"},
+ {file = "matplotlib-3.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d3e5c7a99bd28afb957e1ae661323b0800d75b419f24d041ed1cc5d844a764"},
+ {file = "matplotlib-3.9.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:816a966d5d376bf24c92af8f379e78e67278833e4c7cbc9fa41872eec629a060"},
+ {file = "matplotlib-3.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fb0b37c896172899a4a93d9442ffdc6f870165f59e05ce2e07c6fded1c15749"},
+ {file = "matplotlib-3.9.3-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5f2a4ea08e6876206d511365b0bc234edc813d90b930be72c3011bbd7898796f"},
+ {file = "matplotlib-3.9.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9b081dac96ab19c54fd8558fac17c9d2c9cb5cc4656e7ed3261ddc927ba3e2c5"},
+ {file = "matplotlib-3.9.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a0a63cb8404d1d1f94968ef35738900038137dab8af836b6c21bb6f03d75465"},
+ {file = "matplotlib-3.9.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:896774766fd6be4571a43bc2fcbcb1dcca0807e53cab4a5bf88c4aa861a08e12"},
+ {file = "matplotlib-3.9.3.tar.gz", hash = "sha256:cd5dbbc8e25cad5f706845c4d100e2c8b34691b412b93717ce38d8ae803bcfa5"},
+]
+
+[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,!=2.13.3)", "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.1"
+description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor."
+optional = false
+python-versions = ">=3.8.0"
+files = [
+ {file = "nbclient-0.10.1-py3-none-any.whl", hash = "sha256:949019b9240d66897e442888cfb618f69ef23dc71c01cb5fced8499c2cfc084d"},
+ {file = "nbclient-0.10.1.tar.gz", hash = "sha256:3e93e348ab27e712acd46fccd809139e356eb9a31aab641d1a7991a6eb4e6f68"},
+]
+
+[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", "flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "mock", "moto", "myst-parser", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling", "testpath", "xmltodict"]
+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.0.7"
+description = "Jupyter Notebook - A web-based notebook environment for interactive computing"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "notebook-7.0.7-py3-none-any.whl", hash = "sha256:289b606d7e173f75a18beb1406ef411b43f97f7a9c55ba03efa3622905a62346"},
+ {file = "notebook-7.0.7.tar.gz", hash = "sha256:3bcff00c17b3ac142ef5f436d50637d936b274cfa0b41f6ac0175363de9b4e09"},
+]
+
+[package.dependencies]
+jupyter-server = ">=2.4.0,<3"
+jupyterlab = ">=4.0.2,<5"
+jupyterlab-server = ">=2.22.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.22.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.3"
+description = "Fundamental package for array computing in Python"
+optional = false
+python-versions = ">=3.10"
+files = [
+ {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"},
+ {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"},
+ {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"},
+ {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"},
+ {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"},
+ {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"},
+ {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"},
+ {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"},
+ {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"},
+ {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"},
+ {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"},
+ {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"},
+ {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"},
+ {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"},
+ {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"},
+ {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"},
+ {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"},
+ {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"},
+ {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"},
+ {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"},
+ {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"},
+ {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"},
+ {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"},
+ {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"},
+ {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"},
+ {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"},
+ {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"},
+ {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"},
+ {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"},
+ {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"},
+ {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"},
+ {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"},
+ {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"},
+ {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"},
+ {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"},
+ {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"},
+ {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"},
+ {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"},
+ {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"},
+ {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"},
+ {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"},
+ {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"},
+ {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"},
+ {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"},
+ {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"},
+ {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"},
+ {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"},
+ {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"},
+ {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"},
+ {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"},
+ {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"},
+ {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"},
+ {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"},
+ {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"},
+ {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"},
+]
+
+[[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.2"
+description = "Core utilities for Python packages"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
+ {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
+]
+
+[[package]]
+name = "pandas"
+version = "2.2.3"
+description = "Powerful data structures for data analysis, time series, and statistics"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"},
+ {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"},
+ {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"},
+ {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"},
+ {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"},
+ {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"},
+ {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"},
+ {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"},
+ {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"},
+ {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"},
+ {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"},
+ {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"},
+ {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"},
+ {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"},
+ {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"},
+ {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"},
+ {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"},
+ {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"},
+ {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"},
+ {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"},
+ {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"},
+ {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"},
+ {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"},
+ {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"},
+ {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"},
+ {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"},
+ {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"},
+ {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"},
+ {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"},
+ {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"},
+ {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"},
+ {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"},
+ {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"},
+ {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"},
+ {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"},
+ {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"},
+ {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"},
+ {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"},
+ {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"},
+ {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"},
+ {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"},
+ {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"},
+]
+
+[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 = "11.0.0"
+description = "Python Imaging Library (Fork)"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947"},
+ {file = "pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba"},
+ {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086"},
+ {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9"},
+ {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488"},
+ {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f"},
+ {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb"},
+ {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97"},
+ {file = "pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50"},
+ {file = "pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c"},
+ {file = "pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1"},
+ {file = "pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc"},
+ {file = "pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a"},
+ {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3"},
+ {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5"},
+ {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b"},
+ {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa"},
+ {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306"},
+ {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9"},
+ {file = "pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5"},
+ {file = "pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291"},
+ {file = "pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9"},
+ {file = "pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923"},
+ {file = "pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903"},
+ {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4"},
+ {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f"},
+ {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9"},
+ {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7"},
+ {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6"},
+ {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc"},
+ {file = "pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6"},
+ {file = "pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47"},
+ {file = "pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25"},
+ {file = "pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699"},
+ {file = "pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38"},
+ {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2"},
+ {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2"},
+ {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527"},
+ {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa"},
+ {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f"},
+ {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb"},
+ {file = "pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798"},
+ {file = "pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de"},
+ {file = "pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84"},
+ {file = "pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b"},
+ {file = "pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003"},
+ {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2"},
+ {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a"},
+ {file = "pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8"},
+ {file = "pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8"},
+ {file = "pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904"},
+ {file = "pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3"},
+ {file = "pillow-11.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2e46773dc9f35a1dd28bd6981332fd7f27bec001a918a72a79b4133cf5291dba"},
+ {file = "pillow-11.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2679d2258b7f1192b378e2893a8a0a0ca472234d4c2c0e6bdd3380e8dfa21b6a"},
+ {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda2616eb2313cbb3eebbe51f19362eb434b18e3bb599466a1ffa76a033fb916"},
+ {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ec184af98a121fb2da42642dea8a29ec80fc3efbaefb86d8fdd2606619045d"},
+ {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:8594f42df584e5b4bb9281799698403f7af489fba84c34d53d1c4bfb71b7c4e7"},
+ {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:c12b5ae868897c7338519c03049a806af85b9b8c237b7d675b8c5e089e4a618e"},
+ {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:70fbbdacd1d271b77b7721fe3cdd2d537bbbd75d29e6300c672ec6bb38d9672f"},
+ {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5178952973e588b3f1360868847334e9e3bf49d19e169bbbdfaf8398002419ae"},
+ {file = "pillow-11.0.0-cp39-cp39-win32.whl", hash = "sha256:8c676b587da5673d3c75bd67dd2a8cdfeb282ca38a30f37950511766b26858c4"},
+ {file = "pillow-11.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:94f3e1780abb45062287b4614a5bc0874519c86a777d4a7ad34978e86428b8dd"},
+ {file = "pillow-11.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:290f2cc809f9da7d6d622550bbf4c1e57518212da51b6a30fe8e0a270a5b78bd"},
+ {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2"},
+ {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2"},
+ {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b"},
+ {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2"},
+ {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830"},
+ {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734"},
+ {file = "pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316"},
+ {file = "pillow-11.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5bd2d3bdb846d757055910f0a59792d33b555800813c3b39ada1829c372ccb06"},
+ {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:375b8dd15a1f5d2feafff536d47e22f69625c1aa92f12b339ec0b2ca40263273"},
+ {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:daffdf51ee5db69a82dd127eabecce20729e21f7a3680cf7cbb23f0829189790"},
+ {file = "pillow-11.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7326a1787e3c7b0429659e0a944725e1b03eeaa10edd945a86dead1913383944"},
+ {file = "pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739"},
+]
+
+[package.extras]
+docs = ["furo", "olefile", "sphinx (>=8.1)", "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.3.6"
+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.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"},
+ {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"},
+]
+
+[package.extras]
+docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"]
+type = ["mypy (>=1.11.2)"]
+
+[[package]]
+name = "prometheus-client"
+version = "0.21.0"
+description = "Python client for the Prometheus monitoring system."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "prometheus_client-0.21.0-py3-none-any.whl", hash = "sha256:4fa6b4dd0ac16d58bb587c04b1caae65b8c5043e85f778f42f5f632f6af2e166"},
+ {file = "prometheus_client-0.21.0.tar.gz", hash = "sha256:96c83c606b71ff2b0a433c98889d275f51ffec6c5e267de37c7a2b5c9aa9233e"},
+]
+
+[package.extras]
+twisted = ["twisted"]
+
+[[package]]
+name = "prompt-toolkit"
+version = "3.0.48"
+description = "Library for building powerful interactive command lines in Python"
+optional = false
+python-versions = ">=3.7.0"
+files = [
+ {file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"},
+ {file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"},
+]
+
+[package.dependencies]
+wcwidth = "*"
+
+[[package]]
+name = "psutil"
+version = "6.1.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.1.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff34df86226c0227c52f38b919213157588a678d049688eded74c76c8ba4a5d0"},
+ {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c0e0c00aa18ca2d3b2b991643b799a15fc8f0563d2ebb6040f64ce8dc027b942"},
+ {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:000d1d1ebd634b4efb383f4034437384e44a6d455260aaee2eca1e9c1b55f047"},
+ {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5cd2bcdc75b452ba2e10f0e8ecc0b57b827dd5d7aaffbc6821b2a9a242823a76"},
+ {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:045f00a43c737f960d273a83973b2511430d61f283a44c96bf13a6e829ba8fdc"},
+ {file = "psutil-6.1.0-cp27-none-win32.whl", hash = "sha256:9118f27452b70bb1d9ab3198c1f626c2499384935aaf55388211ad982611407e"},
+ {file = "psutil-6.1.0-cp27-none-win_amd64.whl", hash = "sha256:a8506f6119cff7015678e2bce904a4da21025cc70ad283a53b099e7620061d85"},
+ {file = "psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688"},
+ {file = "psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e"},
+ {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38"},
+ {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b"},
+ {file = "psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a"},
+ {file = "psutil-6.1.0-cp36-cp36m-win32.whl", hash = "sha256:6d3fbbc8d23fcdcb500d2c9f94e07b1342df8ed71b948a2649b5cb060a7c94ca"},
+ {file = "psutil-6.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:1209036fbd0421afde505a4879dee3b2fd7b1e14fee81c0069807adcbbcca747"},
+ {file = "psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e"},
+ {file = "psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be"},
+ {file = "psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a"},
+]
+
+[package.extras]
+dev = ["black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "wheel"]
+test = ["pytest", "pytest-xdist", "setuptools"]
+
+[[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.2.0"
+description = "pyparsing module - Classes and methods to define and execute parsing grammars"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84"},
+ {file = "pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c"},
+]
+
+[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.2"
+description = "World timezone definitions, modern and historical"
+optional = false
+python-versions = "*"
+files = [
+ {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"},
+ {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"},
+]
+
+[[package]]
+name = "pywin32"
+version = "308"
+description = "Python for Window Extensions"
+optional = false
+python-versions = "*"
+files = [
+ {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"},
+ {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"},
+ {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"},
+ {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"},
+ {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"},
+ {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"},
+ {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"},
+ {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"},
+ {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"},
+ {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"},
+ {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"},
+ {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"},
+ {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"},
+ {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"},
+ {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"},
+ {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"},
+ {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"},
+ {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"},
+]
+
+[[package]]
+name = "pywinpty"
+version = "2.0.14"
+description = "Pseudo terminal support for Windows from Python."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pywinpty-2.0.14-cp310-none-win_amd64.whl", hash = "sha256:0b149c2918c7974f575ba79f5a4aad58bd859a52fa9eb1296cc22aa412aa411f"},
+ {file = "pywinpty-2.0.14-cp311-none-win_amd64.whl", hash = "sha256:cf2a43ac7065b3e0dc8510f8c1f13a75fb8fde805efa3b8cff7599a1ef497bc7"},
+ {file = "pywinpty-2.0.14-cp312-none-win_amd64.whl", hash = "sha256:55dad362ef3e9408ade68fd173e4f9032b3ce08f68cfe7eacb2c263ea1179737"},
+ {file = "pywinpty-2.0.14-cp313-none-win_amd64.whl", hash = "sha256:074fb988a56ec79ca90ed03a896d40707131897cefb8f76f926e3834227f2819"},
+ {file = "pywinpty-2.0.14-cp39-none-win_amd64.whl", hash = "sha256:5725fd56f73c0531ec218663bd8c8ff5acc43c78962fab28564871b5fce053fd"},
+ {file = "pywinpty-2.0.14.tar.gz", hash = "sha256:18bd9529e4a5daf2d9719aa17788ba6013e594ae94c5a0c27e83df3278b0660e"},
+]
+
+[[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.22.0"
+description = "Python bindings to Rust's persistent data structures (rpds)"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "rpds_py-0.22.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a4366f264fa60d3c109f0b27af0cd9eb8d46746bd70bd3d9d425f035b6c7e286"},
+ {file = "rpds_py-0.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e34a3e665d38d0749072e6565400c8ce9abae976e338919a0dfbfb0e1ba43068"},
+ {file = "rpds_py-0.22.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38cacf1f378571450576f2c8ce87da6f3fddc59d744de5c12b37acc23285b1e1"},
+ {file = "rpds_py-0.22.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8cbb040fec8eddd5a6a75e737fd73c9ce37e51f94bacdd0b178d0174a4758395"},
+ {file = "rpds_py-0.22.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d80fd710b3307a3c63809048b72c536689b9b0b31a2518339c3f1a4d29c73d7a"},
+ {file = "rpds_py-0.22.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b5d17d8f5b885ce50e0cda85f99c0719e365e98b587338535fa566a48375afb"},
+ {file = "rpds_py-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7a048ec1ebc991331d709be4884dc318c9eaafa66dcde8be0933ac0e702149"},
+ {file = "rpds_py-0.22.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:306da3dfa174b489a3fc63b0872e2226a5ddf94c59875a770d72aff945d5ed96"},
+ {file = "rpds_py-0.22.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c7b4450093c0c909299770226fb0285be47b0a57545bae25b5c4e51566b0e587"},
+ {file = "rpds_py-0.22.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0903ffdb5b9007e503203b6285e4ff0faf96d875c19f1d103b475acf7d9f7311"},
+ {file = "rpds_py-0.22.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d1522025cda9e57329aade769f56e5793b2a5da7759a21914ee10e67e17e601e"},
+ {file = "rpds_py-0.22.0-cp310-cp310-win32.whl", hash = "sha256:49e084d47a66027ac72844f9f52f13d347a9a1f05d4f84381b420e47f836a7fd"},
+ {file = "rpds_py-0.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:d9ceca96df54cb1675a0b7f52f1c6d5d1df62c5b40741ba211780f1b05a282a2"},
+ {file = "rpds_py-0.22.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:771c9a3851beaa617d8c8115d65f834a2b52490f42ee2b88b13f1fc5529e9e0c"},
+ {file = "rpds_py-0.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:341a07a4b55126bfae68c9bf24220a73d456111e5eb3dcbdab9fd16de2341224"},
+ {file = "rpds_py-0.22.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7649c8b8e4bd1ccc5fcbd51a855d57a617deeba19c66e3d04b1abecc61036b2"},
+ {file = "rpds_py-0.22.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f513758e7cda8bc262e80299a8e3395d7ef7f4ae705be62632f229bc6c33208"},
+ {file = "rpds_py-0.22.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba1fc34d0b2f6fd53377a4c954116251eba6d076bf64f903311f4a7d27d10acd"},
+ {file = "rpds_py-0.22.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:632d2fdddd9fbe3ac8896a119fd18a71fc95ca9c4cbe5223096c142d8c4a2b1d"},
+ {file = "rpds_py-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:326e42f2b49462e05f8527a1311ce98f9f97c484b3e443ec0ea4638bed3aebcf"},
+ {file = "rpds_py-0.22.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e9bbdba9e75b1a9ee1dd1335034dad998ef1acc08492226c6fd50aa773bdfa7d"},
+ {file = "rpds_py-0.22.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:41f65a97bf2c4b161c9f8f89bc37058346bec9b36e373c8ad00a16c957bff625"},
+ {file = "rpds_py-0.22.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0686f2c16eafdc2c6b4ce6e86e5b3092e87db09ae64be2787616444eb35b9756"},
+ {file = "rpds_py-0.22.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4e7c9aa2353eb0b0d845323857197daa036c2ff8624df990b0d886d22a8f665e"},
+ {file = "rpds_py-0.22.0-cp311-cp311-win32.whl", hash = "sha256:2d2fc3ab021be3e0b5aec6d4164f2689d231b8bfc5185cc454314746aa4aee72"},
+ {file = "rpds_py-0.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:87453d491369cd8018016d2714a13e8461975161703c18ee31eecf087a8ae5d4"},
+ {file = "rpds_py-0.22.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e9d4293b21c69ee4f9e1a99ac4f772951d345611c614a0cfae2ec6b565279bc9"},
+ {file = "rpds_py-0.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:67e013a17a3db4d98cc228fd5aeb36a51b0f5cf7330b9102a552060f1fe4e560"},
+ {file = "rpds_py-0.22.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b639a19e1791b646d27f15d17530a51722cc728d43b2dff3aeb904f92d91bac"},
+ {file = "rpds_py-0.22.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1357c3092702078b7782b6ebd5ba9b22c1a291c34fbf9d8f1a48237466ac7758"},
+ {file = "rpds_py-0.22.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:842855bbb113a19c393c6de5aa6ed9a26c6b13c2fead5e49114d39f0d08b94d8"},
+ {file = "rpds_py-0.22.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ae7927cd2b869ca4dc645169d8af5494a29c99afd0ea0f24dd00c811ab1d8b8"},
+ {file = "rpds_py-0.22.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91bfef5daa2a5a4fe62f8d317fc91a626073639f951f851bd2cb252d01bc6c5"},
+ {file = "rpds_py-0.22.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fc4824e38c1e91a73bc820e7caacaf19d0acd557465aceef0420ca59489b390"},
+ {file = "rpds_py-0.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:92d28a608127b357da47c99e0d0e0655ca2060286540fe9f2a25a2e8ac666e05"},
+ {file = "rpds_py-0.22.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c637188b930175c256f13adbfc427b83ec7e64476d1ec9d6608f312bb84e06c3"},
+ {file = "rpds_py-0.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:93bbd66f46dddc41e8c656130c97c0fb515e0fa44e1eebb2592769dbbd41b2f5"},
+ {file = "rpds_py-0.22.0-cp312-cp312-win32.whl", hash = "sha256:54d8f94dec5765a9edc19610fecf0fdf9cab36cbb9def1213188215f735a6f98"},
+ {file = "rpds_py-0.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:931bf3d0705b2834fed29354f35170fa022fe22a95542b61b7c66aca5f8a224f"},
+ {file = "rpds_py-0.22.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:2a57300cc8b034c5707085249efd09f19116bb80278d0ec925d7f3710165c510"},
+ {file = "rpds_py-0.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c398a5a8e258dfdc5ea2aa4e5aa2ca3207f654a8eb268693dd1a76939074a588"},
+ {file = "rpds_py-0.22.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a6cc4eb1e86364331928acafb2bb41d8ab735ca3caf2d6019b9f6dac3f4f65d"},
+ {file = "rpds_py-0.22.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:574c5c94213bc9990805bfd7e4ba3826d3c098516cbc19f0d0ef0433ad93fa06"},
+ {file = "rpds_py-0.22.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c0321bc03a1c513eca1837e3bba948b975bcf3a172aebc197ab3573207f137a"},
+ {file = "rpds_py-0.22.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d276280649305c1da6cdd84585d48ae1f0efa67434d8b10d2df95228e59a05bb"},
+ {file = "rpds_py-0.22.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c17b43fe9c6da16885e3fe28922bcd1a029e61631fb771c7d501019b40bcc904"},
+ {file = "rpds_py-0.22.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:48c95997af9314f4034fe5ba2d837399e786586e220835a578d28fe8161e6ae5"},
+ {file = "rpds_py-0.22.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e9aa4af6b879bb75a3c7766fbf49d77f4097dd12b548ecbbd8b3f85caa833281"},
+ {file = "rpds_py-0.22.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8426f97117b914b9bfb2a7bd46edc148e8defda728a55a5df3a564abe70cd7a4"},
+ {file = "rpds_py-0.22.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:034964ea0ea09645bdde13038b38abb14be0aa747f20fcfab6181207dd9e0483"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:3dc7c64b56b82428894f056e9ff6e8ee917ff74fc26b65211a33602c2372e928"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:1212cb231f2002934cd8d71a0d718fdd9d9a2dd671e0feef8501038df3508026"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f21e1278c9456cd601832375c778ca44614d3433996488221a56572c223f04a"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:875fe8dffb43c20f68379ee098b035a7038d7903c795d46715f66575a7050b19"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e23dcdd4b2ff9c6b3317ea7921b210d39592f8ca1cdea58ada25b202c65c0a69"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0fb8efc9e579acf1e556fd86277fecec320c21ca9b5d39db96433ad8c45bc4a"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe23687924b25a2dee52fab15976fd6577ed8518072bcda9ff2e2b88ab1f168b"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d5469b347445d1c31105f33e7bfc9a8ba213d48e42641a610dda65bf9e3c83f5"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a810a57ce5e8ecf8eac6ec4dab534ff80c34e5a2c31db60e992009cd20f58e0f"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d9bb9242b38a664f307b3b897f093896f7ed51ef4fe25a0502e5a368de9151ea"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:b4660943030406aaa40ec9f51960dd88049903d9536bc3c8ebb5cc4e1f119bbe"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-win32.whl", hash = "sha256:208ce1d8e3af138d1d9b21d7206356b7f29b96675e0113aea652cf024e4ddfdc"},
+ {file = "rpds_py-0.22.0-cp313-cp313t-win_amd64.whl", hash = "sha256:e6da2e0500742e0f157f005924a0589f2e2dcbfdd6cd0cc0abce367433e989be"},
+ {file = "rpds_py-0.22.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:f980a0640599a74f27fd9d50c84c293f1cb7afc2046c5c6d3efaf8ec7cdbc326"},
+ {file = "rpds_py-0.22.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ca505fd3767a09a139737f3278bc8a485cb64043062da89bcba27e2f2ea78d33"},
+ {file = "rpds_py-0.22.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba235e00e0878ba1080b0f2a761f143b2a2d1c354f3d8e507fbf2f3de401bf18"},
+ {file = "rpds_py-0.22.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:81e7a27365b02fe70a77f1365376879917235b3fec551d19b4c91b51d0bc1d07"},
+ {file = "rpds_py-0.22.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:32a0e24cab2daae0503b06666d516e90a080c1a95aff0406b9f03c6489177c4b"},
+ {file = "rpds_py-0.22.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a73ed43d64209e853bba567a543170267a5cd64f359540b0ca2d597e329ba172"},
+ {file = "rpds_py-0.22.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0abcce5e874474d3eab5ad53be03dae2abe651d248bdeaabe83708e82969e78"},
+ {file = "rpds_py-0.22.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f4e9946c8c7def17e4fcb5eddb14c4eb6ebc7f6f309075e6c8d23b133c104607"},
+ {file = "rpds_py-0.22.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:758098b38c344d9a7f279baf0689261777e601f620078ef5afdc9bd3339965c3"},
+ {file = "rpds_py-0.22.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:9ad4640a409bc2b7d22b7921e7660f0db96c5c8c69fbb2e8f3261d4f71d33983"},
+ {file = "rpds_py-0.22.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8c48fc7458fe3a74dcdf56ba3534ff41bd421f69436df09ff3497fdaac18b431"},
+ {file = "rpds_py-0.22.0-cp39-cp39-win32.whl", hash = "sha256:fde778947304e55fc732bc8ea5c6063e74244ac1808471cb498983a210aaf62c"},
+ {file = "rpds_py-0.22.0-cp39-cp39-win_amd64.whl", hash = "sha256:5fdf91a7c07f40e47b193f2acae0ed9da35d09325d7c3c3279f722b7cbf3d264"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c8fd7a16f7a047e06c747cfcf2acef3ac316132df1c6077445b29ee6f3f3a70b"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:6b6e4bcfc32f831bfe3d6d8a5acedfbfd5e252a03c83fa24813b277a3a8a13ca"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eadd2417e83a77ce3ae4a0efd08cb0ebdfd317b6406d11020354a53ad458ec84"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9dc2113e0cf0dd637751ca736186fca63664939ceb9f9f67e93ade88c69c0c9"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc2c00acdf68f1f69a476b770af311a7dc3955b7de228b04a40bcc51ac4d743b"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dfdabdf8519c93908b2bf0f87c3f86f9e88bab279fb4acfd0907519ca5a1739f"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8338db3c76833d02dc21c3e2c42534091341d26e4f7ba32c6032bb558a02e07b"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8ad4dfda52e64af3202ceb2143a62deba97894b71c64a4405ee80f6b3ea77285"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3b94b074dcce39976db22ea75c7aea8b22d95e6d3b62f76e20e1179a278521d8"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:d4f2af3107fe4dc40c0d1a2409863f5249c6796398a1d83c1d99a0b3fa6cfb8d"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:bb11809b0de643a292a82f728c494a2bbef0e30a7c42d37464abbd6bef7ca7b1"},
+ {file = "rpds_py-0.22.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c1c21030ed494deb10226f90e2dbd84a012d59810c409832714a3dd576527be2"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:64a0c965a1e299c9b280006bdb15c276c427c45360aed676305dc36bcaa4d13c"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2498ff422823be087b48bc82710deb87ac34f6b7c8034ee39920647647de1e60"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59e63da174ff287db05ef7c21d75974a5bac727ed60452aeb3a14278477842a8"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e1c04fb380bc8efaae2fdf17ed6cd5d223da78a8b0b18a610f53d4c5d6e31dfd"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e04919ffa9a728c446b27b6b625fa1d00ece221bdb9d633e978a7e0353a12c0e"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:24c28df05bd284879d0fac850ba697077d2a33b7ebcaea6318d6b6cdfdc86ddc"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d33622dc63c295788eed09dbb1d11bed178909d3267b02d873116ee6be368244"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7539dbb8f705e13629ba6f23388976aad809e387f32a6e5c0712e4e8d9bfcce7"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b8906f537978da3f7f0bd1ba37b69f6a877bb43312023b086582707d2835bf2f"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:62ab12fe03ffc49978d29de9c31bbb216610157f7e5ca8e172fed6642aead3be"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:762206ba3bf1d6c8c9e0055871d3c0d5b074b7c3120193e6c067e7866f106ab1"},
+ {file = "rpds_py-0.22.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ed0102146574e5e9f079b2e1a06e6b5b12a691f9c74a65b93b7f3d4feda566c6"},
+ {file = "rpds_py-0.22.0.tar.gz", hash = "sha256:32de71c393f126d8203e9815557c7ff4d72ed1ad3aa3f52f6c7938413176750a"},
+]
+
+[[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 = "75.6.0"
+description = "Easily download, build, install, upgrade, and uninstall Python packages"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"},
+ {file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"},
+]
+
+[package.extras]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"]
+core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.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 (>=5.5)", "packaging (>=24.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.12,<1.14)", "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.4.0"
+description = "A tiny CSS parser"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"},
+ {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"},
+]
+
+[package.dependencies]
+webencodings = ">=0.4"
+
+[package.extras]
+doc = ["sphinx", "sphinx_rtd_theme"]
+test = ["pytest", "ruff"]
+
+[[package]]
+name = "tornado"
+version = "6.4.2"
+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.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"},
+ {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"},
+ {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"},
+ {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"},
+ {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"},
+ {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"},
+ {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"},
+ {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"},
+ {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"},
+ {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"},
+ {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"},
+]
+
+[[package]]
+name = "tqdm"
+version = "4.67.1"
+description = "Fast, Extensible Progress Meter"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"},
+ {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"},
+]
+
+[package.dependencies]
+colorama = {version = "*", markers = "platform_system == \"Windows\""}
+
+[package.extras]
+dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"]
+discord = ["requests"]
+notebook = ["ipywidgets (>=6)"]
+slack = ["slack-sdk"]
+telegram = ["requests"]
+
+[[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.20241003"
+description = "Typing stubs for python-dateutil"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "types-python-dateutil-2.9.0.20241003.tar.gz", hash = "sha256:58cb85449b2a56d6684e41aeefb4c4280631246a0da1a719bdbe6f3fb0317446"},
+ {file = "types_python_dateutil-2.9.0.20241003-py3-none-any.whl", hash = "sha256:250e1d8e80e7bbc3a6c99b907762711d1a1cdd00e978ad39cb5940f6f0a87f3d"},
+]
+
+[[package]]
+name = "tzdata"
+version = "2024.2"
+description = "Provider of IANA time zone data"
+optional = false
+python-versions = ">=2"
+files = [
+ {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"},
+ {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"},
+]
+
+[[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.3"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"},
+ {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"},
+]
+
+[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 = "webcolors"
+version = "24.11.1"
+description = "A library for working with the color formats defined by HTML and CSS."
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"},
+ {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"},
+]
+
+[[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 = "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"},
+]
+
+[[package]]
+name = "woodwork"
+version = "0.31.0"
+description = "a data typing library for machine learning"
+optional = false
+python-versions = "<4,>=3.9"
+files = [
+ {file = "woodwork-0.31.0-py3-none-any.whl", hash = "sha256:5cb3370553b5f466f8c8599b1bf559584dc0b798cc1f2da26bbd7029d256c6f9"},
+ {file = "woodwork-0.31.0.tar.gz", hash = "sha256:6ef82af1d5b6525b02efe6417c574c810cfdcc606cb266bd0d7fb17a1d066b67"},
+]
+
+[package.dependencies]
+importlib-resources = ">=5.10.0"
+numpy = ">=1.25.0"
+pandas = ">=2.0.0"
+python-dateutil = ">=2.8.2"
+scikit-learn = ">=1.1.0"
+scipy = ">=1.10.0"
+
+[package.extras]
+complete = ["woodwork[updater]"]
+dev = ["click (>=8.1.7)", "pre-commit (>=2.20.0)", "ruff (>=0.1.6)", "woodwork[docs,test]"]
+docs = ["Sphinx (==5.1.1)", "ipython (==8.4.0)", "jupyter (==1.0.0)", "myst-parser (==0.18.0)", "nbconvert (==6.5.0)", "nbsphinx (==0.8.9)", "pyarrow (>=14.0.1)", "pydata-sphinx-theme (==0.9.0)", "sphinx-copybutton (==0.5.0)", "sphinx-inline-tabs (==2022.1.2b11)"]
+test = ["boto3 (>=1.34.32)", "moto[all] (>=5.0.0)", "pyarrow (>=14.0.1)", "pytest (>=7.0.1)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=2.1.0)", "smart-open (>=5.0.0)"]
+updater = ["alteryx-open-src-update-checker (>=3.1.0)"]
+
+[metadata]
+lock-version = "2.0"
+python-versions = "^3.12"
+content-hash = "14251a2aa051d0453baa081f3c5967a8fc2d57d32f379f3b899973001543c094"
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..bd2f7c9
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,17 @@
+[tool.poetry]
+name = "curse"
+version = "0.1.0"
+description = ""
+authors = ["Тукаева Альфия "]
+readme = "README.md"
+
+[tool.poetry.dependencies]
+python = "^3.12"
+
+
+[tool.poetry.group.dev.dependencies]
+setuptools = "^75.6.0"
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"