diff --git a/README.md b/README.md
index f029b9432d..bd4e9d461a 100644
--- a/README.md
+++ b/README.md
@@ -226,8 +226,6 @@ config:
baddns:
enable_references: True
-
-
```
diff --git a/bbot/cli.py b/bbot/cli.py
index d06810ee70..db595dfc1d 100755
--- a/bbot/cli.py
+++ b/bbot/cli.py
@@ -260,9 +260,7 @@ async def akeyboard_listen():
finally:
# save word cloud
with suppress(BaseException):
- save_success, filename = scan.helpers.word_cloud.save()
- if save_success:
- log_to_stderr(f"Saved word cloud ({len(scan.helpers.word_cloud):,} words) to {filename}")
+ scan.helpers.word_cloud.save()
# remove output directory if empty
with suppress(BaseException):
scan.home.rmdir()
diff --git a/bbot/modules/extractous.py b/bbot/modules/extractous.py
index 5b2e2cdec7..9d2ae153b4 100644
--- a/bbot/modules/extractous.py
+++ b/bbot/modules/extractous.py
@@ -112,7 +112,7 @@ def extract_text(file_path):
result = ""
buffer = reader.read(4096)
while len(buffer) > 0:
- result += buffer.decode("utf-8")
+ result += buffer.decode("utf-8", errors="ignore")
buffer = reader.read(4096)
return result.strip()
diff --git a/bbot/modules/httpx.py b/bbot/modules/httpx.py
index 059bc2461f..8edc4e1d69 100644
--- a/bbot/modules/httpx.py
+++ b/bbot/modules/httpx.py
@@ -1,5 +1,5 @@
import re
-import json
+import orjson
import tempfile
import subprocess
from pathlib import Path
@@ -142,11 +142,11 @@ async def handle_batch(self, *events):
proxy = self.scan.http_proxy
if proxy:
command += ["-http-proxy", proxy]
- async for line in self.run_process_live(command, input=list(stdin), stderr=subprocess.DEVNULL):
+ async for line in self.run_process_live(command, text=False, input=list(stdin), stderr=subprocess.DEVNULL):
try:
- j = json.loads(line)
- except json.decoder.JSONDecodeError:
- self.debug(f"Failed to decode line: {line}")
+ j = await self.helpers.run_in_executor(orjson.loads, line)
+ except orjson.JSONDecodeError:
+ self.warning(f"httpx failed to decode line: {line}")
continue
url = j.get("url", "")
diff --git a/bbot/modules/internal/cloudcheck.py b/bbot/modules/internal/cloudcheck.py
index 65cf6ea242..c45acfe954 100644
--- a/bbot/modules/internal/cloudcheck.py
+++ b/bbot/modules/internal/cloudcheck.py
@@ -72,9 +72,10 @@ async def handle_event(self, event, **kwargs):
base_kwargs["event_type"] = event_type
for sig in sigs:
matches = []
- if event.type == "HTTP_RESPONSE":
- matches = await self.helpers.re.findall(sig, event.data.get("body", ""))
- elif event.type.startswith("DNS_NAME"):
+ # TODO: convert this to an excavate YARA hook
+ # if event.type == "HTTP_RESPONSE":
+ # matches = await self.helpers.re.findall(sig, event.data.get("body", ""))
+ if event.type.startswith("DNS_NAME"):
for host in str_hosts_to_check:
match = sig.match(host)
if match:
diff --git a/bbot/modules/output/mysql.py b/bbot/modules/output/mysql.py
index 6099d18ceb..8d9a1f7f4c 100644
--- a/bbot/modules/output/mysql.py
+++ b/bbot/modules/output/mysql.py
@@ -3,7 +3,11 @@
class MySQL(SQLTemplate):
watched_events = ["*"]
- meta = {"description": "Output scan data to a MySQL database", "created_date": "2024-11-13", "author": "@TheTechromancer"}
+ meta = {
+ "description": "Output scan data to a MySQL database",
+ "created_date": "2024-11-13",
+ "author": "@TheTechromancer",
+ }
options = {
"username": "root",
"password": "bbotislife",
diff --git a/bbot/modules/trufflehog.py b/bbot/modules/trufflehog.py
index eaba8bbfb9..8441c73648 100644
--- a/bbot/modules/trufflehog.py
+++ b/bbot/modules/trufflehog.py
@@ -13,7 +13,7 @@ class trufflehog(BaseModule):
}
options = {
- "version": "3.84.2",
+ "version": "3.87.0",
"config": "",
"only_verified": True,
"concurrency": 8,
diff --git a/bbot/scanner/preset/args.py b/bbot/scanner/preset/args.py
index 03e21ea3a8..13723ea01d 100644
--- a/bbot/scanner/preset/args.py
+++ b/bbot/scanner/preset/args.py
@@ -135,14 +135,17 @@ def preset_from_args(self):
args_preset.core.merge_custom({"modules": {"stdout": {"event_types": self.parsed.event_types}}})
# dependencies
+ deps_config = args_preset.core.custom_config.get("deps", {})
if self.parsed.retry_deps:
- args_preset.core.custom_config["deps_behavior"] = "retry_failed"
+ deps_config["behavior"] = "retry_failed"
elif self.parsed.force_deps:
- args_preset.core.custom_config["deps_behavior"] = "force_install"
+ deps_config["behavior"] = "force_install"
elif self.parsed.no_deps:
- args_preset.core.custom_config["deps_behavior"] = "disable"
+ deps_config["behavior"] = "disable"
elif self.parsed.ignore_failed_deps:
- args_preset.core.custom_config["deps_behavior"] = "ignore_failed"
+ deps_config["behavior"] = "ignore_failed"
+ if deps_config:
+ args_preset.core.merge_custom({"deps": deps_config})
# other scan options
if self.parsed.name is not None:
@@ -295,6 +298,12 @@ def create_parser(self, *args, **kwargs):
)
output = p.add_argument_group(title="Output")
+ output.add_argument(
+ "-o",
+ "--output-dir",
+ help="Directory to output scan results",
+ metavar="DIR",
+ )
output.add_argument(
"-om",
"--output-modules",
@@ -304,12 +313,6 @@ def create_parser(self, *args, **kwargs):
metavar="MODULE",
)
output.add_argument("-lo", "--list-output-modules", action="store_true", help="List available output modules")
- output.add_argument(
- "-o",
- "--output-dir",
- help="Directory to output scan results",
- metavar="DIR",
- )
output.add_argument("--json", "-j", action="store_true", help="Output scan data in JSON format")
output.add_argument("--brief", "-br", action="store_true", help="Output only the data itself")
output.add_argument("--event-types", nargs="+", default=[], help="Choose which event types to display")
diff --git a/bbot/scanner/preset/preset.py b/bbot/scanner/preset/preset.py
index b275cc1f72..1ea9ebb2cf 100644
--- a/bbot/scanner/preset/preset.py
+++ b/bbot/scanner/preset/preset.py
@@ -798,7 +798,7 @@ def to_dict(self, include_target=False, full_config=False, redact_secrets=False)
# misc scan options
if self.scan_name:
preset_dict["scan_name"] = self.scan_name
- if self.scan_name:
+ if self.scan_name and self.output_dir is not None:
preset_dict["output_dir"] = self.output_dir
# conditions
diff --git a/bbot/scanner/scanner.py b/bbot/scanner/scanner.py
index dcdb2a873f..3817f26b21 100644
--- a/bbot/scanner/scanner.py
+++ b/bbot/scanner/scanner.py
@@ -124,6 +124,7 @@ def __init__(
self.duration_seconds = None
self._success = False
+ self._scan_finish_status_message = None
if scan_id is not None:
self.id = str(scan_id)
@@ -425,14 +426,19 @@ async def async_start(self):
self._stop_log_handlers()
+ if self._scan_finish_status_message:
+ log_fn = self.hugesuccess
+ if self.status.startswith("ABORT"):
+ log_fn = self.hugewarning
+ elif not self._success:
+ log_fn = self.critical
+ log_fn(self._scan_finish_status_message)
+
async def _mark_finished(self):
- log_fn = self.hugesuccess
if self.status == "ABORTING":
status = "ABORTED"
- log_fn = self.hugewarning
elif not self._success:
status = "FAILED"
- log_fn = self.critical
else:
status = "FINISHED"
@@ -441,9 +447,9 @@ async def _mark_finished(self):
self.duration_seconds = self.duration.total_seconds()
self.duration_human = self.helpers.human_timedelta(self.duration)
- status_message = f"Scan {self.name} completed in {self.duration_human} with status {status}"
+ self._scan_finish_status_message = f"Scan {self.name} completed in {self.duration_human} with status {status}"
- scan_finish_event = self.finish_event(status_message, status)
+ scan_finish_event = self.finish_event(self._scan_finish_status_message, status)
# queue final scan event with output modules
output_modules = [m for m in self.modules.values() if m._type == "output" and m.name != "python"]
@@ -457,7 +463,6 @@ async def _mark_finished(self):
await asyncio.sleep(0.05)
self.status = status
- log_fn(status_message)
return scan_finish_event
def _start_modules(self):
diff --git a/bbot/scanner/target.py b/bbot/scanner/target.py
index ba4226ec09..f86b0de15b 100644
--- a/bbot/scanner/target.py
+++ b/bbot/scanner/target.py
@@ -101,7 +101,7 @@ def add(self, targets):
events.add(event)
# sort by host size to ensure consistency
- events = sorted(events, key=lambda e: (0 if not e.host else host_size_key(e.host)))
+ events = sorted(events, key=lambda e: ((0, 0) if not e.host else host_size_key(e.host)))
for event in events:
self.events.add(event)
self._add(event.host, data=event)
diff --git a/bbot/test/test_step_1/test_cli.py b/bbot/test/test_step_1/test_cli.py
index e48040e98d..c700cfaad8 100644
--- a/bbot/test/test_step_1/test_cli.py
+++ b/bbot/test/test_step_1/test_cli.py
@@ -1,3 +1,5 @@
+import yaml
+
from ..bbot_fixtures import *
from bbot import cli
@@ -143,6 +145,20 @@ async def test_cli_args(monkeypatch, caplog, capsys, clean_default_config):
assert len(out.splitlines()) == 1
assert out.count(".") > 1
+ # deps behavior
+ monkeypatch.setattr("sys.argv", ["bbot", "-n", "depstest", "--retry-deps", "--current-preset"])
+ result = await cli._main()
+ assert result is None
+ out, err = capsys.readouterr()
+ print(out)
+ # parse YAML output
+ preset = yaml.safe_load(out)
+ assert preset == {
+ "description": "depstest",
+ "scan_name": "depstest",
+ "config": {"deps": {"behavior": "retry_failed"}},
+ }
+
# list modules
monkeypatch.setattr("sys.argv", ["bbot", "--list-modules"])
result = await cli._main()
@@ -401,7 +417,6 @@ async def test_cli_args(monkeypatch, caplog, capsys, clean_default_config):
async def test_cli_customheaders(monkeypatch, caplog, capsys):
monkeypatch.setattr(sys, "exit", lambda *args, **kwargs: True)
monkeypatch.setattr(os, "_exit", lambda *args, **kwargs: True)
- import yaml
# test custom headers
monkeypatch.setattr(
diff --git a/bbot/test/test_step_1/test_target.py b/bbot/test/test_step_1/test_target.py
index f5c28c3596..4bc269595a 100644
--- a/bbot/test/test_step_1/test_target.py
+++ b/bbot/test/test_step_1/test_target.py
@@ -2,7 +2,7 @@
@pytest.mark.asyncio
-async def test_target(bbot_scanner):
+async def test_target_basic(bbot_scanner):
from radixtarget import RadixTarget
from ipaddress import ip_address, ip_network
from bbot.scanner.target import BBOTTarget, ScanSeeds
@@ -245,6 +245,17 @@ async def test_target(bbot_scanner):
assert len(events) == 3
assert {e.type for e in events} == {"SCAN", "USERNAME"}
+ # users + orgs + domains
+ scan = bbot_scanner("USER:evilcorp", "ORG:evilcorp", "evilcorp.com")
+ await scan.helpers.dns._mock_dns(
+ {
+ "evilcorp.com": {"A": ["1.2.3.4"]},
+ },
+ )
+ events = [e async for e in scan.async_start()]
+ assert len(events) == 5
+ assert {e.type for e in events} == {"SCAN", "USERNAME", "ORG_STUB", "DNS_NAME"}
+
# verify hash values
bbottarget = BBOTTarget(
"1.2.3.0/24",
diff --git a/bbot/test/test_step_2/module_tests/test_module_cloudcheck.py b/bbot/test/test_step_2/module_tests/test_module_cloudcheck.py
index 902f2df35f..0ce93ec00d 100644
--- a/bbot/test/test_step_2/module_tests/test_module_cloudcheck.py
+++ b/bbot/test/test_step_2/module_tests/test_module_cloudcheck.py
@@ -8,7 +8,7 @@ class TestCloudCheck(ModuleTestBase):
modules_overrides = ["httpx", "excavate", "cloudcheck"]
async def setup_after_prep(self, module_test):
- module_test.set_expect_requests({"uri": "/"}, {"response_data": ""})
+ module_test.set_expect_requests({"uri": "/"}, {"response_data": ""})
scan = Scanner(config={"cloudcheck": True})
await scan._prep()
diff --git a/docs/data/chord_graph/entities.json b/docs/data/chord_graph/entities.json
index 88242097ed..00633c95fa 100644
--- a/docs/data/chord_graph/entities.json
+++ b/docs/data/chord_graph/entities.json
@@ -23,11 +23,11 @@
]
},
{
- "id": 129,
+ "id": 131,
"name": "AZURE_TENANT",
"parent": 88888888,
"consumes": [
- 128
+ 130
],
"produces": []
},
@@ -36,20 +36,20 @@
"name": "CODE_REPOSITORY",
"parent": 88888888,
"consumes": [
- 62,
- 82,
- 85,
- 87,
- 117,
- 136
+ 63,
+ 83,
+ 86,
+ 88,
+ 119,
+ 138
],
"produces": [
42,
- 63,
- 83,
+ 64,
84,
- 86,
- 116
+ 85,
+ 87,
+ 118
]
},
{
@@ -87,36 +87,37 @@
58,
59,
60,
- 61,
- 67,
- 79,
- 83,
- 90,
- 94,
- 96,
- 102,
+ 62,
+ 68,
+ 80,
+ 84,
+ 91,
+ 95,
+ 97,
103,
- 107,
- 108,
- 112,
- 113,
+ 104,
+ 106,
+ 109,
+ 110,
114,
- 118,
- 121,
- 122,
+ 115,
+ 116,
+ 120,
123,
124,
125,
- 128,
- 131,
- 132,
+ 126,
+ 127,
+ 130,
133,
+ 134,
135,
- 138,
- 141,
- 142,
- 145,
- 148
+ 137,
+ 140,
+ 143,
+ 144,
+ 147,
+ 150
],
"produces": [
6,
@@ -137,31 +138,32 @@
58,
59,
60,
- 79,
- 90,
- 94,
- 96,
- 102,
+ 61,
+ 80,
+ 91,
+ 95,
+ 97,
103,
- 105,
+ 104,
107,
- 108,
- 112,
- 118,
- 121,
+ 109,
+ 110,
+ 114,
+ 120,
123,
- 124,
- 128,
+ 125,
+ 126,
130,
- 131,
132,
- 135,
- 138,
- 139,
+ 133,
+ 134,
+ 137,
+ 140,
141,
- 142,
- 145,
- 148
+ 143,
+ 144,
+ 147,
+ 150
]
},
{
@@ -170,8 +172,8 @@
"parent": 88888888,
"consumes": [
21,
- 128,
- 133
+ 130,
+ 135
],
"produces": []
},
@@ -180,19 +182,19 @@
"name": "EMAIL_ADDRESS",
"parent": 88888888,
"consumes": [
- 68
+ 69
],
"produces": [
45,
52,
58,
- 61,
- 67,
- 94,
- 113,
- 122,
- 125,
- 130
+ 62,
+ 68,
+ 95,
+ 115,
+ 124,
+ 127,
+ 132
]
},
{
@@ -200,18 +202,18 @@
"name": "FILESYSTEM",
"parent": 88888888,
"consumes": [
- 72,
- 101,
- 136
+ 73,
+ 102,
+ 138
],
"produces": [
8,
- 62,
- 76,
- 82,
- 85,
- 101,
- 117
+ 63,
+ 77,
+ 83,
+ 86,
+ 102,
+ 119
]
},
{
@@ -220,7 +222,7 @@
"parent": 88888888,
"consumes": [
14,
- 146
+ 148
],
"produces": [
1,
@@ -235,33 +237,33 @@
34,
37,
51,
- 81,
- 86,
- 91,
- 93,
- 96,
- 104,
+ 82,
+ 87,
+ 92,
+ 94,
+ 97,
105,
- 106,
- 109,
- 110,
- 120,
- 126,
+ 107,
+ 108,
+ 111,
+ 112,
+ 122,
128,
- 134,
+ 130,
136,
- 137,
- 147
+ 138,
+ 139,
+ 149
]
},
{
- "id": 98,
+ "id": 99,
"name": "GEOLOCATION",
"parent": 88888888,
"consumes": [],
"produces": [
- 97,
- 100
+ 98,
+ 101
]
},
{
@@ -283,24 +285,25 @@
14,
26,
51,
- 66,
- 69,
- 76,
- 86,
- 91,
- 104,
+ 67,
+ 70,
+ 77,
+ 87,
+ 92,
105,
- 109,
- 110,
+ 106,
+ 107,
111,
- 120,
- 128,
- 134,
- 144,
- 147
+ 112,
+ 113,
+ 122,
+ 130,
+ 136,
+ 146,
+ 149
],
"produces": [
- 92
+ 93
]
},
{
@@ -310,26 +313,28 @@
"consumes": [
11,
14,
- 96,
97,
- 99,
+ 98,
100,
- 114,
- 128
+ 101,
+ 106,
+ 116,
+ 130
],
"produces": [
14,
- 99,
- 128
+ 61,
+ 100,
+ 130
]
},
{
- "id": 115,
+ "id": 117,
"name": "IP_RANGE",
"parent": 88888888,
"consumes": [
- 114,
- 128
+ 116,
+ 130
],
"produces": []
},
@@ -341,7 +346,7 @@
8
],
"produces": [
- 87
+ 88
]
},
{
@@ -350,29 +355,30 @@
"parent": 88888888,
"consumes": [
14,
- 77,
- 92,
- 130
+ 78,
+ 93,
+ 106,
+ 132
],
"produces": [
14,
- 96,
- 114,
- 128
+ 97,
+ 116,
+ 130
]
},
{
- "id": 64,
+ "id": 65,
"name": "ORG_STUB",
"parent": 88888888,
"consumes": [
- 63,
- 84,
- 87,
- 116
+ 64,
+ 85,
+ 88,
+ 118
],
"produces": [
- 128
+ 130
]
},
{
@@ -386,12 +392,14 @@
]
},
{
- "id": 78,
+ "id": 79,
"name": "PROTOCOL",
"parent": 88888888,
- "consumes": [],
+ "consumes": [
+ 106
+ ],
"produces": [
- 77
+ 78
]
},
{
@@ -401,36 +409,37 @@
"consumes": [],
"produces": [
54,
- 61
+ 61,
+ 62
]
},
{
- "id": 70,
+ "id": 71,
"name": "RAW_TEXT",
"parent": 88888888,
"consumes": [
- 69
+ 70
],
"produces": [
- 72
+ 73
]
},
{
- "id": 65,
+ "id": 66,
"name": "SOCIAL",
"parent": 88888888,
"consumes": [
- 63,
- 84,
- 86,
- 88,
- 116,
- 128
+ 64,
+ 85,
+ 87,
+ 89,
+ 118,
+ 130
],
"produces": [
- 63,
- 86,
- 127
+ 64,
+ 87,
+ 129
]
},
{
@@ -445,7 +454,7 @@
32,
33,
34,
- 128
+ 130
],
"produces": [
29,
@@ -461,19 +470,19 @@
"parent": 88888888,
"consumes": [
14,
- 86,
- 146,
- 147
+ 87,
+ 148,
+ 149
],
"produces": [
26,
- 66,
- 86,
- 88,
- 96,
- 106,
- 144,
- 147
+ 67,
+ 87,
+ 89,
+ 97,
+ 108,
+ 146,
+ 149
]
},
{
@@ -485,37 +494,37 @@
14,
23,
37,
- 73,
- 80,
+ 74,
81,
- 88,
- 92,
- 95,
- 105,
- 106,
- 119,
- 126,
+ 82,
+ 89,
+ 93,
+ 96,
+ 107,
+ 108,
+ 121,
128,
- 134,
- 137,
+ 130,
+ 136,
139,
- 143,
- 146
+ 141,
+ 145,
+ 148
],
"produces": [
- 88,
- 92
+ 89,
+ 93
]
},
{
- "id": 75,
+ "id": 76,
"name": "URL_HINT",
"parent": 88888888,
"consumes": [
- 74
+ 75
],
"produces": [
- 95
+ 96
]
},
{
@@ -524,11 +533,11 @@
"parent": 88888888,
"consumes": [
42,
- 76,
- 92,
- 107,
- 127,
- 128
+ 77,
+ 93,
+ 109,
+ 129,
+ 130
],
"produces": [
18,
@@ -536,19 +545,19 @@
32,
54,
58,
- 61,
- 63,
- 69,
- 73,
+ 62,
+ 64,
+ 70,
74,
- 83,
- 88,
- 94,
- 119,
- 122,
- 138,
- 145,
- 147
+ 75,
+ 84,
+ 89,
+ 95,
+ 121,
+ 124,
+ 140,
+ 147,
+ 149
]
},
{
@@ -556,7 +565,7 @@
"name": "USERNAME",
"parent": 88888888,
"consumes": [
- 128
+ 130
],
"produces": [
45,
@@ -564,14 +573,14 @@
]
},
{
- "id": 140,
+ "id": 142,
"name": "VHOST",
"parent": 88888888,
"consumes": [
- 146
+ 148
],
"produces": [
- 139
+ 141
]
},
{
@@ -580,7 +589,7 @@
"parent": 88888888,
"consumes": [
14,
- 146
+ 148
],
"produces": [
1,
@@ -589,13 +598,13 @@
25,
26,
51,
- 66,
- 80,
- 96,
- 106,
- 134,
+ 67,
+ 81,
+ 97,
+ 108,
136,
- 147
+ 138,
+ 149
]
},
{
@@ -606,33 +615,33 @@
14
],
"produces": [
- 143
+ 145
]
},
{
- "id": 89,
+ "id": 90,
"name": "WEBSCREENSHOT",
"parent": 88888888,
"consumes": [],
"produces": [
- 88
+ 89
]
},
{
- "id": 71,
+ "id": 72,
"name": "WEB_PARAMETER",
"parent": 88888888,
"consumes": [
- 93,
- 109,
- 110,
- 111
+ 94,
+ 111,
+ 112,
+ 113
],
"produces": [
- 69,
- 109,
- 110,
- 111
+ 70,
+ 111,
+ 112,
+ 113
]
},
{
@@ -1105,6 +1114,17 @@
},
{
"id": 61,
+ "name": "dnsresolve",
+ "parent": 99999999,
+ "consumes": [],
+ "produces": [
+ 7,
+ 12,
+ 55
+ ]
+ },
+ {
+ "id": 62,
"name": "dnstlsrpt",
"parent": 99999999,
"consumes": [
@@ -1117,7 +1137,7 @@
]
},
{
- "id": 62,
+ "id": 63,
"name": "docker_pull",
"parent": 99999999,
"consumes": [
@@ -1128,21 +1148,21 @@
]
},
{
- "id": 63,
+ "id": 64,
"name": "dockerhub",
"parent": 99999999,
"consumes": [
- 64,
- 65
+ 65,
+ 66
],
"produces": [
43,
- 65,
+ 66,
19
]
},
{
- "id": 66,
+ "id": 67,
"name": "dotnetnuke",
"parent": 99999999,
"consumes": [
@@ -1154,7 +1174,7 @@
]
},
{
- "id": 67,
+ "id": 68,
"name": "emailformat",
"parent": 99999999,
"consumes": [
@@ -1165,7 +1185,7 @@
]
},
{
- "id": 68,
+ "id": 69,
"name": "emails",
"parent": 99999999,
"consumes": [
@@ -1174,31 +1194,31 @@
"produces": []
},
{
- "id": 69,
+ "id": 70,
"name": "excavate",
"parent": 99999999,
"consumes": [
2,
- 70
+ 71
],
"produces": [
19,
- 71
+ 72
]
},
{
- "id": 72,
+ "id": 73,
"name": "extractous",
"parent": 99999999,
"consumes": [
10
],
"produces": [
- 70
+ 71
]
},
{
- "id": 73,
+ "id": 74,
"name": "ffuf",
"parent": 99999999,
"consumes": [
@@ -1209,18 +1229,18 @@
]
},
{
- "id": 74,
+ "id": 75,
"name": "ffuf_shortnames",
"parent": 99999999,
"consumes": [
- 75
+ 76
],
"produces": [
19
]
},
{
- "id": 76,
+ "id": 77,
"name": "filedownload",
"parent": 99999999,
"consumes": [
@@ -1232,18 +1252,18 @@
]
},
{
- "id": 77,
+ "id": 78,
"name": "fingerprintx",
"parent": 99999999,
"consumes": [
15
],
"produces": [
- 78
+ 79
]
},
{
- "id": 79,
+ "id": 80,
"name": "fullhunt",
"parent": 99999999,
"consumes": [
@@ -1254,7 +1274,7 @@
]
},
{
- "id": 80,
+ "id": 81,
"name": "generic_ssrf",
"parent": 99999999,
"consumes": [
@@ -1265,7 +1285,7 @@
]
},
{
- "id": 81,
+ "id": 82,
"name": "git",
"parent": 99999999,
"consumes": [
@@ -1276,7 +1296,7 @@
]
},
{
- "id": 82,
+ "id": 83,
"name": "git_clone",
"parent": 99999999,
"consumes": [
@@ -1287,7 +1307,7 @@
]
},
{
- "id": 83,
+ "id": 84,
"name": "github_codesearch",
"parent": 99999999,
"consumes": [
@@ -1299,19 +1319,19 @@
]
},
{
- "id": 84,
+ "id": 85,
"name": "github_org",
"parent": 99999999,
"consumes": [
- 64,
- 65
+ 65,
+ 66
],
"produces": [
43
]
},
{
- "id": 85,
+ "id": 86,
"name": "github_workflows",
"parent": 99999999,
"consumes": [
@@ -1322,50 +1342,50 @@
]
},
{
- "id": 86,
+ "id": 87,
"name": "gitlab",
"parent": 99999999,
"consumes": [
2,
- 65,
+ 66,
16
],
"produces": [
43,
4,
- 65,
+ 66,
16
]
},
{
- "id": 87,
+ "id": 88,
"name": "google_playstore",
"parent": 99999999,
"consumes": [
43,
- 64
+ 65
],
"produces": [
9
]
},
{
- "id": 88,
+ "id": 89,
"name": "gowitness",
"parent": 99999999,
"consumes": [
- 65,
+ 66,
3
],
"produces": [
16,
3,
19,
- 89
+ 90
]
},
{
- "id": 90,
+ "id": 91,
"name": "hackertarget",
"parent": 99999999,
"consumes": [
@@ -1376,7 +1396,7 @@
]
},
{
- "id": 91,
+ "id": 92,
"name": "host_header",
"parent": 99999999,
"consumes": [
@@ -1387,7 +1407,7 @@
]
},
{
- "id": 92,
+ "id": 93,
"name": "httpx",
"parent": 99999999,
"consumes": [
@@ -1401,18 +1421,18 @@
]
},
{
- "id": 93,
+ "id": 94,
"name": "hunt",
"parent": 99999999,
"consumes": [
- 71
+ 72
],
"produces": [
4
]
},
{
- "id": 94,
+ "id": 95,
"name": "hunterio",
"parent": 99999999,
"consumes": [
@@ -1425,18 +1445,18 @@
]
},
{
- "id": 95,
+ "id": 96,
"name": "iis_shortnames",
"parent": 99999999,
"consumes": [
3
],
"produces": [
- 75
+ 76
]
},
{
- "id": 96,
+ "id": 97,
"name": "internetdb",
"parent": 99999999,
"consumes": [
@@ -1452,18 +1472,18 @@
]
},
{
- "id": 97,
+ "id": 98,
"name": "ip2location",
"parent": 99999999,
"consumes": [
12
],
"produces": [
- 98
+ 99
]
},
{
- "id": 99,
+ "id": 100,
"name": "ipneighbor",
"parent": 99999999,
"consumes": [
@@ -1474,18 +1494,18 @@
]
},
{
- "id": 100,
+ "id": 101,
"name": "ipstack",
"parent": 99999999,
"consumes": [
12
],
"produces": [
- 98
+ 99
]
},
{
- "id": 101,
+ "id": 102,
"name": "jadx",
"parent": 99999999,
"consumes": [
@@ -1496,7 +1516,7 @@
]
},
{
- "id": 102,
+ "id": 103,
"name": "leakix",
"parent": 99999999,
"consumes": [
@@ -1507,7 +1527,7 @@
]
},
{
- "id": 103,
+ "id": 104,
"name": "myssl",
"parent": 99999999,
"consumes": [
@@ -1518,7 +1538,7 @@
]
},
{
- "id": 104,
+ "id": 105,
"name": "newsletters",
"parent": 99999999,
"consumes": [
@@ -1529,7 +1549,20 @@
]
},
{
- "id": 105,
+ "id": 106,
+ "name": "nmap_xml",
+ "parent": 99999999,
+ "consumes": [
+ 7,
+ 2,
+ 12,
+ 15,
+ 79
+ ],
+ "produces": []
+ },
+ {
+ "id": 107,
"name": "ntlm",
"parent": 99999999,
"consumes": [
@@ -1542,7 +1575,7 @@
]
},
{
- "id": 106,
+ "id": 108,
"name": "nuclei",
"parent": 99999999,
"consumes": [
@@ -1555,7 +1588,7 @@
]
},
{
- "id": 107,
+ "id": 109,
"name": "oauth",
"parent": 99999999,
"consumes": [
@@ -1567,7 +1600,7 @@
]
},
{
- "id": 108,
+ "id": 110,
"name": "otx",
"parent": 99999999,
"consumes": [
@@ -1578,45 +1611,45 @@
]
},
{
- "id": 109,
+ "id": 111,
"name": "paramminer_cookies",
"parent": 99999999,
"consumes": [
2,
- 71
+ 72
],
"produces": [
4,
- 71
+ 72
]
},
{
- "id": 110,
+ "id": 112,
"name": "paramminer_getparams",
"parent": 99999999,
"consumes": [
2,
- 71
+ 72
],
"produces": [
4,
- 71
+ 72
]
},
{
- "id": 111,
+ "id": 113,
"name": "paramminer_headers",
"parent": 99999999,
"consumes": [
2,
- 71
+ 72
],
"produces": [
- 71
+ 72
]
},
{
- "id": 112,
+ "id": 114,
"name": "passivetotal",
"parent": 99999999,
"consumes": [
@@ -1627,7 +1660,7 @@
]
},
{
- "id": 113,
+ "id": 115,
"name": "pgp",
"parent": 99999999,
"consumes": [
@@ -1638,32 +1671,32 @@
]
},
{
- "id": 114,
+ "id": 116,
"name": "portscan",
"parent": 99999999,
"consumes": [
7,
12,
- 115
+ 117
],
"produces": [
15
]
},
{
- "id": 116,
+ "id": 118,
"name": "postman",
"parent": 99999999,
"consumes": [
- 64,
- 65
+ 65,
+ 66
],
"produces": [
43
]
},
{
- "id": 117,
+ "id": 119,
"name": "postman_download",
"parent": 99999999,
"consumes": [
@@ -1674,7 +1707,7 @@
]
},
{
- "id": 118,
+ "id": 120,
"name": "rapiddns",
"parent": 99999999,
"consumes": [
@@ -1685,7 +1718,7 @@
]
},
{
- "id": 119,
+ "id": 121,
"name": "robots",
"parent": 99999999,
"consumes": [
@@ -1696,7 +1729,7 @@
]
},
{
- "id": 120,
+ "id": 122,
"name": "secretsdb",
"parent": 99999999,
"consumes": [
@@ -1707,7 +1740,7 @@
]
},
{
- "id": 121,
+ "id": 123,
"name": "securitytrails",
"parent": 99999999,
"consumes": [
@@ -1718,7 +1751,7 @@
]
},
{
- "id": 122,
+ "id": 124,
"name": "securitytxt",
"parent": 99999999,
"consumes": [
@@ -1730,7 +1763,7 @@
]
},
{
- "id": 123,
+ "id": 125,
"name": "shodan_dns",
"parent": 99999999,
"consumes": [
@@ -1741,7 +1774,7 @@
]
},
{
- "id": 124,
+ "id": 126,
"name": "sitedossier",
"parent": 99999999,
"consumes": [
@@ -1752,7 +1785,7 @@
]
},
{
- "id": 125,
+ "id": 127,
"name": "skymem",
"parent": 99999999,
"consumes": [
@@ -1763,7 +1796,7 @@
]
},
{
- "id": 126,
+ "id": 128,
"name": "smuggler",
"parent": 99999999,
"consumes": [
@@ -1774,28 +1807,28 @@
]
},
{
- "id": 127,
+ "id": 129,
"name": "social",
"parent": 99999999,
"consumes": [
19
],
"produces": [
- 65
+ 66
]
},
{
- "id": 128,
+ "id": 130,
"name": "speculate",
"parent": 99999999,
"consumes": [
- 129,
+ 131,
7,
22,
2,
12,
- 115,
- 65,
+ 117,
+ 66,
24,
3,
19,
@@ -1806,11 +1839,11 @@
4,
12,
15,
- 64
+ 65
]
},
{
- "id": 130,
+ "id": 132,
"name": "sslcert",
"parent": 99999999,
"consumes": [
@@ -1822,7 +1855,7 @@
]
},
{
- "id": 131,
+ "id": 133,
"name": "subdomaincenter",
"parent": 99999999,
"consumes": [
@@ -1833,7 +1866,7 @@
]
},
{
- "id": 132,
+ "id": 134,
"name": "subdomainradar",
"parent": 99999999,
"consumes": [
@@ -1844,7 +1877,7 @@
]
},
{
- "id": 133,
+ "id": 135,
"name": "subdomains",
"parent": 99999999,
"consumes": [
@@ -1854,7 +1887,7 @@
"produces": []
},
{
- "id": 134,
+ "id": 136,
"name": "telerik",
"parent": 99999999,
"consumes": [
@@ -1867,7 +1900,7 @@
]
},
{
- "id": 135,
+ "id": 137,
"name": "trickest",
"parent": 99999999,
"consumes": [
@@ -1878,7 +1911,7 @@
]
},
{
- "id": 136,
+ "id": 138,
"name": "trufflehog",
"parent": 99999999,
"consumes": [
@@ -1891,7 +1924,7 @@
]
},
{
- "id": 137,
+ "id": 139,
"name": "url_manipulation",
"parent": 99999999,
"consumes": [
@@ -1902,7 +1935,7 @@
]
},
{
- "id": 138,
+ "id": 140,
"name": "urlscan",
"parent": 99999999,
"consumes": [
@@ -1914,7 +1947,7 @@
]
},
{
- "id": 139,
+ "id": 141,
"name": "vhost",
"parent": 99999999,
"consumes": [
@@ -1922,11 +1955,11 @@
],
"produces": [
7,
- 140
+ 142
]
},
{
- "id": 141,
+ "id": 143,
"name": "viewdns",
"parent": 99999999,
"consumes": [
@@ -1937,7 +1970,7 @@
]
},
{
- "id": 142,
+ "id": 144,
"name": "virustotal",
"parent": 99999999,
"consumes": [
@@ -1948,7 +1981,7 @@
]
},
{
- "id": 143,
+ "id": 145,
"name": "wafw00f",
"parent": 99999999,
"consumes": [
@@ -1959,7 +1992,7 @@
]
},
{
- "id": 144,
+ "id": 146,
"name": "wappalyzer",
"parent": 99999999,
"consumes": [
@@ -1970,7 +2003,7 @@
]
},
{
- "id": 145,
+ "id": 147,
"name": "wayback",
"parent": 99999999,
"consumes": [
@@ -1982,20 +2015,20 @@
]
},
{
- "id": 146,
+ "id": 148,
"name": "web_report",
"parent": 99999999,
"consumes": [
4,
16,
3,
- 140,
+ 142,
5
],
"produces": []
},
{
- "id": 147,
+ "id": 149,
"name": "wpscan",
"parent": 99999999,
"consumes": [
@@ -2010,7 +2043,7 @@
]
},
{
- "id": 148,
+ "id": 150,
"name": "zoomeye",
"parent": 99999999,
"consumes": [
@@ -2020,4 +2053,4 @@
7
]
}
-]
+]
\ No newline at end of file
diff --git a/docs/data/chord_graph/rels.json b/docs/data/chord_graph/rels.json
index 43a646026a..f25e491f3e 100644
--- a/docs/data/chord_graph/rels.json
+++ b/docs/data/chord_graph/rels.json
@@ -585,1138 +585,1178 @@
"type": "produces"
},
{
- "source": 61,
+ "source": 7,
+ "target": 61,
+ "type": "produces"
+ },
+ {
+ "source": 12,
+ "target": 61,
+ "type": "produces"
+ },
+ {
+ "source": 55,
+ "target": 61,
+ "type": "produces"
+ },
+ {
+ "source": 62,
"target": 7,
"type": "consumes"
},
{
"source": 46,
- "target": 61,
+ "target": 62,
"type": "produces"
},
{
"source": 55,
- "target": 61,
+ "target": 62,
"type": "produces"
},
{
"source": 19,
- "target": 61,
+ "target": 62,
"type": "produces"
},
{
- "source": 62,
+ "source": 63,
"target": 43,
"type": "consumes"
},
{
"source": 10,
- "target": 62,
+ "target": 63,
"type": "produces"
},
{
- "source": 63,
- "target": 64,
+ "source": 64,
+ "target": 65,
"type": "consumes"
},
{
- "source": 63,
- "target": 65,
+ "source": 64,
+ "target": 66,
"type": "consumes"
},
{
"source": 43,
- "target": 63,
+ "target": 64,
"type": "produces"
},
{
- "source": 65,
- "target": 63,
+ "source": 66,
+ "target": 64,
"type": "produces"
},
{
"source": 19,
- "target": 63,
+ "target": 64,
"type": "produces"
},
{
- "source": 66,
+ "source": 67,
"target": 2,
"type": "consumes"
},
{
"source": 16,
- "target": 66,
+ "target": 67,
"type": "produces"
},
{
"source": 5,
- "target": 66,
+ "target": 67,
"type": "produces"
},
{
- "source": 67,
+ "source": 68,
"target": 7,
"type": "consumes"
},
{
"source": 46,
- "target": 67,
+ "target": 68,
"type": "produces"
},
{
- "source": 68,
+ "source": 69,
"target": 46,
"type": "consumes"
},
{
- "source": 69,
+ "source": 70,
"target": 2,
"type": "consumes"
},
{
- "source": 69,
- "target": 70,
+ "source": 70,
+ "target": 71,
"type": "consumes"
},
{
"source": 19,
- "target": 69,
+ "target": 70,
"type": "produces"
},
{
- "source": 71,
- "target": 69,
+ "source": 72,
+ "target": 70,
"type": "produces"
},
{
- "source": 72,
+ "source": 73,
"target": 10,
"type": "consumes"
},
{
- "source": 70,
- "target": 72,
+ "source": 71,
+ "target": 73,
"type": "produces"
},
{
- "source": 73,
+ "source": 74,
"target": 3,
"type": "consumes"
},
{
"source": 19,
- "target": 73,
+ "target": 74,
"type": "produces"
},
{
- "source": 74,
- "target": 75,
+ "source": 75,
+ "target": 76,
"type": "consumes"
},
{
"source": 19,
- "target": 74,
+ "target": 75,
"type": "produces"
},
{
- "source": 76,
+ "source": 77,
"target": 2,
"type": "consumes"
},
{
- "source": 76,
+ "source": 77,
"target": 19,
"type": "consumes"
},
{
"source": 10,
- "target": 76,
+ "target": 77,
"type": "produces"
},
{
- "source": 77,
+ "source": 78,
"target": 15,
"type": "consumes"
},
{
- "source": 78,
- "target": 77,
+ "source": 79,
+ "target": 78,
"type": "produces"
},
{
- "source": 79,
+ "source": 80,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 79,
+ "target": 80,
"type": "produces"
},
{
- "source": 80,
+ "source": 81,
"target": 3,
"type": "consumes"
},
{
"source": 5,
- "target": 80,
+ "target": 81,
"type": "produces"
},
{
- "source": 81,
+ "source": 82,
"target": 3,
"type": "consumes"
},
{
"source": 4,
- "target": 81,
+ "target": 82,
"type": "produces"
},
{
- "source": 82,
+ "source": 83,
"target": 43,
"type": "consumes"
},
{
"source": 10,
- "target": 82,
+ "target": 83,
"type": "produces"
},
{
- "source": 83,
+ "source": 84,
"target": 7,
"type": "consumes"
},
{
"source": 43,
- "target": 83,
+ "target": 84,
"type": "produces"
},
{
"source": 19,
- "target": 83,
+ "target": 84,
"type": "produces"
},
{
- "source": 84,
- "target": 64,
+ "source": 85,
+ "target": 65,
"type": "consumes"
},
{
- "source": 84,
- "target": 65,
+ "source": 85,
+ "target": 66,
"type": "consumes"
},
{
"source": 43,
- "target": 84,
+ "target": 85,
"type": "produces"
},
{
- "source": 85,
+ "source": 86,
"target": 43,
"type": "consumes"
},
{
"source": 10,
- "target": 85,
+ "target": 86,
"type": "produces"
},
{
- "source": 86,
+ "source": 87,
"target": 2,
"type": "consumes"
},
{
- "source": 86,
- "target": 65,
+ "source": 87,
+ "target": 66,
"type": "consumes"
},
{
- "source": 86,
+ "source": 87,
"target": 16,
"type": "consumes"
},
{
"source": 43,
- "target": 86,
+ "target": 87,
"type": "produces"
},
{
"source": 4,
- "target": 86,
+ "target": 87,
"type": "produces"
},
{
- "source": 65,
- "target": 86,
+ "source": 66,
+ "target": 87,
"type": "produces"
},
{
"source": 16,
- "target": 86,
+ "target": 87,
"type": "produces"
},
{
- "source": 87,
+ "source": 88,
"target": 43,
"type": "consumes"
},
{
- "source": 87,
- "target": 64,
+ "source": 88,
+ "target": 65,
"type": "consumes"
},
{
"source": 9,
- "target": 87,
+ "target": 88,
"type": "produces"
},
{
- "source": 88,
- "target": 65,
+ "source": 89,
+ "target": 66,
"type": "consumes"
},
{
- "source": 88,
+ "source": 89,
"target": 3,
"type": "consumes"
},
{
"source": 16,
- "target": 88,
+ "target": 89,
"type": "produces"
},
{
"source": 3,
- "target": 88,
+ "target": 89,
"type": "produces"
},
{
"source": 19,
- "target": 88,
+ "target": 89,
"type": "produces"
},
{
- "source": 89,
- "target": 88,
+ "source": 90,
+ "target": 89,
"type": "produces"
},
{
- "source": 90,
+ "source": 91,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 90,
+ "target": 91,
"type": "produces"
},
{
- "source": 91,
+ "source": 92,
"target": 2,
"type": "consumes"
},
{
"source": 4,
- "target": 91,
+ "target": 92,
"type": "produces"
},
{
- "source": 92,
+ "source": 93,
"target": 15,
"type": "consumes"
},
{
- "source": 92,
+ "source": 93,
"target": 3,
"type": "consumes"
},
{
- "source": 92,
+ "source": 93,
"target": 19,
"type": "consumes"
},
{
"source": 2,
- "target": 92,
+ "target": 93,
"type": "produces"
},
{
"source": 3,
- "target": 92,
+ "target": 93,
"type": "produces"
},
{
- "source": 93,
- "target": 71,
+ "source": 94,
+ "target": 72,
"type": "consumes"
},
{
"source": 4,
- "target": 93,
+ "target": 94,
"type": "produces"
},
{
- "source": 94,
+ "source": 95,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 94,
+ "target": 95,
"type": "produces"
},
{
"source": 46,
- "target": 94,
+ "target": 95,
"type": "produces"
},
{
"source": 19,
- "target": 94,
+ "target": 95,
"type": "produces"
},
{
- "source": 95,
+ "source": 96,
"target": 3,
"type": "consumes"
},
{
- "source": 75,
- "target": 95,
+ "source": 76,
+ "target": 96,
"type": "produces"
},
{
- "source": 96,
+ "source": 97,
"target": 7,
"type": "consumes"
},
{
- "source": 96,
+ "source": 97,
"target": 12,
"type": "consumes"
},
{
"source": 7,
- "target": 96,
+ "target": 97,
"type": "produces"
},
{
"source": 4,
- "target": 96,
+ "target": 97,
"type": "produces"
},
{
"source": 15,
- "target": 96,
+ "target": 97,
"type": "produces"
},
{
"source": 16,
- "target": 96,
+ "target": 97,
"type": "produces"
},
{
"source": 5,
- "target": 96,
+ "target": 97,
"type": "produces"
},
{
- "source": 97,
+ "source": 98,
"target": 12,
"type": "consumes"
},
{
- "source": 98,
- "target": 97,
+ "source": 99,
+ "target": 98,
"type": "produces"
},
{
- "source": 99,
+ "source": 100,
"target": 12,
"type": "consumes"
},
{
"source": 12,
- "target": 99,
+ "target": 100,
"type": "produces"
},
{
- "source": 100,
+ "source": 101,
"target": 12,
"type": "consumes"
},
{
- "source": 98,
- "target": 100,
+ "source": 99,
+ "target": 101,
"type": "produces"
},
{
- "source": 101,
+ "source": 102,
"target": 10,
"type": "consumes"
},
{
"source": 10,
- "target": 101,
+ "target": 102,
"type": "produces"
},
{
- "source": 102,
+ "source": 103,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 102,
+ "target": 103,
"type": "produces"
},
{
- "source": 103,
+ "source": 104,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 103,
+ "target": 104,
"type": "produces"
},
{
- "source": 104,
+ "source": 105,
"target": 2,
"type": "consumes"
},
{
"source": 4,
- "target": 104,
+ "target": 105,
"type": "produces"
},
{
- "source": 105,
+ "source": 106,
+ "target": 7,
+ "type": "consumes"
+ },
+ {
+ "source": 106,
"target": 2,
"type": "consumes"
},
{
- "source": 105,
+ "source": 106,
+ "target": 12,
+ "type": "consumes"
+ },
+ {
+ "source": 106,
+ "target": 15,
+ "type": "consumes"
+ },
+ {
+ "source": 106,
+ "target": 79,
+ "type": "consumes"
+ },
+ {
+ "source": 107,
+ "target": 2,
+ "type": "consumes"
+ },
+ {
+ "source": 107,
"target": 3,
"type": "consumes"
},
{
"source": 7,
- "target": 105,
+ "target": 107,
"type": "produces"
},
{
"source": 4,
- "target": 105,
+ "target": 107,
"type": "produces"
},
{
- "source": 106,
+ "source": 108,
"target": 3,
"type": "consumes"
},
{
"source": 4,
- "target": 106,
+ "target": 108,
"type": "produces"
},
{
"source": 16,
- "target": 106,
+ "target": 108,
"type": "produces"
},
{
"source": 5,
- "target": 106,
+ "target": 108,
"type": "produces"
},
{
- "source": 107,
+ "source": 109,
"target": 7,
"type": "consumes"
},
{
- "source": 107,
+ "source": 109,
"target": 19,
"type": "consumes"
},
{
"source": 7,
- "target": 107,
+ "target": 109,
"type": "produces"
},
{
- "source": 108,
+ "source": 110,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 108,
+ "target": 110,
"type": "produces"
},
{
- "source": 109,
+ "source": 111,
"target": 2,
"type": "consumes"
},
{
- "source": 109,
- "target": 71,
+ "source": 111,
+ "target": 72,
"type": "consumes"
},
{
"source": 4,
- "target": 109,
+ "target": 111,
"type": "produces"
},
{
- "source": 71,
- "target": 109,
+ "source": 72,
+ "target": 111,
"type": "produces"
},
{
- "source": 110,
+ "source": 112,
"target": 2,
"type": "consumes"
},
{
- "source": 110,
- "target": 71,
+ "source": 112,
+ "target": 72,
"type": "consumes"
},
{
"source": 4,
- "target": 110,
+ "target": 112,
"type": "produces"
},
{
- "source": 71,
- "target": 110,
+ "source": 72,
+ "target": 112,
"type": "produces"
},
{
- "source": 111,
+ "source": 113,
"target": 2,
"type": "consumes"
},
{
- "source": 111,
- "target": 71,
+ "source": 113,
+ "target": 72,
"type": "consumes"
},
{
- "source": 71,
- "target": 111,
+ "source": 72,
+ "target": 113,
"type": "produces"
},
{
- "source": 112,
+ "source": 114,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 112,
+ "target": 114,
"type": "produces"
},
{
- "source": 113,
+ "source": 115,
"target": 7,
"type": "consumes"
},
{
"source": 46,
- "target": 113,
+ "target": 115,
"type": "produces"
},
{
- "source": 114,
+ "source": 116,
"target": 7,
"type": "consumes"
},
{
- "source": 114,
+ "source": 116,
"target": 12,
"type": "consumes"
},
{
- "source": 114,
- "target": 115,
+ "source": 116,
+ "target": 117,
"type": "consumes"
},
{
"source": 15,
- "target": 114,
+ "target": 116,
"type": "produces"
},
{
- "source": 116,
- "target": 64,
+ "source": 118,
+ "target": 65,
"type": "consumes"
},
{
- "source": 116,
- "target": 65,
+ "source": 118,
+ "target": 66,
"type": "consumes"
},
{
"source": 43,
- "target": 116,
+ "target": 118,
"type": "produces"
},
{
- "source": 117,
+ "source": 119,
"target": 43,
"type": "consumes"
},
{
"source": 10,
- "target": 117,
+ "target": 119,
"type": "produces"
},
{
- "source": 118,
+ "source": 120,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 118,
+ "target": 120,
"type": "produces"
},
{
- "source": 119,
+ "source": 121,
"target": 3,
"type": "consumes"
},
{
"source": 19,
- "target": 119,
+ "target": 121,
"type": "produces"
},
{
- "source": 120,
+ "source": 122,
"target": 2,
"type": "consumes"
},
{
"source": 4,
- "target": 120,
+ "target": 122,
"type": "produces"
},
{
- "source": 121,
+ "source": 123,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 121,
+ "target": 123,
"type": "produces"
},
{
- "source": 122,
+ "source": 124,
"target": 7,
"type": "consumes"
},
{
"source": 46,
- "target": 122,
+ "target": 124,
"type": "produces"
},
{
"source": 19,
- "target": 122,
+ "target": 124,
"type": "produces"
},
{
- "source": 123,
+ "source": 125,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 123,
+ "target": 125,
"type": "produces"
},
{
- "source": 124,
+ "source": 126,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 124,
+ "target": 126,
"type": "produces"
},
{
- "source": 125,
+ "source": 127,
"target": 7,
"type": "consumes"
},
{
"source": 46,
- "target": 125,
+ "target": 127,
"type": "produces"
},
{
- "source": 126,
+ "source": 128,
"target": 3,
"type": "consumes"
},
{
"source": 4,
- "target": 126,
+ "target": 128,
"type": "produces"
},
{
- "source": 127,
+ "source": 129,
"target": 19,
"type": "consumes"
},
{
- "source": 65,
- "target": 127,
+ "source": 66,
+ "target": 129,
"type": "produces"
},
{
- "source": 128,
- "target": 129,
+ "source": 130,
+ "target": 131,
"type": "consumes"
},
{
- "source": 128,
+ "source": 130,
"target": 7,
"type": "consumes"
},
{
- "source": 128,
+ "source": 130,
"target": 22,
"type": "consumes"
},
{
- "source": 128,
+ "source": 130,
"target": 2,
"type": "consumes"
},
{
- "source": 128,
+ "source": 130,
"target": 12,
"type": "consumes"
},
{
- "source": 128,
- "target": 115,
+ "source": 130,
+ "target": 117,
"type": "consumes"
},
{
- "source": 128,
- "target": 65,
+ "source": 130,
+ "target": 66,
"type": "consumes"
},
{
- "source": 128,
+ "source": 130,
"target": 24,
"type": "consumes"
},
{
- "source": 128,
+ "source": 130,
"target": 3,
"type": "consumes"
},
{
- "source": 128,
+ "source": 130,
"target": 19,
"type": "consumes"
},
{
- "source": 128,
+ "source": 130,
"target": 49,
"type": "consumes"
},
{
"source": 7,
- "target": 128,
+ "target": 130,
"type": "produces"
},
{
"source": 4,
- "target": 128,
+ "target": 130,
"type": "produces"
},
{
"source": 12,
- "target": 128,
+ "target": 130,
"type": "produces"
},
{
"source": 15,
- "target": 128,
+ "target": 130,
"type": "produces"
},
{
- "source": 64,
- "target": 128,
+ "source": 65,
+ "target": 130,
"type": "produces"
},
{
- "source": 130,
+ "source": 132,
"target": 15,
"type": "consumes"
},
{
"source": 7,
- "target": 130,
+ "target": 132,
"type": "produces"
},
{
"source": 46,
- "target": 130,
+ "target": 132,
"type": "produces"
},
{
- "source": 131,
+ "source": 133,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 131,
+ "target": 133,
"type": "produces"
},
{
- "source": 132,
+ "source": 134,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 132,
+ "target": 134,
"type": "produces"
},
{
- "source": 133,
+ "source": 135,
"target": 7,
"type": "consumes"
},
{
- "source": 133,
+ "source": 135,
"target": 22,
"type": "consumes"
},
{
- "source": 134,
+ "source": 136,
"target": 2,
"type": "consumes"
},
{
- "source": 134,
+ "source": 136,
"target": 3,
"type": "consumes"
},
{
"source": 4,
- "target": 134,
+ "target": 136,
"type": "produces"
},
{
"source": 5,
- "target": 134,
+ "target": 136,
"type": "produces"
},
{
- "source": 135,
+ "source": 137,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 135,
+ "target": 137,
"type": "produces"
},
{
- "source": 136,
+ "source": 138,
"target": 43,
"type": "consumes"
},
{
- "source": 136,
+ "source": 138,
"target": 10,
"type": "consumes"
},
{
"source": 4,
- "target": 136,
+ "target": 138,
"type": "produces"
},
{
"source": 5,
- "target": 136,
+ "target": 138,
"type": "produces"
},
{
- "source": 137,
+ "source": 139,
"target": 3,
"type": "consumes"
},
{
"source": 4,
- "target": 137,
+ "target": 139,
"type": "produces"
},
{
- "source": 138,
+ "source": 140,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 138,
+ "target": 140,
"type": "produces"
},
{
"source": 19,
- "target": 138,
+ "target": 140,
"type": "produces"
},
{
- "source": 139,
+ "source": 141,
"target": 3,
"type": "consumes"
},
{
"source": 7,
- "target": 139,
+ "target": 141,
"type": "produces"
},
{
- "source": 140,
- "target": 139,
+ "source": 142,
+ "target": 141,
"type": "produces"
},
{
- "source": 141,
+ "source": 143,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 141,
+ "target": 143,
"type": "produces"
},
{
- "source": 142,
+ "source": 144,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 142,
+ "target": 144,
"type": "produces"
},
{
- "source": 143,
+ "source": 145,
"target": 3,
"type": "consumes"
},
{
"source": 17,
- "target": 143,
+ "target": 145,
"type": "produces"
},
{
- "source": 144,
+ "source": 146,
"target": 2,
"type": "consumes"
},
{
"source": 16,
- "target": 144,
+ "target": 146,
"type": "produces"
},
{
- "source": 145,
+ "source": 147,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 145,
+ "target": 147,
"type": "produces"
},
{
"source": 19,
- "target": 145,
+ "target": 147,
"type": "produces"
},
{
- "source": 146,
+ "source": 148,
"target": 4,
"type": "consumes"
},
{
- "source": 146,
+ "source": 148,
"target": 16,
"type": "consumes"
},
{
- "source": 146,
+ "source": 148,
"target": 3,
"type": "consumes"
},
{
- "source": 146,
- "target": 140,
+ "source": 148,
+ "target": 142,
"type": "consumes"
},
{
- "source": 146,
+ "source": 148,
"target": 5,
"type": "consumes"
},
{
- "source": 147,
+ "source": 149,
"target": 2,
"type": "consumes"
},
{
- "source": 147,
+ "source": 149,
"target": 16,
"type": "consumes"
},
{
"source": 4,
- "target": 147,
+ "target": 149,
"type": "produces"
},
{
"source": 16,
- "target": 147,
+ "target": 149,
"type": "produces"
},
{
"source": 19,
- "target": 147,
+ "target": 149,
"type": "produces"
},
{
"source": 5,
- "target": 147,
+ "target": 149,
"type": "produces"
},
{
- "source": 148,
+ "source": 150,
"target": 7,
"type": "consumes"
},
{
"source": 7,
- "target": 148,
+ "target": 150,
"type": "produces"
}
-]
+]
\ No newline at end of file
diff --git a/docs/modules/list_of_modules.md b/docs/modules/list_of_modules.md
index 44d57a0fbe..f8eae6b501 100644
--- a/docs/modules/list_of_modules.md
+++ b/docs/modules/list_of_modules.md
@@ -120,21 +120,22 @@
| emails | output | No | Output any email addresses found belonging to the target domain | email-enum | EMAIL_ADDRESS | | @domwhewell-sage | 2023-12-23 |
| http | output | No | Send every event to a custom URL via a web request | | * | | @TheTechromancer | 2022-04-13 |
| json | output | No | Output to Newline-Delimited JSON (NDJSON) | | * | | @TheTechromancer | 2022-04-07 |
-| mysql | output | No | Output scan data to a MySQL database | | * | | | |
+| mysql | output | No | Output scan data to a MySQL database | | * | | @TheTechromancer | 2024-11-13 |
| neo4j | output | No | Output to Neo4j | | * | | @TheTechromancer | 2022-04-07 |
-| postgres | output | No | Output scan data to a SQLite database | | * | | | |
+| nmap_xml | output | No | Output to Nmap XML | | DNS_NAME, HTTP_RESPONSE, IP_ADDRESS, OPEN_TCP_PORT, PROTOCOL | | @TheTechromancer | 2024-11-16 |
+| postgres | output | No | Output scan data to a SQLite database | | * | | @TheTechromancer | 2024-11-08 |
| python | output | No | Output via Python API | | * | | @TheTechromancer | 2022-09-13 |
| slack | output | No | Message a Slack channel when certain events are encountered | | * | | @TheTechromancer | 2023-08-14 |
| splunk | output | No | Send every event to a splunk instance through HTTP Event Collector | | * | | @w0Tx | 2024-02-17 |
-| sqlite | output | No | Output scan data to a SQLite database | | * | | | |
-| stdout | output | No | Output to text | | * | | | |
+| sqlite | output | No | Output scan data to a SQLite database | | * | | @TheTechromancer | 2024-11-07 |
+| stdout | output | No | Output to text | | * | | @TheTechromancer | 2024-04-03 |
| subdomains | output | No | Output only resolved, in-scope subdomains | subdomain-enum | DNS_NAME, DNS_NAME_UNRESOLVED | | @TheTechromancer | 2023-07-31 |
| teams | output | No | Message a Teams channel when certain events are encountered | | * | | @TheTechromancer | 2023-08-14 |
-| txt | output | No | Output to text | | * | | | |
+| txt | output | No | Output to text | | * | | @TheTechromancer | 2024-04-03 |
| web_report | output | No | Create a markdown report with web assets | | FINDING, TECHNOLOGY, URL, VHOST, VULNERABILITY | | @liquidsec | 2023-02-08 |
| websocket | output | No | Output to websockets | | * | | @TheTechromancer | 2022-04-15 |
-| cloudcheck | internal | No | Tag events by cloud provider, identify cloud resources like storage buckets | | * | | | |
-| dnsresolve | internal | No | | | * | | | |
+| cloudcheck | internal | No | Tag events by cloud provider, identify cloud resources like storage buckets | | * | | @TheTechromancer | 2024-07-07 |
+| dnsresolve | internal | No | Perform DNS resolution | | * | DNS_NAME, IP_ADDRESS, RAW_DNS_RECORD | @TheTechromancer | 2022-04-08 |
| aggregate | internal | No | Summarize statistics at the end of a scan | passive, safe | | | @TheTechromancer | 2022-07-25 |
| excavate | internal | No | Passively extract juicy tidbits from scan data | passive | HTTP_RESPONSE, RAW_TEXT | URL_UNVERIFIED, WEB_PARAMETER | @liquidsec | 2022-06-27 |
| speculate | internal | No | Derive certain event types from others by common sense | passive | AZURE_TENANT, DNS_NAME, DNS_NAME_UNRESOLVED, HTTP_RESPONSE, IP_ADDRESS, IP_RANGE, SOCIAL, STORAGE_BUCKET, URL, URL_UNVERIFIED, USERNAME | DNS_NAME, FINDING, IP_ADDRESS, OPEN_TCP_PORT, ORG_STUB | @liquidsec | 2022-05-03 |
diff --git a/docs/modules/nuclei.md b/docs/modules/nuclei.md
index 43231b5c7a..2849cf22f5 100644
--- a/docs/modules/nuclei.md
+++ b/docs/modules/nuclei.md
@@ -51,7 +51,7 @@ The Nuclei module has many configuration options:
| modules.nuclei.silent | bool | Don't display nuclei's banner or status messages | False |
| modules.nuclei.tags | str | execute a subset of templates that contain the provided tags | |
| modules.nuclei.templates | str | template or template directory paths to include in the scan | |
-| modules.nuclei.version | str | nuclei version | 3.3.6 |
+| modules.nuclei.version | str | nuclei version | 3.3.7 |
Most of these you probably will **NOT** want to change. In particular, we advise against changing the version of Nuclei, as it's possible the latest version won't work right with BBOT.
diff --git a/docs/release_history.md b/docs/release_history.md
index 211cfa8d7e..cf1f140688 100644
--- a/docs/release_history.md
+++ b/docs/release_history.md
@@ -1,47 +1,51 @@
+### 2.2.0 - Nov 18, 2024
+- [https://github.com/blacklanternsecurity/bbot/pull/1919](https://github.com/blacklanternsecurity/bbot/pull/1919)
+
### 2.1.2 - Nov 1, 2024
-- https://github.com/blacklanternsecurity/bbot/pull/1909
+- [https://github.com/blacklanternsecurity/bbot/pull/1909](https://github.com/blacklanternsecurity/bbot/pull/1909)
### 2.1.1 - Oct 31, 2024
-- https://github.com/blacklanternsecurity/bbot/pull/1885
+- [https://github.com/blacklanternsecurity/bbot/pull/1885](https://github.com/blacklanternsecurity/bbot/pull/1885)
### 2.1.0 - Oct 18, 2024
-- https://github.com/blacklanternsecurity/bbot/pull/1724
+- [https://github.com/blacklanternsecurity/bbot/pull/1724](https://github.com/blacklanternsecurity/bbot/pull/1724)
### 2.0.1 - Aug 29, 2024
-- https://github.com/blacklanternsecurity/bbot/pull/1650
+- [https://github.com/blacklanternsecurity/bbot/pull/1650](https://github.com/blacklanternsecurity/bbot/pull/1650)
### 2.0.0 - Aug 9, 2024
-- https://github.com/blacklanternsecurity/bbot/pull/1424
+- [https://github.com/blacklanternsecurity/bbot/pull/1424](https://github.com/blacklanternsecurity/bbot/pull/1424)
+- [https://github.com/blacklanternsecurity/bbot/pull/1235](https://github.com/blacklanternsecurity/bbot/pull/1235)
### 1.1.8 - May 29, 2024
-- https://github.com/blacklanternsecurity/bbot/pull/1382
+- [https://github.com/blacklanternsecurity/bbot/pull/1382](https://github.com/blacklanternsecurity/bbot/pull/1382)
### 1.1.7 - May 15, 2024
-- https://github.com/blacklanternsecurity/bbot/pull/1119
+- [https://github.com/blacklanternsecurity/bbot/pull/1119](https://github.com/blacklanternsecurity/bbot/pull/1119)
### 1.1.6 - Feb 21, 2024
-- https://github.com/blacklanternsecurity/bbot/pull/1002
+- [https://github.com/blacklanternsecurity/bbot/pull/1002](https://github.com/blacklanternsecurity/bbot/pull/1002)
### 1.1.5 - Jan 15, 2024
-- https://github.com/blacklanternsecurity/bbot/pull/996
+- [https://github.com/blacklanternsecurity/bbot/pull/996](https://github.com/blacklanternsecurity/bbot/pull/996)
### 1.1.4 - Jan 11, 2024
-- https://github.com/blacklanternsecurity/bbot/pull/837
+- [https://github.com/blacklanternsecurity/bbot/pull/837](https://github.com/blacklanternsecurity/bbot/pull/837)
### 1.1.3 - Nov 4, 2023
-- https://github.com/blacklanternsecurity/bbot/pull/823
+- [https://github.com/blacklanternsecurity/bbot/pull/823](https://github.com/blacklanternsecurity/bbot/pull/823)
### 1.1.2 - Nov 3, 2023
-- https://github.com/blacklanternsecurity/bbot/pull/777
+- [https://github.com/blacklanternsecurity/bbot/pull/777](https://github.com/blacklanternsecurity/bbot/pull/777)
### 1.1.1 - Oct 11, 2023
-- https://github.com/blacklanternsecurity/bbot/pull/668
+- [https://github.com/blacklanternsecurity/bbot/pull/668](https://github.com/blacklanternsecurity/bbot/pull/668)
### 1.1.0 - Aug 4, 2023
-- https://github.com/blacklanternsecurity/bbot/pull/598
+- [https://github.com/blacklanternsecurity/bbot/pull/598](https://github.com/blacklanternsecurity/bbot/pull/598)
### 1.0.5 - Mar 10, 2023
-- https://github.com/blacklanternsecurity/bbot/pull/352
+- [https://github.com/blacklanternsecurity/bbot/pull/352](https://github.com/blacklanternsecurity/bbot/pull/352)
### 1.0.5 - Mar 10, 2023
-- https://github.com/blacklanternsecurity/bbot/pull/352
+- [https://github.com/blacklanternsecurity/bbot/pull/352](https://github.com/blacklanternsecurity/bbot/pull/352)
diff --git a/docs/scanning/advanced.md b/docs/scanning/advanced.md
index b990598a1a..88f75da5c1 100644
--- a/docs/scanning/advanced.md
+++ b/docs/scanning/advanced.md
@@ -39,8 +39,8 @@ usage: bbot [-h] [-t TARGET [TARGET ...]] [-w WHITELIST [WHITELIST ...]]
[-f FLAG [FLAG ...]] [-lf] [-rf FLAG [FLAG ...]]
[-ef FLAG [FLAG ...]] [--allow-deadly] [-n SCAN_NAME] [-v] [-d]
[-s] [--force] [-y] [--fast-mode] [--dry-run]
- [--current-preset] [--current-preset-full] [-o DIR]
- [-om MODULE [MODULE ...]] [--json] [--brief]
+ [--current-preset] [--current-preset-full]
+ [-om MODULE [MODULE ...]] [-lo] [-o DIR] [--json] [--brief]
[--event-types EVENT_TYPES [EVENT_TYPES ...]]
[--no-deps | --force-deps | --retry-deps | --ignore-failed-deps | --install-all-deps]
[--version] [--proxy HTTP_PROXY]
@@ -100,10 +100,12 @@ Scan:
Show the current preset in its full form, including defaults
Output:
+ -om MODULE [MODULE ...], --output-modules MODULE [MODULE ...]
+ Output module(s). Choices: asset_inventory,csv,discord,emails,http,json,mysql,neo4j,nmap_xml,postgres,python,slack,splunk,sqlite,stdout,subdomains,teams,txt,web_report,websocket
+ -lo, --list-output-modules
+ List available output modules
-o DIR, --output-dir DIR
Directory to output scan results
- -om MODULE [MODULE ...], --output-modules MODULE [MODULE ...]
- Output module(s). Choices: asset_inventory,csv,discord,emails,http,json,mysql,neo4j,postgres,python,slack,splunk,sqlite,stdout,subdomains,teams,txt,web_report,websocket
--json, -j Output scan data in JSON format
--brief, -br Output only the data itself
--event-types EVENT_TYPES [EVENT_TYPES ...]
@@ -149,6 +151,9 @@ EXAMPLES
List modules:
bbot -l
+ List output modules:
+ bbot -lo
+
List presets:
bbot -lp
diff --git a/docs/scanning/configuration.md b/docs/scanning/configuration.md
index 4ce1a92212..5808b149c5 100644
--- a/docs/scanning/configuration.md
+++ b/docs/scanning/configuration.md
@@ -325,7 +325,7 @@ Many modules accept their own configuration options. These options have the abil
| modules.nuclei.silent | bool | Don't display nuclei's banner or status messages | False |
| modules.nuclei.tags | str | execute a subset of templates that contain the provided tags | |
| modules.nuclei.templates | str | template or template directory paths to include in the scan | |
-| modules.nuclei.version | str | nuclei version | 3.3.6 |
+| modules.nuclei.version | str | nuclei version | 3.3.7 |
| modules.oauth.try_all | bool | Check for OAUTH/IODC on every subdomain and URL. | False |
| modules.paramminer_cookies.recycle_words | bool | Attempt to use words found during the scan on all other endpoints | False |
| modules.paramminer_cookies.skip_boring_words | bool | Remove commonly uninteresting words from the wordlist | True |
@@ -436,7 +436,7 @@ Many modules accept their own configuration options. These options have the abil
| modules.trufflehog.config | str | File path or URL to YAML trufflehog config | |
| modules.trufflehog.deleted_forks | bool | Scan for deleted github forks. WARNING: This is SLOW. For a smaller repository, this process can take 20 minutes. For a larger repository, it could take hours. | False |
| modules.trufflehog.only_verified | bool | Only report credentials that have been verified | True |
-| modules.trufflehog.version | str | trufflehog version | 3.84.1 |
+| modules.trufflehog.version | str | trufflehog version | 3.86.1 |
| modules.urlscan.urls | bool | Emit URLs in addition to DNS_NAMEs | False |
| modules.virustotal.api_key | str | VirusTotal API Key | |
| modules.wayback.garbage_threshold | int | Dedupe similar urls if they are in a group of this size or higher (lower values == less garbage data) | 10 |
diff --git a/docs/scanning/events.md b/docs/scanning/events.md
index e837417985..f512ac770d 100644
--- a/docs/scanning/events.md
+++ b/docs/scanning/events.md
@@ -104,41 +104,41 @@ Below is a full list of event types along with which modules produce/consume the
## List of Event Types
-| Event Type | # Consuming Modules | # Producing Modules | Consuming Modules | Producing Modules |
-|---------------------|-----------------------|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| * | 18 | 0 | affiliates, cloudcheck, csv, discord, dnsresolve, http, json, mysql, neo4j, postgres, python, slack, splunk, sqlite, stdout, teams, txt, websocket | |
-| ASN | 0 | 1 | | asn |
-| AZURE_TENANT | 1 | 0 | speculate | |
-| CODE_REPOSITORY | 6 | 6 | docker_pull, git_clone, github_workflows, google_playstore, postman_download, trufflehog | code_repository, dockerhub, github_codesearch, github_org, gitlab, postman |
-| DNS_NAME | 60 | 43 | anubisdb, asset_inventory, azure_realm, azure_tenant, baddns, baddns_zone, bevigil, binaryedge, bucket_amazon, bucket_azure, bucket_digitalocean, bucket_firebase, bucket_google, bufferoverrun, builtwith, c99, censys, certspotter, chaos, columbus, credshed, crt, dehashed, digitorus, dnsbimi, dnsbrute, dnsbrute_mutations, dnscaa, dnscommonsrv, dnsdumpster, dnstlsrpt, emailformat, fullhunt, github_codesearch, hackertarget, hunterio, internetdb, leakix, myssl, oauth, otx, passivetotal, pgp, portscan, rapiddns, securitytrails, securitytxt, shodan_dns, sitedossier, skymem, speculate, subdomaincenter, subdomainradar, subdomains, trickest, urlscan, viewdns, virustotal, wayback, zoomeye | anubisdb, azure_tenant, bevigil, binaryedge, bufferoverrun, builtwith, c99, censys, certspotter, chaos, columbus, crt, digitorus, dnsbrute, dnsbrute_mutations, dnscaa, dnscommonsrv, dnsdumpster, fullhunt, hackertarget, hunterio, internetdb, leakix, myssl, ntlm, oauth, otx, passivetotal, rapiddns, securitytrails, shodan_dns, sitedossier, speculate, sslcert, subdomaincenter, subdomainradar, trickest, urlscan, vhost, viewdns, virustotal, wayback, zoomeye |
-| DNS_NAME_UNRESOLVED | 3 | 0 | baddns, speculate, subdomains | |
-| EMAIL_ADDRESS | 1 | 10 | emails | credshed, dehashed, dnscaa, dnstlsrpt, emailformat, hunterio, pgp, securitytxt, skymem, sslcert |
-| FILESYSTEM | 3 | 7 | extractous, jadx, trufflehog | apkpure, docker_pull, filedownload, git_clone, github_workflows, jadx, postman_download |
-| FINDING | 2 | 29 | asset_inventory, web_report | ajaxpro, baddns, baddns_direct, baddns_zone, badsecrets, bucket_amazon, bucket_azure, bucket_digitalocean, bucket_firebase, bucket_google, bypass403, dastardly, git, gitlab, host_header, hunt, internetdb, newsletters, ntlm, nuclei, paramminer_cookies, paramminer_getparams, secretsdb, smuggler, speculate, telerik, trufflehog, url_manipulation, wpscan |
-| GEOLOCATION | 0 | 2 | | ip2location, ipstack |
-| HASHED_PASSWORD | 0 | 2 | | credshed, dehashed |
-| HTTP_RESPONSE | 19 | 1 | ajaxpro, asset_inventory, badsecrets, dastardly, dotnetnuke, excavate, filedownload, gitlab, host_header, newsletters, ntlm, paramminer_cookies, paramminer_getparams, paramminer_headers, secretsdb, speculate, telerik, wappalyzer, wpscan | httpx |
-| IP_ADDRESS | 8 | 3 | asn, asset_inventory, internetdb, ip2location, ipneighbor, ipstack, portscan, speculate | asset_inventory, ipneighbor, speculate |
-| IP_RANGE | 2 | 0 | portscan, speculate | |
-| MOBILE_APP | 1 | 1 | apkpure | google_playstore |
-| OPEN_TCP_PORT | 4 | 4 | asset_inventory, fingerprintx, httpx, sslcert | asset_inventory, internetdb, portscan, speculate |
-| ORG_STUB | 4 | 1 | dockerhub, github_org, google_playstore, postman | speculate |
-| PASSWORD | 0 | 2 | | credshed, dehashed |
-| PROTOCOL | 0 | 1 | | fingerprintx |
-| RAW_DNS_RECORD | 0 | 2 | | dnsbimi, dnstlsrpt |
-| RAW_TEXT | 1 | 1 | excavate | extractous |
-| SOCIAL | 6 | 3 | dockerhub, github_org, gitlab, gowitness, postman, speculate | dockerhub, gitlab, social |
-| STORAGE_BUCKET | 8 | 5 | baddns_direct, bucket_amazon, bucket_azure, bucket_digitalocean, bucket_file_enum, bucket_firebase, bucket_google, speculate | bucket_amazon, bucket_azure, bucket_digitalocean, bucket_firebase, bucket_google |
-| TECHNOLOGY | 4 | 8 | asset_inventory, gitlab, web_report, wpscan | badsecrets, dotnetnuke, gitlab, gowitness, internetdb, nuclei, wappalyzer, wpscan |
-| URL | 20 | 2 | ajaxpro, asset_inventory, baddns_direct, bypass403, ffuf, generic_ssrf, git, gowitness, httpx, iis_shortnames, ntlm, nuclei, robots, smuggler, speculate, telerik, url_manipulation, vhost, wafw00f, web_report | gowitness, httpx |
-| URL_HINT | 1 | 1 | ffuf_shortnames | iis_shortnames |
-| URL_UNVERIFIED | 6 | 18 | code_repository, filedownload, httpx, oauth, social, speculate | azure_realm, bevigil, bucket_file_enum, dnsbimi, dnscaa, dnstlsrpt, dockerhub, excavate, ffuf, ffuf_shortnames, github_codesearch, gowitness, hunterio, robots, securitytxt, urlscan, wayback, wpscan |
-| USERNAME | 1 | 2 | speculate | credshed, dehashed |
-| VHOST | 1 | 1 | web_report | vhost |
-| VULNERABILITY | 2 | 13 | asset_inventory, web_report | ajaxpro, baddns, baddns_direct, baddns_zone, badsecrets, dastardly, dotnetnuke, generic_ssrf, internetdb, nuclei, telerik, trufflehog, wpscan |
-| WAF | 1 | 1 | asset_inventory | wafw00f |
-| WEBSCREENSHOT | 0 | 1 | | gowitness |
-| WEB_PARAMETER | 4 | 4 | hunt, paramminer_cookies, paramminer_getparams, paramminer_headers | excavate, paramminer_cookies, paramminer_getparams, paramminer_headers |
+| Event Type | # Consuming Modules | # Producing Modules | Consuming Modules | Producing Modules |
+|---------------------|-----------------------|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| * | 18 | 0 | affiliates, cloudcheck, csv, discord, dnsresolve, http, json, mysql, neo4j, postgres, python, slack, splunk, sqlite, stdout, teams, txt, websocket | |
+| ASN | 0 | 1 | | asn |
+| AZURE_TENANT | 1 | 0 | speculate | |
+| CODE_REPOSITORY | 6 | 6 | docker_pull, git_clone, github_workflows, google_playstore, postman_download, trufflehog | code_repository, dockerhub, github_codesearch, github_org, gitlab, postman |
+| DNS_NAME | 61 | 44 | anubisdb, asset_inventory, azure_realm, azure_tenant, baddns, baddns_zone, bevigil, binaryedge, bucket_amazon, bucket_azure, bucket_digitalocean, bucket_firebase, bucket_google, bufferoverrun, builtwith, c99, censys, certspotter, chaos, columbus, credshed, crt, dehashed, digitorus, dnsbimi, dnsbrute, dnsbrute_mutations, dnscaa, dnscommonsrv, dnsdumpster, dnstlsrpt, emailformat, fullhunt, github_codesearch, hackertarget, hunterio, internetdb, leakix, myssl, nmap_xml, oauth, otx, passivetotal, pgp, portscan, rapiddns, securitytrails, securitytxt, shodan_dns, sitedossier, skymem, speculate, subdomaincenter, subdomainradar, subdomains, trickest, urlscan, viewdns, virustotal, wayback, zoomeye | anubisdb, azure_tenant, bevigil, binaryedge, bufferoverrun, builtwith, c99, censys, certspotter, chaos, columbus, crt, digitorus, dnsbrute, dnsbrute_mutations, dnscaa, dnscommonsrv, dnsdumpster, dnsresolve, fullhunt, hackertarget, hunterio, internetdb, leakix, myssl, ntlm, oauth, otx, passivetotal, rapiddns, securitytrails, shodan_dns, sitedossier, speculate, sslcert, subdomaincenter, subdomainradar, trickest, urlscan, vhost, viewdns, virustotal, wayback, zoomeye |
+| DNS_NAME_UNRESOLVED | 3 | 0 | baddns, speculate, subdomains | |
+| EMAIL_ADDRESS | 1 | 10 | emails | credshed, dehashed, dnscaa, dnstlsrpt, emailformat, hunterio, pgp, securitytxt, skymem, sslcert |
+| FILESYSTEM | 3 | 7 | extractous, jadx, trufflehog | apkpure, docker_pull, filedownload, git_clone, github_workflows, jadx, postman_download |
+| FINDING | 2 | 29 | asset_inventory, web_report | ajaxpro, baddns, baddns_direct, baddns_zone, badsecrets, bucket_amazon, bucket_azure, bucket_digitalocean, bucket_firebase, bucket_google, bypass403, dastardly, git, gitlab, host_header, hunt, internetdb, newsletters, ntlm, nuclei, paramminer_cookies, paramminer_getparams, secretsdb, smuggler, speculate, telerik, trufflehog, url_manipulation, wpscan |
+| GEOLOCATION | 0 | 2 | | ip2location, ipstack |
+| HASHED_PASSWORD | 0 | 2 | | credshed, dehashed |
+| HTTP_RESPONSE | 20 | 1 | ajaxpro, asset_inventory, badsecrets, dastardly, dotnetnuke, excavate, filedownload, gitlab, host_header, newsletters, nmap_xml, ntlm, paramminer_cookies, paramminer_getparams, paramminer_headers, secretsdb, speculate, telerik, wappalyzer, wpscan | httpx |
+| IP_ADDRESS | 9 | 4 | asn, asset_inventory, internetdb, ip2location, ipneighbor, ipstack, nmap_xml, portscan, speculate | asset_inventory, dnsresolve, ipneighbor, speculate |
+| IP_RANGE | 2 | 0 | portscan, speculate | |
+| MOBILE_APP | 1 | 1 | apkpure | google_playstore |
+| OPEN_TCP_PORT | 5 | 4 | asset_inventory, fingerprintx, httpx, nmap_xml, sslcert | asset_inventory, internetdb, portscan, speculate |
+| ORG_STUB | 4 | 1 | dockerhub, github_org, google_playstore, postman | speculate |
+| PASSWORD | 0 | 2 | | credshed, dehashed |
+| PROTOCOL | 1 | 1 | nmap_xml | fingerprintx |
+| RAW_DNS_RECORD | 0 | 3 | | dnsbimi, dnsresolve, dnstlsrpt |
+| RAW_TEXT | 1 | 1 | excavate | extractous |
+| SOCIAL | 6 | 3 | dockerhub, github_org, gitlab, gowitness, postman, speculate | dockerhub, gitlab, social |
+| STORAGE_BUCKET | 8 | 5 | baddns_direct, bucket_amazon, bucket_azure, bucket_digitalocean, bucket_file_enum, bucket_firebase, bucket_google, speculate | bucket_amazon, bucket_azure, bucket_digitalocean, bucket_firebase, bucket_google |
+| TECHNOLOGY | 4 | 8 | asset_inventory, gitlab, web_report, wpscan | badsecrets, dotnetnuke, gitlab, gowitness, internetdb, nuclei, wappalyzer, wpscan |
+| URL | 20 | 2 | ajaxpro, asset_inventory, baddns_direct, bypass403, ffuf, generic_ssrf, git, gowitness, httpx, iis_shortnames, ntlm, nuclei, robots, smuggler, speculate, telerik, url_manipulation, vhost, wafw00f, web_report | gowitness, httpx |
+| URL_HINT | 1 | 1 | ffuf_shortnames | iis_shortnames |
+| URL_UNVERIFIED | 6 | 18 | code_repository, filedownload, httpx, oauth, social, speculate | azure_realm, bevigil, bucket_file_enum, dnsbimi, dnscaa, dnstlsrpt, dockerhub, excavate, ffuf, ffuf_shortnames, github_codesearch, gowitness, hunterio, robots, securitytxt, urlscan, wayback, wpscan |
+| USERNAME | 1 | 2 | speculate | credshed, dehashed |
+| VHOST | 1 | 1 | web_report | vhost |
+| VULNERABILITY | 2 | 13 | asset_inventory, web_report | ajaxpro, baddns, baddns_direct, baddns_zone, badsecrets, dastardly, dotnetnuke, generic_ssrf, internetdb, nuclei, telerik, trufflehog, wpscan |
+| WAF | 1 | 1 | asset_inventory | wafw00f |
+| WEBSCREENSHOT | 0 | 1 | | gowitness |
+| WEB_PARAMETER | 4 | 4 | hunt, paramminer_cookies, paramminer_getparams, paramminer_headers | excavate, paramminer_cookies, paramminer_getparams, paramminer_headers |
## Findings Vs. Vulnerabilities
diff --git a/docs/scanning/presets_list.md b/docs/scanning/presets_list.md
index 416e163c52..11407fead5 100644
--- a/docs/scanning/presets_list.md
+++ b/docs/scanning/presets_list.md
@@ -8,13 +8,13 @@ Run all baddns modules and submodules.
??? note "`baddns-thorough.yml`"
```yaml title="~/.bbot/presets/baddns-thorough.yml"
description: Run all baddns modules and submodules.
-
-
+
+
modules:
- baddns
- baddns_zone
- baddns_direct
-
+
config:
modules:
baddns:
@@ -32,10 +32,10 @@ Enumerate cloud resources such as storage buckets, etc.
??? note "`cloud-enum.yml`"
```yaml title="~/.bbot/presets/cloud-enum.yml"
description: Enumerate cloud resources such as storage buckets, etc.
-
+
include:
- subdomain-enum
-
+
flags:
- cloud-enum
```
@@ -51,7 +51,7 @@ Enumerate Git repositories, Docker images, etc.
??? note "`code-enum.yml`"
```yaml title="~/.bbot/presets/code-enum.yml"
description: Enumerate Git repositories, Docker images, etc.
-
+
flags:
- code-enum
```
@@ -67,17 +67,17 @@ Recursive web directory brute-force (aggressive)
??? note "`dirbust-heavy.yml`"
```yaml title="~/.bbot/presets/web/dirbust-heavy.yml"
description: Recursive web directory brute-force (aggressive)
-
+
include:
- spider
-
+
flags:
- iis-shortnames
-
+
modules:
- ffuf
- wayback
-
+
config:
modules:
iis_shortnames:
@@ -118,13 +118,13 @@ Basic web directory brute-force (surface-level directories only)
??? note "`dirbust-light.yml`"
```yaml title="~/.bbot/presets/web/dirbust-light.yml"
description: Basic web directory brute-force (surface-level directories only)
-
+
include:
- iis-shortnames
-
+
modules:
- ffuf
-
+
config:
modules:
ffuf:
@@ -143,11 +143,11 @@ Comprehensive scan for all IIS/.NET specific modules and module settings
??? note "`dotnet-audit.yml`"
```yaml title="~/.bbot/presets/web/dotnet-audit.yml"
description: Comprehensive scan for all IIS/.NET specific modules and module settings
-
-
+
+
include:
- iis-shortnames
-
+
modules:
- httpx
- badsecrets
@@ -156,14 +156,13 @@ Comprehensive scan for all IIS/.NET specific modules and module settings
- telerik
- ajaxpro
- dotnetnuke
-
+
config:
modules:
ffuf:
extensions: asp,aspx,ashx,asmx,ascx
telerik:
exploit_RAU_crypto: True
-
```
Category: web
@@ -177,10 +176,10 @@ Enumerate email addresses from APIs, web crawling, etc.
??? note "`email-enum.yml`"
```yaml title="~/.bbot/presets/email-enum.yml"
description: Enumerate email addresses from APIs, web crawling, etc.
-
+
flags:
- email-enum
-
+
output_modules:
- emails
```
@@ -196,10 +195,10 @@ Scan only the provided targets as fast as possible - no extra discovery
??? note "`fast.yml`"
```yaml title="~/.bbot/presets/fast.yml"
description: Scan only the provided targets as fast as possible - no extra discovery
-
+
exclude_modules:
- excavate
-
+
config:
# only scan the exact targets specified
scope:
@@ -224,10 +223,10 @@ Recursively enumerate IIS shortnames
??? note "`iis-shortnames.yml`"
```yaml title="~/.bbot/presets/web/iis-shortnames.yml"
description: Recursively enumerate IIS shortnames
-
+
flags:
- iis-shortnames
-
+
config:
modules:
iis_shortnames:
@@ -246,7 +245,7 @@ Everything everywhere all at once
??? note "`kitchen-sink.yml`"
```yaml title="~/.bbot/presets/kitchen-sink.yml"
description: Everything everywhere all at once
-
+
include:
- subdomain-enum
- cloud-enum
@@ -258,13 +257,11 @@ Everything everywhere all at once
- dirbust-light
- web-screenshots
- baddns-thorough
-
+
config:
modules:
baddns:
enable_references: True
-
-
```
@@ -278,13 +275,13 @@ Discover new web parameters via brute-force
??? note "`paramminer.yml`"
```yaml title="~/.bbot/presets/web/paramminer.yml"
description: Discover new web parameters via brute-force
-
+
flags:
- web-paramminer
-
+
modules:
- httpx
-
+
config:
web:
spider_distance: 1
@@ -302,14 +299,14 @@ Recursive web spider
??? note "`spider.yml`"
```yaml title="~/.bbot/presets/spider.yml"
description: Recursive web spider
-
+
modules:
- httpx
-
+
blacklist:
# Prevent spider from invalidating sessions by logging out
- "RE:/.*(sign|log)[_-]?out"
-
+
config:
web:
# how many links to follow in a row
@@ -331,15 +328,15 @@ Enumerate subdomains via APIs, brute-force
??? note "`subdomain-enum.yml`"
```yaml title="~/.bbot/presets/subdomain-enum.yml"
description: Enumerate subdomains via APIs, brute-force
-
+
flags:
# enable every module with the subdomain-enum flag
- subdomain-enum
-
+
output_modules:
# output unique subdomains to TXT file
- subdomains
-
+
config:
dns:
threads: 25
@@ -365,10 +362,10 @@ Quick web scan
??? note "`web-basic.yml`"
```yaml title="~/.bbot/presets/web-basic.yml"
description: Quick web scan
-
+
include:
- iis-shortnames
-
+
flags:
- web-basic
```
@@ -384,10 +381,10 @@ Take screenshots of webpages
??? note "`web-screenshots.yml`"
```yaml title="~/.bbot/presets/web-screenshots.yml"
description: Take screenshots of webpages
-
+
flags:
- web-screenshots
-
+
config:
modules:
gowitness:
@@ -410,11 +407,11 @@ Aggressive web scan
??? note "`web-thorough.yml`"
```yaml title="~/.bbot/presets/web-thorough.yml"
description: Aggressive web scan
-
+
include:
# include the web-basic preset
- web-basic
-
+
flags:
- web-thorough
```
diff --git a/poetry.lock b/poetry.lock
index b7d2630139..9dc7f17d5e 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -74,24 +74,24 @@ files = [
[[package]]
name = "anyio"
-version = "4.6.2.post1"
+version = "4.7.0"
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"},
+ {file = "anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352"},
+ {file = "anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48"},
]
[package.dependencies]
exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""}
idna = ">=2.8"
sniffio = ">=1.1"
-typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""}
+typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""}
[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)"]
+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)"]
trio = ["trio (>=0.26.1)"]
[[package]]
@@ -142,13 +142,13 @@ files = [
[[package]]
name = "certifi"
-version = "2024.8.30"
+version = "2024.12.14"
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"},
+ {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"},
+ {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"},
]
[[package]]
@@ -371,13 +371,13 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""}
[[package]]
name = "cloudcheck"
-version = "7.0.12"
+version = "7.0.33"
description = "Check whether an IP address belongs to a cloud provider"
optional = false
python-versions = "<4.0,>=3.9"
files = [
- {file = "cloudcheck-7.0.12-py3-none-any.whl", hash = "sha256:9397a52e83bae45b6255d59c16f6f5d83f4f4711adf945a9ba45c8675e23f430"},
- {file = "cloudcheck-7.0.12.tar.gz", hash = "sha256:364b61cffdf53767cae9fd4a14542f92a95d7f12e9ee72e041af0e027a88a2a9"},
+ {file = "cloudcheck-7.0.33-py3-none-any.whl", hash = "sha256:005d6888b3b4526888f98f9514487e801d521d756b48c7ff55daa9a638fda570"},
+ {file = "cloudcheck-7.0.33.tar.gz", hash = "sha256:36699d3868ffcdd3ac36e761e3c074a69d32120c787013d36820f6766ab73543"},
]
[package.dependencies]
@@ -399,73 +399,73 @@ files = [
[[package]]
name = "coverage"
-version = "7.6.7"
+version = "7.6.9"
description = "Code coverage measurement for Python"
optional = false
python-versions = ">=3.9"
files = [
- {file = "coverage-7.6.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:108bb458827765d538abcbf8288599fee07d2743357bdd9b9dad456c287e121e"},
- {file = "coverage-7.6.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c973b2fe4dc445cb865ab369df7521df9c27bf40715c837a113edaa2aa9faf45"},
- {file = "coverage-7.6.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c6b24007c4bcd0b19fac25763a7cac5035c735ae017e9a349b927cfc88f31c1"},
- {file = "coverage-7.6.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:acbb8af78f8f91b3b51f58f288c0994ba63c646bc1a8a22ad072e4e7e0a49f1c"},
- {file = "coverage-7.6.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad32a981bcdedb8d2ace03b05e4fd8dace8901eec64a532b00b15217d3677dd2"},
- {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:34d23e28ccb26236718a3a78ba72744212aa383141961dd6825f6595005c8b06"},
- {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e25bacb53a8c7325e34d45dddd2f2fbae0dbc230d0e2642e264a64e17322a777"},
- {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af05bbba896c4472a29408455fe31b3797b4d8648ed0a2ccac03e074a77e2314"},
- {file = "coverage-7.6.7-cp310-cp310-win32.whl", hash = "sha256:796c9b107d11d2d69e1849b2dfe41730134b526a49d3acb98ca02f4985eeff7a"},
- {file = "coverage-7.6.7-cp310-cp310-win_amd64.whl", hash = "sha256:987a8e3da7da4eed10a20491cf790589a8e5e07656b6dc22d3814c4d88faf163"},
- {file = "coverage-7.6.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7e61b0e77ff4dddebb35a0e8bb5a68bf0f8b872407d8d9f0c726b65dfabe2469"},
- {file = "coverage-7.6.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1a5407a75ca4abc20d6252efeb238377a71ce7bda849c26c7a9bece8680a5d99"},
- {file = "coverage-7.6.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df002e59f2d29e889c37abd0b9ee0d0e6e38c24f5f55d71ff0e09e3412a340ec"},
- {file = "coverage-7.6.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:673184b3156cba06154825f25af33baa2671ddae6343f23175764e65a8c4c30b"},
- {file = "coverage-7.6.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e69ad502f1a2243f739f5bd60565d14a278be58be4c137d90799f2c263e7049a"},
- {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:60dcf7605c50ea72a14490d0756daffef77a5be15ed1b9fea468b1c7bda1bc3b"},
- {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9c2eb378bebb2c8f65befcb5147877fc1c9fbc640fc0aad3add759b5df79d55d"},
- {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c0317288f032221d35fa4cbc35d9f4923ff0dfd176c79c9b356e8ef8ef2dff4"},
- {file = "coverage-7.6.7-cp311-cp311-win32.whl", hash = "sha256:951aade8297358f3618a6e0660dc74f6b52233c42089d28525749fc8267dccd2"},
- {file = "coverage-7.6.7-cp311-cp311-win_amd64.whl", hash = "sha256:5e444b8e88339a2a67ce07d41faabb1d60d1004820cee5a2c2b54e2d8e429a0f"},
- {file = "coverage-7.6.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f07ff574986bc3edb80e2c36391678a271d555f91fd1d332a1e0f4b5ea4b6ea9"},
- {file = "coverage-7.6.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:49ed5ee4109258973630c1f9d099c7e72c5c36605029f3a91fe9982c6076c82b"},
- {file = "coverage-7.6.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3e8796434a8106b3ac025fd15417315d7a58ee3e600ad4dbcfddc3f4b14342c"},
- {file = "coverage-7.6.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3b925300484a3294d1c70f6b2b810d6526f2929de954e5b6be2bf8caa1f12c1"},
- {file = "coverage-7.6.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c42ec2c522e3ddd683dec5cdce8e62817afb648caedad9da725001fa530d354"},
- {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0266b62cbea568bd5e93a4da364d05de422110cbed5056d69339bd5af5685433"},
- {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e5f2a0f161d126ccc7038f1f3029184dbdf8f018230af17ef6fd6a707a5b881f"},
- {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c132b5a22821f9b143f87446805e13580b67c670a548b96da945a8f6b4f2efbb"},
- {file = "coverage-7.6.7-cp312-cp312-win32.whl", hash = "sha256:7c07de0d2a110f02af30883cd7dddbe704887617d5c27cf373362667445a4c76"},
- {file = "coverage-7.6.7-cp312-cp312-win_amd64.whl", hash = "sha256:fd49c01e5057a451c30c9b892948976f5d38f2cbd04dc556a82743ba8e27ed8c"},
- {file = "coverage-7.6.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:46f21663e358beae6b368429ffadf14ed0a329996248a847a4322fb2e35d64d3"},
- {file = "coverage-7.6.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:40cca284c7c310d622a1677f105e8507441d1bb7c226f41978ba7c86979609ab"},
- {file = "coverage-7.6.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77256ad2345c29fe59ae861aa11cfc74579c88d4e8dbf121cbe46b8e32aec808"},
- {file = "coverage-7.6.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87ea64b9fa52bf395272e54020537990a28078478167ade6c61da7ac04dc14bc"},
- {file = "coverage-7.6.7-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d608a7808793e3615e54e9267519351c3ae204a6d85764d8337bd95993581a8"},
- {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdd94501d65adc5c24f8a1a0eda110452ba62b3f4aeaba01e021c1ed9cb8f34a"},
- {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:82c809a62e953867cf57e0548c2b8464207f5f3a6ff0e1e961683e79b89f2c55"},
- {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb684694e99d0b791a43e9fc0fa58efc15ec357ac48d25b619f207c41f2fd384"},
- {file = "coverage-7.6.7-cp313-cp313-win32.whl", hash = "sha256:963e4a08cbb0af6623e61492c0ec4c0ec5c5cf74db5f6564f98248d27ee57d30"},
- {file = "coverage-7.6.7-cp313-cp313-win_amd64.whl", hash = "sha256:14045b8bfd5909196a90da145a37f9d335a5d988a83db34e80f41e965fb7cb42"},
- {file = "coverage-7.6.7-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f2c7a045eef561e9544359a0bf5784b44e55cefc7261a20e730baa9220c83413"},
- {file = "coverage-7.6.7-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5dd4e4a49d9c72a38d18d641135d2fb0bdf7b726ca60a103836b3d00a1182acd"},
- {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c95e0fa3d1547cb6f021ab72f5c23402da2358beec0a8e6d19a368bd7b0fb37"},
- {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f63e21ed474edd23f7501f89b53280014436e383a14b9bd77a648366c81dce7b"},
- {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ead9b9605c54d15be228687552916c89c9683c215370c4a44f1f217d2adcc34d"},
- {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:0573f5cbf39114270842d01872952d301027d2d6e2d84013f30966313cadb529"},
- {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e2c8e3384c12dfa19fa9a52f23eb091a8fad93b5b81a41b14c17c78e23dd1d8b"},
- {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:70a56a2ec1869e6e9fa69ef6b76b1a8a7ef709972b9cc473f9ce9d26b5997ce3"},
- {file = "coverage-7.6.7-cp313-cp313t-win32.whl", hash = "sha256:dbba8210f5067398b2c4d96b4e64d8fb943644d5eb70be0d989067c8ca40c0f8"},
- {file = "coverage-7.6.7-cp313-cp313t-win_amd64.whl", hash = "sha256:dfd14bcae0c94004baba5184d1c935ae0d1231b8409eb6c103a5fd75e8ecdc56"},
- {file = "coverage-7.6.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37a15573f988b67f7348916077c6d8ad43adb75e478d0910957394df397d2874"},
- {file = "coverage-7.6.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b6cce5c76985f81da3769c52203ee94722cd5d5889731cd70d31fee939b74bf0"},
- {file = "coverage-7.6.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ab9763d291a17b527ac6fd11d1a9a9c358280adb320e9c2672a97af346ac2c"},
- {file = "coverage-7.6.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6cf96ceaa275f071f1bea3067f8fd43bec184a25a962c754024c973af871e1b7"},
- {file = "coverage-7.6.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aee9cf6b0134d6f932d219ce253ef0e624f4fa588ee64830fcba193269e4daa3"},
- {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2bc3e45c16564cc72de09e37413262b9f99167803e5e48c6156bccdfb22c8327"},
- {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:623e6965dcf4e28a3debaa6fcf4b99ee06d27218f46d43befe4db1c70841551c"},
- {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:850cfd2d6fc26f8346f422920ac204e1d28814e32e3a58c19c91980fa74d8289"},
- {file = "coverage-7.6.7-cp39-cp39-win32.whl", hash = "sha256:c296263093f099da4f51b3dff1eff5d4959b527d4f2f419e16508c5da9e15e8c"},
- {file = "coverage-7.6.7-cp39-cp39-win_amd64.whl", hash = "sha256:90746521206c88bdb305a4bf3342b1b7316ab80f804d40c536fc7d329301ee13"},
- {file = "coverage-7.6.7-pp39.pp310-none-any.whl", hash = "sha256:0ddcb70b3a3a57581b450571b31cb774f23eb9519c2aaa6176d3a84c9fc57671"},
- {file = "coverage-7.6.7.tar.gz", hash = "sha256:d79d4826e41441c9a118ff045e4bccb9fdbdcb1d02413e7ea6eb5c87b5439d24"},
+ {file = "coverage-7.6.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85d9636f72e8991a1706b2b55b06c27545448baf9f6dbf51c4004609aacd7dcb"},
+ {file = "coverage-7.6.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:608a7fd78c67bee8936378299a6cb9f5149bb80238c7a566fc3e6717a4e68710"},
+ {file = "coverage-7.6.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96d636c77af18b5cb664ddf12dab9b15a0cfe9c0bde715da38698c8cea748bfa"},
+ {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75cded8a3cff93da9edc31446872d2997e327921d8eed86641efafd350e1df1"},
+ {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7b15f589593110ae767ce997775d645b47e5cbbf54fd322f8ebea6277466cec"},
+ {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:44349150f6811b44b25574839b39ae35291f6496eb795b7366fef3bd3cf112d3"},
+ {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d891c136b5b310d0e702e186d70cd16d1119ea8927347045124cb286b29297e5"},
+ {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:db1dab894cc139f67822a92910466531de5ea6034ddfd2b11c0d4c6257168073"},
+ {file = "coverage-7.6.9-cp310-cp310-win32.whl", hash = "sha256:41ff7b0da5af71a51b53f501a3bac65fb0ec311ebed1632e58fc6107f03b9198"},
+ {file = "coverage-7.6.9-cp310-cp310-win_amd64.whl", hash = "sha256:35371f8438028fdccfaf3570b31d98e8d9eda8bb1d6ab9473f5a390969e98717"},
+ {file = "coverage-7.6.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9"},
+ {file = "coverage-7.6.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c"},
+ {file = "coverage-7.6.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7"},
+ {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9"},
+ {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4"},
+ {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1"},
+ {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b"},
+ {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3"},
+ {file = "coverage-7.6.9-cp311-cp311-win32.whl", hash = "sha256:f2d1ec60d6d256bdf298cb86b78dd715980828f50c46701abc3b0a2b3f8a0dc0"},
+ {file = "coverage-7.6.9-cp311-cp311-win_amd64.whl", hash = "sha256:0d59fd927b1f04de57a2ba0137166d31c1a6dd9e764ad4af552912d70428c92b"},
+ {file = "coverage-7.6.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:99e266ae0b5d15f1ca8d278a668df6f51cc4b854513daab5cae695ed7b721cf8"},
+ {file = "coverage-7.6.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9901d36492009a0a9b94b20e52ebfc8453bf49bb2b27bca2c9706f8b4f5a554a"},
+ {file = "coverage-7.6.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abd3e72dd5b97e3af4246cdada7738ef0e608168de952b837b8dd7e90341f015"},
+ {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff74026a461eb0660366fb01c650c1d00f833a086b336bdad7ab00cc952072b3"},
+ {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65dad5a248823a4996724a88eb51d4b31587aa7aa428562dbe459c684e5787ae"},
+ {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22be16571504c9ccea919fcedb459d5ab20d41172056206eb2994e2ff06118a4"},
+ {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f957943bc718b87144ecaee70762bc2bc3f1a7a53c7b861103546d3a403f0a6"},
+ {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ae1387db4aecb1f485fb70a6c0148c6cdaebb6038f1d40089b1fc84a5db556f"},
+ {file = "coverage-7.6.9-cp312-cp312-win32.whl", hash = "sha256:1a330812d9cc7ac2182586f6d41b4d0fadf9be9049f350e0efb275c8ee8eb692"},
+ {file = "coverage-7.6.9-cp312-cp312-win_amd64.whl", hash = "sha256:b12c6b18269ca471eedd41c1b6a1065b2f7827508edb9a7ed5555e9a56dcfc97"},
+ {file = "coverage-7.6.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:899b8cd4781c400454f2f64f7776a5d87bbd7b3e7f7bda0cb18f857bb1334664"},
+ {file = "coverage-7.6.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:61f70dc68bd36810972e55bbbe83674ea073dd1dcc121040a08cdf3416c5349c"},
+ {file = "coverage-7.6.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a289d23d4c46f1a82d5db4abeb40b9b5be91731ee19a379d15790e53031c014"},
+ {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e216d8044a356fc0337c7a2a0536d6de07888d7bcda76febcb8adc50bdbbd00"},
+ {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c026eb44f744acaa2bda7493dad903aa5bf5fc4f2554293a798d5606710055d"},
+ {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e77363e8425325384f9d49272c54045bbed2f478e9dd698dbc65dbc37860eb0a"},
+ {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:777abfab476cf83b5177b84d7486497e034eb9eaea0d746ce0c1268c71652077"},
+ {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:447af20e25fdbe16f26e84eb714ba21d98868705cb138252d28bc400381f6ffb"},
+ {file = "coverage-7.6.9-cp313-cp313-win32.whl", hash = "sha256:d872ec5aeb086cbea771c573600d47944eea2dcba8be5f3ee649bfe3cb8dc9ba"},
+ {file = "coverage-7.6.9-cp313-cp313-win_amd64.whl", hash = "sha256:fd1213c86e48dfdc5a0cc676551db467495a95a662d2396ecd58e719191446e1"},
+ {file = "coverage-7.6.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9e7484d286cd5a43744e5f47b0b3fb457865baf07bafc6bee91896364e1419"},
+ {file = "coverage-7.6.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e5ea1cf0872ee455c03e5674b5bca5e3e68e159379c1af0903e89f5eba9ccc3a"},
+ {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d10e07aa2b91835d6abec555ec8b2733347956991901eea6ffac295f83a30e4"},
+ {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13a9e2d3ee855db3dd6ea1ba5203316a1b1fd8eaeffc37c5b54987e61e4194ae"},
+ {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c38bf15a40ccf5619fa2fe8f26106c7e8e080d7760aeccb3722664c8656b030"},
+ {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d5275455b3e4627c8e7154feaf7ee0743c2e7af82f6e3b561967b1cca755a0be"},
+ {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8f8770dfc6e2c6a2d4569f411015c8d751c980d17a14b0530da2d7f27ffdd88e"},
+ {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8d2dfa71665a29b153a9681edb1c8d9c1ea50dfc2375fb4dac99ea7e21a0bcd9"},
+ {file = "coverage-7.6.9-cp313-cp313t-win32.whl", hash = "sha256:5e6b86b5847a016d0fbd31ffe1001b63355ed309651851295315031ea7eb5a9b"},
+ {file = "coverage-7.6.9-cp313-cp313t-win_amd64.whl", hash = "sha256:97ddc94d46088304772d21b060041c97fc16bdda13c6c7f9d8fcd8d5ae0d8611"},
+ {file = "coverage-7.6.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:adb697c0bd35100dc690de83154627fbab1f4f3c0386df266dded865fc50a902"},
+ {file = "coverage-7.6.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:be57b6d56e49c2739cdf776839a92330e933dd5e5d929966fbbd380c77f060be"},
+ {file = "coverage-7.6.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1592791f8204ae9166de22ba7e6705fa4ebd02936c09436a1bb85aabca3e599"},
+ {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e12ae8cc979cf83d258acb5e1f1cf2f3f83524d1564a49d20b8bec14b637f08"},
+ {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb5555cff66c4d3d6213a296b360f9e1a8e323e74e0426b6c10ed7f4d021e464"},
+ {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b9389a429e0e5142e69d5bf4a435dd688c14478a19bb901735cdf75e57b13845"},
+ {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:592ac539812e9b46046620341498caf09ca21023c41c893e1eb9dbda00a70cbf"},
+ {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a27801adef24cc30871da98a105f77995e13a25a505a0161911f6aafbd66e678"},
+ {file = "coverage-7.6.9-cp39-cp39-win32.whl", hash = "sha256:8e3c3e38930cfb729cb8137d7f055e5a473ddaf1217966aa6238c88bd9fd50e6"},
+ {file = "coverage-7.6.9-cp39-cp39-win_amd64.whl", hash = "sha256:e28bf44afa2b187cc9f41749138a64435bf340adfcacb5b2290c070ce99839d4"},
+ {file = "coverage-7.6.9-pp39.pp310-none-any.whl", hash = "sha256:f3ca78518bc6bc92828cd11867b121891d75cae4ea9e908d72030609b996db1b"},
+ {file = "coverage-7.6.9.tar.gz", hash = "sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d"},
]
[package.dependencies]
@@ -602,13 +602,13 @@ test = ["pytest (>=6)"]
[[package]]
name = "fastapi"
-version = "0.115.5"
+version = "0.115.6"
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
optional = false
python-versions = ">=3.8"
files = [
- {file = "fastapi-0.115.5-py3-none-any.whl", hash = "sha256:596b95adbe1474da47049e802f9a65ab2ffa9c2b07e7efee70eb8a66c9f2f796"},
- {file = "fastapi-0.115.5.tar.gz", hash = "sha256:0e7a4d0dc0d01c68df21887cce0945e72d3c48b9f4f79dfe7a7d53aa08fbb289"},
+ {file = "fastapi-0.115.6-py3-none-any.whl", hash = "sha256:e9240b29e36fa8f4bb7290316988e90c381e5092e0cbe84e7818cc3713bcf305"},
+ {file = "fastapi-0.115.6.tar.gz", hash = "sha256:9ec46f7addc14ea472958a96aae5b5de65f39721a46aaf5705c480d9a8b76654"},
]
[package.dependencies]
@@ -726,13 +726,13 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "identify"
-version = "2.6.2"
+version = "2.6.3"
description = "File identification library for Python"
optional = false
python-versions = ">=3.9"
files = [
- {file = "identify-2.6.2-py2.py3-none-any.whl", hash = "sha256:c097384259f49e372f4ea00a19719d95ae27dd5ff0fd77ad630aa891306b82f3"},
- {file = "identify-2.6.2.tar.gz", hash = "sha256:fab5c716c24d7a789775228823797296a2994b075fb6080ac83a102772a98cbd"},
+ {file = "identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd"},
+ {file = "identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02"},
]
[package.extras]
@@ -831,13 +831,13 @@ files = [
[[package]]
name = "livereload"
-version = "2.7.0"
+version = "2.7.1"
description = "Python LiveReload is an awesome tool for web developers"
optional = false
python-versions = ">=3.7"
files = [
- {file = "livereload-2.7.0-py3-none-any.whl", hash = "sha256:19bee55aff51d5ade6ede0dc709189a0f904d3b906d3ea71641ed548acff3246"},
- {file = "livereload-2.7.0.tar.gz", hash = "sha256:f4ba199ef93248902841e298670eebfe1aa9e148e19b343bc57dbf1b74de0513"},
+ {file = "livereload-2.7.1-py3-none-any.whl", hash = "sha256:5201740078c1b9433f4b2ba22cd2729a39b9d0ec0a2cc6b4d3df257df5ad0564"},
+ {file = "livereload-2.7.1.tar.gz", hash = "sha256:3d9bf7c05673df06e32bea23b494b8d36ca6d10f7d5c3c8a6989608c09c986a9"},
]
[package.dependencies]
@@ -1214,13 +1214,13 @@ pyyaml = ">=5.1"
[[package]]
name = "mkdocs-material"
-version = "9.5.47"
+version = "9.5.49"
description = "Documentation that simply works"
optional = false
python-versions = ">=3.8"
files = [
- {file = "mkdocs_material-9.5.47-py3-none-any.whl", hash = "sha256:53fb9c9624e7865da6ec807d116cd7be24b3cb36ab31b1d1d1a9af58c56009a2"},
- {file = "mkdocs_material-9.5.47.tar.gz", hash = "sha256:fc3b7a8e00ad896660bd3a5cc12ca0cb28bdc2bcbe2a946b5714c23ac91b0ede"},
+ {file = "mkdocs_material-9.5.49-py3-none-any.whl", hash = "sha256:c3c2d8176b18198435d3a3e119011922f3e11424074645c24019c2dcf08a360e"},
+ {file = "mkdocs_material-9.5.49.tar.gz", hash = "sha256:3671bb282b4f53a1c72e08adbe04d2481a98f85fed392530051f80ff94a9621d"},
]
[package.dependencies]
@@ -1449,6 +1449,90 @@ files = [
[package.extras]
dev = ["black", "mypy", "pytest"]
+[[package]]
+name = "orjson"
+version = "3.10.12"
+description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "orjson-3.10.12-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ece01a7ec71d9940cc654c482907a6b65df27251255097629d0dea781f255c6d"},
+ {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c34ec9aebc04f11f4b978dd6caf697a2df2dd9b47d35aa4cc606cabcb9df69d7"},
+ {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd6ec8658da3480939c79b9e9e27e0db31dffcd4ba69c334e98c9976ac29140e"},
+ {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f17e6baf4cf01534c9de8a16c0c611f3d94925d1701bf5f4aff17003677d8ced"},
+ {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6402ebb74a14ef96f94a868569f5dccf70d791de49feb73180eb3c6fda2ade56"},
+ {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0000758ae7c7853e0a4a6063f534c61656ebff644391e1f81698c1b2d2fc8cd2"},
+ {file = "orjson-3.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:888442dcee99fd1e5bd37a4abb94930915ca6af4db50e23e746cdf4d1e63db13"},
+ {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c1f7a3ce79246aa0e92f5458d86c54f257fb5dfdc14a192651ba7ec2c00f8a05"},
+ {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85"},
+ {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885"},
+ {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2"},
+ {file = "orjson-3.10.12-cp310-none-win32.whl", hash = "sha256:475661bf249fd7907d9b0a2a2421b4e684355a77ceef85b8352439a9163418c3"},
+ {file = "orjson-3.10.12-cp310-none-win_amd64.whl", hash = "sha256:87251dc1fb2b9e5ab91ce65d8f4caf21910d99ba8fb24b49fd0c118b2362d509"},
+ {file = "orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74"},
+ {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23"},
+ {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252"},
+ {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef"},
+ {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252"},
+ {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4"},
+ {file = "orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae"},
+ {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b"},
+ {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da"},
+ {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07"},
+ {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd"},
+ {file = "orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79"},
+ {file = "orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8"},
+ {file = "orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d"},
+ {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f"},
+ {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70"},
+ {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dcb9673f108a93c1b52bfc51b0af422c2d08d4fc710ce9c839faad25020bb69"},
+ {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22a51ae77680c5c4652ebc63a83d5255ac7d65582891d9424b566fb3b5375ee9"},
+ {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910fdf2ac0637b9a77d1aad65f803bac414f0b06f720073438a7bd8906298192"},
+ {file = "orjson-3.10.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24ce85f7100160936bc2116c09d1a8492639418633119a2224114f67f63a4559"},
+ {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a76ba5fc8dd9c913640292df27bff80a685bed3a3c990d59aa6ce24c352f8fc"},
+ {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f"},
+ {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be"},
+ {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c"},
+ {file = "orjson-3.10.12-cp312-none-win32.whl", hash = "sha256:2d879c81172d583e34153d524fcba5d4adafbab8349a7b9f16ae511c2cee8708"},
+ {file = "orjson-3.10.12-cp312-none-win_amd64.whl", hash = "sha256:fc23f691fa0f5c140576b8c365bc942d577d861a9ee1142e4db468e4e17094fb"},
+ {file = "orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543"},
+ {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296"},
+ {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e"},
+ {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7974c490c014c48810d1dede6c754c3cc46598da758c25ca3b4001ac45b703f"},
+ {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e"},
+ {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6"},
+ {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e"},
+ {file = "orjson-3.10.12-cp313-none-win32.whl", hash = "sha256:f45653775f38f63dc0e6cd4f14323984c3149c05d6007b58cb154dd080ddc0dc"},
+ {file = "orjson-3.10.12-cp313-none-win_amd64.whl", hash = "sha256:229994d0c376d5bdc91d92b3c9e6be2f1fbabd4cc1b59daae1443a46ee5e9825"},
+ {file = "orjson-3.10.12-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7d69af5b54617a5fac5c8e5ed0859eb798e2ce8913262eb522590239db6c6763"},
+ {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ed119ea7d2953365724a7059231a44830eb6bbb0cfead33fcbc562f5fd8f935"},
+ {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c5fc1238ef197e7cad5c91415f524aaa51e004be5a9b35a1b8a84ade196f73f"},
+ {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43509843990439b05f848539d6f6198d4ac86ff01dd024b2f9a795c0daeeab60"},
+ {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f72e27a62041cfb37a3de512247ece9f240a561e6c8662276beaf4d53d406db4"},
+ {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a904f9572092bb6742ab7c16c623f0cdccbad9eeb2d14d4aa06284867bddd31"},
+ {file = "orjson-3.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:855c0833999ed5dc62f64552db26f9be767434917d8348d77bacaab84f787d7b"},
+ {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:897830244e2320f6184699f598df7fb9db9f5087d6f3f03666ae89d607e4f8ed"},
+ {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0b32652eaa4a7539f6f04abc6243619c56f8530c53bf9b023e1269df5f7816dd"},
+ {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:36b4aa31e0f6a1aeeb6f8377769ca5d125db000f05c20e54163aef1d3fe8e833"},
+ {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5535163054d6cbf2796f93e4f0dbc800f61914c0e3c4ed8499cf6ece22b4a3da"},
+ {file = "orjson-3.10.12-cp38-none-win32.whl", hash = "sha256:90a5551f6f5a5fa07010bf3d0b4ca2de21adafbbc0af6cb700b63cd767266cb9"},
+ {file = "orjson-3.10.12-cp38-none-win_amd64.whl", hash = "sha256:703a2fb35a06cdd45adf5d733cf613cbc0cb3ae57643472b16bc22d325b5fb6c"},
+ {file = "orjson-3.10.12-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f29de3ef71a42a5822765def1febfb36e0859d33abf5c2ad240acad5c6a1b78d"},
+ {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de365a42acc65d74953f05e4772c974dad6c51cfc13c3240899f534d611be967"},
+ {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91a5a0158648a67ff0004cb0df5df7dcc55bfc9ca154d9c01597a23ad54c8d0c"},
+ {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c47ce6b8d90fe9646a25b6fb52284a14ff215c9595914af63a5933a49972ce36"},
+ {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0eee4c2c5bfb5c1b47a5db80d2ac7aaa7e938956ae88089f098aff2c0f35d5d8"},
+ {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35d3081bbe8b86587eb5c98a73b97f13d8f9fea685cf91a579beddacc0d10566"},
+ {file = "orjson-3.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c23a6e90383884068bc2dba83d5222c9fcc3b99a0ed2411d38150734236755"},
+ {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5472be7dc3269b4b52acba1433dac239215366f89dc1d8d0e64029abac4e714e"},
+ {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7319cda750fca96ae5973efb31b17d97a5c5225ae0bc79bf5bf84df9e1ec2ab6"},
+ {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:74d5ca5a255bf20b8def6a2b96b1e18ad37b4a122d59b154c458ee9494377f80"},
+ {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ff31d22ecc5fb85ef62c7d4afe8301d10c558d00dd24274d4bbe464380d3cd69"},
+ {file = "orjson-3.10.12-cp39-none-win32.whl", hash = "sha256:c22c3ea6fba91d84fcb4cda30e64aff548fcf0c44c876e681f47d61d24b12e6b"},
+ {file = "orjson-3.10.12-cp39-none-win_amd64.whl", hash = "sha256:be604f60d45ace6b0b33dd990a66b4526f1a7a186ac411c942674625456ca548"},
+ {file = "orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff"},
+]
+
[[package]]
name = "packaging"
version = "24.2"
@@ -1674,18 +1758,18 @@ files = [
[[package]]
name = "pydantic"
-version = "2.10.2"
+version = "2.10.4"
description = "Data validation using Python type hints"
optional = false
python-versions = ">=3.8"
files = [
- {file = "pydantic-2.10.2-py3-none-any.whl", hash = "sha256:cfb96e45951117c3024e6b67b25cdc33a3cb7b2fa62e239f7af1378358a1d99e"},
- {file = "pydantic-2.10.2.tar.gz", hash = "sha256:2bc2d7f17232e0841cbba4641e65ba1eb6fafb3a08de3a091ff3ce14a197c4fa"},
+ {file = "pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d"},
+ {file = "pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06"},
]
[package.dependencies]
annotated-types = ">=0.6.0"
-pydantic-core = "2.27.1"
+pydantic-core = "2.27.2"
typing-extensions = ">=4.12.2"
[package.extras]
@@ -1694,111 +1778,111 @@ timezone = ["tzdata"]
[[package]]
name = "pydantic-core"
-version = "2.27.1"
+version = "2.27.2"
description = "Core functionality for Pydantic validation and serialization"
optional = false
python-versions = ">=3.8"
files = [
- {file = "pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a"},
- {file = "pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6"},
- {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807"},
- {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c"},
- {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206"},
- {file = "pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c"},
- {file = "pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17"},
- {file = "pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8"},
- {file = "pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e"},
- {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919"},
- {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c"},
- {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc"},
- {file = "pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9"},
- {file = "pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5"},
- {file = "pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89"},
- {file = "pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f"},
- {file = "pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089"},
- {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381"},
- {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb"},
- {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae"},
- {file = "pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c"},
- {file = "pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16"},
- {file = "pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e"},
- {file = "pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073"},
- {file = "pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a"},
- {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc"},
- {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960"},
- {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23"},
- {file = "pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05"},
- {file = "pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337"},
- {file = "pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5"},
- {file = "pydantic_core-2.27.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:5897bec80a09b4084aee23f9b73a9477a46c3304ad1d2d07acca19723fb1de62"},
- {file = "pydantic_core-2.27.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d0165ab2914379bd56908c02294ed8405c252250668ebcb438a55494c69f44ab"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b9af86e1d8e4cfc82c2022bfaa6f459381a50b94a29e95dcdda8442d6d83864"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f6c8a66741c5f5447e047ab0ba7a1c61d1e95580d64bce852e3df1f895c4067"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a42d6a8156ff78981f8aa56eb6394114e0dedb217cf8b729f438f643608cbcd"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64c65f40b4cd8b0e049a8edde07e38b476da7e3aaebe63287c899d2cff253fa5"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdcf339322a3fae5cbd504edcefddd5a50d9ee00d968696846f089b4432cf78"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bf99c8404f008750c846cb4ac4667b798a9f7de673ff719d705d9b2d6de49c5f"},
- {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8f1edcea27918d748c7e5e4d917297b2a0ab80cad10f86631e488b7cddf76a36"},
- {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:159cac0a3d096f79ab6a44d77a961917219707e2a130739c64d4dd46281f5c2a"},
- {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:029d9757eb621cc6e1848fa0b0310310de7301057f623985698ed7ebb014391b"},
- {file = "pydantic_core-2.27.1-cp38-none-win32.whl", hash = "sha256:a28af0695a45f7060e6f9b7092558a928a28553366519f64083c63a44f70e618"},
- {file = "pydantic_core-2.27.1-cp38-none-win_amd64.whl", hash = "sha256:2d4567c850905d5eaaed2f7a404e61012a51caf288292e016360aa2b96ff38d4"},
- {file = "pydantic_core-2.27.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e9386266798d64eeb19dd3677051f5705bf873e98e15897ddb7d76f477131967"},
- {file = "pydantic_core-2.27.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4228b5b646caa73f119b1ae756216b59cc6e2267201c27d3912b592c5e323b60"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3dfe500de26c52abe0477dde16192ac39c98f05bf2d80e76102d394bd13854"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aee66be87825cdf72ac64cb03ad4c15ffef4143dbf5c113f64a5ff4f81477bf9"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b748c44bb9f53031c8cbc99a8a061bc181c1000c60a30f55393b6e9c45cc5bd"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ca038c7f6a0afd0b2448941b6ef9d5e1949e999f9e5517692eb6da58e9d44be"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e0bd57539da59a3e4671b90a502da9a28c72322a4f17866ba3ac63a82c4498e"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac6c2c45c847bbf8f91930d88716a0fb924b51e0c6dad329b793d670ec5db792"},
- {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b94d4ba43739bbe8b0ce4262bcc3b7b9f31459ad120fb595627eaeb7f9b9ca01"},
- {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:00e6424f4b26fe82d44577b4c842d7df97c20be6439e8e685d0d715feceb9fb9"},
- {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:38de0a70160dd97540335b7ad3a74571b24f1dc3ed33f815f0880682e6880131"},
- {file = "pydantic_core-2.27.1-cp39-none-win32.whl", hash = "sha256:7ccebf51efc61634f6c2344da73e366c75e735960b5654b63d7e6f69a5885fa3"},
- {file = "pydantic_core-2.27.1-cp39-none-win_amd64.whl", hash = "sha256:a57847b090d7892f123726202b7daa20df6694cbd583b67a592e856bff603d6c"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5fde892e6c697ce3e30c61b239330fc5d569a71fefd4eb6512fc6caec9dd9e2f"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:816f5aa087094099fff7edabb5e01cc370eb21aa1a1d44fe2d2aefdfb5599b31"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c10c309e18e443ddb108f0ef64e8729363adbfd92d6d57beec680f6261556f3"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98476c98b02c8e9b2eec76ac4156fd006628b1b2d0ef27e548ffa978393fd154"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3027001c28434e7ca5a6e1e527487051136aa81803ac812be51802150d880dd"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7699b1df36a48169cdebda7ab5a2bac265204003f153b4bd17276153d997670a"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1c39b07d90be6b48968ddc8c19e7585052088fd7ec8d568bb31ff64c70ae3c97"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:46ccfe3032b3915586e469d4972973f893c0a2bb65669194a5bdea9bacc088c2"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:62ba45e21cf6571d7f716d903b5b7b6d2617e2d5d67c0923dc47b9d41369f840"},
- {file = "pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"},
+ {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"},
]
[package.dependencies]
@@ -1891,20 +1975,20 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments
[[package]]
name = "pytest-asyncio"
-version = "0.24.0"
+version = "0.25.0"
description = "Pytest support for asyncio"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
files = [
- {file = "pytest_asyncio-0.24.0-py3-none-any.whl", hash = "sha256:a811296ed596b69bf0b6f3dc40f83bcaf341b155a269052d82efa2b25ac7037b"},
- {file = "pytest_asyncio-0.24.0.tar.gz", hash = "sha256:d081d828e576d85f875399194281e92bf8a68d60d72d1a2faf2feddb6c46b276"},
+ {file = "pytest_asyncio-0.25.0-py3-none-any.whl", hash = "sha256:db5432d18eac6b7e28b46dcd9b69921b55c3b1086e85febfe04e70b18d9e81b3"},
+ {file = "pytest_asyncio-0.25.0.tar.gz", hash = "sha256:8c0610303c9e0442a5db8604505fc0f545456ba1528824842b37b4a626cbf609"},
]
[package.dependencies]
pytest = ">=8.2,<9"
[package.extras]
-docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"]
+docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"]
testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"]
[[package]]
@@ -2006,24 +2090,22 @@ pytest = ">=7.0.0"
[[package]]
name = "python-daemon"
-version = "3.1.0"
+version = "3.1.2"
description = "Library to implement a well-behaved Unix daemon process."
optional = false
python-versions = ">=3.7"
files = [
- {file = "python_daemon-3.1.0-py3-none-any.whl", hash = "sha256:a66b5896f0aed5807a25c6128268eb496488b1f9c6927c487710049ba16be32a"},
- {file = "python_daemon-3.1.0.tar.gz", hash = "sha256:fdb621d7e5f46e74b4de1ad6b0fff6e69cd91b4f219de1476190ebdd0f4781df"},
+ {file = "python_daemon-3.1.2-py3-none-any.whl", hash = "sha256:b906833cef63502994ad48e2eab213259ed9bb18d54fa8774dcba2ff7864cec6"},
+ {file = "python_daemon-3.1.2.tar.gz", hash = "sha256:f7b04335adc473de877f5117e26d5f1142f4c9f7cd765408f0877757be5afbf4"},
]
[package.dependencies]
lockfile = ">=0.10"
-setuptools = ">=62.4.0"
[package.extras]
build = ["build", "changelog-chug", "docutils", "python-daemon[doc]", "wheel"]
devel = ["python-daemon[dist,test]"]
dist = ["python-daemon[build]", "twine"]
-doc = ["Sphinx (>=4.4,<5.0)"]
static-analysis = ["isort (>=5.13,<6.0)", "pip-check", "pycodestyle (>=2.12,<3.0)", "pydocstyle (>=6.3,<7.0)", "pyupgrade (>=3.17,<4.0)"]
test = ["coverage", "python-daemon[build,static-analysis]", "testscenarios (>=0.4)", "testtools"]
@@ -2240,13 +2322,13 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""}
[[package]]
name = "radixtarget"
-version = "3.0.13"
+version = "3.0.15"
description = "Check whether an IP address belongs to a cloud provider"
optional = false
python-versions = "<4.0,>=3.9"
files = [
- {file = "radixtarget-3.0.13-py3-none-any.whl", hash = "sha256:fe8e0faa9fcfe62629583625c606e690a7002baa0243a6f00b85f1e96824d734"},
- {file = "radixtarget-3.0.13.tar.gz", hash = "sha256:668b77a91c8d642fe5ed29b929a807f6a0c411c4b0805b6be37c15383bf5c536"},
+ {file = "radixtarget-3.0.15-py3-none-any.whl", hash = "sha256:1e1d0dd3e8742ffcfc42084eb238f31f6785626b876ab63a9f28a29e97bd3bb0"},
+ {file = "radixtarget-3.0.15.tar.gz", hash = "sha256:dedfad3aea1e973f261b7bc0d8936423f59ae4d082648fd496c6cdfdfa069fea"},
]
[[package]]
@@ -2406,29 +2488,29 @@ test = ["commentjson", "packaging", "pytest"]
[[package]]
name = "ruff"
-version = "0.8.1"
+version = "0.8.3"
description = "An extremely fast Python linter and code formatter, written in Rust."
optional = false
python-versions = ">=3.7"
files = [
- {file = "ruff-0.8.1-py3-none-linux_armv6l.whl", hash = "sha256:fae0805bd514066f20309f6742f6ee7904a773eb9e6c17c45d6b1600ca65c9b5"},
- {file = "ruff-0.8.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b8a4f7385c2285c30f34b200ca5511fcc865f17578383db154e098150ce0a087"},
- {file = "ruff-0.8.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd054486da0c53e41e0086e1730eb77d1f698154f910e0cd9e0d64274979a209"},
- {file = "ruff-0.8.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2029b8c22da147c50ae577e621a5bfbc5d1fed75d86af53643d7a7aee1d23871"},
- {file = "ruff-0.8.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2666520828dee7dfc7e47ee4ea0d928f40de72056d929a7c5292d95071d881d1"},
- {file = "ruff-0.8.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:333c57013ef8c97a53892aa56042831c372e0bb1785ab7026187b7abd0135ad5"},
- {file = "ruff-0.8.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:288326162804f34088ac007139488dcb43de590a5ccfec3166396530b58fb89d"},
- {file = "ruff-0.8.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b12c39b9448632284561cbf4191aa1b005882acbc81900ffa9f9f471c8ff7e26"},
- {file = "ruff-0.8.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:364e6674450cbac8e998f7b30639040c99d81dfb5bbc6dfad69bc7a8f916b3d1"},
- {file = "ruff-0.8.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b22346f845fec132aa39cd29acb94451d030c10874408dbf776af3aaeb53284c"},
- {file = "ruff-0.8.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b2f2f7a7e7648a2bfe6ead4e0a16745db956da0e3a231ad443d2a66a105c04fa"},
- {file = "ruff-0.8.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:adf314fc458374c25c5c4a4a9270c3e8a6a807b1bec018cfa2813d6546215540"},
- {file = "ruff-0.8.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a885d68342a231b5ba4d30b8c6e1b1ee3a65cf37e3d29b3c74069cdf1ee1e3c9"},
- {file = "ruff-0.8.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d2c16e3508c8cc73e96aa5127d0df8913d2290098f776416a4b157657bee44c5"},
- {file = "ruff-0.8.1-py3-none-win32.whl", hash = "sha256:93335cd7c0eaedb44882d75a7acb7df4b77cd7cd0d2255c93b28791716e81790"},
- {file = "ruff-0.8.1-py3-none-win_amd64.whl", hash = "sha256:2954cdbe8dfd8ab359d4a30cd971b589d335a44d444b6ca2cb3d1da21b75e4b6"},
- {file = "ruff-0.8.1-py3-none-win_arm64.whl", hash = "sha256:55873cc1a473e5ac129d15eccb3c008c096b94809d693fc7053f588b67822737"},
- {file = "ruff-0.8.1.tar.gz", hash = "sha256:3583db9a6450364ed5ca3f3b4225958b24f78178908d5c4bc0f46251ccca898f"},
+ {file = "ruff-0.8.3-py3-none-linux_armv6l.whl", hash = "sha256:8d5d273ffffff0acd3db5bf626d4b131aa5a5ada1276126231c4174543ce20d6"},
+ {file = "ruff-0.8.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e4d66a21de39f15c9757d00c50c8cdd20ac84f55684ca56def7891a025d7e939"},
+ {file = "ruff-0.8.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c356e770811858bd20832af696ff6c7e884701115094f427b64b25093d6d932d"},
+ {file = "ruff-0.8.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c0a60a825e3e177116c84009d5ebaa90cf40dfab56e1358d1df4e29a9a14b13"},
+ {file = "ruff-0.8.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:75fb782f4db39501210ac093c79c3de581d306624575eddd7e4e13747e61ba18"},
+ {file = "ruff-0.8.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f26bc76a133ecb09a38b7868737eded6941b70a6d34ef53a4027e83913b6502"},
+ {file = "ruff-0.8.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:01b14b2f72a37390c1b13477c1c02d53184f728be2f3ffc3ace5b44e9e87b90d"},
+ {file = "ruff-0.8.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:53babd6e63e31f4e96ec95ea0d962298f9f0d9cc5990a1bbb023a6baf2503a82"},
+ {file = "ruff-0.8.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ae441ce4cf925b7f363d33cd6570c51435972d697e3e58928973994e56e1452"},
+ {file = "ruff-0.8.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7c65bc0cadce32255e93c57d57ecc2cca23149edd52714c0c5d6fa11ec328cd"},
+ {file = "ruff-0.8.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5be450bb18f23f0edc5a4e5585c17a56ba88920d598f04a06bd9fd76d324cb20"},
+ {file = "ruff-0.8.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8faeae3827eaa77f5721f09b9472a18c749139c891dbc17f45e72d8f2ca1f8fc"},
+ {file = "ruff-0.8.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:db503486e1cf074b9808403991663e4277f5c664d3fe237ee0d994d1305bb060"},
+ {file = "ruff-0.8.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:6567be9fb62fbd7a099209257fef4ad2c3153b60579818b31a23c886ed4147ea"},
+ {file = "ruff-0.8.3-py3-none-win32.whl", hash = "sha256:19048f2f878f3ee4583fc6cb23fb636e48c2635e30fb2022b3a1cd293402f964"},
+ {file = "ruff-0.8.3-py3-none-win_amd64.whl", hash = "sha256:f7df94f57d7418fa7c3ffb650757e0c2b96cf2501a0b192c18e4fb5571dfada9"},
+ {file = "ruff-0.8.3-py3-none-win_arm64.whl", hash = "sha256:fe2756edf68ea79707c8d68b78ca9a58ed9af22e430430491ee03e718b5e4936"},
+ {file = "ruff-0.8.3.tar.gz", hash = "sha256:5e7558304353b84279042fc584a4f4cb8a07ae79b2bf3da1a7551d960b5626d3"},
]
[[package]]
@@ -2528,35 +2610,15 @@ files = [
[package.extras]
test = ["pytest"]
-[[package]]
-name = "setuptools"
-version = "75.5.0"
-description = "Easily download, build, install, upgrade, and uninstall Python packages"
-optional = false
-python-versions = ">=3.9"
-files = [
- {file = "setuptools-75.5.0-py3-none-any.whl", hash = "sha256:87cb777c3b96d638ca02031192d40390e0ad97737e27b6b4fa831bea86f2f829"},
- {file = "setuptools-75.5.0.tar.gz", hash = "sha256:5c4ccb41111392671f02bb5f8436dfc5a9a7185e80500531b133f5775c4163ef"},
-]
-
-[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"
+version = "1.17.0"
description = "Python 2 and 3 compatibility utilities"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
files = [
- {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
- {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
+ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
+ {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
]
[[package]]
@@ -2647,13 +2709,43 @@ testing = ["mypy", "pytest", "pytest-gitignore", "pytest-mock", "responses", "ru
[[package]]
name = "tomli"
-version = "2.1.0"
+version = "2.2.1"
description = "A lil' TOML parser"
optional = false
python-versions = ">=3.8"
files = [
- {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"},
- {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"},
+ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"},
+ {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"},
+ {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"},
+ {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"},
+ {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"},
+ {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"},
+ {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"},
+ {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"},
+ {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"},
+ {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"},
+ {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"},
+ {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"},
+ {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"},
+ {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"},
]
[[package]]
@@ -2669,22 +2761,22 @@ files = [
[[package]]
name = "tornado"
-version = "6.4.1"
+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.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"},
- {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"},
- {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"},
- {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"},
- {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"},
- {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"},
- {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"},
- {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"},
- {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"},
- {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"},
- {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"},
+ {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]]
@@ -2728,13 +2820,13 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "uvicorn"
-version = "0.32.1"
+version = "0.34.0"
description = "The lightning-fast ASGI server."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
files = [
- {file = "uvicorn-0.32.1-py3-none-any.whl", hash = "sha256:82ad92fd58da0d12af7482ecdb5f2470a04c9c9a53ced65b9bbb4a205377602e"},
- {file = "uvicorn-0.32.1.tar.gz", hash = "sha256:ee9519c246a72b1c084cea8d3b44ed6026e78a4a309cbedae9c37e4cb9fbb175"},
+ {file = "uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4"},
+ {file = "uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9"},
]
[package.dependencies]
@@ -2761,13 +2853,13 @@ test = ["coverage", "flake8 (>=3.7)", "mypy", "pretend", "pytest"]
[[package]]
name = "virtualenv"
-version = "20.27.1"
+version = "20.28.0"
description = "Virtual Python Environment builder"
optional = false
python-versions = ">=3.8"
files = [
- {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"},
- {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"},
+ {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"},
+ {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"},
]
[package.dependencies]
@@ -3065,4 +3157,4 @@ type = ["pytest-mypy"]
[metadata]
lock-version = "2.0"
python-versions = "^3.9"
-content-hash = "557bc6054bfe11138840eb5a3427868cd6137c773f60abd7b0c07b1c6b56d044"
+content-hash = "0145b8e3c345caf43d941534dbfae68125f0006a29c033857311c392ff73672f"
diff --git a/pyproject.toml b/pyproject.toml
index 994dc1b116..7b463077d2 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -56,6 +56,7 @@ httpx = "^0.27.0"
puremagic = "^1.28"
radixtarget = "^3.0.13"
cloudcheck = "^7.0.12"
+orjson = "^3.10.12"
[tool.poetry.group.dev.dependencies]
poetry-dynamic-versioning = ">=0.21.4,<1.5.0"
@@ -68,8 +69,8 @@ pytest-rerunfailures = ">=14,<16"
pytest-timeout = "^2.3.1"
pytest-httpserver = "^1.0.11"
pytest = "^8.3.1"
-pytest-asyncio = "0.24.0"
-uvicorn = "^0.32.0"
+pytest-asyncio = "0.25.0"
+uvicorn = ">=0.32,<0.35"
fastapi = "^0.115.5"
pytest-httpx = ">=0.33,<0.35"
ruff = "^0.8.0"