diff --git a/.github/workflows/link_checker.yml b/.github/workflows/link_checker.yml index 9e73e866..7814efb9 100644 --- a/.github/workflows/link_checker.yml +++ b/.github/workflows/link_checker.yml @@ -29,19 +29,14 @@ jobs: - name: Install dependencies run: | - python -m pip install --upgrade pip - python -m pip install -r requirements.txt - python -m pip install linkchecker - - - name: Install our python stuff - run: | - python -m pip install -e src + python -m pip install --upgrade pip uv + uv sync --dev --project src - name: Build Site run: | - mkdocs build --verbose --clean --config-file mkdocs.yml + uv run --project=src mkdocs build --verbose --clean --config-file mkdocs.yml - name: Check links run: | - linkchecker site/index.html + uv run --project=src linkchecker site/index.html diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index e9142cb3..30475627 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -27,16 +27,17 @@ jobs: python-version: "3.12" - name: Install dependencies run: | - python -m pip install --upgrade pip - pip install pytest build - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + python -m pip install --upgrade pip uv + uv sync --project=src --dev --frozen +# pip install pytest build +# if [ -f requirements.txt ]; then pip install -r requirements.txt; fi # - uses: psf/black@stable - name: Test with pytest run: | - pytest + uv run --project=src pytest - name: Build run: | - python -m build src + uv build --project=src - name: Upload Artifacts uses: actions/upload-artifact@v4 with: diff --git a/Makefile b/Makefile index e8739c17..a30b4f5f 100644 --- a/Makefile +++ b/Makefile @@ -1,37 +1,56 @@ # Project-specific vars MKDOCS_PORT=8765 DOCKER_DIR=docker +PROJECT_DIR = ./src +DOCKER_COMPOSE=docker-compose --project-directory $(DOCKER_DIR) +UV_RUN=uv run --project $(PROJECT_DIR) # Targets -.PHONY: all test docs docker_test clean help mdlint_fix up down regenerate_json +.PHONY: all test docs api docker_test clean help mdlint_fix up down regenerate_json + all: help +dev: + @echo "Set up dev environment..." + uv sync --dev --project $(PROJECT_DIR) + mdlint_fix: @echo "Running markdownlint..." markdownlint --config .markdownlint.yml --fix . test: @echo "Running tests locally..." - pytest -v src/test + uv run --project $(PROJECT_DIR) pytest -v docker_test: @echo "Building the latest test image..." - pushd $(DOCKER_DIR) && docker-compose build test + $(DOCKER_COMPOSE) build test @echo "Running tests in Docker..." - pushd $(DOCKER_DIR) && docker-compose run --rm test + $(DOCKER_COMPOSE) run --rm test + +docs_local: + @echo "Building and running docs locally..." + $(UV_RUN) mkdocs serve docs: @echo "Building and running docs in Docker..." - pushd $(DOCKER_DIR) && docker-compose up docs + $(DOCKER_COMPOSE) up docs + +api: + @echo "Building and running API in Docker..." + $(DOCKER_COMPOSE) up api + +api_dev: + $(UV_RUN) uvicorn ssvc.api.main:app --reload up: @echo "Starting Docker services..." - pushd $(DOCKER_DIR) && docker-compose up -d + $(DOCKER_COMPOSE) up -d down: @echo "Stopping Docker services..." - pushd $(DOCKER_DIR) && docker-compose down + $(DOCKER_COMPOSE) down regenerate_json: @echo "Regenerating JSON files..." @@ -40,20 +59,30 @@ regenerate_json: clean: @echo "Cleaning up Docker resources..." - pushd $(DOCKER_DIR) && docker-compose down --rmi local || true - + $(DOCKER_COMPOSE) down --rmi local || true + rm -rf $(PROJECT_DIR)/.venv $(PROJECT_DIR)/uv.lock help: @echo "Usage: make [target]" @echo "" @echo "Targets:" @echo " all - Display this help message" + + @echo " dev - Set up development environment" @echo " mdlint_fix - Run markdownlint with fix" @echo " test - Run tests locally" @echo " docker_test - Run tests in Docker" + @echo " docs - Build and run documentation in Docker" + @echo " docs_local - Build and run documentation locally" + + @echo " api - Build and run API in Docker" + @echo " api_dev - Run API locally with auto-reload" + @echo " up - Start Docker services" @echo " down - Stop Docker services" + @echo " regenerate_json - Regenerate JSON files from python modules" + @echo " clean - Clean up Docker resources" @echo " help - Display this help message" diff --git a/data/json/decision_points/x_com_yahooinc_prioritized_risk_remediation/theparanoids_1_0_0.json b/data/json/decision_points/x_com_yahooinc_prioritized_risk_remediation/theparanoids_1_0_0.json new file mode 100644 index 00000000..40735809 --- /dev/null +++ b/data/json/decision_points/x_com_yahooinc_prioritized_risk_remediation/theparanoids_1_0_0.json @@ -0,0 +1,40 @@ +{ + "namespace": "x_com.yahooinc#prioritized-risk-remediation", + "key": "PARANOIDS", + "version": "1.0.0", + "name": "theParanoids", + "description": "PrioritizedRiskRemediation outcome group based on TheParanoids.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "5", + "name": "Track 5", + "description": "Track" + }, + { + "key": "4", + "name": "Track Closely 4", + "description": "Track Closely" + }, + { + "key": "3", + "name": "Attend 3", + "description": "Attend" + }, + { + "key": "2", + "name": "Attend 2", + "description": "Attend" + }, + { + "key": "1", + "name": "Act 1", + "description": "Act" + }, + { + "key": "0", + "name": "Act ASAP 0", + "description": "Act ASAP" + } + ] +} diff --git a/data/json/decision_tables/ssvc/public_safety_impact_1_0_0.json b/data/json/decision_tables/ssvc/public_safety_impact_1_0_0.json new file mode 100644 index 00000000..5f55ff27 --- /dev/null +++ b/data/json/decision_tables/ssvc/public_safety_impact_1_0_0.json @@ -0,0 +1,79 @@ +{ + "namespace": "ssvc", + "key": "DT_PSI", + "version": "1.0.0", + "name": "Public Safety Impact", + "description": "Public Safety Impact Decision Table", + "schemaVersion": "2.0.0", + "decision_points": { + "ssvc:SI:2.0.0": { + "namespace": "ssvc", + "key": "SI", + "version": "2.0.0", + "name": "Safety Impact", + "description": "The safety impact of the vulnerability. (based on IEC 61508)", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "Negligible", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Minor injuries at worst (IEC 61508 Negligible).
- *Operator resiliency*: Requires action by system operator to maintain safe system state as a result of exploitation of the vulnerability where operator actions would be well within expected operator abilities; OR causes a minor occupational safety hazard.
- *System resiliency*: Small reduction in built-in system safety margins; OR small reduction in system functional capabilities that support safe operation.
- *Environment*: Minor externalities (property damage, environmental damage, etc.) imposed on other parties.
- *Financial*: Financial losses, which are not readily absorbable, to multiple persons.
- *Psychological*: Emotional or psychological harm, sufficient to be cause for counselling or therapy, to multiple persons." + }, + { + "key": "M", + "name": "Marginal", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Major injuries to one or more persons (IEC 61508 Marginal).
- *Operator resiliency*: Requires action by system operator to maintain safe system state as a result of exploitation of the vulnerability where operator actions would be within their capabilities but the actions require their full attention and effort; OR significant distraction or discomfort to operators; OR causes significant occupational safety hazard.
- *System resiliency*: System safety margin effectively eliminated but no actual harm; OR failure of system functional capabilities that support safe operation.
- *Environment*: Major externalities (property damage, environmental damage, etc.) imposed on other parties.
- *Financial*: Financial losses that likely lead to bankruptcy of multiple persons.
- *Psychological*: Widespread emotional or psychological harm, sufficient to be cause for counselling or therapy, to populations of people." + }, + { + "key": "R", + "name": "Critical", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Loss of life (IEC 61508 Critical).
- *Operator resiliency*: Actions that would keep the system in a safe state are beyond system operator capabilities, resulting in adverse conditions; OR great physical distress to system operators such that they cannot be expected to operate the system properly.
- *System resiliency*: Parts of the cyber-physical system break; system’s ability to recover lost functionality remains intact.
- *Environment*: Serious externalities (threat to life as well as property, widespread environmental damage, measurable public health risks, etc.) imposed on other parties.
- *Financial*: Socio-technical system (elections, financial grid, etc.) of which the affected component is a part is actively destabilized and enters unsafe state.
- *Psychological*: N/A." + }, + { + "key": "C", + "name": "Catastrophic", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Multiple loss of life (IEC 61508 Catastrophic).
- *Operator resiliency*: Operator incapacitated (includes fatality or otherwise incapacitated).
- *System resiliency*: Total loss of whole cyber-physical system, of which the software is a part.
- *Environment*: Extreme externalities (immediate public health threat, environmental damage leading to small ecosystem collapse, etc.) imposed on other parties.
- *Financial*: Social systems (elections, financial grid, etc.) supported by the software collapse.
- *Psychological*: N/A." + } + ] + }, + "ssvc:PSI:2.0.1": { + "namespace": "ssvc", + "key": "PSI", + "version": "2.0.1", + "name": "Public Safety Impact", + "description": "A coarse-grained representation of impact to public safety.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "M", + "name": "Minimal", + "description": "Safety Impact:Negligible" + }, + { + "key": "S", + "name": "Significant", + "description": "Safety Impact:(Marginal OR Critical OR Catastrophic)" + } + ] + } + }, + "outcome": "ssvc:PSI:2.0.1", + "mapping": [ + { + "ssvc:SI:2.0.0": "N", + "ssvc:PSI:2.0.1": "M" + }, + { + "ssvc:SI:2.0.0": "M", + "ssvc:PSI:2.0.1": "S" + }, + { + "ssvc:SI:2.0.0": "R", + "ssvc:PSI:2.0.1": "S" + }, + { + "ssvc:SI:2.0.0": "C", + "ssvc:PSI:2.0.1": "S" + } + ] +} diff --git a/data/json/ssvc_object_registry.json b/data/json/ssvc_object_registry.json index 43d62cd8..ce84bb7d 100644 --- a/data/json/ssvc_object_registry.json +++ b/data/json/ssvc_object_registry.json @@ -7046,8 +7046,8 @@ } } }, - "x_com.yahooinc": { - "namespace": "x_com.yahooinc", + "x_com.yahooinc#prioritized-risk-remediation": { + "namespace": "x_com.yahooinc#prioritized-risk-remediation", "keys": { "PARANOIDS": { "key": "PARANOIDS", @@ -7055,7 +7055,7 @@ "1.0.0": { "version": "1.0.0", "obj": { - "namespace": "x_com.yahooinc", + "namespace": "x_com.yahooinc#prioritized-risk-remediation", "key": "PARANOIDS", "version": "1.0.0", "name": "theParanoids", @@ -7136,1899 +7136,1478 @@ "DecisionTable": { "type": "DecisionTable", "namespaces": { - "cvss": { - "namespace": "cvss", + "cisa": { + "namespace": "cisa", "keys": { - "DT_CVSS_EQ5": { - "key": "DT_CVSS_EQ5", + "DT_CO": { + "key": "DT_CO", "versions": { - "1.0.0": { - "version": "1.0.0", + "2.0.3": { + "version": "2.0.3", "obj": { - "namespace": "cvss", - "key": "DT_CVSS_EQ5", - "version": "1.0.0", - "name": "CVSS v4 Equivalence Set 5", - "description": "CVSS Equivalence Set 5 Decision Table", + "namespace": "cisa", + "key": "DT_CO", + "version": "2.0.3", + "name": "CISA Coordinator", + "description": "CISA Coordinator decision table for SSVC", "schemaVersion": "2.0.0", "decision_points": { - "cvss:E_NoX:2.0.0": { - "namespace": "cvss", - "key": "E_NoX", - "version": "2.0.0", - "name": "Exploit Maturity (without Not Defined)", - "description": "This metric measures the likelihood of the vulnerability being attacked, and is based on the current state of exploit techniques, exploit code availability, or active, “in-the-wild” exploitation. This version does not include the Not Defined (X) option.", + "ssvc:E:1.1.0": { + "namespace": "ssvc", + "key": "E", + "version": "1.1.0", + "name": "Exploitation", + "description": "The present state of exploitation of the vulnerability.", "schemaVersion": "2.0.0", "values": [ { - "key": "U", - "name": "Unreported", - "description": "Based on available threat intelligence each of the following must apply: No knowledge of publicly available proof-of-concept exploit code No knowledge of reported attempts to exploit this vulnerability No knowledge of publicly available solutions used to simplify attempts to exploit the vulnerability (i.e., neither the “POC” nor “Attacked” values apply)" + "key": "N", + "name": "None", + "description": "There is no evidence of active exploitation and no public proof of concept (PoC) of how to exploit the vulnerability." }, { "key": "P", - "name": "Proof-of-Concept", - "description": "Based on available threat intelligence each of the following must apply: Proof-of-concept exploit code is publicly available No knowledge of reported attempts to exploit this vulnerability No knowledge of publicly available solutions used to simplify attempts to exploit the vulnerability (i.e., the “Attacked” value does not apply)" + "name": "Public PoC", + "description": "One of the following is true: (1) Typical public PoC exists in sources such as Metasploit or websites like ExploitDB; or (2) the vulnerability has a well-known method of exploitation." }, { "key": "A", - "name": "Attacked", - "description": "Based on available threat intelligence either of the following must apply: Attacks targeting this vulnerability (attempted or successful) have been reported Solutions to simplify attempts to exploit the vulnerability are publicly or privately available (such as exploit toolkits)" + "name": "Active", + "description": "Shared, observable, reliable evidence that the exploit is being used in the wild by real attackers; there is credible public reporting." } ] }, - "cvss:EQ5:1.0.0": { - "namespace": "cvss", - "key": "EQ5", - "version": "1.0.0", - "name": "Equivalence Set 5", - "description": "E with 3 levels specified in Table 28", + "ssvc:A:2.0.0": { + "namespace": "ssvc", + "key": "A", + "version": "2.0.0", + "name": "Automatable", + "description": "Can an attacker reliably automate creating exploitation events for this vulnerability?", "schemaVersion": "2.0.0", "values": [ { - "key": "L", - "name": "Low", - "description": "2: E:U" - }, - { - "key": "M", - "name": "Medium", - "description": "1: E:P" + "key": "N", + "name": "No", + "description": "Attackers cannot reliably automate steps 1-4 of the kill chain for this vulnerability. These steps are (1) reconnaissance, (2) weaponization, (3) delivery, and (4) exploitation." }, { - "key": "H", - "name": "High", - "description": "0: E:A" + "key": "Y", + "name": "Yes", + "description": "Attackers can reliably automate steps 1-4 of the kill chain." } ] - } - }, - "outcome": "cvss:EQ5:1.0.0", - "mapping": [ - { - "cvss:E_NoX:2.0.0": "U", - "cvss:EQ5:1.0.0": "L" - }, - { - "cvss:E_NoX:2.0.0": "P", - "cvss:EQ5:1.0.0": "M" }, - { - "cvss:E_NoX:2.0.0": "A", - "cvss:EQ5:1.0.0": "H" - } - ] - } - } - } - }, - "DT_CVSS4_EQ4": { - "key": "DT_CVSS4_EQ4", - "versions": { - "1.0.0": { - "version": "1.0.0", - "obj": { - "namespace": "cvss", - "key": "DT_CVSS4_EQ4", - "version": "1.0.0", - "name": "CVSS v4 Equivalence Set 4", - "description": "This decision table models equivalence set 4 from CVSS v4.", - "schemaVersion": "2.0.0", - "decision_points": { - "cvss:SC:1.0.0": { - "namespace": "cvss", - "key": "SC", + "ssvc:TI:1.0.0": { + "namespace": "ssvc", + "key": "TI", "version": "1.0.0", - "name": "Confidentiality Impact to the Subsequent System", - "description": "This metric measures the impact to the confidentiality of the information managed by the system due to a successfully exploited vulnerability. Confidentiality refers to limiting information access and disclosure to only authorized users, as well as preventing access by, or disclosure to, unauthorized ones. The resulting score is greatest when the loss to the system is highest.", + "name": "Technical Impact", + "description": "The technical impact of the vulnerability.", "schemaVersion": "2.0.0", "values": [ { - "key": "N", - "name": "Negligible", - "description": "There is no loss of confidentiality within the Subsequent System or all confidentiality impact is constrained to the Vulnerable System." - }, - { - "key": "L", - "name": "Low", - "description": "There is some loss of confidentiality. Access to some restricted information is obtained, but the attacker does not have control over what information is obtained, or the amount or kind of loss is limited. The information disclosure does not cause a direct, serious loss to the Subsequent System." + "key": "P", + "name": "Partial", + "description": "The exploit gives the adversary limited control over, or information exposure about, the behavior of the software that contains the vulnerability. Or the exploit gives the adversary an importantly low stochastic opportunity for total control." }, { - "key": "H", - "name": "High", - "description": "There is a total loss of confidentiality, resulting in all resources within the Subsequent System being divulged to the attacker. Alternatively, access to only some restricted information is obtained, but the disclosed information presents a direct, serious impact." + "key": "T", + "name": "Total", + "description": "The exploit gives the adversary total control over the behavior of the software, or it gives total disclosure of all information on the system that contains the vulnerability." } ] }, - "cvss:MSI_NoX:1.0.1": { - "namespace": "cvss", - "key": "MSI_NoX", - "version": "1.0.1", - "name": "Modified Integrity Impact to the Subsequent System (without Not Defined)", - "description": "This metric measures the impact to integrity of a successfully exploited vulnerability. Integrity refers to the trustworthiness and veracity of information. Integrity of a system is impacted when an attacker causes unauthorized modification of system data. Integrity is also impacted when a system user can repudiate critical actions taken in the context of the system (e.g. due to insufficient logging). The resulting score is greatest when the consequence to the system is highest. This version does not include the Not Defined (X) option.", + "ssvc:MWI:1.0.0": { + "namespace": "ssvc", + "key": "MWI", + "version": "1.0.0", + "name": "Mission and Well-Being Impact", + "description": "Mission and Well-Being Impact is a combination of Mission Prevalence and Public Well-Being Impact.", "schemaVersion": "2.0.0", "values": [ - { - "key": "N", - "name": "Negligible", - "description": "There is negligible loss of integrity within the Subsequent System or all integrity impact is constrained to the Vulnerable System." - }, { "key": "L", "name": "Low", - "description": "Modification of data is possible, but the attacker does not have control over the consequence of a modification, or the amount of modification is limited. The data modification does not have a direct, serious impact to the Subsequent System." - }, - { - "key": "H", - "name": "High", - "description": "There is a total loss of integrity, or a complete loss of protection. For example, the attacker is able to modify any/all files protected by the Subsequent System. Alternatively, only some files can be modified, but malicious modification would present a direct, serious consequence to the Subsequent System." - }, - { - "key": "S", - "name": "Safety", - "description": "The Safety metric value measures the impact regarding the Safety of a human actor or participant that can be predictably injured as a result of the vulnerability being exploited." - } - ] - }, - "cvss:MSA_NoX:1.0.1": { - "namespace": "cvss", - "key": "MSA_NoX", - "version": "1.0.1", - "name": "Modified Availability Impact to the Subsequent System (without Not Defined)", - "description": "This metric measures the impact on availability a successful exploit of the vulnerability will have on the Subsequent System. This version does not include the Not Defined (X) option.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "Negligible", - "description": "There is negligible impact to availability within the Subsequent System or all availability impact is constrained to the Vulnerable System." + "description": "Mission Prevalence:Minimal AND Public Well-Being Impact:Minimal" }, { - "key": "L", - "name": "Low", - "description": "Performance is reduced or there are interruptions in resource availability. Even if repeated exploitation of the vulnerability is possible, the attacker does not have the ability to completely deny service to legitimate users." + "key": "M", + "name": "Medium", + "description": "Mission Prevalence:Support AND Public Well-Being Impact:(Minimal OR Material)" }, { "key": "H", "name": "High", - "description": "There is a total loss of availability, resulting in the attacker being able to fully deny access to resources in the Subsequent System; this loss is either sustained (while the attacker continues to deliver the attack) or persistent (the condition persists even after the attack has completed)." - }, - { - "key": "S", - "name": "Safety", - "description": "The Safety metric value measures the impact regarding the Safety of a human actor or participant that can be predictably injured as a result of the vulnerability being exploited." + "description": "Mission Prevalence:Essential OR Public Well-Being Impact:(Irreversible)" } ] }, - "cvss:EQ4:1.0.0": { - "namespace": "cvss", - "key": "EQ4", - "version": "1.0.0", - "name": "Equivalence Set 4", - "description": "SC/SI/SA with 3 levels specified in Table 27", + "cisa:CISA:1.1.0": { + "namespace": "cisa", + "key": "CISA", + "version": "1.1.0", + "name": "CISA Levels", + "description": "The CISA outcome group. CISA uses its own SSVC decision tree model to prioritize relevant vulnerabilities into four possible decisions: Track, Track*, Attend, and Act.", "schemaVersion": "2.0.0", "values": [ { - "key": "L", - "name": "Low", - "description": "2: not (MSI:S or MSA:S) and not (SC:H or SI:H or SA:H)" + "key": "T", + "name": "Track", + "description": "The vulnerability does not require action at this time. The organization would continue to track the vulnerability and reassess it if new information becomes available. CISA recommends remediating Track vulnerabilities within standard update timelines." }, { - "key": "M", - "name": "Medium", - "description": "1: not (MSI:S or MSA:S) and (SC:H or SI:H or SA:H)" + "key": "T*", + "name": "Track*", + "description": "The vulnerability contains specific characteristics that may require closer monitoring for changes. CISA recommends remediating Track* vulnerabilities within standard update timelines." }, { - "key": "H", - "name": "High", - "description": "0: MSI:S or MSA:S" + "key": "AT", + "name": "Attend", + "description": "The vulnerability requires attention from the organization's internal, supervisory-level individuals. Necessary actions may include requesting assistance or information about the vulnerability and may involve publishing a notification, either internally and/or externally, about the vulnerability. CISA recommends remediating Attend vulnerabilities sooner than standard update timelines." + }, + { + "key": "AC", + "name": "Act", + "description": "The vulnerability requires attention from the organization's internal, supervisory-level and leadership-level individuals. Necessary actions include requesting assistance or information about the vulnerability, as well as publishing a notification either internally and/or externally. Typically, internal groups would meet to determine the overall response and then execute agreed upon actions. CISA recommends remediating Act vulnerabilities as soon as possible." } ] } }, - "outcome": "cvss:EQ4:1.0.0", + "outcome": "cisa:CISA:1.1.0", "mapping": [ { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "L" - }, - { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "L" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "L" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "L" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "L" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "T*" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "L" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "L" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "AT" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "N", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "AT" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "L" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "T*" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "T*" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "AT" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "AT" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "T*" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "P", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "AT" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "AT" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "T" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "N", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "AT" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "M" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "N", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "AC" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "H" - }, - { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "M" - }, - { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "M" - }, - { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "H" - }, - { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "N", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" - }, - { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" - }, - { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" - }, - { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "L", - "cvss:EQ4:1.0.0": "H" - }, - { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "M" - }, - { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "H" - }, - { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "L", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" - }, - { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "AT" }, { - "cvss:SC:1.0.0": "N", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "AT" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "H", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "P", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "AC" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "H", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "L", + "cisa:CISA:1.1.0": "AT" }, { - "cvss:SC:1.0.0": "L", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "M", + "cisa:CISA:1.1.0": "AC" }, { - "cvss:SC:1.0.0": "H", - "cvss:MSI_NoX:1.0.1": "S", - "cvss:MSA_NoX:1.0.1": "S", - "cvss:EQ4:1.0.0": "H" + "ssvc:E:1.1.0": "A", + "ssvc:A:2.0.0": "Y", + "ssvc:TI:1.0.0": "T", + "ssvc:MWI:1.0.0": "H", + "cisa:CISA:1.1.0": "AC" } ] } } } - }, - "DT_CVSS4_EQ1": { - "key": "DT_CVSS4_EQ1", + } + } + }, + "cvss": { + "namespace": "cvss", + "keys": { + "DT_CVSS_EQ5": { + "key": "DT_CVSS_EQ5", "versions": { "1.0.0": { "version": "1.0.0", "obj": { "namespace": "cvss", - "key": "DT_CVSS4_EQ1", + "key": "DT_CVSS_EQ5", "version": "1.0.0", - "name": "CVSS v4 Equivalence Set 1", - "description": "This decision table models equivalence set 1 from CVSS v4. Factors include Attack Vector (AV), Privileges Required (PR), and User Interaction (UI).", + "name": "CVSS v4 Equivalence Set 5", + "description": "CVSS Equivalence Set 5 Decision Table", "schemaVersion": "2.0.0", "decision_points": { - "cvss:AV:3.0.1": { - "namespace": "cvss", - "key": "AV", - "version": "3.0.1", - "name": "Attack Vector", - "description": "This metric reflects the context by which vulnerability exploitation is possible. This metric value (and consequently the resulting severity) will be larger the more remote (logically, and physically) an attacker can be in order to exploit the vulnerable system. The assumption is that the number of potential attackers for a vulnerability that could be exploited from across a network is larger than the number of potential attackers that could exploit a vulnerability requiring physical access to a device, and therefore warrants a greater severity.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "P", - "name": "Physical", - "description": "The attack requires the attacker to physically touch or manipulate the vulnerable system. Physical interaction may be brief (e.g., evil maid attack1) or persistent." - }, - { - "key": "L", - "name": "Local", - "description": "The vulnerable system is not bound to the network stack and the attacker’s path is via read/write/execute capabilities. Either: the attacker exploits the vulnerability by accessing the target system locally (e.g., keyboard, console), or through terminal emulation (e.g., SSH); or the attacker relies on User Interaction by another person to perform actions required to exploit the vulnerability (e.g., using social engineering techniques to trick a legitimate user into opening a malicious document)." - }, - { - "key": "A", - "name": "Adjacent", - "description": "The vulnerable system is bound to a protocol stack, but the attack is limited at the protocol level to a logically adjacent topology. This can mean an attack must be launched from the same shared proximity (e.g., Bluetooth, NFC, or IEEE 802.11) or logical network (e.g., local IP subnet), or from within a secure or otherwise limited administrative domain (e.g., MPLS, secure VPN within an administrative network zone)." - }, - { - "key": "N", - "name": "Network", - "description": "The vulnerable system is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet. Such a vulnerability is often termed “remotely exploitable” and can be thought of as an attack being exploitable at the protocol level one or more network hops away (e.g., across one or more routers)." - } - ] - }, - "cvss:PR:1.0.1": { - "namespace": "cvss", - "key": "PR", - "version": "1.0.1", - "name": "Privileges Required", - "description": "This metric describes the level of privileges an attacker must possess prior to successfully exploiting the vulnerability. The method by which the attacker obtains privileged credentials prior to the attack (e.g., free trial accounts), is outside the scope of this metric. Generally, self-service provisioned accounts do not constitute a privilege requirement if the attacker can grant themselves privileges as part of the attack.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "H", - "name": "High", - "description": "The attacker is authorized with (i.e., requires) privileges that provide significant (e.g., administrative) control over the vulnerable system allowing full access to the vulnerable system’s settings and files." - }, - { - "key": "L", - "name": "Low", - "description": "The attacker is authorized with (i.e., requires) privileges that provide basic capabilities that are typically limited to settings and resources owned by a single low-privileged user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources." - }, - { - "key": "N", - "name": "None", - "description": "The attacker is unauthorized prior to attack, and therefore does not require any access to settings or files to carry out an attack." - } - ] - }, - "cvss:UI:2.0.0": { + "cvss:E_NoX:2.0.0": { "namespace": "cvss", - "key": "UI", + "key": "E_NoX", "version": "2.0.0", - "name": "User Interaction", - "description": "This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable system. This metric determines whether the vulnerability can be exploited solely at the will of the attacker, or whether a separate user (or user-initiated process) must participate in some manner. The resulting score is greatest when no user interaction is required.", + "name": "Exploit Maturity (without Not Defined)", + "description": "This metric measures the likelihood of the vulnerability being attacked, and is based on the current state of exploit techniques, exploit code availability, or active, “in-the-wild” exploitation. This version does not include the Not Defined (X) option.", "schemaVersion": "2.0.0", "values": [ { - "key": "A", - "name": "Active", - "description": "Successful exploitation of this vulnerability requires a targeted user to perform specific, conscious interactions with the vulnerable system and the attacker’s payload, or the user’s interactions would actively subvert protection mechanisms which would lead to exploitation of the vulnerability." + "key": "U", + "name": "Unreported", + "description": "Based on available threat intelligence each of the following must apply: No knowledge of publicly available proof-of-concept exploit code No knowledge of reported attempts to exploit this vulnerability No knowledge of publicly available solutions used to simplify attempts to exploit the vulnerability (i.e., neither the “POC” nor “Attacked” values apply)" }, { "key": "P", - "name": "Passive", - "description": "Successful exploitation of this vulnerability requires limited interaction by the targeted user with the vulnerable system and the attacker’s payload. These interactions would be considered involuntary and do not require that the user actively subvert protections built into the vulnerable system." + "name": "Proof-of-Concept", + "description": "Based on available threat intelligence each of the following must apply: Proof-of-concept exploit code is publicly available No knowledge of reported attempts to exploit this vulnerability No knowledge of publicly available solutions used to simplify attempts to exploit the vulnerability (i.e., the “Attacked” value does not apply)" }, { - "key": "N", - "name": "None", - "description": "The vulnerable system can be exploited without interaction from any human user, other than the attacker." + "key": "A", + "name": "Attacked", + "description": "Based on available threat intelligence either of the following must apply: Attacks targeting this vulnerability (attempted or successful) have been reported Solutions to simplify attempts to exploit the vulnerability are publicly or privately available (such as exploit toolkits)" } ] }, - "cvss:EQ1:1.0.0": { + "cvss:EQ5:1.0.0": { "namespace": "cvss", - "key": "EQ1", + "key": "EQ5", "version": "1.0.0", - "name": "Equivalence Set 1", - "description": "AV/PR/UI with 3 levels specified in Table 24", + "name": "Equivalence Set 5", + "description": "E with 3 levels specified in Table 28", "schemaVersion": "2.0.0", "values": [ { "key": "L", "name": "Low", - "description": "2: AV:P or not(AV:N or PR:N or UI:N)" + "description": "2: E:U" }, { "key": "M", "name": "Medium", - "description": "1: (AV:N or PR:N or UI:N) and not (AV:N and PR:N and UI:N) and not AV:P" + "description": "1: E:P" }, { "key": "H", "name": "High", - "description": "0: AV:N and PR:N and UI:N" + "description": "0: E:A" } ] } }, - "outcome": "cvss:EQ1:1.0.0", + "outcome": "cvss:EQ5:1.0.0", "mapping": [ { - "cvss:AV:3.0.1": "P", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "L", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "P", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "L" + "cvss:E_NoX:2.0.0": "U", + "cvss:EQ5:1.0.0": "L" }, { - "cvss:AV:3.0.1": "P", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "L" + "cvss:E_NoX:2.0.0": "P", + "cvss:EQ5:1.0.0": "M" }, { - "cvss:AV:3.0.1": "A", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "L", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "P", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "L", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "P", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "P", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "N", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "A", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "L", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "A", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "L", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "P", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "L", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "P", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "N", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "A", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "N", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "A", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "L", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "A", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "L", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "P", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "L" - }, - { - "cvss:AV:3.0.1": "N", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "A", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "N", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "A", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "N", - "cvss:PR:1.0.1": "H", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "A", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "L", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "N", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "P", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "N", - "cvss:PR:1.0.1": "L", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "A", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "M" - }, - { - "cvss:AV:3.0.1": "N", - "cvss:PR:1.0.1": "N", - "cvss:UI:2.0.0": "N", - "cvss:EQ1:1.0.0": "H" + "cvss:E_NoX:2.0.0": "A", + "cvss:EQ5:1.0.0": "H" } ] } } } }, - "DT_CVSS4_EQ6": { - "key": "DT_CVSS4_EQ6", + "DT_CVSS4_EQ4": { + "key": "DT_CVSS4_EQ4", "versions": { "1.0.0": { "version": "1.0.0", "obj": { "namespace": "cvss", - "key": "DT_CVSS4_EQ6", + "key": "DT_CVSS4_EQ4", "version": "1.0.0", - "name": "CVSS v4 Equivalence Set 6", - "description": "This decision table models equivalence set 6 from CVSS v4.", + "name": "CVSS v4 Equivalence Set 4", + "description": "This decision table models equivalence set 4 from CVSS v4.", "schemaVersion": "2.0.0", "decision_points": { - "cvss:CR_NoX:1.1.1": { + "cvss:SC:1.0.0": { "namespace": "cvss", - "key": "CR_NoX", - "version": "1.1.1", - "name": "Confidentiality Requirement (without Not Defined)", - "description": "This metric enables the consumer to customize the assessment depending on the importance of the affected IT asset to the analyst’s organization, measured in terms of Confidentiality. This version does not include the Not Defined (X) option.", + "key": "SC", + "version": "1.0.0", + "name": "Confidentiality Impact to the Subsequent System", + "description": "This metric measures the impact to the confidentiality of the information managed by the system due to a successfully exploited vulnerability. Confidentiality refers to limiting information access and disclosure to only authorized users, as well as preventing access by, or disclosure to, unauthorized ones. The resulting score is greatest when the loss to the system is highest.", "schemaVersion": "2.0.0", "values": [ { - "key": "L", - "name": "Low", - "description": "Loss of confidentiality is likely to have only a limited adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + "key": "N", + "name": "Negligible", + "description": "There is no loss of confidentiality within the Subsequent System or all confidentiality impact is constrained to the Vulnerable System." }, { - "key": "M", - "name": "Medium", - "description": "Loss of confidentiality is likely to have a serious adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + "key": "L", + "name": "Low", + "description": "There is some loss of confidentiality. Access to some restricted information is obtained, but the attacker does not have control over what information is obtained, or the amount or kind of loss is limited. The information disclosure does not cause a direct, serious loss to the Subsequent System." }, { "key": "H", "name": "High", - "description": "Loss of confidentiality is likely to have a catastrophic adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + "description": "There is a total loss of confidentiality, resulting in all resources within the Subsequent System being divulged to the attacker. Alternatively, access to only some restricted information is obtained, but the disclosed information presents a direct, serious impact." } ] }, - "cvss:VC:3.0.0": { + "cvss:MSI_NoX:1.0.1": { "namespace": "cvss", - "key": "VC", - "version": "3.0.0", - "name": "Confidentiality Impact to the Vulnerable System", - "description": "This metric measures the impact to the confidentiality of the information managed by the system due to a successfully exploited vulnerability. Confidentiality refers to limiting information access and disclosure to only authorized users, as well as preventing access by, or disclosure to, unauthorized ones.", + "key": "MSI_NoX", + "version": "1.0.1", + "name": "Modified Integrity Impact to the Subsequent System (without Not Defined)", + "description": "This metric measures the impact to integrity of a successfully exploited vulnerability. Integrity refers to the trustworthiness and veracity of information. Integrity of a system is impacted when an attacker causes unauthorized modification of system data. Integrity is also impacted when a system user can repudiate critical actions taken in the context of the system (e.g. due to insufficient logging). The resulting score is greatest when the consequence to the system is highest. This version does not include the Not Defined (X) option.", "schemaVersion": "2.0.0", "values": [ { "key": "N", - "name": "None", - "description": "There is no loss of confidentiality within the impacted component." + "name": "Negligible", + "description": "There is negligible loss of integrity within the Subsequent System or all integrity impact is constrained to the Vulnerable System." }, { "key": "L", "name": "Low", - "description": "There is some loss of confidentiality. Access to some restricted information is obtained, but the attacker does not have control over what information is obtained, or the amount or kind of loss is constrained. The information disclosure does not cause a direct, serious loss to the impacted component." + "description": "Modification of data is possible, but the attacker does not have control over the consequence of a modification, or the amount of modification is limited. The data modification does not have a direct, serious impact to the Subsequent System." }, { "key": "H", "name": "High", - "description": "There is total loss of confidentiality, resulting in all resources within the impacted component being divulged to the attacker. Alternatively, access to only some restricted information is obtained, but the disclosed information presents a direct, serious impact. For example, an attacker steals the administrator's password, or private encryption keys of a web server." + "description": "There is a total loss of integrity, or a complete loss of protection. For example, the attacker is able to modify any/all files protected by the Subsequent System. Alternatively, only some files can be modified, but malicious modification would present a direct, serious consequence to the Subsequent System." + }, + { + "key": "S", + "name": "Safety", + "description": "The Safety metric value measures the impact regarding the Safety of a human actor or participant that can be predictably injured as a result of the vulnerability being exploited." } ] }, - "cvss:IR_NoX:1.1.1": { + "cvss:MSA_NoX:1.0.1": { "namespace": "cvss", - "key": "IR_NoX", - "version": "1.1.1", - "name": "Integrity Requirement (without Not Defined)", - "description": "This metric enables the consumer to customize the assessment depending on the importance of the affected IT asset to the analyst’s organization, measured in terms of Confidentiality. This version does not include the Not Defined (X) option.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "L", - "name": "Low", - "description": "Loss of integrity is likely to have only a limited adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." - }, - { - "key": "M", - "name": "Medium", - "description": "Loss of integrity is likely to have a serious adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." - }, - { - "key": "H", - "name": "High", - "description": "Loss of integrity is likely to have a catastrophic adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." - } - ] - }, - "cvss:VI:3.0.0": { - "namespace": "cvss", - "key": "VI", - "version": "3.0.0", - "name": "Integrity Impact to the Vulnerable System", - "description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", + "key": "MSA_NoX", + "version": "1.0.1", + "name": "Modified Availability Impact to the Subsequent System (without Not Defined)", + "description": "This metric measures the impact on availability a successful exploit of the vulnerability will have on the Subsequent System. This version does not include the Not Defined (X) option.", "schemaVersion": "2.0.0", "values": [ { "key": "N", - "name": "None", - "description": "There is no loss of integrity within the Vulnerable System." + "name": "Negligible", + "description": "There is negligible impact to availability within the Subsequent System or all availability impact is constrained to the Vulnerable System." }, { "key": "L", "name": "Low", - "description": "Modification of data is possible, but the attacker does not have control over the consequence of a modification, or the amount of modification is limited. The data modification does not have a direct, serious impact to the Vulnerable System." + "description": "Performance is reduced or there are interruptions in resource availability. Even if repeated exploitation of the vulnerability is possible, the attacker does not have the ability to completely deny service to legitimate users." }, { "key": "H", "name": "High", - "description": "There is a total loss of integrity, or a complete loss of protection." - } - ] - }, - "cvss:AR_NoX:1.1.1": { - "namespace": "cvss", - "key": "AR_NoX", - "version": "1.1.1", - "name": "Availability Requirement (without Not Defined)", - "description": "This metric enables the consumer to customize the assessment depending on the importance of the affected IT asset to the analyst’s organization, measured in terms of Availability. This version does not include the Not Defined (X) option.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "L", - "name": "Low", - "description": "Loss of availability is likely to have only a limited adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." - }, - { - "key": "M", - "name": "Medium", - "description": "Loss of availability is likely to have a serious adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + "description": "There is a total loss of availability, resulting in the attacker being able to fully deny access to resources in the Subsequent System; this loss is either sustained (while the attacker continues to deliver the attack) or persistent (the condition persists even after the attack has completed)." }, { - "key": "H", - "name": "High", - "description": "Loss of availability is likely to have a catastrophic adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + "key": "S", + "name": "Safety", + "description": "The Safety metric value measures the impact regarding the Safety of a human actor or participant that can be predictably injured as a result of the vulnerability being exploited." } ] }, - "cvss:VA:3.0.0": { + "cvss:EQ4:1.0.0": { "namespace": "cvss", - "key": "VA", - "version": "3.0.0", - "name": "Availability Impact to the Vulnerable System", - "description": "This metric measures the impact to the availability of the impacted system resulting from a successfully exploited vulnerability.", + "key": "EQ4", + "version": "1.0.0", + "name": "Equivalence Set 4", + "description": "SC/SI/SA with 3 levels specified in Table 27", "schemaVersion": "2.0.0", "values": [ - { - "key": "N", - "name": "None", - "description": "There is no impact to availability within the Vulnerable System." - }, { "key": "L", "name": "Low", - "description": "There is reduced performance or interruptions in resource availability. Even if repeated exploitation of the vulnerability is possible, the attacker does not have the ability to completely deny service to legitimate users. The resources in the Vulnerable System are either partially available all of the time, or fully available only some of the time, but overall there is no direct, serious consequence to the Vulnerable System." + "description": "2: not (MSI:S or MSA:S) and not (SC:H or SI:H or SA:H)" }, { - "key": "H", - "name": "High", - "description": "There is total loss of availability, resulting in the attacker being able to fully deny access to resources in the impacted component; this loss is either sustained (while the attacker continues to deliver the attack) or persistent (the condition persists even after the attack has completed)." - } - ] - }, - "cvss:EQ6:1.0.0": { - "namespace": "cvss", - "key": "EQ6", - "version": "1.0.0", - "name": "Equivalence Set 6", - "description": "VC/VI/VA+CR/CI/CA with 2 levels specified in Table 29", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "L", - "name": "Low", - "description": "1: not (CR:H and VC:H) and not (IR:H and VI:H) and not (AR:H and VA:H)" + "key": "M", + "name": "Medium", + "description": "1: not (MSI:S or MSA:S) and (SC:H or SI:H or SA:H)" }, { "key": "H", "name": "High", - "description": "0: (CR:H and VC:H) or (IR:H and VI:H) or (AR:H and VA:H)" + "description": "0: MSI:S or MSA:S" } ] } }, - "outcome": "cvss:EQ6:1.0.0", + "outcome": "cvss:EQ4:1.0.0", "mapping": [ { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "N", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "N", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "L", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "L", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "N", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "H", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "H", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "L", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:SC:1.0.0": "H", + "cvss:MSI_NoX:1.0.1": "S", + "cvss:MSA_NoX:1.0.1": "S", + "cvss:EQ4:1.0.0": "H" + } + ] + } + } + } + }, + "DT_CVSS4_EQ1": { + "key": "DT_CVSS4_EQ1", + "versions": { + "1.0.0": { + "version": "1.0.0", + "obj": { + "namespace": "cvss", + "key": "DT_CVSS4_EQ1", + "version": "1.0.0", + "name": "CVSS v4 Equivalence Set 1", + "description": "This decision table models equivalence set 1 from CVSS v4. Factors include Attack Vector (AV), Privileges Required (PR), and User Interaction (UI).", + "schemaVersion": "2.0.0", + "decision_points": { + "cvss:AV:3.0.1": { + "namespace": "cvss", + "key": "AV", + "version": "3.0.1", + "name": "Attack Vector", + "description": "This metric reflects the context by which vulnerability exploitation is possible. This metric value (and consequently the resulting severity) will be larger the more remote (logically, and physically) an attacker can be in order to exploit the vulnerable system. The assumption is that the number of potential attackers for a vulnerability that could be exploited from across a network is larger than the number of potential attackers that could exploit a vulnerability requiring physical access to a device, and therefore warrants a greater severity.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "P", + "name": "Physical", + "description": "The attack requires the attacker to physically touch or manipulate the vulnerable system. Physical interaction may be brief (e.g., evil maid attack1) or persistent." + }, + { + "key": "L", + "name": "Local", + "description": "The vulnerable system is not bound to the network stack and the attacker’s path is via read/write/execute capabilities. Either: the attacker exploits the vulnerability by accessing the target system locally (e.g., keyboard, console), or through terminal emulation (e.g., SSH); or the attacker relies on User Interaction by another person to perform actions required to exploit the vulnerability (e.g., using social engineering techniques to trick a legitimate user into opening a malicious document)." + }, + { + "key": "A", + "name": "Adjacent", + "description": "The vulnerable system is bound to a protocol stack, but the attack is limited at the protocol level to a logically adjacent topology. This can mean an attack must be launched from the same shared proximity (e.g., Bluetooth, NFC, or IEEE 802.11) or logical network (e.g., local IP subnet), or from within a secure or otherwise limited administrative domain (e.g., MPLS, secure VPN within an administrative network zone)." + }, + { + "key": "N", + "name": "Network", + "description": "The vulnerable system is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet. Such a vulnerability is often termed “remotely exploitable” and can be thought of as an attack being exploitable at the protocol level one or more network hops away (e.g., across one or more routers)." + } + ] }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:PR:1.0.1": { + "namespace": "cvss", + "key": "PR", + "version": "1.0.1", + "name": "Privileges Required", + "description": "This metric describes the level of privileges an attacker must possess prior to successfully exploiting the vulnerability. The method by which the attacker obtains privileged credentials prior to the attack (e.g., free trial accounts), is outside the scope of this metric. Generally, self-service provisioned accounts do not constitute a privilege requirement if the attacker can grant themselves privileges as part of the attack.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "H", + "name": "High", + "description": "The attacker is authorized with (i.e., requires) privileges that provide significant (e.g., administrative) control over the vulnerable system allowing full access to the vulnerable system’s settings and files." + }, + { + "key": "L", + "name": "Low", + "description": "The attacker is authorized with (i.e., requires) privileges that provide basic capabilities that are typically limited to settings and resources owned by a single low-privileged user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources." + }, + { + "key": "N", + "name": "None", + "description": "The attacker is unauthorized prior to attack, and therefore does not require any access to settings or files to carry out an attack." + } + ] }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:UI:2.0.0": { + "namespace": "cvss", + "key": "UI", + "version": "2.0.0", + "name": "User Interaction", + "description": "This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable system. This metric determines whether the vulnerability can be exploited solely at the will of the attacker, or whether a separate user (or user-initiated process) must participate in some manner. The resulting score is greatest when no user interaction is required.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "A", + "name": "Active", + "description": "Successful exploitation of this vulnerability requires a targeted user to perform specific, conscious interactions with the vulnerable system and the attacker’s payload, or the user’s interactions would actively subvert protection mechanisms which would lead to exploitation of the vulnerability." + }, + { + "key": "P", + "name": "Passive", + "description": "Successful exploitation of this vulnerability requires limited interaction by the targeted user with the vulnerable system and the attacker’s payload. These interactions would be considered involuntary and do not require that the user actively subvert protections built into the vulnerable system." + }, + { + "key": "N", + "name": "None", + "description": "The vulnerable system can be exploited without interaction from any human user, other than the attacker." + } + ] }, + "cvss:EQ1:1.0.0": { + "namespace": "cvss", + "key": "EQ1", + "version": "1.0.0", + "name": "Equivalence Set 1", + "description": "AV/PR/UI with 3 levels specified in Table 24", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Low", + "description": "2: AV:P or not(AV:N or PR:N or UI:N)" + }, + { + "key": "M", + "name": "Medium", + "description": "1: (AV:N or PR:N or UI:N) and not (AV:N and PR:N and UI:N) and not AV:P" + }, + { + "key": "H", + "name": "High", + "description": "0: AV:N and PR:N and UI:N" + } + ] + } + }, + "outcome": "cvss:EQ1:1.0.0", + "mapping": [ { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "P", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "L", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "P", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "P", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "A", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "L", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "P", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "L", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "P", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "P", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "N", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "A", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "L", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "A", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "L", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "P", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "L", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "P", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "N", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "A", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "N", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "A", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "L", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "A", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "L", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "P", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "N", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "A", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:AV:3.0.1": "N", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "A", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "N", + "cvss:PR:1.0.1": "H", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "A", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "L", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "N", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "P", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "N", + "cvss:PR:1.0.1": "L", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "A", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "M" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AV:3.0.1": "N", + "cvss:PR:1.0.1": "N", + "cvss:UI:2.0.0": "N", + "cvss:EQ1:1.0.0": "H" + } + ] + } + } + } + }, + "DT_CVSS4_EQ6": { + "key": "DT_CVSS4_EQ6", + "versions": { + "1.0.0": { + "version": "1.0.0", + "obj": { + "namespace": "cvss", + "key": "DT_CVSS4_EQ6", + "version": "1.0.0", + "name": "CVSS v4 Equivalence Set 6", + "description": "This decision table models equivalence set 6 from CVSS v4.", + "schemaVersion": "2.0.0", + "decision_points": { + "cvss:CR_NoX:1.1.1": { + "namespace": "cvss", + "key": "CR_NoX", + "version": "1.1.1", + "name": "Confidentiality Requirement (without Not Defined)", + "description": "This metric enables the consumer to customize the assessment depending on the importance of the affected IT asset to the analyst’s organization, measured in terms of Confidentiality. This version does not include the Not Defined (X) option.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Low", + "description": "Loss of confidentiality is likely to have only a limited adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + }, + { + "key": "M", + "name": "Medium", + "description": "Loss of confidentiality is likely to have a serious adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + }, + { + "key": "H", + "name": "High", + "description": "Loss of confidentiality is likely to have a catastrophic adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + } + ] }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:VC:3.0.0": { + "namespace": "cvss", + "key": "VC", + "version": "3.0.0", + "name": "Confidentiality Impact to the Vulnerable System", + "description": "This metric measures the impact to the confidentiality of the information managed by the system due to a successfully exploited vulnerability. Confidentiality refers to limiting information access and disclosure to only authorized users, as well as preventing access by, or disclosure to, unauthorized ones.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "None", + "description": "There is no loss of confidentiality within the impacted component." + }, + { + "key": "L", + "name": "Low", + "description": "There is some loss of confidentiality. Access to some restricted information is obtained, but the attacker does not have control over what information is obtained, or the amount or kind of loss is constrained. The information disclosure does not cause a direct, serious loss to the impacted component." + }, + { + "key": "H", + "name": "High", + "description": "There is total loss of confidentiality, resulting in all resources within the impacted component being divulged to the attacker. Alternatively, access to only some restricted information is obtained, but the disclosed information presents a direct, serious impact. For example, an attacker steals the administrator's password, or private encryption keys of a web server." + } + ] }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:IR_NoX:1.1.1": { + "namespace": "cvss", + "key": "IR_NoX", + "version": "1.1.1", + "name": "Integrity Requirement (without Not Defined)", + "description": "This metric enables the consumer to customize the assessment depending on the importance of the affected IT asset to the analyst’s organization, measured in terms of Confidentiality. This version does not include the Not Defined (X) option.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Low", + "description": "Loss of integrity is likely to have only a limited adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + }, + { + "key": "M", + "name": "Medium", + "description": "Loss of integrity is likely to have a serious adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + }, + { + "key": "H", + "name": "High", + "description": "Loss of integrity is likely to have a catastrophic adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + } + ] }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:VI:3.0.0": { + "namespace": "cvss", + "key": "VI", + "version": "3.0.0", + "name": "Integrity Impact to the Vulnerable System", + "description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "None", + "description": "There is no loss of integrity within the Vulnerable System." + }, + { + "key": "L", + "name": "Low", + "description": "Modification of data is possible, but the attacker does not have control over the consequence of a modification, or the amount of modification is limited. The data modification does not have a direct, serious impact to the Vulnerable System." + }, + { + "key": "H", + "name": "High", + "description": "There is a total loss of integrity, or a complete loss of protection." + } + ] }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:AR_NoX:1.1.1": { + "namespace": "cvss", + "key": "AR_NoX", + "version": "1.1.1", + "name": "Availability Requirement (without Not Defined)", + "description": "This metric enables the consumer to customize the assessment depending on the importance of the affected IT asset to the analyst’s organization, measured in terms of Availability. This version does not include the Not Defined (X) option.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Low", + "description": "Loss of availability is likely to have only a limited adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + }, + { + "key": "M", + "name": "Medium", + "description": "Loss of availability is likely to have a serious adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + }, + { + "key": "H", + "name": "High", + "description": "Loss of availability is likely to have a catastrophic adverse effect on the organization or individuals associated with the organization (e.g., employees, customers)." + } + ] + }, + "cvss:VA:3.0.0": { + "namespace": "cvss", + "key": "VA", + "version": "3.0.0", + "name": "Availability Impact to the Vulnerable System", + "description": "This metric measures the impact to the availability of the impacted system resulting from a successfully exploited vulnerability.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "None", + "description": "There is no impact to availability within the Vulnerable System." + }, + { + "key": "L", + "name": "Low", + "description": "There is reduced performance or interruptions in resource availability. Even if repeated exploitation of the vulnerability is possible, the attacker does not have the ability to completely deny service to legitimate users. The resources in the Vulnerable System are either partially available all of the time, or fully available only some of the time, but overall there is no direct, serious consequence to the Vulnerable System." + }, + { + "key": "H", + "name": "High", + "description": "There is total loss of availability, resulting in the attacker being able to fully deny access to resources in the impacted component; this loss is either sustained (while the attacker continues to deliver the attack) or persistent (the condition persists even after the attack has completed)." + } + ] }, + "cvss:EQ6:1.0.0": { + "namespace": "cvss", + "key": "EQ6", + "version": "1.0.0", + "name": "Equivalence Set 6", + "description": "VC/VI/VA+CR/CI/CA with 2 levels specified in Table 29", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Low", + "description": "1: not (CR:H and VC:H) and not (IR:H and VI:H) and not (AR:H and VA:H)" + }, + { + "key": "H", + "name": "High", + "description": "0: (CR:H and VC:H) or (IR:H and VI:H) or (AR:H and VA:H)" + } + ] + } + }, + "outcome": "cvss:EQ6:1.0.0", + "mapping": [ { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9036,15 +8615,6 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", @@ -9052,110 +8622,101 @@ "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, @@ -9163,7 +8724,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9172,7 +8733,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9181,32 +8742,23 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", @@ -9216,64 +8768,55 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -9282,7 +8825,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9291,7 +8834,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9300,7 +8843,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9309,7 +8852,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9318,7 +8861,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9327,7 +8870,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9336,7 +8879,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9345,7 +8888,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9354,7 +8897,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9363,7 +8906,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9372,7 +8915,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9381,7 +8924,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9390,7 +8933,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9399,7 +8942,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9408,7 +8951,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9417,7 +8960,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9426,7 +8969,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9435,7 +8978,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9444,7 +8987,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9453,7 +8996,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9462,7 +9005,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9471,7 +9014,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9480,7 +9023,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9489,7 +9032,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9498,7 +9041,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9507,7 +9050,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9516,7 +9059,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9525,7 +9068,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9534,7 +9077,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9543,7 +9086,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -9552,7 +9095,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9561,7 +9104,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9570,7 +9113,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9579,7 +9122,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9588,7 +9131,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9597,7 +9140,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9606,7 +9149,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9615,7 +9158,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9624,7 +9167,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9633,7 +9176,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9642,7 +9185,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9651,7 +9194,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9660,7 +9203,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9669,7 +9212,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -9678,41 +9221,59 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" @@ -9721,7 +9282,7 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9730,7 +9291,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9739,7 +9300,7 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9748,7 +9309,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9757,7 +9318,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9766,7 +9327,7 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9775,7 +9336,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9784,7 +9345,7 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9793,7 +9354,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9802,7 +9363,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9811,79 +9372,79 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" + "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9892,7 +9453,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9901,7 +9462,7 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9910,7 +9471,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9919,7 +9480,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9928,7 +9489,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9937,7 +9498,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9946,7 +9507,7 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9955,7 +9516,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9964,7 +9525,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9973,7 +9534,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9982,7 +9543,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -9991,71 +9552,35 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, @@ -10063,7 +9588,7 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -10072,7 +9597,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -10081,7 +9606,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -10090,7 +9615,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -10099,7 +9624,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -10108,7 +9633,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -10117,7 +9642,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -10126,7 +9651,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" @@ -10135,24 +9660,24 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", @@ -10161,7 +9686,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", @@ -10170,7 +9695,7 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", @@ -10179,7 +9704,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", @@ -10188,26 +9713,26 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" @@ -10215,7 +9740,7 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", @@ -10224,7 +9749,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", @@ -10233,7 +9758,7 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", @@ -10242,7 +9767,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", @@ -10251,24 +9776,24 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", @@ -10277,43 +9802,25 @@ }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", @@ -10322,7 +9829,7 @@ }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", @@ -10330,9 +9837,9 @@ "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", @@ -10340,7 +9847,7 @@ }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", @@ -10349,25 +9856,16 @@ }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", @@ -10375,7 +9873,7 @@ "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", @@ -10384,7 +9882,7 @@ "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", @@ -10394,15 +9892,6 @@ }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", @@ -10410,20 +9899,11 @@ "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" @@ -10432,8 +9912,8 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, @@ -10441,8 +9921,8 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, @@ -10450,27 +9930,36 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -10478,8 +9967,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -10487,8 +9976,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -10496,8 +9985,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -10505,8 +9994,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -10514,8 +10003,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -10523,17 +10012,17 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -10541,521 +10030,521 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -11063,8 +10552,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11072,8 +10561,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11081,8 +10570,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11090,8 +10579,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11099,8 +10588,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11108,8 +10597,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11117,8 +10606,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11126,8 +10615,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11135,8 +10624,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11144,8 +10633,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11153,8 +10642,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11162,8 +10651,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11171,8 +10660,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11180,8 +10669,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11189,8 +10678,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11198,8 +10687,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11207,8 +10696,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -11216,15 +10705,6 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" @@ -11232,161 +10712,143 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", + "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", + "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" @@ -11394,154 +10856,100 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11549,8 +10957,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11558,8 +10966,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11567,8 +10975,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11576,8 +10984,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11585,8 +10993,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11594,8 +11002,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11603,8 +11011,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11612,8 +11020,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11621,8 +11029,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11630,8 +11038,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11639,8 +11047,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11648,8 +11056,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11657,8 +11065,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11666,8 +11074,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { @@ -11675,538 +11083,538 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, @@ -12215,8 +11623,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -12224,8 +11632,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12233,8 +11641,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12242,8 +11650,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -12251,8 +11659,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12260,8 +11668,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12269,8 +11677,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12278,8 +11686,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12287,8 +11695,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12296,8 +11704,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12305,8 +11713,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12314,8 +11722,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12323,8 +11731,8 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12332,8 +11740,8 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -12341,8 +11749,8 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -12350,52 +11758,16 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, @@ -12403,8 +11775,8 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, @@ -12412,8 +11784,8 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, @@ -12421,43 +11793,34 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" @@ -12465,24 +11828,15 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", @@ -12491,7 +11845,7 @@ }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", @@ -12499,9 +11853,9 @@ "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", @@ -12509,7 +11863,7 @@ }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", @@ -12518,7 +11872,7 @@ }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", @@ -12527,7 +11881,7 @@ }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", @@ -12536,7 +11890,7 @@ }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", @@ -12544,9 +11898,9 @@ "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", @@ -12554,7 +11908,7 @@ }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", @@ -12563,44 +11917,26 @@ }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", @@ -12609,7 +11945,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", @@ -12618,7 +11954,7 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", @@ -12627,7 +11963,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", @@ -12636,26 +11972,26 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" @@ -12663,7 +11999,7 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", @@ -12672,7 +12008,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", @@ -12681,7 +12017,7 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", @@ -12690,7 +12026,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", @@ -12699,24 +12035,24 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", @@ -12725,7 +12061,7 @@ }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", @@ -12733,7 +12069,7 @@ "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", @@ -12742,35 +12078,35 @@ "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", @@ -12779,7 +12115,7 @@ }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", @@ -12787,18 +12123,18 @@ "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", @@ -12807,7 +12143,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", @@ -12816,7 +12152,7 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", @@ -12825,7 +12161,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", @@ -12834,26 +12170,26 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" @@ -12861,7 +12197,7 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", @@ -12870,7 +12206,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", @@ -12879,7 +12215,7 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", @@ -12888,34 +12224,34 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", @@ -12924,7 +12260,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", @@ -12933,7 +12269,7 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", @@ -12942,7 +12278,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", @@ -12951,26 +12287,26 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" @@ -12978,7 +12314,7 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", @@ -12987,7 +12323,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", @@ -12996,7 +12332,7 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", @@ -13005,7 +12341,7 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", @@ -13014,24 +12350,24 @@ { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", @@ -13040,43 +12376,25 @@ }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "L" - }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", @@ -13085,7 +12403,7 @@ }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", @@ -13093,9 +12411,9 @@ "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "H", @@ -13103,7 +12421,7 @@ }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", @@ -13112,25 +12430,16 @@ }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", @@ -13138,7 +12447,7 @@ "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", @@ -13147,7 +12456,7 @@ "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", @@ -13157,15 +12466,6 @@ }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", @@ -13175,24 +12475,6 @@ }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", @@ -13200,39 +12482,12 @@ "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, @@ -13241,7 +12496,7 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, @@ -13250,7 +12505,7 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, @@ -13259,7 +12514,7 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, @@ -13268,7 +12523,7 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, @@ -13277,7 +12532,7 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, @@ -13286,7 +12541,7 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, @@ -13295,7 +12550,7 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, @@ -13304,7 +12559,7 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, @@ -13313,7 +12568,7 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, @@ -13322,7 +12577,7 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, @@ -13331,7 +12586,7 @@ "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, @@ -13340,7 +12595,7 @@ "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, @@ -13349,162 +12604,36 @@ "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" - }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "L" + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", @@ -13512,7 +12641,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -13521,7 +12650,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -13530,7 +12659,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -13539,7 +12668,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -13548,7 +12677,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -13557,7 +12686,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -13566,7 +12695,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -13575,7 +12704,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -13584,7 +12713,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -13593,7 +12722,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -13602,7 +12731,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "L" }, { @@ -13611,7 +12740,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -13620,7 +12749,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -13629,7 +12758,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13638,7 +12767,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13647,7 +12776,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13656,7 +12785,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13665,7 +12794,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13674,7 +12803,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13683,7 +12812,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13692,7 +12821,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13701,7 +12830,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13710,7 +12839,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13719,7 +12848,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13728,7 +12857,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13737,7 +12866,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13746,7 +12875,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13755,7 +12884,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13764,7 +12893,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13773,7 +12902,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13782,7 +12911,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13791,7 +12920,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13800,7 +12929,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13809,7 +12938,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13818,7 +12947,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13827,7 +12956,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13836,7 +12965,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "L" }, { @@ -13845,7 +12974,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13854,7 +12983,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13863,7 +12992,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { @@ -13872,8 +13001,8 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", @@ -13881,8 +13010,8 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", @@ -13890,8 +13019,8 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", @@ -13899,8 +13028,8 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", @@ -13908,8 +13037,8 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", @@ -13917,8 +13046,8 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", @@ -13926,8 +13055,8 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", @@ -13935,8 +13064,8 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", @@ -13944,8 +13073,8 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", @@ -13953,8 +13082,8 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", @@ -13962,8 +13091,8 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", @@ -13971,8 +13100,8 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", @@ -13980,8 +13109,8 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", @@ -13989,8 +13118,8 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", @@ -13998,8 +13127,8 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", @@ -14007,8 +13136,8 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", @@ -14016,8 +13145,8 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", @@ -14025,210 +13154,138 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", @@ -14236,8 +13293,8 @@ "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", @@ -14247,7 +13304,7 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", @@ -14255,45 +13312,54 @@ }, { "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" @@ -14301,8 +13367,8 @@ { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "L" @@ -14310,108 +13376,99 @@ { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" - }, - { - "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "N", - "cvss:AR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:CR_NoX:1.1.1": "M", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "L", - "cvss:VC:3.0.0": "H", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, @@ -14419,7 +13476,7 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" @@ -14428,7 +13485,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "L", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" @@ -14437,7 +13494,7 @@ "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" @@ -14446,7 +13503,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" @@ -14455,7 +13512,7 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" @@ -14464,7 +13521,7 @@ "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" @@ -14473,63 +13530,90 @@ "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "N", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "H", - "cvss:VC:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, { - "cvss:CR_NoX:1.1.1": "H", + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", + "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "M", - "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", "cvss:EQ6:1.0.0": "H" }, { @@ -14538,7 +13622,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "L", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -14547,7 +13631,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -14556,7 +13640,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -14565,7 +13649,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -14574,7 +13658,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -14583,7 +13667,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -14592,7 +13676,7 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -14601,8 +13685,8 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", @@ -14610,8 +13694,8 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", @@ -14619,7 +13703,7 @@ "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -14628,8 +13712,8 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", @@ -14637,8 +13721,8 @@ "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", @@ -14646,7 +13730,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -14655,7 +13739,7 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { @@ -14664,462 +13748,1776 @@ "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:VA:3.0.0": "N", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "M", - "cvss:VA:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "L", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "M", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", "cvss:IR_NoX:1.1.1": "H", - "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", - "cvss:EQ6:1.0.0": "H" + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", - "cvss:IR_NoX:1.1.1": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:AR_NoX:1.1.1": "H", - "cvss:VA:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", "cvss:EQ6:1.0.0": "H" - } - ] - } - } - } - }, - "DT_CVSS4_EQ3": { - "key": "DT_CVSS4_EQ3", - "versions": { - "1.0.0": { - "version": "1.0.0", - "obj": { - "namespace": "cvss", - "key": "DT_CVSS4_EQ3", - "version": "1.0.0", - "name": "CVSS v4 Equivalence Set 3", - "description": "This decision table models equivalence set 3 from CVSS v4.", - "schemaVersion": "2.0.0", - "decision_points": { - "cvss:VC:3.0.0": { - "namespace": "cvss", - "key": "VC", - "version": "3.0.0", - "name": "Confidentiality Impact to the Vulnerable System", - "description": "This metric measures the impact to the confidentiality of the information managed by the system due to a successfully exploited vulnerability. Confidentiality refers to limiting information access and disclosure to only authorized users, as well as preventing access by, or disclosure to, unauthorized ones.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "None", - "description": "There is no loss of confidentiality within the impacted component." - }, - { - "key": "L", - "name": "Low", - "description": "There is some loss of confidentiality. Access to some restricted information is obtained, but the attacker does not have control over what information is obtained, or the amount or kind of loss is constrained. The information disclosure does not cause a direct, serious loss to the impacted component." - }, - { - "key": "H", - "name": "High", - "description": "There is total loss of confidentiality, resulting in all resources within the impacted component being divulged to the attacker. Alternatively, access to only some restricted information is obtained, but the disclosed information presents a direct, serious impact. For example, an attacker steals the administrator's password, or private encryption keys of a web server." - } - ] - }, - "cvss:VI:3.0.0": { - "namespace": "cvss", - "key": "VI", - "version": "3.0.0", - "name": "Integrity Impact to the Vulnerable System", - "description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "None", - "description": "There is no loss of integrity within the Vulnerable System." - }, - { - "key": "L", - "name": "Low", - "description": "Modification of data is possible, but the attacker does not have control over the consequence of a modification, or the amount of modification is limited. The data modification does not have a direct, serious impact to the Vulnerable System." - }, - { - "key": "H", - "name": "High", - "description": "There is a total loss of integrity, or a complete loss of protection." - } - ] - }, - "cvss:VA:3.0.0": { - "namespace": "cvss", - "key": "VA", - "version": "3.0.0", - "name": "Availability Impact to the Vulnerable System", - "description": "This metric measures the impact to the availability of the impacted system resulting from a successfully exploited vulnerability.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "None", - "description": "There is no impact to availability within the Vulnerable System." - }, - { - "key": "L", - "name": "Low", - "description": "There is reduced performance or interruptions in resource availability. Even if repeated exploitation of the vulnerability is possible, the attacker does not have the ability to completely deny service to legitimate users. The resources in the Vulnerable System are either partially available all of the time, or fully available only some of the time, but overall there is no direct, serious consequence to the Vulnerable System." - }, - { - "key": "H", - "name": "High", - "description": "There is total loss of availability, resulting in the attacker being able to fully deny access to resources in the impacted component; this loss is either sustained (while the attacker continues to deliver the attack) or persistent (the condition persists even after the attack has completed)." - } - ] - }, - "cvss:EQ3:1.0.0": { - "namespace": "cvss", - "key": "EQ3", - "version": "1.0.0", - "name": "Equivalence Set 3", - "description": "VC/VI/VA with 3 levels specified in Table 26", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "L", - "name": "Low", - "description": "2: not (VC:H or VI:H or VA:H)" - }, - { - "key": "M", - "name": "Medium", - "description": "1: not (VC:H and VI:H) and (VC:H or VI:H or VA:H)" - }, - { - "key": "H", - "name": "High", - "description": "0: VC:H and VI:H" - } - ] - } - }, - "outcome": "cvss:EQ3:1.0.0", - "mapping": [ - { - "cvss:VC:3.0.0": "N", - "cvss:VI:3.0.0": "N", - "cvss:VA:3.0.0": "N", - "cvss:EQ3:1.0.0": "L" }, { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:VI:3.0.0": "N", - "cvss:VA:3.0.0": "N", - "cvss:EQ3:1.0.0": "L" + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:VC:3.0.0": "N", - "cvss:VI:3.0.0": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ3:1.0.0": "L" + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:VI:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", "cvss:VA:3.0.0": "L", - "cvss:EQ3:1.0.0": "L" - }, - { - "cvss:VC:3.0.0": "H", - "cvss:VI:3.0.0": "N", - "cvss:VA:3.0.0": "N", - "cvss:EQ3:1.0.0": "M" + "cvss:EQ6:1.0.0": "H" }, { + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:VI:3.0.0": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ3:1.0.0": "L" + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" }, { - "cvss:VC:3.0.0": "N", + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ3:1.0.0": "M" + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" }, { - "cvss:VC:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", - "cvss:EQ3:1.0.0": "L" + "cvss:EQ6:1.0.0": "H" }, { - "cvss:VC:3.0.0": "N", - "cvss:VI:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", - "cvss:EQ3:1.0.0": "L" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:VC:3.0.0": "N", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", - "cvss:VA:3.0.0": "H", - "cvss:EQ3:1.0.0": "M" + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "L", - "cvss:VA:3.0.0": "N", - "cvss:EQ3:1.0.0": "M" + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" }, { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", - "cvss:VI:3.0.0": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ3:1.0.0": "M" - }, - { - "cvss:VC:3.0.0": "H", - "cvss:VI:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", - "cvss:EQ3:1.0.0": "M" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:VC:3.0.0": "L", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", - "cvss:EQ3:1.0.0": "L" + "cvss:EQ6:1.0.0": "L" }, { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "N", - "cvss:VI:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", - "cvss:EQ3:1.0.0": "M" + "cvss:EQ6:1.0.0": "L" }, { + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", - "cvss:VI:3.0.0": "N", - "cvss:VA:3.0.0": "H", - "cvss:EQ3:1.0.0": "M" - }, - { - "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", - "cvss:VA:3.0.0": "H", - "cvss:EQ3:1.0.0": "M" - }, - { - "cvss:VC:3.0.0": "H", - "cvss:VI:3.0.0": "H", - "cvss:VA:3.0.0": "N", - "cvss:EQ3:1.0.0": "H" + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" }, { + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", - "cvss:EQ3:1.0.0": "M" + "cvss:EQ6:1.0.0": "L" }, { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", "cvss:VA:3.0.0": "L", - "cvss:EQ3:1.0.0": "M" + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" }, { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ3:1.0.0": "M" + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" }, { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ3:1.0.0": "M" + "cvss:EQ6:1.0.0": "L" }, { - "cvss:VC:3.0.0": "N", - "cvss:VI:3.0.0": "H", + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ3:1.0.0": "M" + "cvss:EQ6:1.0.0": "L" }, { + "cvss:CR_NoX:1.1.1": "H", "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", "cvss:VI:3.0.0": "H", - "cvss:VA:3.0.0": "L", - "cvss:EQ3:1.0.0": "H" + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "H", - "cvss:VI:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ3:1.0.0": "M" + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" }, { + "cvss:CR_NoX:1.1.1": "M", "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ3:1.0.0": "M" + "cvss:EQ6:1.0.0": "H" }, { + "cvss:CR_NoX:1.1.1": "L", "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", "cvss:VA:3.0.0": "H", - "cvss:EQ3:1.0.0": "H" - } - ] - } - } - } - }, - "DT_CVSS4_EQ2": { - "key": "DT_CVSS4_EQ2", - "versions": { - "1.0.0": { - "version": "1.0.0", - "obj": { - "namespace": "cvss", - "key": "DT_CVSS4_EQ2", - "version": "1.0.0", - "name": "CVSS v4 Equivalence Set 2", - "description": "This decision table models equivalence set 2 from CVSS v4. Factors include Attack Complexity (AC) and Attack Requirements (AT).", - "schemaVersion": "2.0.0", - "decision_points": { - "cvss:AC:3.0.1": { - "namespace": "cvss", - "key": "AC", - "version": "3.0.1", - "name": "Attack Complexity", - "description": "This metric captures measurable actions that must be taken by the attacker to actively evade or circumvent existing built-in security-enhancing conditions in order to obtain a working exploit. ", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "H", - "name": "High", - "description": "The successful attack depends on the evasion or circumvention of security-enhancing techniques in place that would otherwise hinder the attack. These include: Evasion of exploit mitigation techniques. The attacker must have additional methods available to bypass security measures in place." - }, - { - "key": "L", - "name": "Low", - "description": "The attacker must take no measurable action to exploit the vulnerability. The attack requires no target-specific circumvention to exploit the vulnerability. An attacker can expect repeatable success against the vulnerable system. " - } - ] + "cvss:EQ6:1.0.0": "H" }, - "cvss:AT:1.0.0": { - "namespace": "cvss", - "key": "AT", - "version": "1.0.0", - "name": "Attack Requirements", - "description": "This metric captures the prerequisite deployment and execution conditions or variables of the vulnerable system that enable the attack.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "P", - "name": "Present", - "description": "The successful attack depends on the presence of specific deployment and execution conditions of the vulnerable system that enable the attack." - }, - { - "key": "N", - "name": "None", - "description": "The successful attack does not depend on the deployment and execution conditions of the vulnerable system. The attacker can expect to be able to reach the vulnerability and execute the exploit under all or most instances of the vulnerability." - } - ] + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" }, - "cvss:EQ2:1.0.0": { - "namespace": "cvss", - "key": "EQ2", - "version": "1.0.0", - "name": "Equivalence Set 2", - "description": "AC/AT with 2 levels specified in Table 25", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "L", - "name": "Low", - "description": "1: not (AC:L and AT:N)" - }, - { - "key": "H", - "name": "High", - "description": "0: AC:L and AT:N" - } - ] - } - }, - "outcome": "cvss:EQ2:1.0.0", - "mapping": [ { - "cvss:AC:3.0.1": "H", - "cvss:AT:1.0.0": "P", - "cvss:EQ2:1.0.0": "L" + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:AC:3.0.1": "L", - "cvss:AT:1.0.0": "P", - "cvss:EQ2:1.0.0": "L" + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" }, { - "cvss:AC:3.0.1": "H", - "cvss:AT:1.0.0": "N", - "cvss:EQ2:1.0.0": "L" + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" }, { - "cvss:AC:3.0.1": "L", - "cvss:AT:1.0.0": "N", - "cvss:EQ2:1.0.0": "H" - } - ] - } - } - } - }, - "DT_CVSS_QSR": { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "L" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "N", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "L", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "N", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "L", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "M", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "L", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "M", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "L", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "M", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + }, + { + "cvss:CR_NoX:1.1.1": "H", + "cvss:VC:3.0.0": "H", + "cvss:IR_NoX:1.1.1": "H", + "cvss:VI:3.0.0": "H", + "cvss:AR_NoX:1.1.1": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ6:1.0.0": "H" + } + ] + } + } + } + }, + "DT_CVSS4_EQ3": { + "key": "DT_CVSS4_EQ3", + "versions": { + "1.0.0": { + "version": "1.0.0", + "obj": { + "namespace": "cvss", + "key": "DT_CVSS4_EQ3", + "version": "1.0.0", + "name": "CVSS v4 Equivalence Set 3", + "description": "This decision table models equivalence set 3 from CVSS v4.", + "schemaVersion": "2.0.0", + "decision_points": { + "cvss:VC:3.0.0": { + "namespace": "cvss", + "key": "VC", + "version": "3.0.0", + "name": "Confidentiality Impact to the Vulnerable System", + "description": "This metric measures the impact to the confidentiality of the information managed by the system due to a successfully exploited vulnerability. Confidentiality refers to limiting information access and disclosure to only authorized users, as well as preventing access by, or disclosure to, unauthorized ones.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "None", + "description": "There is no loss of confidentiality within the impacted component." + }, + { + "key": "L", + "name": "Low", + "description": "There is some loss of confidentiality. Access to some restricted information is obtained, but the attacker does not have control over what information is obtained, or the amount or kind of loss is constrained. The information disclosure does not cause a direct, serious loss to the impacted component." + }, + { + "key": "H", + "name": "High", + "description": "There is total loss of confidentiality, resulting in all resources within the impacted component being divulged to the attacker. Alternatively, access to only some restricted information is obtained, but the disclosed information presents a direct, serious impact. For example, an attacker steals the administrator's password, or private encryption keys of a web server." + } + ] + }, + "cvss:VI:3.0.0": { + "namespace": "cvss", + "key": "VI", + "version": "3.0.0", + "name": "Integrity Impact to the Vulnerable System", + "description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "None", + "description": "There is no loss of integrity within the Vulnerable System." + }, + { + "key": "L", + "name": "Low", + "description": "Modification of data is possible, but the attacker does not have control over the consequence of a modification, or the amount of modification is limited. The data modification does not have a direct, serious impact to the Vulnerable System." + }, + { + "key": "H", + "name": "High", + "description": "There is a total loss of integrity, or a complete loss of protection." + } + ] + }, + "cvss:VA:3.0.0": { + "namespace": "cvss", + "key": "VA", + "version": "3.0.0", + "name": "Availability Impact to the Vulnerable System", + "description": "This metric measures the impact to the availability of the impacted system resulting from a successfully exploited vulnerability.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "None", + "description": "There is no impact to availability within the Vulnerable System." + }, + { + "key": "L", + "name": "Low", + "description": "There is reduced performance or interruptions in resource availability. Even if repeated exploitation of the vulnerability is possible, the attacker does not have the ability to completely deny service to legitimate users. The resources in the Vulnerable System are either partially available all of the time, or fully available only some of the time, but overall there is no direct, serious consequence to the Vulnerable System." + }, + { + "key": "H", + "name": "High", + "description": "There is total loss of availability, resulting in the attacker being able to fully deny access to resources in the impacted component; this loss is either sustained (while the attacker continues to deliver the attack) or persistent (the condition persists even after the attack has completed)." + } + ] + }, + "cvss:EQ3:1.0.0": { + "namespace": "cvss", + "key": "EQ3", + "version": "1.0.0", + "name": "Equivalence Set 3", + "description": "VC/VI/VA with 3 levels specified in Table 26", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Low", + "description": "2: not (VC:H or VI:H or VA:H)" + }, + { + "key": "M", + "name": "Medium", + "description": "1: not (VC:H and VI:H) and (VC:H or VI:H or VA:H)" + }, + { + "key": "H", + "name": "High", + "description": "0: VC:H and VI:H" + } + ] + } + }, + "outcome": "cvss:EQ3:1.0.0", + "mapping": [ + { + "cvss:VC:3.0.0": "N", + "cvss:VI:3.0.0": "N", + "cvss:VA:3.0.0": "N", + "cvss:EQ3:1.0.0": "L" + }, + { + "cvss:VC:3.0.0": "L", + "cvss:VI:3.0.0": "N", + "cvss:VA:3.0.0": "N", + "cvss:EQ3:1.0.0": "L" + }, + { + "cvss:VC:3.0.0": "N", + "cvss:VI:3.0.0": "L", + "cvss:VA:3.0.0": "N", + "cvss:EQ3:1.0.0": "L" + }, + { + "cvss:VC:3.0.0": "N", + "cvss:VI:3.0.0": "N", + "cvss:VA:3.0.0": "L", + "cvss:EQ3:1.0.0": "L" + }, + { + "cvss:VC:3.0.0": "H", + "cvss:VI:3.0.0": "N", + "cvss:VA:3.0.0": "N", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "L", + "cvss:VI:3.0.0": "L", + "cvss:VA:3.0.0": "N", + "cvss:EQ3:1.0.0": "L" + }, + { + "cvss:VC:3.0.0": "N", + "cvss:VI:3.0.0": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "L", + "cvss:VI:3.0.0": "N", + "cvss:VA:3.0.0": "L", + "cvss:EQ3:1.0.0": "L" + }, + { + "cvss:VC:3.0.0": "N", + "cvss:VI:3.0.0": "L", + "cvss:VA:3.0.0": "L", + "cvss:EQ3:1.0.0": "L" + }, + { + "cvss:VC:3.0.0": "N", + "cvss:VI:3.0.0": "N", + "cvss:VA:3.0.0": "H", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "H", + "cvss:VI:3.0.0": "L", + "cvss:VA:3.0.0": "N", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "L", + "cvss:VI:3.0.0": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "H", + "cvss:VI:3.0.0": "N", + "cvss:VA:3.0.0": "L", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "L", + "cvss:VI:3.0.0": "L", + "cvss:VA:3.0.0": "L", + "cvss:EQ3:1.0.0": "L" + }, + { + "cvss:VC:3.0.0": "N", + "cvss:VI:3.0.0": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "L", + "cvss:VI:3.0.0": "N", + "cvss:VA:3.0.0": "H", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "N", + "cvss:VI:3.0.0": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "H", + "cvss:VI:3.0.0": "H", + "cvss:VA:3.0.0": "N", + "cvss:EQ3:1.0.0": "H" + }, + { + "cvss:VC:3.0.0": "H", + "cvss:VI:3.0.0": "L", + "cvss:VA:3.0.0": "L", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "L", + "cvss:VI:3.0.0": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "H", + "cvss:VI:3.0.0": "N", + "cvss:VA:3.0.0": "H", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "L", + "cvss:VI:3.0.0": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "N", + "cvss:VI:3.0.0": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "H", + "cvss:VI:3.0.0": "H", + "cvss:VA:3.0.0": "L", + "cvss:EQ3:1.0.0": "H" + }, + { + "cvss:VC:3.0.0": "H", + "cvss:VI:3.0.0": "L", + "cvss:VA:3.0.0": "H", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "L", + "cvss:VI:3.0.0": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ3:1.0.0": "M" + }, + { + "cvss:VC:3.0.0": "H", + "cvss:VI:3.0.0": "H", + "cvss:VA:3.0.0": "H", + "cvss:EQ3:1.0.0": "H" + } + ] + } + } + } + }, + "DT_CVSS4_EQ2": { + "key": "DT_CVSS4_EQ2", + "versions": { + "1.0.0": { + "version": "1.0.0", + "obj": { + "namespace": "cvss", + "key": "DT_CVSS4_EQ2", + "version": "1.0.0", + "name": "CVSS v4 Equivalence Set 2", + "description": "This decision table models equivalence set 2 from CVSS v4. Factors include Attack Complexity (AC) and Attack Requirements (AT).", + "schemaVersion": "2.0.0", + "decision_points": { + "cvss:AC:3.0.1": { + "namespace": "cvss", + "key": "AC", + "version": "3.0.1", + "name": "Attack Complexity", + "description": "This metric captures measurable actions that must be taken by the attacker to actively evade or circumvent existing built-in security-enhancing conditions in order to obtain a working exploit. ", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "H", + "name": "High", + "description": "The successful attack depends on the evasion or circumvention of security-enhancing techniques in place that would otherwise hinder the attack. These include: Evasion of exploit mitigation techniques. The attacker must have additional methods available to bypass security measures in place." + }, + { + "key": "L", + "name": "Low", + "description": "The attacker must take no measurable action to exploit the vulnerability. The attack requires no target-specific circumvention to exploit the vulnerability. An attacker can expect repeatable success against the vulnerable system. " + } + ] + }, + "cvss:AT:1.0.0": { + "namespace": "cvss", + "key": "AT", + "version": "1.0.0", + "name": "Attack Requirements", + "description": "This metric captures the prerequisite deployment and execution conditions or variables of the vulnerable system that enable the attack.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "P", + "name": "Present", + "description": "The successful attack depends on the presence of specific deployment and execution conditions of the vulnerable system that enable the attack." + }, + { + "key": "N", + "name": "None", + "description": "The successful attack does not depend on the deployment and execution conditions of the vulnerable system. The attacker can expect to be able to reach the vulnerability and execute the exploit under all or most instances of the vulnerability." + } + ] + }, + "cvss:EQ2:1.0.0": { + "namespace": "cvss", + "key": "EQ2", + "version": "1.0.0", + "name": "Equivalence Set 2", + "description": "AC/AT with 2 levels specified in Table 25", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Low", + "description": "1: not (AC:L and AT:N)" + }, + { + "key": "H", + "name": "High", + "description": "0: AC:L and AT:N" + } + ] + } + }, + "outcome": "cvss:EQ2:1.0.0", + "mapping": [ + { + "cvss:AC:3.0.1": "H", + "cvss:AT:1.0.0": "P", + "cvss:EQ2:1.0.0": "L" + }, + { + "cvss:AC:3.0.1": "L", + "cvss:AT:1.0.0": "P", + "cvss:EQ2:1.0.0": "L" + }, + { + "cvss:AC:3.0.1": "H", + "cvss:AT:1.0.0": "N", + "cvss:EQ2:1.0.0": "L" + }, + { + "cvss:AC:3.0.1": "L", + "cvss:AT:1.0.0": "N", + "cvss:EQ2:1.0.0": "H" + } + ] + } + } + } + }, + "DT_CVSS_QSR": { "key": "DT_CVSS_QSR", "versions": { "4.0.0": { @@ -18070,110 +18468,11 @@ "cvss:EQ3:1.0.0": "H", "cvss:EQ4:1.0.0": "H", "cvss:EQ5:1.0.0": "M", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "M", - "cvss:EQ2:1.0.0": "H", - "cvss:EQ3:1.0.0": "H", - "cvss:EQ4:1.0.0": "H", - "cvss:EQ5:1.0.0": "M", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "H", - "cvss:EQ2:1.0.0": "H", - "cvss:EQ3:1.0.0": "H", - "cvss:EQ4:1.0.0": "L", - "cvss:EQ5:1.0.0": "H", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "H", - "cvss:EQ2:1.0.0": "H", - "cvss:EQ3:1.0.0": "M", - "cvss:EQ4:1.0.0": "M", - "cvss:EQ5:1.0.0": "H", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "H", - "cvss:EQ2:1.0.0": "L", - "cvss:EQ3:1.0.0": "H", - "cvss:EQ4:1.0.0": "M", - "cvss:EQ5:1.0.0": "H", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "M", - "cvss:EQ2:1.0.0": "H", - "cvss:EQ3:1.0.0": "H", - "cvss:EQ4:1.0.0": "M", - "cvss:EQ5:1.0.0": "H", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "H", - "cvss:EQ2:1.0.0": "H", - "cvss:EQ3:1.0.0": "L", - "cvss:EQ4:1.0.0": "H", - "cvss:EQ5:1.0.0": "H", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "H", - "cvss:EQ2:1.0.0": "L", - "cvss:EQ3:1.0.0": "M", - "cvss:EQ4:1.0.0": "H", - "cvss:EQ5:1.0.0": "H", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "M", - "cvss:EQ2:1.0.0": "H", - "cvss:EQ3:1.0.0": "M", - "cvss:EQ4:1.0.0": "H", - "cvss:EQ5:1.0.0": "H", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "M", - "cvss:EQ2:1.0.0": "L", - "cvss:EQ3:1.0.0": "H", - "cvss:EQ4:1.0.0": "H", - "cvss:EQ5:1.0.0": "H", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "L", - "cvss:EQ2:1.0.0": "H", - "cvss:EQ3:1.0.0": "H", - "cvss:EQ4:1.0.0": "H", - "cvss:EQ5:1.0.0": "H", - "cvss:EQ6:1.0.0": "H", - "cvss:CVSS:1.0.0": "C" - }, - { - "cvss:EQ1:1.0.0": "H", - "cvss:EQ2:1.0.0": "H", - "cvss:EQ3:1.0.0": "H", - "cvss:EQ4:1.0.0": "H", - "cvss:EQ5:1.0.0": "H", - "cvss:EQ6:1.0.0": "L", + "cvss:EQ6:1.0.0": "H", "cvss:CVSS:1.0.0": "C" }, { - "cvss:EQ1:1.0.0": "H", + "cvss:EQ1:1.0.0": "M", "cvss:EQ2:1.0.0": "H", "cvss:EQ3:1.0.0": "H", "cvss:EQ4:1.0.0": "H", @@ -18185,7 +18484,7 @@ "cvss:EQ1:1.0.0": "H", "cvss:EQ2:1.0.0": "H", "cvss:EQ3:1.0.0": "H", - "cvss:EQ4:1.0.0": "M", + "cvss:EQ4:1.0.0": "L", "cvss:EQ5:1.0.0": "H", "cvss:EQ6:1.0.0": "H", "cvss:CVSS:1.0.0": "C" @@ -18194,7 +18493,7 @@ "cvss:EQ1:1.0.0": "H", "cvss:EQ2:1.0.0": "H", "cvss:EQ3:1.0.0": "M", - "cvss:EQ4:1.0.0": "H", + "cvss:EQ4:1.0.0": "M", "cvss:EQ5:1.0.0": "H", "cvss:EQ6:1.0.0": "H", "cvss:CVSS:1.0.0": "C" @@ -18203,7 +18502,7 @@ "cvss:EQ1:1.0.0": "H", "cvss:EQ2:1.0.0": "L", "cvss:EQ3:1.0.0": "H", - "cvss:EQ4:1.0.0": "H", + "cvss:EQ4:1.0.0": "M", "cvss:EQ5:1.0.0": "H", "cvss:EQ6:1.0.0": "H", "cvss:CVSS:1.0.0": "C" @@ -18212,7 +18511,7 @@ "cvss:EQ1:1.0.0": "M", "cvss:EQ2:1.0.0": "H", "cvss:EQ3:1.0.0": "H", - "cvss:EQ4:1.0.0": "H", + "cvss:EQ4:1.0.0": "M", "cvss:EQ5:1.0.0": "H", "cvss:EQ6:1.0.0": "H", "cvss:CVSS:1.0.0": "C" @@ -18220,802 +18519,591 @@ { "cvss:EQ1:1.0.0": "H", "cvss:EQ2:1.0.0": "H", - "cvss:EQ3:1.0.0": "H", + "cvss:EQ3:1.0.0": "L", "cvss:EQ4:1.0.0": "H", "cvss:EQ5:1.0.0": "H", "cvss:EQ6:1.0.0": "H", "cvss:CVSS:1.0.0": "C" - } - ] - } - } - } - } - } - }, - "ssvc": { - "namespace": "ssvc", - "keys": { - "DT_COORD_PUBLISH": { - "key": "DT_COORD_PUBLISH", - "versions": { - "1.0.0": { - "version": "1.0.0", - "obj": { - "namespace": "ssvc", - "key": "DT_COORD_PUBLISH", - "version": "1.0.0", - "name": "Coordinator Publish Decision Table", - "description": "This decision table is used to determine the priority of a coordinator publish.", - "schemaVersion": "2.0.0", - "decision_points": { - "ssvc:SINV:1.0.0": { - "namespace": "ssvc", - "key": "SINV", - "version": "1.0.0", - "name": "Supplier Involvement", - "description": "What is the state of the supplier’s work on addressing the vulnerability?", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "FR", - "name": "Fix Ready", - "description": "The supplier has provided a patch or fix." - }, - { - "key": "C", - "name": "Cooperative", - "description": "The supplier is actively generating a patch or fix; they may or may not have provided a mitigation or work-around in the mean time." - }, - { - "key": "UU", - "name": "Uncooperative/Unresponsive", - "description": "The supplier has not responded, declined to generate a remediation, or no longer exists." - } - ] - }, - "ssvc:E:1.1.0": { - "namespace": "ssvc", - "key": "E", - "version": "1.1.0", - "name": "Exploitation", - "description": "The present state of exploitation of the vulnerability.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "None", - "description": "There is no evidence of active exploitation and no public proof of concept (PoC) of how to exploit the vulnerability." - }, - { - "key": "P", - "name": "Public PoC", - "description": "One of the following is true: (1) Typical public PoC exists in sources such as Metasploit or websites like ExploitDB; or (2) the vulnerability has a well-known method of exploitation." - }, - { - "key": "A", - "name": "Active", - "description": "Shared, observable, reliable evidence that the exploit is being used in the wild by real attackers; there is credible public reporting." - } - ] - }, - "ssvc:PVA:1.0.0": { - "namespace": "ssvc", - "key": "PVA", - "version": "1.0.0", - "name": "Public Value Added", - "description": "How much value would a publication from the coordinator benefit the broader community?", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "L", - "name": "Limited", - "description": "Minimal value added to the existing public information because existing information is already high quality and in multiple outlets." - }, - { - "key": "A", - "name": "Ampliative", - "description": "Amplifies and/or augments the existing public information about the vulnerability, for example, adds additional detail, addresses or corrects errors in other public information, draws further attention to the vulnerability, etc." - }, - { - "key": "P", - "name": "Precedence", - "description": "The publication would be the first publicly available, or be coincident with the first publicly available." - } - ] - }, - "ssvc:PUBLISH:1.0.0": { - "namespace": "ssvc", - "key": "PUBLISH", - "version": "1.0.0", - "name": "Publish, Do Not Publish", - "description": "The publish outcome group.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "Do Not Publish", - "description": "Do Not Publish" - }, - { - "key": "P", - "name": "Publish", - "description": "Publish" - } - ] - } - }, - "outcome": "ssvc:PUBLISH:1.0.0", - "mapping": [ - { - "ssvc:SINV:1.0.0": "FR", - "ssvc:E:1.1.0": "N", - "ssvc:PVA:1.0.0": "L", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "C", - "ssvc:E:1.1.0": "N", - "ssvc:PVA:1.0.0": "L", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "FR", - "ssvc:E:1.1.0": "P", - "ssvc:PVA:1.0.0": "L", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "FR", - "ssvc:E:1.1.0": "N", - "ssvc:PVA:1.0.0": "A", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "UU", - "ssvc:E:1.1.0": "N", - "ssvc:PVA:1.0.0": "L", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "C", - "ssvc:E:1.1.0": "P", - "ssvc:PVA:1.0.0": "L", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "FR", - "ssvc:E:1.1.0": "A", - "ssvc:PVA:1.0.0": "L", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "C", - "ssvc:E:1.1.0": "N", - "ssvc:PVA:1.0.0": "A", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "FR", - "ssvc:E:1.1.0": "P", - "ssvc:PVA:1.0.0": "A", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "FR", - "ssvc:E:1.1.0": "N", - "ssvc:PVA:1.0.0": "P", - "ssvc:PUBLISH:1.0.0": "P" - }, - { - "ssvc:SINV:1.0.0": "UU", - "ssvc:E:1.1.0": "P", - "ssvc:PVA:1.0.0": "L", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "C", - "ssvc:E:1.1.0": "A", - "ssvc:PVA:1.0.0": "L", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "UU", - "ssvc:E:1.1.0": "N", - "ssvc:PVA:1.0.0": "A", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "C", - "ssvc:E:1.1.0": "P", - "ssvc:PVA:1.0.0": "A", - "ssvc:PUBLISH:1.0.0": "N" - }, - { - "ssvc:SINV:1.0.0": "FR", - "ssvc:E:1.1.0": "A", - "ssvc:PVA:1.0.0": "A", - "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:SINV:1.0.0": "C", - "ssvc:E:1.1.0": "N", - "ssvc:PVA:1.0.0": "P", - "ssvc:PUBLISH:1.0.0": "P" - }, - { - "ssvc:SINV:1.0.0": "FR", - "ssvc:E:1.1.0": "P", - "ssvc:PVA:1.0.0": "P", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "H", + "cvss:EQ2:1.0.0": "L", + "cvss:EQ3:1.0.0": "M", + "cvss:EQ4:1.0.0": "H", + "cvss:EQ5:1.0.0": "H", + "cvss:EQ6:1.0.0": "H", + "cvss:CVSS:1.0.0": "C" }, { - "ssvc:SINV:1.0.0": "UU", - "ssvc:E:1.1.0": "A", - "ssvc:PVA:1.0.0": "L", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "M", + "cvss:EQ2:1.0.0": "H", + "cvss:EQ3:1.0.0": "M", + "cvss:EQ4:1.0.0": "H", + "cvss:EQ5:1.0.0": "H", + "cvss:EQ6:1.0.0": "H", + "cvss:CVSS:1.0.0": "C" }, { - "ssvc:SINV:1.0.0": "UU", - "ssvc:E:1.1.0": "P", - "ssvc:PVA:1.0.0": "A", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "M", + "cvss:EQ2:1.0.0": "L", + "cvss:EQ3:1.0.0": "H", + "cvss:EQ4:1.0.0": "H", + "cvss:EQ5:1.0.0": "H", + "cvss:EQ6:1.0.0": "H", + "cvss:CVSS:1.0.0": "C" }, { - "ssvc:SINV:1.0.0": "C", - "ssvc:E:1.1.0": "A", - "ssvc:PVA:1.0.0": "A", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "L", + "cvss:EQ2:1.0.0": "H", + "cvss:EQ3:1.0.0": "H", + "cvss:EQ4:1.0.0": "H", + "cvss:EQ5:1.0.0": "H", + "cvss:EQ6:1.0.0": "H", + "cvss:CVSS:1.0.0": "C" }, { - "ssvc:SINV:1.0.0": "UU", - "ssvc:E:1.1.0": "N", - "ssvc:PVA:1.0.0": "P", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "H", + "cvss:EQ2:1.0.0": "H", + "cvss:EQ3:1.0.0": "H", + "cvss:EQ4:1.0.0": "H", + "cvss:EQ5:1.0.0": "H", + "cvss:EQ6:1.0.0": "L", + "cvss:CVSS:1.0.0": "C" }, { - "ssvc:SINV:1.0.0": "C", - "ssvc:E:1.1.0": "P", - "ssvc:PVA:1.0.0": "P", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "H", + "cvss:EQ2:1.0.0": "H", + "cvss:EQ3:1.0.0": "H", + "cvss:EQ4:1.0.0": "H", + "cvss:EQ5:1.0.0": "M", + "cvss:EQ6:1.0.0": "H", + "cvss:CVSS:1.0.0": "C" }, { - "ssvc:SINV:1.0.0": "FR", - "ssvc:E:1.1.0": "A", - "ssvc:PVA:1.0.0": "P", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "H", + "cvss:EQ2:1.0.0": "H", + "cvss:EQ3:1.0.0": "H", + "cvss:EQ4:1.0.0": "M", + "cvss:EQ5:1.0.0": "H", + "cvss:EQ6:1.0.0": "H", + "cvss:CVSS:1.0.0": "C" }, { - "ssvc:SINV:1.0.0": "UU", - "ssvc:E:1.1.0": "A", - "ssvc:PVA:1.0.0": "A", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "H", + "cvss:EQ2:1.0.0": "H", + "cvss:EQ3:1.0.0": "M", + "cvss:EQ4:1.0.0": "H", + "cvss:EQ5:1.0.0": "H", + "cvss:EQ6:1.0.0": "H", + "cvss:CVSS:1.0.0": "C" }, { - "ssvc:SINV:1.0.0": "UU", - "ssvc:E:1.1.0": "P", - "ssvc:PVA:1.0.0": "P", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "H", + "cvss:EQ2:1.0.0": "L", + "cvss:EQ3:1.0.0": "H", + "cvss:EQ4:1.0.0": "H", + "cvss:EQ5:1.0.0": "H", + "cvss:EQ6:1.0.0": "H", + "cvss:CVSS:1.0.0": "C" }, { - "ssvc:SINV:1.0.0": "C", - "ssvc:E:1.1.0": "A", - "ssvc:PVA:1.0.0": "P", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "M", + "cvss:EQ2:1.0.0": "H", + "cvss:EQ3:1.0.0": "H", + "cvss:EQ4:1.0.0": "H", + "cvss:EQ5:1.0.0": "H", + "cvss:EQ6:1.0.0": "H", + "cvss:CVSS:1.0.0": "C" }, { - "ssvc:SINV:1.0.0": "UU", - "ssvc:E:1.1.0": "A", - "ssvc:PVA:1.0.0": "P", - "ssvc:PUBLISH:1.0.0": "P" + "cvss:EQ1:1.0.0": "H", + "cvss:EQ2:1.0.0": "H", + "cvss:EQ3:1.0.0": "H", + "cvss:EQ4:1.0.0": "H", + "cvss:EQ5:1.0.0": "H", + "cvss:EQ6:1.0.0": "H", + "cvss:CVSS:1.0.0": "C" } ] } } } - }, - "DT_COORD_TRIAGE": { - "key": "DT_COORD_TRIAGE", + } + } + }, + "ssvc": { + "namespace": "ssvc", + "keys": { + "DT_COORD_PUBLISH": { + "key": "DT_COORD_PUBLISH", "versions": { "1.0.0": { "version": "1.0.0", "obj": { "namespace": "ssvc", - "key": "DT_COORD_TRIAGE", + "key": "DT_COORD_PUBLISH", "version": "1.0.0", - "name": "Coordinator Triage", - "description": "Decision table for coordinator triage", + "name": "Coordinator Publish Decision Table", + "description": "This decision table is used to determine the priority of a coordinator publish.", "schemaVersion": "2.0.0", "decision_points": { - "ssvc:RP:1.0.0": { + "ssvc:SINV:1.0.0": { "namespace": "ssvc", - "key": "RP", + "key": "SINV", "version": "1.0.0", - "name": "Report Public", - "description": "Is a viable report of the details of the vulnerability already publicly available?", + "name": "Supplier Involvement", + "description": "What is the state of the supplier’s work on addressing the vulnerability?", "schemaVersion": "2.0.0", "values": [ { - "key": "Y", - "name": "Yes", - "description": "A public report of the vulnerability exists." + "key": "FR", + "name": "Fix Ready", + "description": "The supplier has provided a patch or fix." }, { - "key": "N", - "name": "No", - "description": "No public report of the vulnerability exists." - } - ] - }, - "ssvc:SCON:1.0.0": { - "namespace": "ssvc", - "key": "SCON", - "version": "1.0.0", - "name": "Supplier Contacted", - "description": "Has the reporter made a good-faith effort to contact the supplier of the vulnerable component using a quality contact method?", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "No", - "description": "The supplier has not been contacted." + "key": "C", + "name": "Cooperative", + "description": "The supplier is actively generating a patch or fix; they may or may not have provided a mitigation or work-around in the mean time." }, { - "key": "Y", - "name": "Yes", - "description": "The supplier has been contacted." + "key": "UU", + "name": "Uncooperative/Unresponsive", + "description": "The supplier has not responded, declined to generate a remediation, or no longer exists." } ] }, - "ssvc:RC:1.0.0": { + "ssvc:E:1.1.0": { "namespace": "ssvc", - "key": "RC", - "version": "1.0.0", - "name": "Report Credibility", - "description": "Is the report credible?", + "key": "E", + "version": "1.1.0", + "name": "Exploitation", + "description": "The present state of exploitation of the vulnerability.", "schemaVersion": "2.0.0", "values": [ { - "key": "NC", - "name": "Not Credible", - "description": "The report is not credible." + "key": "N", + "name": "None", + "description": "There is no evidence of active exploitation and no public proof of concept (PoC) of how to exploit the vulnerability." }, { - "key": "C", - "name": "Credible", - "description": "The report is credible." - } - ] - }, - "ssvc:SC:1.0.0": { - "namespace": "ssvc", - "key": "SC", - "version": "1.0.0", - "name": "Supplier Cardinality", - "description": "How many suppliers are responsible for the vulnerable component and its remediation or mitigation plan?", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "O", - "name": "One", - "description": "There is only one supplier of the vulnerable component." + "key": "P", + "name": "Public PoC", + "description": "One of the following is true: (1) Typical public PoC exists in sources such as Metasploit or websites like ExploitDB; or (2) the vulnerability has a well-known method of exploitation." }, - { - "key": "M", - "name": "Multiple", - "description": "There are multiple suppliers of the vulnerable component." - } - ] - }, - "ssvc:SE:1.0.0": { - "namespace": "ssvc", - "key": "SE", - "version": "1.0.0", - "name": "Supplier Engagement", - "description": "Is the supplier responding to the reporter’s contact effort and actively participating in the coordination effort?", - "schemaVersion": "2.0.0", - "values": [ { "key": "A", "name": "Active", - "description": "The supplier is responding to the reporter’s contact effort and actively participating in the coordination effort." - }, - { - "key": "U", - "name": "Unresponsive", - "description": "The supplier is not responding to the reporter’s contact effort and not actively participating in the coordination effort." + "description": "Shared, observable, reliable evidence that the exploit is being used in the wild by real attackers; there is credible public reporting." } ] }, - "ssvc:U:1.0.1": { + "ssvc:PVA:1.0.0": { "namespace": "ssvc", - "key": "U", - "version": "1.0.1", - "name": "Utility", - "description": "The Usefulness of the Exploit to the Adversary", + "key": "PVA", + "version": "1.0.0", + "name": "Public Value Added", + "description": "How much value would a publication from the coordinator benefit the broader community?", "schemaVersion": "2.0.0", "values": [ { "key": "L", - "name": "Laborious", - "description": "Automatable:No AND Value Density:Diffuse" - }, - { - "key": "E", - "name": "Efficient", - "description": "(Automatable:Yes AND Value Density:Diffuse) OR (Automatable:No AND Value Density:Concentrated)" + "name": "Limited", + "description": "Minimal value added to the existing public information because existing information is already high quality and in multiple outlets." }, { - "key": "S", - "name": "Super Effective", - "description": "Automatable:Yes AND Value Density:Concentrated" - } - ] - }, - "ssvc:PSI:2.0.1": { - "namespace": "ssvc", - "key": "PSI", - "version": "2.0.1", - "name": "Public Safety Impact", - "description": "A coarse-grained representation of impact to public safety.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "M", - "name": "Minimal", - "description": "Safety Impact:Negligible" + "key": "A", + "name": "Ampliative", + "description": "Amplifies and/or augments the existing public information about the vulnerability, for example, adds additional detail, addresses or corrects errors in other public information, draws further attention to the vulnerability, etc." }, - { - "key": "S", - "name": "Significant", - "description": "Safety Impact:(Marginal OR Critical OR Catastrophic)" + { + "key": "P", + "name": "Precedence", + "description": "The publication would be the first publicly available, or be coincident with the first publicly available." } ] }, - "ssvc:COORDINATE:1.0.1": { + "ssvc:PUBLISH:1.0.0": { "namespace": "ssvc", - "key": "COORDINATE", - "version": "1.0.1", - "name": "Decline, Track, Coordinate", - "description": "The coordinate outcome group.", + "key": "PUBLISH", + "version": "1.0.0", + "name": "Publish, Do Not Publish", + "description": "The publish outcome group.", "schemaVersion": "2.0.0", "values": [ { - "key": "D", - "name": "Decline", - "description": "Do not act on the report." - }, - { - "key": "T", - "name": "Track", - "description": "Receive information about the vulnerability and monitor for status changes but do not take any overt actions." + "key": "N", + "name": "Do Not Publish", + "description": "Do Not Publish" }, { - "key": "C", - "name": "Coordinate", - "description": "Take action on the report." + "key": "P", + "name": "Publish", + "description": "Publish" } ] } }, - "outcome": "ssvc:COORDINATE:1.0.1", + "outcome": "ssvc:PUBLISH:1.0.0", "mapping": [ { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "FR", + "ssvc:E:1.1.0": "N", + "ssvc:PVA:1.0.0": "L", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "C", + "ssvc:E:1.1.0": "N", + "ssvc:PVA:1.0.0": "L", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "FR", + "ssvc:E:1.1.0": "P", + "ssvc:PVA:1.0.0": "L", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "FR", + "ssvc:E:1.1.0": "N", + "ssvc:PVA:1.0.0": "A", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "UU", + "ssvc:E:1.1.0": "N", + "ssvc:PVA:1.0.0": "L", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "C", + "ssvc:E:1.1.0": "P", + "ssvc:PVA:1.0.0": "L", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "FR", + "ssvc:E:1.1.0": "A", + "ssvc:PVA:1.0.0": "L", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "C", + "ssvc:E:1.1.0": "N", + "ssvc:PVA:1.0.0": "A", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "FR", + "ssvc:E:1.1.0": "P", + "ssvc:PVA:1.0.0": "A", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "FR", + "ssvc:E:1.1.0": "N", + "ssvc:PVA:1.0.0": "P", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "UU", + "ssvc:E:1.1.0": "P", + "ssvc:PVA:1.0.0": "L", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "C", + "ssvc:E:1.1.0": "A", + "ssvc:PVA:1.0.0": "L", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "UU", + "ssvc:E:1.1.0": "N", + "ssvc:PVA:1.0.0": "A", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "C", + "ssvc:E:1.1.0": "P", + "ssvc:PVA:1.0.0": "A", + "ssvc:PUBLISH:1.0.0": "N" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "FR", + "ssvc:E:1.1.0": "A", + "ssvc:PVA:1.0.0": "A", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "C", + "ssvc:E:1.1.0": "N", + "ssvc:PVA:1.0.0": "P", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "FR", + "ssvc:E:1.1.0": "P", + "ssvc:PVA:1.0.0": "P", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "UU", + "ssvc:E:1.1.0": "A", + "ssvc:PVA:1.0.0": "L", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "UU", + "ssvc:E:1.1.0": "P", + "ssvc:PVA:1.0.0": "A", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "C", + "ssvc:E:1.1.0": "A", + "ssvc:PVA:1.0.0": "A", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "UU", + "ssvc:E:1.1.0": "N", + "ssvc:PVA:1.0.0": "P", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "C", + "ssvc:E:1.1.0": "P", + "ssvc:PVA:1.0.0": "P", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "FR", + "ssvc:E:1.1.0": "A", + "ssvc:PVA:1.0.0": "P", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "UU", + "ssvc:E:1.1.0": "A", + "ssvc:PVA:1.0.0": "A", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "UU", + "ssvc:E:1.1.0": "P", + "ssvc:PVA:1.0.0": "P", + "ssvc:PUBLISH:1.0.0": "P" }, { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:SINV:1.0.0": "C", + "ssvc:E:1.1.0": "A", + "ssvc:PVA:1.0.0": "P", + "ssvc:PUBLISH:1.0.0": "P" + }, + { + "ssvc:SINV:1.0.0": "UU", + "ssvc:E:1.1.0": "A", + "ssvc:PVA:1.0.0": "P", + "ssvc:PUBLISH:1.0.0": "P" + } + ] + } + } + } + }, + "DT_COORD_TRIAGE": { + "key": "DT_COORD_TRIAGE", + "versions": { + "1.0.0": { + "version": "1.0.0", + "obj": { + "namespace": "ssvc", + "key": "DT_COORD_TRIAGE", + "version": "1.0.0", + "name": "Coordinator Triage", + "description": "Decision table for coordinator triage", + "schemaVersion": "2.0.0", + "decision_points": { + "ssvc:RP:1.0.0": { + "namespace": "ssvc", + "key": "RP", + "version": "1.0.0", + "name": "Report Public", + "description": "Is a viable report of the details of the vulnerability already publicly available?", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "Y", + "name": "Yes", + "description": "A public report of the vulnerability exists." + }, + { + "key": "N", + "name": "No", + "description": "No public report of the vulnerability exists." + } + ] + }, + "ssvc:SCON:1.0.0": { + "namespace": "ssvc", + "key": "SCON", + "version": "1.0.0", + "name": "Supplier Contacted", + "description": "Has the reporter made a good-faith effort to contact the supplier of the vulnerable component using a quality contact method?", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "No", + "description": "The supplier has not been contacted." + }, + { + "key": "Y", + "name": "Yes", + "description": "The supplier has been contacted." + } + ] + }, + "ssvc:RC:1.0.0": { + "namespace": "ssvc", + "key": "RC", + "version": "1.0.0", + "name": "Report Credibility", + "description": "Is the report credible?", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "NC", + "name": "Not Credible", + "description": "The report is not credible." + }, + { + "key": "C", + "name": "Credible", + "description": "The report is credible." + } + ] + }, + "ssvc:SC:1.0.0": { + "namespace": "ssvc", + "key": "SC", + "version": "1.0.0", + "name": "Supplier Cardinality", + "description": "How many suppliers are responsible for the vulnerable component and its remediation or mitigation plan?", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "O", + "name": "One", + "description": "There is only one supplier of the vulnerable component." + }, + { + "key": "M", + "name": "Multiple", + "description": "There are multiple suppliers of the vulnerable component." + } + ] + }, + "ssvc:SE:1.0.0": { + "namespace": "ssvc", + "key": "SE", + "version": "1.0.0", + "name": "Supplier Engagement", + "description": "Is the supplier responding to the reporter’s contact effort and actively participating in the coordination effort?", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "A", + "name": "Active", + "description": "The supplier is responding to the reporter’s contact effort and actively participating in the coordination effort." + }, + { + "key": "U", + "name": "Unresponsive", + "description": "The supplier is not responding to the reporter’s contact effort and not actively participating in the coordination effort." + } + ] + }, + "ssvc:U:1.0.1": { + "namespace": "ssvc", + "key": "U", + "version": "1.0.1", + "name": "Utility", + "description": "The Usefulness of the Exploit to the Adversary", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Laborious", + "description": "Automatable:No AND Value Density:Diffuse" + }, + { + "key": "E", + "name": "Efficient", + "description": "(Automatable:Yes AND Value Density:Diffuse) OR (Automatable:No AND Value Density:Concentrated)" + }, + { + "key": "S", + "name": "Super Effective", + "description": "Automatable:Yes AND Value Density:Concentrated" + } + ] }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:PSI:2.0.1": { + "namespace": "ssvc", + "key": "PSI", + "version": "2.0.1", + "name": "Public Safety Impact", + "description": "A coarse-grained representation of impact to public safety.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "M", + "name": "Minimal", + "description": "Safety Impact:Negligible" + }, + { + "key": "S", + "name": "Significant", + "description": "Safety Impact:(Marginal OR Critical OR Catastrophic)" + } + ] }, + "ssvc:COORDINATE:1.0.1": { + "namespace": "ssvc", + "key": "COORDINATE", + "version": "1.0.1", + "name": "Decline, Track, Coordinate", + "description": "The coordinate outcome group.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "D", + "name": "Decline", + "description": "Do not act on the report." + }, + { + "key": "T", + "name": "Track", + "description": "Receive information about the vulnerability and monitor for status changes but do not take any overt actions." + }, + { + "key": "C", + "name": "Coordinate", + "description": "Take action on the report." + } + ] + } + }, + "outcome": "ssvc:COORDINATE:1.0.1", + "mapping": [ { "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" @@ -19023,170 +19111,50 @@ { "ssvc:RP:1.0.0": "N", "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", + "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", "ssvc:SCON:1.0.0": "Y", "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:RP:1.0.0": "N", + "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19194,49 +19162,9 @@ "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19244,10 +19172,10 @@ "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "M", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "L", + "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19257,7 +19185,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19267,7 +19195,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19277,7 +19205,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19287,7 +19215,7 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19297,7 +19225,7 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19307,7 +19235,7 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19317,7 +19245,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19327,7 +19255,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19337,7 +19265,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19347,7 +19275,7 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19357,7 +19285,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19367,7 +19295,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19377,7 +19305,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19387,7 +19315,7 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19397,7 +19325,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19407,57 +19335,67 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", + "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:RP:1.0.0": "N", + "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "L", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" + }, + { + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", + "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", + "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", + "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:RP:1.0.0": "N", + "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", + "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19466,7 +19404,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19476,7 +19414,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19486,7 +19424,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19496,7 +19434,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19506,7 +19444,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19516,7 +19454,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19526,7 +19464,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19536,7 +19474,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19546,7 +19484,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19556,7 +19494,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19566,7 +19504,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19576,7 +19514,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19586,7 +19524,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19596,7 +19534,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19606,7 +19544,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19616,7 +19554,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19626,7 +19564,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19636,7 +19574,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19646,7 +19584,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19656,108 +19594,58 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "T" - }, { "ssvc:RP:1.0.0": "N", "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:RP:1.0.0": "N", + "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "N", "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "D" - }, - { - "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -19766,9 +19654,9 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -19776,7 +19664,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19786,7 +19674,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19796,7 +19684,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19806,7 +19694,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19816,7 +19704,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19826,7 +19714,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19836,7 +19724,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19846,7 +19734,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19856,7 +19744,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19866,7 +19754,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19876,7 +19764,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19886,7 +19774,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19896,37 +19784,37 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" + }, + { + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", + "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "S", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "C" - }, { "ssvc:RP:1.0.0": "N", "ssvc:SCON:1.0.0": "Y", "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19936,9 +19824,9 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:COORDINATE:1.0.1": "T" }, { "ssvc:RP:1.0.0": "N", @@ -19946,7 +19834,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19956,7 +19844,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19966,7 +19854,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19976,7 +19864,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -19986,9 +19874,9 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -19996,7 +19884,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20006,7 +19894,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20016,7 +19904,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20026,7 +19914,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20036,7 +19924,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20046,7 +19934,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20056,7 +19944,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20066,58 +19954,108 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" + }, + { + "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "Y", "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" + }, + { + "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "Y", "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:RP:1.0.0": "N", + "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" + }, + { + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" + }, + { + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" + }, + { + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -20126,9 +20064,9 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -20136,7 +20074,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "T" }, @@ -20146,7 +20084,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20156,7 +20094,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20166,9 +20104,9 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -20176,7 +20114,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20186,7 +20124,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20196,7 +20134,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20206,7 +20144,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20216,7 +20154,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20226,7 +20164,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "T" }, @@ -20236,7 +20174,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20246,7 +20184,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20256,9 +20194,9 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", @@ -20266,9 +20204,9 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", @@ -20276,9 +20214,9 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -20286,7 +20224,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20296,7 +20234,7 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20306,7 +20244,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, @@ -20316,68 +20254,58 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:RP:1.0.0": "N", + "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", + "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "O", - "ssvc:SE:1.0.0": "U", + "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "NC", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:RP:1.0.0": "N", + "ssvc:RP:1.0.0": "Y", "ssvc:SCON:1.0.0": "N", - "ssvc:RC:1.0.0": "C", + "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", + "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "D" + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { "ssvc:RP:1.0.0": "Y", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "M", + "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -20387,7 +20315,7 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "L", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "C" }, { @@ -20397,8 +20325,8 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -20407,7 +20335,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "C" }, { @@ -20417,8 +20345,8 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -20427,7 +20355,7 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -20437,7 +20365,7 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -20447,8 +20375,8 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -20457,8 +20385,8 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "T" }, { "ssvc:RP:1.0.0": "N", @@ -20467,8 +20395,8 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", @@ -20477,8 +20405,8 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -20487,8 +20415,8 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "T" + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -20497,7 +20425,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -20507,7 +20435,7 @@ "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", + "ssvc:PSI:2.0.1": "M", "ssvc:COORDINATE:1.0.1": "D" }, { @@ -20517,8 +20445,8 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", @@ -20527,8 +20455,8 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", @@ -20537,28 +20465,8 @@ "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", "ssvc:U:1.0.1": "S", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", "ssvc:PSI:2.0.1": "M", - "ssvc:COORDINATE:1.0.1": "C" - }, - { - "ssvc:RP:1.0.0": "N", - "ssvc:SCON:1.0.0": "Y", - "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "E", - "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", @@ -20566,9 +20474,9 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "A", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:COORDINATE:1.0.1": "T" }, { "ssvc:RP:1.0.0": "N", @@ -20576,7 +20484,7 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "O", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", "ssvc:COORDINATE:1.0.1": "C" }, @@ -20586,9 +20494,9 @@ "ssvc:RC:1.0.0": "NC", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:COORDINATE:1.0.1": "T" }, { "ssvc:RP:1.0.0": "N", @@ -20596,9 +20504,9 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "Y", @@ -20606,1386 +20514,1459 @@ "ssvc:RC:1.0.0": "C", "ssvc:SC:1.0.0": "M", "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:U:1.0.1": "L", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" + "ssvc:COORDINATE:1.0.1": "D" }, { "ssvc:RP:1.0.0": "N", "ssvc:SCON:1.0.0": "Y", "ssvc:RC:1.0.0": "C", - "ssvc:SC:1.0.0": "M", - "ssvc:SE:1.0.0": "U", - "ssvc:U:1.0.1": "S", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "E", "ssvc:PSI:2.0.1": "S", - "ssvc:COORDINATE:1.0.1": "C" - } - ] - } - } - } - }, - "DT_DP": { - "key": "DT_DP", - "versions": { - "1.0.0": { - "version": "1.0.0", - "obj": { - "namespace": "ssvc", - "key": "DT_DP", - "version": "1.0.0", - "name": "Deployer Patch Application Priority", - "description": "Decision table for evaluating deployer's patch application priority in SSVC", - "schemaVersion": "2.0.0", - "decision_points": { - "ssvc:E:1.1.0": { - "namespace": "ssvc", - "key": "E", - "version": "1.1.0", - "name": "Exploitation", - "description": "The present state of exploitation of the vulnerability.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "None", - "description": "There is no evidence of active exploitation and no public proof of concept (PoC) of how to exploit the vulnerability." - }, - { - "key": "P", - "name": "Public PoC", - "description": "One of the following is true: (1) Typical public PoC exists in sources such as Metasploit or websites like ExploitDB; or (2) the vulnerability has a well-known method of exploitation." - }, - { - "key": "A", - "name": "Active", - "description": "Shared, observable, reliable evidence that the exploit is being used in the wild by real attackers; there is credible public reporting." - } - ] - }, - "ssvc:EXP:1.0.1": { - "namespace": "ssvc", - "key": "EXP", - "version": "1.0.1", - "name": "System Exposure", - "description": "The Accessible Attack Surface of the Affected System or Service", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "S", - "name": "Small", - "description": "Local service or program; highly controlled network" - }, - { - "key": "C", - "name": "Controlled", - "description": "Networked service with some access restrictions or mitigations already in place (whether locally or on the network). A successful mitigation must reliably interrupt the adversary’s attack, which requires the attack is detectable both reliably and quickly enough to respond. Controlled covers the situation in which a vulnerability can be exploited through chaining it with other vulnerabilities. The assumption is that the number of steps in the attack path is relatively low; if the path is long enough that it is implausible for an adversary to reliably execute it, then exposure should be small." - }, - { - "key": "O", - "name": "Open", - "description": "Internet or another widely accessible network where access cannot plausibly be restricted or controlled (e.g., DNS servers, web servers, VOIP servers, email servers)" - } - ] + "ssvc:COORDINATE:1.0.1": "T" }, - "ssvc:A:2.0.0": { - "namespace": "ssvc", - "key": "A", - "version": "2.0.0", - "name": "Automatable", - "description": "Can an attacker reliably automate creating exploitation events for this vulnerability?", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "No", - "description": "Attackers cannot reliably automate steps 1-4 of the kill chain for this vulnerability. These steps are (1) reconnaissance, (2) weaponization, (3) delivery, and (4) exploitation." - }, - { - "key": "Y", - "name": "Yes", - "description": "Attackers can reliably automate steps 1-4 of the kill chain." - } - ] + { + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "T" }, - "ssvc:HI:2.0.2": { - "namespace": "ssvc", - "key": "HI", - "version": "2.0.2", - "name": "Human Impact", - "description": "Human Impact is a combination of Safety and Mission impacts.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "L", - "name": "Low", - "description": "Safety Impact:(Negligible) AND Mission Impact:(Degraded OR Crippled)" - }, - { - "key": "M", - "name": "Medium", - "description": "(Safety Impact:Negligible AND Mission Impact:MEF Failure) OR (Safety Impact:Marginal AND Mission Impact:(Degraded OR Crippled))" - }, - { - "key": "H", - "name": "High", - "description": "(Safety Impact:Critical AND Mission Impact:(Degraded OR Crippled)) OR (Safety Impact:Marginal AND Mission Impact:MEF Failure)" - }, - { - "key": "VH", - "name": "Very High", - "description": "Safety Impact:Catastrophic OR Mission Impact:Mission Failure" - } - ] + { + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" + }, + { + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, - "ssvc:DSOI:1.0.0": { - "namespace": "ssvc", - "key": "DSOI", - "version": "1.0.0", - "name": "Defer, Scheduled, Out-of-Cycle, Immediate", - "description": "The original SSVC outcome group.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "D", - "name": "Defer", - "description": "Defer" - }, - { - "key": "S", - "name": "Scheduled", - "description": "Scheduled" - }, - { - "key": "O", - "name": "Out-of-Cycle", - "description": "Out-of-Cycle" - }, - { - "key": "I", - "name": "Immediate", - "description": "Immediate" - } - ] - } - }, - "outcome": "ssvc:DSOI:1.0.0", - "mapping": [ { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "D" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "T" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "D" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "D" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "T" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "D" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "D" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "T" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "L", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "N", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "O" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "T" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "D" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "T" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "T" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "S", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "D" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "T" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "D" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" + }, + { + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "M", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "E", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "C", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "O" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "A", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "O", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "NC", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "N", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "N", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "O" + "ssvc:RP:1.0.0": "Y", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" }, { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "S" + "ssvc:RP:1.0.0": "N", + "ssvc:SCON:1.0.0": "Y", + "ssvc:RC:1.0.0": "C", + "ssvc:SC:1.0.0": "M", + "ssvc:SE:1.0.0": "U", + "ssvc:U:1.0.1": "S", + "ssvc:PSI:2.0.1": "S", + "ssvc:COORDINATE:1.0.1": "C" + } + ] + } + } + } + }, + "DT_DP": { + "key": "DT_DP", + "versions": { + "1.0.0": { + "version": "1.0.0", + "obj": { + "namespace": "ssvc", + "key": "DT_DP", + "version": "1.0.0", + "name": "Deployer Patch Application Priority", + "description": "Decision table for evaluating deployer's patch application priority in SSVC", + "schemaVersion": "2.0.0", + "decision_points": { + "ssvc:E:1.1.0": { + "namespace": "ssvc", + "key": "E", + "version": "1.1.0", + "name": "Exploitation", + "description": "The present state of exploitation of the vulnerability.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "None", + "description": "There is no evidence of active exploitation and no public proof of concept (PoC) of how to exploit the vulnerability." + }, + { + "key": "P", + "name": "Public PoC", + "description": "One of the following is true: (1) Typical public PoC exists in sources such as Metasploit or websites like ExploitDB; or (2) the vulnerability has a well-known method of exploitation." + }, + { + "key": "A", + "name": "Active", + "description": "Shared, observable, reliable evidence that the exploit is being used in the wild by real attackers; there is credible public reporting." + } + ] }, - { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:EXP:1.0.1": { + "namespace": "ssvc", + "key": "EXP", + "version": "1.0.1", + "name": "System Exposure", + "description": "The Accessible Attack Surface of the Affected System or Service", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "S", + "name": "Small", + "description": "Local service or program; highly controlled network" + }, + { + "key": "C", + "name": "Controlled", + "description": "Networked service with some access restrictions or mitigations already in place (whether locally or on the network). A successful mitigation must reliably interrupt the adversary’s attack, which requires the attack is detectable both reliably and quickly enough to respond. Controlled covers the situation in which a vulnerability can be exploited through chaining it with other vulnerabilities. The assumption is that the number of steps in the attack path is relatively low; if the path is long enough that it is implausible for an adversary to reliably execute it, then exposure should be small." + }, + { + "key": "O", + "name": "Open", + "description": "Internet or another widely accessible network where access cannot plausibly be restricted or controlled (e.g., DNS servers, web servers, VOIP servers, email servers)" + } + ] }, - { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "O" + "ssvc:A:2.0.0": { + "namespace": "ssvc", + "key": "A", + "version": "2.0.0", + "name": "Automatable", + "description": "Can an attacker reliably automate creating exploitation events for this vulnerability?", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "No", + "description": "Attackers cannot reliably automate steps 1-4 of the kill chain for this vulnerability. These steps are (1) reconnaissance, (2) weaponization, (3) delivery, and (4) exploitation." + }, + { + "key": "Y", + "name": "Yes", + "description": "Attackers can reliably automate steps 1-4 of the kill chain." + } + ] }, - { - "ssvc:E:1.1.0": "P", - "ssvc:EXP:1.0.1": "O", - "ssvc:A:2.0.0": "Y", - "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "O" + "ssvc:HI:2.0.2": { + "namespace": "ssvc", + "key": "HI", + "version": "2.0.2", + "name": "Human Impact", + "description": "Human Impact is a combination of Safety and Mission impacts.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Low", + "description": "Safety Impact:(Negligible) AND Mission Impact:(Degraded OR Crippled)" + }, + { + "key": "M", + "name": "Medium", + "description": "(Safety Impact:Negligible AND Mission Impact:MEF Failure) OR (Safety Impact:Marginal AND Mission Impact:(Degraded OR Crippled))" + }, + { + "key": "H", + "name": "High", + "description": "(Safety Impact:Critical AND Mission Impact:(Degraded OR Crippled)) OR (Safety Impact:Marginal AND Mission Impact:MEF Failure)" + }, + { + "key": "VH", + "name": "Very High", + "description": "Safety Impact:Catastrophic OR Mission Impact:Mission Failure" + } + ] }, + "ssvc:DSOI:1.0.0": { + "namespace": "ssvc", + "key": "DSOI", + "version": "1.0.0", + "name": "Defer, Scheduled, Out-of-Cycle, Immediate", + "description": "The original SSVC outcome group.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "D", + "name": "Defer", + "description": "Defer" + }, + { + "key": "S", + "name": "Scheduled", + "description": "Scheduled" + }, + { + "key": "O", + "name": "Out-of-Cycle", + "description": "Out-of-Cycle" + }, + { + "key": "I", + "name": "Immediate", + "description": "Immediate" + } + ] + } + }, + "outcome": "ssvc:DSOI:1.0.0", + "mapping": [ { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "S", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "S" + "ssvc:DSOI:1.0.0": "D" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "S", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:DSOI:1.0.0": "D" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "S", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "S", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "S", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "S" + "ssvc:DSOI:1.0.0": "D" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "S", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "S", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "S", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "C", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "S" + "ssvc:DSOI:1.0.0": "D" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "C", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "M", "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "C", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "C", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "C", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "C", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "C", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "C", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "O", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "S" + "ssvc:DSOI:1.0.0": "D" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "O", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "O", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "O", "ssvc:A:2.0.0": "N", "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "I" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "O", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "L", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "O", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "M", - "ssvc:DSOI:1.0.0": "O" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "O", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "H", - "ssvc:DSOI:1.0.0": "I" + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "A", + "ssvc:E:1.1.0": "N", "ssvc:EXP:1.0.1": "O", "ssvc:A:2.0.0": "Y", "ssvc:HI:2.0.2": "VH", - "ssvc:DSOI:1.0.0": "I" - } - ] - } - } - } - }, - "DT_HI": { - "key": "DT_HI", - "versions": { - "1.0.0": { - "version": "1.0.0", - "obj": { - "namespace": "ssvc", - "key": "DT_HI", - "version": "1.0.0", - "name": "Human Impact", - "description": "Human Impact decision table for SSVC", - "schemaVersion": "2.0.0", - "decision_points": { - "ssvc:SI:2.0.0": { - "namespace": "ssvc", - "key": "SI", - "version": "2.0.0", - "name": "Safety Impact", - "description": "The safety impact of the vulnerability. (based on IEC 61508)", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "Negligible", - "description": "Any one or more of these conditions hold.

- *Physical harm*: Minor injuries at worst (IEC 61508 Negligible).
- *Operator resiliency*: Requires action by system operator to maintain safe system state as a result of exploitation of the vulnerability where operator actions would be well within expected operator abilities; OR causes a minor occupational safety hazard.
- *System resiliency*: Small reduction in built-in system safety margins; OR small reduction in system functional capabilities that support safe operation.
- *Environment*: Minor externalities (property damage, environmental damage, etc.) imposed on other parties.
- *Financial*: Financial losses, which are not readily absorbable, to multiple persons.
- *Psychological*: Emotional or psychological harm, sufficient to be cause for counselling or therapy, to multiple persons." - }, - { - "key": "M", - "name": "Marginal", - "description": "Any one or more of these conditions hold.

- *Physical harm*: Major injuries to one or more persons (IEC 61508 Marginal).
- *Operator resiliency*: Requires action by system operator to maintain safe system state as a result of exploitation of the vulnerability where operator actions would be within their capabilities but the actions require their full attention and effort; OR significant distraction or discomfort to operators; OR causes significant occupational safety hazard.
- *System resiliency*: System safety margin effectively eliminated but no actual harm; OR failure of system functional capabilities that support safe operation.
- *Environment*: Major externalities (property damage, environmental damage, etc.) imposed on other parties.
- *Financial*: Financial losses that likely lead to bankruptcy of multiple persons.
- *Psychological*: Widespread emotional or psychological harm, sufficient to be cause for counselling or therapy, to populations of people." - }, - { - "key": "R", - "name": "Critical", - "description": "Any one or more of these conditions hold.

- *Physical harm*: Loss of life (IEC 61508 Critical).
- *Operator resiliency*: Actions that would keep the system in a safe state are beyond system operator capabilities, resulting in adverse conditions; OR great physical distress to system operators such that they cannot be expected to operate the system properly.
- *System resiliency*: Parts of the cyber-physical system break; system’s ability to recover lost functionality remains intact.
- *Environment*: Serious externalities (threat to life as well as property, widespread environmental damage, measurable public health risks, etc.) imposed on other parties.
- *Financial*: Socio-technical system (elections, financial grid, etc.) of which the affected component is a part is actively destabilized and enters unsafe state.
- *Psychological*: N/A." - }, - { - "key": "C", - "name": "Catastrophic", - "description": "Any one or more of these conditions hold.

- *Physical harm*: Multiple loss of life (IEC 61508 Catastrophic).
- *Operator resiliency*: Operator incapacitated (includes fatality or otherwise incapacitated).
- *System resiliency*: Total loss of whole cyber-physical system, of which the software is a part.
- *Environment*: Extreme externalities (immediate public health threat, environmental damage leading to small ecosystem collapse, etc.) imposed on other parties.
- *Financial*: Social systems (elections, financial grid, etc.) supported by the software collapse.
- *Psychological*: N/A." - } - ] + "ssvc:DSOI:1.0.0": "O" }, - "ssvc:MI:2.0.0": { - "namespace": "ssvc", - "key": "MI", - "version": "2.0.0", - "name": "Mission Impact", - "description": "Impact on Mission Essential Functions of the Organization", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "D", - "name": "Degraded", - "description": "Little to no impact up to degradation of non-essential functions; chronic degradation would eventually harm essential functions" - }, - { - "key": "MSC", - "name": "MEF Support Crippled", - "description": "Activities that directly support essential functions are crippled; essential functions continue for a time" - }, - { - "key": "MEF", - "name": "MEF Failure", - "description": "Any one mission essential function fails for period of time longer than acceptable; overall mission of the organization degraded but can still be accomplished for a time" - }, - { - "key": "MF", - "name": "Mission Failure", - "description": "Multiple or all mission essential functions fail; ability to recover those functions degraded; organization’s ability to deliver its overall mission fails" - } - ] + { + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "L", + "ssvc:DSOI:1.0.0": "D" }, - "ssvc:HI:2.0.2": { - "namespace": "ssvc", - "key": "HI", - "version": "2.0.2", - "name": "Human Impact", - "description": "Human Impact is a combination of Safety and Mission impacts.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "L", - "name": "Low", - "description": "Safety Impact:(Negligible) AND Mission Impact:(Degraded OR Crippled)" - }, - { - "key": "M", - "name": "Medium", - "description": "(Safety Impact:Negligible AND Mission Impact:MEF Failure) OR (Safety Impact:Marginal AND Mission Impact:(Degraded OR Crippled))" - }, - { - "key": "H", - "name": "High", - "description": "(Safety Impact:Critical AND Mission Impact:(Degraded OR Crippled)) OR (Safety Impact:Marginal AND Mission Impact:MEF Failure)" - }, - { - "key": "VH", - "name": "Very High", - "description": "Safety Impact:Catastrophic OR Mission Impact:Mission Failure" - } - ] - } - }, - "outcome": "ssvc:HI:2.0.2", - "mapping": [ { - "ssvc:SI:2.0.0": "N", - "ssvc:MI:2.0.0": "D", - "ssvc:HI:2.0.2": "L" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "M", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "N", - "ssvc:MI:2.0.0": "MSC", - "ssvc:HI:2.0.2": "L" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "H", + "ssvc:DSOI:1.0.0": "S" + }, + { + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "VH", + "ssvc:DSOI:1.0.0": "S" + }, + { + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "L", + "ssvc:DSOI:1.0.0": "S" + }, + { + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "M", + "ssvc:DSOI:1.0.0": "S" + }, + { + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "H", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "N", - "ssvc:MI:2.0.0": "MEF", - "ssvc:HI:2.0.2": "M" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "VH", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "N", - "ssvc:MI:2.0.0": "MF", - "ssvc:HI:2.0.2": "VH" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "L", + "ssvc:DSOI:1.0.0": "D" }, { - "ssvc:SI:2.0.0": "M", - "ssvc:MI:2.0.0": "D", - "ssvc:HI:2.0.2": "L" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "M", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "M", - "ssvc:MI:2.0.0": "MSC", - "ssvc:HI:2.0.2": "L" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "H", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "M", - "ssvc:MI:2.0.0": "MEF", - "ssvc:HI:2.0.2": "M" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "VH", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "M", - "ssvc:MI:2.0.0": "MF", - "ssvc:HI:2.0.2": "VH" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "L", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "R", - "ssvc:MI:2.0.0": "D", - "ssvc:HI:2.0.2": "M" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "M", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "R", - "ssvc:MI:2.0.0": "MSC", - "ssvc:HI:2.0.2": "H" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "H", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "R", - "ssvc:MI:2.0.0": "MEF", - "ssvc:HI:2.0.2": "H" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "VH", + "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:SI:2.0.0": "R", - "ssvc:MI:2.0.0": "MF", - "ssvc:HI:2.0.2": "VH" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "L", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "C", - "ssvc:MI:2.0.0": "D", - "ssvc:HI:2.0.2": "VH" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "M", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "C", - "ssvc:MI:2.0.0": "MSC", - "ssvc:HI:2.0.2": "VH" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "H", + "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:SI:2.0.0": "C", - "ssvc:MI:2.0.0": "MEF", - "ssvc:HI:2.0.2": "VH" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "VH", + "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:SI:2.0.0": "C", - "ssvc:MI:2.0.0": "MF", - "ssvc:HI:2.0.2": "VH" - } - ] - } - } - } - }, - "DT_SP": { - "key": "DT_SP", - "versions": { - "1.0.0": { - "version": "1.0.0", - "obj": { - "namespace": "ssvc", - "key": "DT_SP", - "version": "1.0.0", - "name": "Supplier Patch Development Priority", - "description": "Decision table for evaluating supplier patch development priority in SSVC", - "schemaVersion": "2.0.0", - "decision_points": { - "ssvc:E:1.1.0": { - "namespace": "ssvc", - "key": "E", - "version": "1.1.0", - "name": "Exploitation", - "description": "The present state of exploitation of the vulnerability.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "N", - "name": "None", - "description": "There is no evidence of active exploitation and no public proof of concept (PoC) of how to exploit the vulnerability." - }, - { - "key": "P", - "name": "Public PoC", - "description": "One of the following is true: (1) Typical public PoC exists in sources such as Metasploit or websites like ExploitDB; or (2) the vulnerability has a well-known method of exploitation." - }, - { - "key": "A", - "name": "Active", - "description": "Shared, observable, reliable evidence that the exploit is being used in the wild by real attackers; there is credible public reporting." - } - ] - }, - "ssvc:U:1.0.1": { - "namespace": "ssvc", - "key": "U", - "version": "1.0.1", - "name": "Utility", - "description": "The Usefulness of the Exploit to the Adversary", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "L", - "name": "Laborious", - "description": "Automatable:No AND Value Density:Diffuse" - }, - { - "key": "E", - "name": "Efficient", - "description": "(Automatable:Yes AND Value Density:Diffuse) OR (Automatable:No AND Value Density:Concentrated)" - }, - { - "key": "S", - "name": "Super Effective", - "description": "Automatable:Yes AND Value Density:Concentrated" - } - ] - }, - "ssvc:TI:1.0.0": { - "namespace": "ssvc", - "key": "TI", - "version": "1.0.0", - "name": "Technical Impact", - "description": "The technical impact of the vulnerability.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "P", - "name": "Partial", - "description": "The exploit gives the adversary limited control over, or information exposure about, the behavior of the software that contains the vulnerability. Or the exploit gives the adversary an importantly low stochastic opportunity for total control." - }, - { - "key": "T", - "name": "Total", - "description": "The exploit gives the adversary total control over the behavior of the software, or it gives total disclosure of all information on the system that contains the vulnerability." - } - ] - }, - "ssvc:PSI:2.0.1": { - "namespace": "ssvc", - "key": "PSI", - "version": "2.0.1", - "name": "Public Safety Impact", - "description": "A coarse-grained representation of impact to public safety.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "M", - "name": "Minimal", - "description": "Safety Impact:Negligible" - }, - { - "key": "S", - "name": "Significant", - "description": "Safety Impact:(Marginal OR Critical OR Catastrophic)" - } - ] + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "L", + "ssvc:DSOI:1.0.0": "S" + }, + { + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "M", + "ssvc:DSOI:1.0.0": "S" }, - "ssvc:DSOI:1.0.0": { - "namespace": "ssvc", - "key": "DSOI", - "version": "1.0.0", - "name": "Defer, Scheduled, Out-of-Cycle, Immediate", - "description": "The original SSVC outcome group.", - "schemaVersion": "2.0.0", - "values": [ - { - "key": "D", - "name": "Defer", - "description": "Defer" - }, - { - "key": "S", - "name": "Scheduled", - "description": "Scheduled" - }, - { - "key": "O", - "name": "Out-of-Cycle", - "description": "Out-of-Cycle" - }, - { - "key": "I", - "name": "Immediate", - "description": "Immediate" - } - ] - } - }, - "outcome": "ssvc:DSOI:1.0.0", - "mapping": [ { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "D" + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "H", + "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "S", + "ssvc:E:1.1.0": "P", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "VH", + "ssvc:DSOI:1.0.0": "O" + }, + { + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "L", "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "M", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "M", "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "S", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "H", "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "M", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "VH", + "ssvc:DSOI:1.0.0": "O" + }, + { + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "L", "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "S", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "M", "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "H", + "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "S", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "S", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "VH", "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "M", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "L", "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "S", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "M", + "ssvc:DSOI:1.0.0": "S" + }, + { + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "H", "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "M", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "VH", "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "N", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "S", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "L", "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "M", + "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "S", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "H", "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "M", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "C", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "VH", + "ssvc:DSOI:1.0.0": "O" + }, + { + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "L", "ssvc:DSOI:1.0.0": "S" }, { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "S", - "ssvc:DSOI:1.0.0": "I" + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "M", + "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "S" + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "H", + "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "S", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "N", + "ssvc:HI:2.0.2": "VH", "ssvc:DSOI:1.0.0": "I" }, { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "M", + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "L", + "ssvc:DSOI:1.0.0": "O" + }, + { + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "M", "ssvc:DSOI:1.0.0": "O" }, - { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "S", - "ssvc:DSOI:1.0.0": "I" + { + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "H", + "ssvc:DSOI:1.0.0": "I" + }, + { + "ssvc:E:1.1.0": "A", + "ssvc:EXP:1.0.1": "O", + "ssvc:A:2.0.0": "Y", + "ssvc:HI:2.0.2": "VH", + "ssvc:DSOI:1.0.0": "I" + } + ] + } + } + } + }, + "DT_HI": { + "key": "DT_HI", + "versions": { + "1.0.0": { + "version": "1.0.0", + "obj": { + "namespace": "ssvc", + "key": "DT_HI", + "version": "1.0.0", + "name": "Human Impact", + "description": "Human Impact decision table for SSVC", + "schemaVersion": "2.0.0", + "decision_points": { + "ssvc:SI:2.0.0": { + "namespace": "ssvc", + "key": "SI", + "version": "2.0.0", + "name": "Safety Impact", + "description": "The safety impact of the vulnerability. (based on IEC 61508)", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "Negligible", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Minor injuries at worst (IEC 61508 Negligible).
- *Operator resiliency*: Requires action by system operator to maintain safe system state as a result of exploitation of the vulnerability where operator actions would be well within expected operator abilities; OR causes a minor occupational safety hazard.
- *System resiliency*: Small reduction in built-in system safety margins; OR small reduction in system functional capabilities that support safe operation.
- *Environment*: Minor externalities (property damage, environmental damage, etc.) imposed on other parties.
- *Financial*: Financial losses, which are not readily absorbable, to multiple persons.
- *Psychological*: Emotional or psychological harm, sufficient to be cause for counselling or therapy, to multiple persons." + }, + { + "key": "M", + "name": "Marginal", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Major injuries to one or more persons (IEC 61508 Marginal).
- *Operator resiliency*: Requires action by system operator to maintain safe system state as a result of exploitation of the vulnerability where operator actions would be within their capabilities but the actions require their full attention and effort; OR significant distraction or discomfort to operators; OR causes significant occupational safety hazard.
- *System resiliency*: System safety margin effectively eliminated but no actual harm; OR failure of system functional capabilities that support safe operation.
- *Environment*: Major externalities (property damage, environmental damage, etc.) imposed on other parties.
- *Financial*: Financial losses that likely lead to bankruptcy of multiple persons.
- *Psychological*: Widespread emotional or psychological harm, sufficient to be cause for counselling or therapy, to populations of people." + }, + { + "key": "R", + "name": "Critical", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Loss of life (IEC 61508 Critical).
- *Operator resiliency*: Actions that would keep the system in a safe state are beyond system operator capabilities, resulting in adverse conditions; OR great physical distress to system operators such that they cannot be expected to operate the system properly.
- *System resiliency*: Parts of the cyber-physical system break; system’s ability to recover lost functionality remains intact.
- *Environment*: Serious externalities (threat to life as well as property, widespread environmental damage, measurable public health risks, etc.) imposed on other parties.
- *Financial*: Socio-technical system (elections, financial grid, etc.) of which the affected component is a part is actively destabilized and enters unsafe state.
- *Psychological*: N/A." + }, + { + "key": "C", + "name": "Catastrophic", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Multiple loss of life (IEC 61508 Catastrophic).
- *Operator resiliency*: Operator incapacitated (includes fatality or otherwise incapacitated).
- *System resiliency*: Total loss of whole cyber-physical system, of which the software is a part.
- *Environment*: Extreme externalities (immediate public health threat, environmental damage leading to small ecosystem collapse, etc.) imposed on other parties.
- *Financial*: Social systems (elections, financial grid, etc.) supported by the software collapse.
- *Psychological*: N/A." + } + ] + }, + "ssvc:MI:2.0.0": { + "namespace": "ssvc", + "key": "MI", + "version": "2.0.0", + "name": "Mission Impact", + "description": "Impact on Mission Essential Functions of the Organization", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "D", + "name": "Degraded", + "description": "Little to no impact up to degradation of non-essential functions; chronic degradation would eventually harm essential functions" + }, + { + "key": "MSC", + "name": "MEF Support Crippled", + "description": "Activities that directly support essential functions are crippled; essential functions continue for a time" + }, + { + "key": "MEF", + "name": "MEF Failure", + "description": "Any one mission essential function fails for period of time longer than acceptable; overall mission of the organization degraded but can still be accomplished for a time" + }, + { + "key": "MF", + "name": "Mission Failure", + "description": "Multiple or all mission essential functions fail; ability to recover those functions degraded; organization’s ability to deliver its overall mission fails" + } + ] }, + "ssvc:HI:2.0.2": { + "namespace": "ssvc", + "key": "HI", + "version": "2.0.2", + "name": "Human Impact", + "description": "Human Impact is a combination of Safety and Mission impacts.", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Low", + "description": "Safety Impact:(Negligible) AND Mission Impact:(Degraded OR Crippled)" + }, + { + "key": "M", + "name": "Medium", + "description": "(Safety Impact:Negligible AND Mission Impact:MEF Failure) OR (Safety Impact:Marginal AND Mission Impact:(Degraded OR Crippled))" + }, + { + "key": "H", + "name": "High", + "description": "(Safety Impact:Critical AND Mission Impact:(Degraded OR Crippled)) OR (Safety Impact:Marginal AND Mission Impact:MEF Failure)" + }, + { + "key": "VH", + "name": "Very High", + "description": "Safety Impact:Catastrophic OR Mission Impact:Mission Failure" + } + ] + } + }, + "outcome": "ssvc:HI:2.0.2", + "mapping": [ { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "O" + "ssvc:SI:2.0.0": "N", + "ssvc:MI:2.0.0": "D", + "ssvc:HI:2.0.2": "L" }, { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "S", - "ssvc:DSOI:1.0.0": "I" + "ssvc:SI:2.0.0": "N", + "ssvc:MI:2.0.0": "MSC", + "ssvc:HI:2.0.2": "L" }, { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "O" + "ssvc:SI:2.0.0": "N", + "ssvc:MI:2.0.0": "MEF", + "ssvc:HI:2.0.2": "M" }, { - "ssvc:E:1.1.0": "P", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "S", - "ssvc:DSOI:1.0.0": "I" + "ssvc:SI:2.0.0": "N", + "ssvc:MI:2.0.0": "MF", + "ssvc:HI:2.0.2": "VH" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "O" + "ssvc:SI:2.0.0": "M", + "ssvc:MI:2.0.0": "D", + "ssvc:HI:2.0.2": "L" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "S", - "ssvc:DSOI:1.0.0": "I" + "ssvc:SI:2.0.0": "M", + "ssvc:MI:2.0.0": "MSC", + "ssvc:HI:2.0.2": "L" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "O" + "ssvc:SI:2.0.0": "M", + "ssvc:MI:2.0.0": "MEF", + "ssvc:HI:2.0.2": "M" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "L", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "S", - "ssvc:DSOI:1.0.0": "I" + "ssvc:SI:2.0.0": "M", + "ssvc:MI:2.0.0": "MF", + "ssvc:HI:2.0.2": "VH" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "O" + "ssvc:SI:2.0.0": "R", + "ssvc:MI:2.0.0": "D", + "ssvc:HI:2.0.2": "M" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "S", - "ssvc:DSOI:1.0.0": "I" + "ssvc:SI:2.0.0": "R", + "ssvc:MI:2.0.0": "MSC", + "ssvc:HI:2.0.2": "H" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "O" + "ssvc:SI:2.0.0": "R", + "ssvc:MI:2.0.0": "MEF", + "ssvc:HI:2.0.2": "H" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "E", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "S", - "ssvc:DSOI:1.0.0": "I" + "ssvc:SI:2.0.0": "R", + "ssvc:MI:2.0.0": "MF", + "ssvc:HI:2.0.2": "VH" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "I" + "ssvc:SI:2.0.0": "C", + "ssvc:MI:2.0.0": "D", + "ssvc:HI:2.0.2": "VH" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "P", - "ssvc:PSI:2.0.1": "S", - "ssvc:DSOI:1.0.0": "I" + "ssvc:SI:2.0.0": "C", + "ssvc:MI:2.0.0": "MSC", + "ssvc:HI:2.0.2": "VH" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "M", - "ssvc:DSOI:1.0.0": "I" + "ssvc:SI:2.0.0": "C", + "ssvc:MI:2.0.0": "MEF", + "ssvc:HI:2.0.2": "VH" }, { - "ssvc:E:1.1.0": "A", - "ssvc:U:1.0.1": "S", - "ssvc:TI:1.0.0": "T", - "ssvc:PSI:2.0.1": "S", - "ssvc:DSOI:1.0.0": "I" + "ssvc:SI:2.0.0": "C", + "ssvc:MI:2.0.0": "MF", + "ssvc:HI:2.0.2": "VH" } ] } } } }, - "DT_U": { - "key": "DT_U", + "DT_PSI": { + "key": "DT_PSI", "versions": { "1.0.0": { "version": "1.0.0", "obj": { "namespace": "ssvc", - "key": "DT_U", + "key": "DT_PSI", "version": "1.0.0", - "name": "Utility", - "description": "Utility decision table for SSVC", + "name": "Public Safety Impact", + "description": "Public Safety Impact Decision Table", "schemaVersion": "2.0.0", "decision_points": { - "ssvc:A:2.0.0": { + "ssvc:SI:2.0.0": { "namespace": "ssvc", - "key": "A", + "key": "SI", "version": "2.0.0", - "name": "Automatable", - "description": "Can an attacker reliably automate creating exploitation events for this vulnerability?", + "name": "Safety Impact", + "description": "The safety impact of the vulnerability. (based on IEC 61508)", "schemaVersion": "2.0.0", "values": [ { "key": "N", - "name": "No", - "description": "Attackers cannot reliably automate steps 1-4 of the kill chain for this vulnerability. These steps are (1) reconnaissance, (2) weaponization, (3) delivery, and (4) exploitation." + "name": "Negligible", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Minor injuries at worst (IEC 61508 Negligible).
- *Operator resiliency*: Requires action by system operator to maintain safe system state as a result of exploitation of the vulnerability where operator actions would be well within expected operator abilities; OR causes a minor occupational safety hazard.
- *System resiliency*: Small reduction in built-in system safety margins; OR small reduction in system functional capabilities that support safe operation.
- *Environment*: Minor externalities (property damage, environmental damage, etc.) imposed on other parties.
- *Financial*: Financial losses, which are not readily absorbable, to multiple persons.
- *Psychological*: Emotional or psychological harm, sufficient to be cause for counselling or therapy, to multiple persons." }, { - "key": "Y", - "name": "Yes", - "description": "Attackers can reliably automate steps 1-4 of the kill chain." - } - ] - }, - "ssvc:VD:1.0.0": { - "namespace": "ssvc", - "key": "VD", - "version": "1.0.0", - "name": "Value Density", - "description": "The concentration of value in the target", - "schemaVersion": "2.0.0", - "values": [ + "key": "M", + "name": "Marginal", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Major injuries to one or more persons (IEC 61508 Marginal).
- *Operator resiliency*: Requires action by system operator to maintain safe system state as a result of exploitation of the vulnerability where operator actions would be within their capabilities but the actions require their full attention and effort; OR significant distraction or discomfort to operators; OR causes significant occupational safety hazard.
- *System resiliency*: System safety margin effectively eliminated but no actual harm; OR failure of system functional capabilities that support safe operation.
- *Environment*: Major externalities (property damage, environmental damage, etc.) imposed on other parties.
- *Financial*: Financial losses that likely lead to bankruptcy of multiple persons.
- *Psychological*: Widespread emotional or psychological harm, sufficient to be cause for counselling or therapy, to populations of people." + }, { - "key": "D", - "name": "Diffuse", - "description": "The system that contains the vulnerable component has limited resources. That is, the resources that the adversary will gain control over with a single exploitation event are relatively small." + "key": "R", + "name": "Critical", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Loss of life (IEC 61508 Critical).
- *Operator resiliency*: Actions that would keep the system in a safe state are beyond system operator capabilities, resulting in adverse conditions; OR great physical distress to system operators such that they cannot be expected to operate the system properly.
- *System resiliency*: Parts of the cyber-physical system break; system’s ability to recover lost functionality remains intact.
- *Environment*: Serious externalities (threat to life as well as property, widespread environmental damage, measurable public health risks, etc.) imposed on other parties.
- *Financial*: Socio-technical system (elections, financial grid, etc.) of which the affected component is a part is actively destabilized and enters unsafe state.
- *Psychological*: N/A." }, { "key": "C", - "name": "Concentrated", - "description": "The system that contains the vulnerable component is rich in resources. Heuristically, such systems are often the direct responsibility of “system operators” rather than users." + "name": "Catastrophic", + "description": "Any one or more of these conditions hold.

- *Physical harm*: Multiple loss of life (IEC 61508 Catastrophic).
- *Operator resiliency*: Operator incapacitated (includes fatality or otherwise incapacitated).
- *System resiliency*: Total loss of whole cyber-physical system, of which the software is a part.
- *Environment*: Extreme externalities (immediate public health threat, environmental damage leading to small ecosystem collapse, etc.) imposed on other parties.
- *Financial*: Social systems (elections, financial grid, etc.) supported by the software collapse.
- *Psychological*: N/A." } ] - }, - "ssvc:U:1.0.1": { - "namespace": "ssvc", - "key": "U", - "version": "1.0.1", - "name": "Utility", - "description": "The Usefulness of the Exploit to the Adversary", + }, + "ssvc:PSI:2.0.1": { + "namespace": "ssvc", + "key": "PSI", + "version": "2.0.1", + "name": "Public Safety Impact", + "description": "A coarse-grained representation of impact to public safety.", "schemaVersion": "2.0.0", "values": [ { - "key": "L", - "name": "Laborious", - "description": "Automatable:No AND Value Density:Diffuse" - }, - { - "key": "E", - "name": "Efficient", - "description": "(Automatable:Yes AND Value Density:Diffuse) OR (Automatable:No AND Value Density:Concentrated)" + "key": "M", + "name": "Minimal", + "description": "Safety Impact:Negligible" }, { "key": "S", - "name": "Super Effective", - "description": "Automatable:Yes AND Value Density:Concentrated" + "name": "Significant", + "description": "Safety Impact:(Marginal OR Critical OR Catastrophic)" } ] } }, - "outcome": "ssvc:U:1.0.1", + "outcome": "ssvc:PSI:2.0.1", "mapping": [ { - "ssvc:A:2.0.0": "N", - "ssvc:VD:1.0.0": "D", - "ssvc:U:1.0.1": "L" + "ssvc:SI:2.0.0": "N", + "ssvc:PSI:2.0.1": "M" }, { - "ssvc:A:2.0.0": "N", - "ssvc:VD:1.0.0": "C", - "ssvc:U:1.0.1": "E" + "ssvc:SI:2.0.0": "M", + "ssvc:PSI:2.0.1": "S" }, { - "ssvc:A:2.0.0": "Y", - "ssvc:VD:1.0.0": "D", - "ssvc:U:1.0.1": "E" + "ssvc:SI:2.0.0": "R", + "ssvc:PSI:2.0.1": "S" }, { - "ssvc:A:2.0.0": "Y", - "ssvc:VD:1.0.0": "C", - "ssvc:U:1.0.1": "S" + "ssvc:SI:2.0.0": "C", + "ssvc:PSI:2.0.1": "S" } ] } } } - } - } - }, - "cisa": { - "namespace": "cisa", - "keys": { - "DT_CO": { - "key": "DT_CO", + }, + "DT_SP": { + "key": "DT_SP", "versions": { - "2.0.3": { - "version": "2.0.3", + "1.0.0": { + "version": "1.0.0", "obj": { - "namespace": "cisa", - "key": "DT_CO", - "version": "2.0.3", - "name": "CISA Coordinator", - "description": "CISA Coordinator decision table for SSVC", + "namespace": "ssvc", + "key": "DT_SP", + "version": "1.0.0", + "name": "Supplier Patch Development Priority", + "description": "Decision table for evaluating supplier patch development priority in SSVC", "schemaVersion": "2.0.0", "decision_points": { "ssvc:E:1.1.0": { @@ -22013,23 +21994,28 @@ } ] }, - "ssvc:A:2.0.0": { + "ssvc:U:1.0.1": { "namespace": "ssvc", - "key": "A", - "version": "2.0.0", - "name": "Automatable", - "description": "Can an attacker reliably automate creating exploitation events for this vulnerability?", + "key": "U", + "version": "1.0.1", + "name": "Utility", + "description": "The Usefulness of the Exploit to the Adversary", "schemaVersion": "2.0.0", "values": [ { - "key": "N", - "name": "No", - "description": "Attackers cannot reliably automate steps 1-4 of the kill chain for this vulnerability. These steps are (1) reconnaissance, (2) weaponization, (3) delivery, and (4) exploitation." + "key": "L", + "name": "Laborious", + "description": "Automatable:No AND Value Density:Diffuse" }, { - "key": "Y", - "name": "Yes", - "description": "Attackers can reliably automate steps 1-4 of the kill chain." + "key": "E", + "name": "Efficient", + "description": "(Automatable:Yes AND Value Density:Diffuse) OR (Automatable:No AND Value Density:Concentrated)" + }, + { + "key": "S", + "name": "Super Effective", + "description": "Automatable:Yes AND Value Density:Concentrated" } ] }, @@ -22053,315 +22039,416 @@ } ] }, - "ssvc:MWI:1.0.0": { + "ssvc:PSI:2.0.1": { "namespace": "ssvc", - "key": "MWI", - "version": "1.0.0", - "name": "Mission and Well-Being Impact", - "description": "Mission and Well-Being Impact is a combination of Mission Prevalence and Public Well-Being Impact.", + "key": "PSI", + "version": "2.0.1", + "name": "Public Safety Impact", + "description": "A coarse-grained representation of impact to public safety.", "schemaVersion": "2.0.0", "values": [ - { - "key": "L", - "name": "Low", - "description": "Mission Prevalence:Minimal AND Public Well-Being Impact:Minimal" - }, { "key": "M", - "name": "Medium", - "description": "Mission Prevalence:Support AND Public Well-Being Impact:(Minimal OR Material)" + "name": "Minimal", + "description": "Safety Impact:Negligible" }, { - "key": "H", - "name": "High", - "description": "Mission Prevalence:Essential OR Public Well-Being Impact:(Irreversible)" + "key": "S", + "name": "Significant", + "description": "Safety Impact:(Marginal OR Critical OR Catastrophic)" } ] }, - "cisa:CISA:1.1.0": { - "namespace": "cisa", - "key": "CISA", - "version": "1.1.0", - "name": "CISA Levels", - "description": "The CISA outcome group. CISA uses its own SSVC decision tree model to prioritize relevant vulnerabilities into four possible decisions: Track, Track*, Attend, and Act.", + "ssvc:DSOI:1.0.0": { + "namespace": "ssvc", + "key": "DSOI", + "version": "1.0.0", + "name": "Defer, Scheduled, Out-of-Cycle, Immediate", + "description": "The original SSVC outcome group.", "schemaVersion": "2.0.0", "values": [ { - "key": "T", - "name": "Track", - "description": "The vulnerability does not require action at this time. The organization would continue to track the vulnerability and reassess it if new information becomes available. CISA recommends remediating Track vulnerabilities within standard update timelines." + "key": "D", + "name": "Defer", + "description": "Defer" }, { - "key": "T*", - "name": "Track*", - "description": "The vulnerability contains specific characteristics that may require closer monitoring for changes. CISA recommends remediating Track* vulnerabilities within standard update timelines." + "key": "S", + "name": "Scheduled", + "description": "Scheduled" }, { - "key": "AT", - "name": "Attend", - "description": "The vulnerability requires attention from the organization's internal, supervisory-level individuals. Necessary actions may include requesting assistance or information about the vulnerability and may involve publishing a notification, either internally and/or externally, about the vulnerability. CISA recommends remediating Attend vulnerabilities sooner than standard update timelines." + "key": "O", + "name": "Out-of-Cycle", + "description": "Out-of-Cycle" }, { - "key": "AC", - "name": "Act", - "description": "The vulnerability requires attention from the organization's internal, supervisory-level and leadership-level individuals. Necessary actions include requesting assistance or information about the vulnerability, as well as publishing a notification either internally and/or externally. Typically, internal groups would meet to determine the overall response and then execute agreed upon actions. CISA recommends remediating Act vulnerabilities as soon as possible." + "key": "I", + "name": "Immediate", + "description": "Immediate" } ] } }, - "outcome": "cisa:CISA:1.1.0", + "outcome": "ssvc:DSOI:1.0.0", "mapping": [ { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "L", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "D" }, { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "L", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "S" }, { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "N", - "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "T" + "ssvc:U:1.0.1": "L", + "ssvc:TI:1.0.0": "T", + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "S" }, { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "L", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "N", - "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "T" + "ssvc:U:1.0.1": "E", + "ssvc:TI:1.0.0": "P", + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "S" }, { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "E", + "ssvc:TI:1.0.0": "P", + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "O" + }, + { + "ssvc:E:1.1.0": "N", + "ssvc:U:1.0.1": "E", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "T*" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "S" }, { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "Y", - "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "T" + "ssvc:U:1.0.1": "E", + "ssvc:TI:1.0.0": "T", + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "S" }, { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "AT" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "O" }, { - "ssvc:E:1.1.0": "N", - "ssvc:A:2.0.0": "Y", - "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "AT" + "ssvc:E:1.1.0": "P", + "ssvc:U:1.0.1": "L", + "ssvc:TI:1.0.0": "P", + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "S" }, { "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "L", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "O" + }, + { + "ssvc:E:1.1.0": "P", + "ssvc:U:1.0.1": "L", + "ssvc:TI:1.0.0": "T", + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "S" }, { "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "N", - "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "T" + "ssvc:U:1.0.1": "L", + "ssvc:TI:1.0.0": "T", + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" }, { "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "E", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "T*" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "S" }, { "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "N", - "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "T" + "ssvc:U:1.0.1": "E", + "ssvc:TI:1.0.0": "P", + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" }, { "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "E", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "T*" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "E", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "AT" - }, - { - "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "Y", - "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" }, { "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "AT" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" }, { "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "T*" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" }, { - "ssvc:E:1.1.0": "P", - "ssvc:A:2.0.0": "Y", - "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "AT" + "ssvc:E:1.1.0": "A", + "ssvc:U:1.0.1": "L", + "ssvc:TI:1.0.0": "P", + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "A", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "L", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "T" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" }, { "ssvc:E:1.1.0": "A", - "ssvc:A:2.0.0": "N", - "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "T" + "ssvc:U:1.0.1": "L", + "ssvc:TI:1.0.0": "T", + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "A", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "L", + "ssvc:TI:1.0.0": "T", + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" + }, + { + "ssvc:E:1.1.0": "A", + "ssvc:U:1.0.1": "E", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "AT" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "A", - "ssvc:A:2.0.0": "N", - "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "T" + "ssvc:U:1.0.1": "E", + "ssvc:TI:1.0.0": "P", + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" }, { "ssvc:E:1.1.0": "A", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "E", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "AT" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "O" }, { "ssvc:E:1.1.0": "A", - "ssvc:A:2.0.0": "N", + "ssvc:U:1.0.1": "E", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "AC" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" }, { "ssvc:E:1.1.0": "A", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "AT" + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "I" }, { "ssvc:E:1.1.0": "A", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "AT" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" }, { "ssvc:E:1.1.0": "A", - "ssvc:A:2.0.0": "Y", - "ssvc:TI:1.0.0": "P", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "AC" + "ssvc:U:1.0.1": "S", + "ssvc:TI:1.0.0": "T", + "ssvc:PSI:2.0.1": "M", + "ssvc:DSOI:1.0.0": "I" }, { "ssvc:E:1.1.0": "A", - "ssvc:A:2.0.0": "Y", + "ssvc:U:1.0.1": "S", "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "L", - "cisa:CISA:1.1.0": "AT" + "ssvc:PSI:2.0.1": "S", + "ssvc:DSOI:1.0.0": "I" + } + ] + } + } + } + }, + "DT_U": { + "key": "DT_U", + "versions": { + "1.0.0": { + "version": "1.0.0", + "obj": { + "namespace": "ssvc", + "key": "DT_U", + "version": "1.0.0", + "name": "Utility", + "description": "Utility decision table for SSVC", + "schemaVersion": "2.0.0", + "decision_points": { + "ssvc:A:2.0.0": { + "namespace": "ssvc", + "key": "A", + "version": "2.0.0", + "name": "Automatable", + "description": "Can an attacker reliably automate creating exploitation events for this vulnerability?", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "N", + "name": "No", + "description": "Attackers cannot reliably automate steps 1-4 of the kill chain for this vulnerability. These steps are (1) reconnaissance, (2) weaponization, (3) delivery, and (4) exploitation." + }, + { + "key": "Y", + "name": "Yes", + "description": "Attackers can reliably automate steps 1-4 of the kill chain." + } + ] + }, + "ssvc:VD:1.0.0": { + "namespace": "ssvc", + "key": "VD", + "version": "1.0.0", + "name": "Value Density", + "description": "The concentration of value in the target", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "D", + "name": "Diffuse", + "description": "The system that contains the vulnerable component has limited resources. That is, the resources that the adversary will gain control over with a single exploitation event are relatively small." + }, + { + "key": "C", + "name": "Concentrated", + "description": "The system that contains the vulnerable component is rich in resources. Heuristically, such systems are often the direct responsibility of “system operators” rather than users." + } + ] + }, + "ssvc:U:1.0.1": { + "namespace": "ssvc", + "key": "U", + "version": "1.0.1", + "name": "Utility", + "description": "The Usefulness of the Exploit to the Adversary", + "schemaVersion": "2.0.0", + "values": [ + { + "key": "L", + "name": "Laborious", + "description": "Automatable:No AND Value Density:Diffuse" + }, + { + "key": "E", + "name": "Efficient", + "description": "(Automatable:Yes AND Value Density:Diffuse) OR (Automatable:No AND Value Density:Concentrated)" + }, + { + "key": "S", + "name": "Super Effective", + "description": "Automatable:Yes AND Value Density:Concentrated" + } + ] + } + }, + "outcome": "ssvc:U:1.0.1", + "mapping": [ + { + "ssvc:A:2.0.0": "N", + "ssvc:VD:1.0.0": "D", + "ssvc:U:1.0.1": "L" + }, + { + "ssvc:A:2.0.0": "N", + "ssvc:VD:1.0.0": "C", + "ssvc:U:1.0.1": "E" }, { - "ssvc:E:1.1.0": "A", "ssvc:A:2.0.0": "Y", - "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "M", - "cisa:CISA:1.1.0": "AC" + "ssvc:VD:1.0.0": "D", + "ssvc:U:1.0.1": "E" }, { - "ssvc:E:1.1.0": "A", "ssvc:A:2.0.0": "Y", - "ssvc:TI:1.0.0": "T", - "ssvc:MWI:1.0.0": "H", - "cisa:CISA:1.1.0": "AC" + "ssvc:VD:1.0.0": "C", + "ssvc:U:1.0.1": "S" } ] } diff --git a/data/schema/v2/Decision_Point-2-0-0.schema.json b/data/schema/v2/Decision_Point-2-0-0.schema.json index 326f98fe..c5bd948a 100644 --- a/data/schema/v2/Decision_Point-2-0-0.schema.json +++ b/data/schema/v2/Decision_Point-2-0-0.schema.json @@ -48,8 +48,8 @@ "examples": [ "ssvc", "cisa", - "x_com.example//com.example#private", - "ssvc/de-DE/example.organization#reference-arch-1" + "x_example.test#test//.example.test#private-extension", + "ssvc/de-DE/.example.organization#reference-arch-1" ], "maxLength": 1000, "minLength": 3, diff --git a/data/schema/v2/Decision_Point_Group-2-0-0.schema.json b/data/schema/v2/Decision_Point_Group-2-0-0.schema.json index 6d068e4b..38bb0c0b 100644 --- a/data/schema/v2/Decision_Point_Group-2-0-0.schema.json +++ b/data/schema/v2/Decision_Point_Group-2-0-0.schema.json @@ -13,8 +13,8 @@ "examples": [ "ssvc", "cisa", - "x_com.example//com.example#private", - "ssvc/de-DE/example.organization#reference-arch-1" + "x_example.test#test//.example.test#private-extension", + "ssvc/de-DE/.example.organization#reference-arch-1" ], "maxLength": 1000, "minLength": 3, diff --git a/data/schema/v2/Decision_Table-2-0-0.schema.json b/data/schema/v2/Decision_Table-2-0-0.schema.json index 7c4ece79..95870b27 100644 --- a/data/schema/v2/Decision_Table-2-0-0.schema.json +++ b/data/schema/v2/Decision_Table-2-0-0.schema.json @@ -13,8 +13,8 @@ "examples": [ "ssvc", "cisa", - "x_com.example//com.example#private", - "ssvc/de-DE/example.organization#reference-arch-1" + "x_example.test#test//.example.test#private-extension", + "ssvc/de-DE/.example.organization#reference-arch-1" ], "maxLength": 1000, "minLength": 3, @@ -126,8 +126,8 @@ "examples": [ "ssvc", "cisa", - "x_com.example//com.example#private", - "ssvc/de-DE/example.organization#reference-arch-1" + "x_example.test#test//.example.test#private-extension", + "ssvc/de-DE/.example.organization#reference-arch-1" ], "maxLength": 1000, "minLength": 3, diff --git a/data/schema/v2/Ssvc_Object_Registry-2-0-0.schema.json b/data/schema/v2/Ssvc_Object_Registry-2-0-0.schema.json index 011f78bd..0b00cf09 100644 --- a/data/schema/v2/Ssvc_Object_Registry-2-0-0.schema.json +++ b/data/schema/v2/Ssvc_Object_Registry-2-0-0.schema.json @@ -12,8 +12,8 @@ "examples": [ "ssvc", "cisa", - "x_com.example//com.example#private", - "ssvc/de-DE/example.organization#reference-arch-1" + "x_example.test#test//.example.test#private-extension", + "ssvc/de-DE/.example.organization#reference-arch-1" ], "maxLength": 1000, "minLength": 3, @@ -127,8 +127,8 @@ "examples": [ "ssvc", "cisa", - "x_com.example//com.example#private", - "ssvc/de-DE/example.organization#reference-arch-1" + "x_example.test#test//.example.test#private-extension", + "ssvc/de-DE/.example.organization#reference-arch-1" ], "maxLength": 1000, "minLength": 3, diff --git a/docker/.dockerignore b/docker/.dockerignore new file mode 100644 index 00000000..0ca7d75e --- /dev/null +++ b/docker/.dockerignore @@ -0,0 +1,17 @@ +# Ignore unnecessary files +*.pyc +*.pyo +*.log +#.gitignore +.DS_Store +# ignore all files in the following directories +#**/.git/ +**/__pycache__/ +**/node_modules/ +**/dist/ +**/build/ +*.egg-info/ +**/site/ +**/.venv/ +**/.ipynb_checkpoints/ +**/obsolete/ diff --git a/docker/Dockerfile b/docker/Dockerfile index 964af2a6..df7f668b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,23 +1,37 @@ FROM python:3.12-slim-bookworm AS base -RUN pip install --upgrade pip +RUN apt-get update && apt-get install -y --no-install-recommends git && rm -rf /var/lib/apt/lists/* +RUN pip install --upgrade pip uv WORKDIR /app +ENV VIRTUAL_ENV=/app/.venv +ENV PATH="${VIRTUAL_ENV}/bin:${PATH}" + +RUN python -m venv "${VIRTUAL_ENV}" FROM base AS dependencies -# install requirements -COPY ../requirements.txt . -RUN pip install -r requirements.txt +ARG BASE_DIR=.. +ARG SRC_DIR=${BASE_DIR}/src + # Copy the files we need -COPY .. /app +COPY ${BASE_DIR}/ /app # Set the environment variable ENV PYTHONPATH=/app/src +COPY ${SRC_DIR}/pyproject.toml /app/src/pyproject.toml +COPY ${SRC_DIR}/uv.lock /app/src/uv.lock + +# install requirements +RUN uv sync --project=/app/src --frozen FROM dependencies AS test -# install pytest -RUN pip install pytest -# run the unit tests \ -CMD ["pytest","src/test"] +ENV PYTHONPATH=/app/src +# Install pytest and dev dependencies +RUN uv sync --project=/app/src --frozen --dev +# Run the unit tests +CMD ["uv", "run", "--project=/app/src", "pytest"] FROM dependencies AS docs -CMD ["mkdocs", "serve", "--dev-addr", "0.0.0.0:8000"] \ No newline at end of file +CMD ["uv", "run", "--project=/app/src", "mkdocs", "serve", "--dev-addr", "0.0.0.0:8000"] + +FROM dependencies AS registry_api +CMD ["uv", "run", "--project=/app/src", "uvicorn", "ssvc.api.main:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 795eafb6..111d8937 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -32,5 +32,20 @@ services: image: docs:latest depends_on: - dependencies + volumes: + - ..:/app ports: - "8000:8000" + + api: + build: + context: .. + dockerfile: docker/Dockerfile + target: registry_api + image: registry_api:latest + depends_on: + - dependencies + volumes: + - ..:/app + ports: + - "8001:8000" \ No newline at end of file diff --git a/docs/howto/tools/containers.md b/docs/howto/tools/containers.md new file mode 100644 index 00000000..dc274daf --- /dev/null +++ b/docs/howto/tools/containers.md @@ -0,0 +1,53 @@ +# SSVC Docker Containers + +## Prerequisites + +Before you begin, ensure you have the following installed: + +- Docker +- Docker Compose + +Then clone the repository: + +```shell +git clone https://github.com/CERTCC/SSVC.git +cd SSVC +``` + +!!! tip "Quick Start" + + To quickly start all the containers, run: + + ```shell + docker-compose --project-directory=docker up + ``` + +## Test + +We provide a containerized environment to run the SSVC test suite. + +```shell +docker-compose --project-directory=docker up test +``` + +## Docs + +We provide a containerized environment to build and serve the SSVC documentation (this website). + +```shell +docker-compose --project-directory=docker up docs +``` + +Then browse to `http://localhost:8000/docs` to access the docs site. + +## SSVC Object Registry API Container + +We provide containerized FastAPI server that allows you to run a local instance +of the SSVC Object Registry API. + +```shell +docker-compose --project-directory=docker up api +``` + +Then browse to `http://localhost:8001/docs` to access the API documentation. + diff --git a/docs/reference/code/decision_point_groups.md b/docs/reference/code/decision_point_groups.md new file mode 100644 index 00000000..b4607f8a --- /dev/null +++ b/docs/reference/code/decision_point_groups.md @@ -0,0 +1,18 @@ +# Decision Point Groups + +Decision Point groups provide collections of related Decision Points for some +specific purpose. + +With the introduction of [Decision Tables](decision_tables.md), +Decision Point groups are less important than they once were, and may be +deprecated in a future release. +However, they can still be useful for documentation and +for some programmatic uses. + +## SSVC Decision Point Groups + +::: ssvc.dp_groups.ssvc.collections + +## CVSS Decision Point Groups + +::: ssvc.dp_groups.cvss.collections \ No newline at end of file diff --git a/docs/reference/code/decision_points.md b/docs/reference/code/decision_points.md new file mode 100644 index 00000000..914ac5ac --- /dev/null +++ b/docs/reference/code/decision_points.md @@ -0,0 +1,7 @@ +# Decision Point Objects + +::: ssvc.decision_points + +::: ssvc.decision_points.base + +::: ssvc.decision_points.helpers \ No newline at end of file diff --git a/docs/reference/code/decision_tables.md b/docs/reference/code/decision_tables.md new file mode 100644 index 00000000..66ab6abb --- /dev/null +++ b/docs/reference/code/decision_tables.md @@ -0,0 +1,7 @@ +# Decision Tables + +::: ssvc.decision_tables + +::: ssvc.decision_tables.base + +::: ssvc.decision_tables.helpers \ No newline at end of file diff --git a/docs/reference/code/index.md b/docs/reference/code/index.md index 0d36bea8..a3498ba0 100644 --- a/docs/reference/code/index.md +++ b/docs/reference/code/index.md @@ -3,8 +3,9 @@ This section provides documentation for the SSVC Python modules. These include: +- [Decision Points](decision_points.md) and [Outcomes](outcomes.md) +- [Decision Tables](decision_tables.md) - [CSV Analyzer](analyze_csv.md) - [Policy Generator](policy_generator.md) -- [Outcomes](outcomes.md) - [Namespaces](namespaces.md) - [Doctools](doctools.md) diff --git a/docs/reference/decision_points/human_impact.md b/docs/reference/decision_points/human_impact.md index 339cdceb..33eabd78 100644 --- a/docs/reference/decision_points/human_impact.md +++ b/docs/reference/decision_points/human_impact.md @@ -7,13 +7,6 @@ from ssvc.doc_helpers import example_block print(example_block(LATEST)) ``` -!!! tip "See also" - - *Human Impact* is a combination of [Safety Impact](./safety_impact.md) and - [Mission Impact](./mission_impact.md) - -Note: This is a compound decision point[^1], therefore it is a notational convenience. - *Human Impact* is a combination of how a vulnerability can affect an organization's mission essential functions as well as safety considerations, whether for the organization's personnel or the public at large. We observe that the day-to-day operations of an organization often have already built in a degree of tolerance to small-scale variance in mission impacts. @@ -25,7 +18,39 @@ Even small deviations in safety are unlikely to go unnoticed or unaddressed. We suspect that the presence of regulatory oversight for safety issues and its absence at the lower end of the mission impact scale influences this behavior. Because of this higher sensitivity to safety concerns, we chose to retain a four-level resolution for the safety dimension. We then combine Mission Impact with Situated Safety impact and map them onto a 4-tiered scale (Low, Medium, High, Very High). -The mapping is shown in the table above. + +!!! tip "See also" + + *Human Impact* is a combination of [Safety Impact](./safety_impact.md) and + [Mission Impact](./mission_impact.md) + + ```python exec="true" idprefix="" + from ssvc.decision_tables.ssvc.human_impact import LATEST as DT + from ssvc.doc_helpers import example_block + + for dp in [v for k,v in DT.decision_points.items() if k != DT.outcome]: + print(example_block(dp)) + ``` + +The mapping is shown in the diagram and table below. + +```python exec="true" idprefix="" +from ssvc.decision_tables.ssvc.human_impact import LATEST as DT +from ssvc.decision_tables.helpers import mapping2mermaid, mermaid_title_from_dt + +rows = DT.mapping +title = mermaid_title_from_dt(DT) +print(mapping2mermaid(rows, title=title)) +``` + +```python exec="true" idprefix="" + +from ssvc.decision_tables.ssvc.human_impact import LATEST as DT +from ssvc.decision_tables.helpers import dt2df_md + +print(dt2df_md(DT)) +``` + [^1]: In pilot implementations of SSVC, we received feedback that organizations tend to think of mission and safety impacts as if they were combined into a single factor: in other words, the priority increases regardless which of the two impact factors was increased. diff --git a/docs/reference/decision_points/public_safety_impact.md b/docs/reference/decision_points/public_safety_impact.md index 15960fa5..0710afac 100644 --- a/docs/reference/decision_points/public_safety_impact.md +++ b/docs/reference/decision_points/public_safety_impact.md @@ -9,7 +9,6 @@ print(example_block(LATEST)) {% include-markdown "../../_includes/safety_cvss_ssvc.md" %} -This is a compound decision point, therefore it is a notational convenience. Suppliers necessarily have a rather coarse-grained perspective on the broadly defined [Safety Impact](safety_impact.md) Decision Point. Therefore we simplify the above into a binary categorization: @@ -18,6 +17,26 @@ Therefore we simplify the above into a binary categorization: [Safety Impact](safety_impact.md) table. - *Minimal* is when none do. +The mapping is shown in the diagram and table below. + +```python exec="true" idprefix="" +from ssvc.decision_tables.ssvc.public_safety_impact import LATEST as DT +from ssvc.decision_tables.helpers import mapping2mermaid, mermaid_title_from_dt + +rows = DT.mapping +title = mermaid_title_from_dt(DT) +print(mapping2mermaid(rows, title=title)) +``` + +```python exec="true" idprefix="" + +from ssvc.decision_tables.ssvc.public_safety_impact import LATEST as DT +from ssvc.decision_tables.helpers import dt2df_md + +print(dt2df_md(DT)) +``` + + ## Prior Versions ```python exec="true" idprefix="" diff --git a/docs/reference/decision_points/utility.md b/docs/reference/decision_points/utility.md index 13fca8b1..a32aa6e4 100644 --- a/docs/reference/decision_points/utility.md +++ b/docs/reference/decision_points/utility.md @@ -29,6 +29,26 @@ This framing makes it easier to analytically derive these categories from a desc Roughly, *Utility* is a combination of two things: (1) the value of each exploitation event and (2) the ease and speed with which the adversary can cause exploitation events. We define *Utility* as laborious, efficient, or super effective, as described in the table above. +The mapping is shown in the diagram and table below. + +```python exec="true" idprefix="" +from ssvc.decision_tables.ssvc.utility import LATEST as DT +from ssvc.decision_tables.helpers import mapping2mermaid, mermaid_title_from_dt + +rows = DT.mapping +title = mermaid_title_from_dt(DT) +print(mapping2mermaid(rows, title=title)) +``` + +```python exec="true" idprefix="" + +from ssvc.decision_tables.ssvc.utility import LATEST as DT +from ssvc.decision_tables.helpers import dt2df_md + +print(dt2df_md(DT)) +``` + + ## Alternative Utility Outputs Alternative heuristics can plausibly be used as proxies for adversary utility. diff --git a/mkdocs.yml b/mkdocs.yml index 56f2c7c7..0831f25d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -32,6 +32,8 @@ nav: - Qualitative Severity: 'howto/cvss_v4/qualitative.md' - Customizing SSVC: 'howto/tree_customization.md' - Acuity Ramp: 'howto/acuity_ramp.md' + - SSVC Tools: + - Docker Containers: 'howto/tools/containers.md' - Understanding SSVC: - Intro: 'topics/index.md' - State of Practice: 'topics/state_of_practice.md' @@ -115,11 +117,14 @@ nav: - Target Distribution: 'reference/decision_points/cvss/target_distribution.md' - Code: - Intro: 'reference/code/index.md' + - Decision Points: 'reference/code/decision_points.md' + - Decision Tables: 'reference/code/decision_tables.md' + - Decision Point Groups: 'reference/code/decision_point_groups.md' + - Outcomes: 'reference/code/outcomes.md' - Namespaces: 'reference/code/namespaces.md' - Selections: 'reference/code/selection.md' - CSV Analyzer: 'reference/code/analyze_csv.md' - Policy Generator: 'reference/code/policy_generator.md' - - Outcomes: 'reference/code/outcomes.md' - Doctools: 'reference/code/doctools.md' - Learning SSVC: - Tutorials: 'tutorials/index.md' diff --git a/requirements.txt b/requirements.txt index c42fb180..ce455ac8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,17 +1,1115 @@ -mkdocs==1.6.1 -mkdocs-bibtex==4.4.0 -mkdocs-include-markdown-plugin==7.1.6 -mkdocs-table-reader-plugin==3.1.0 -mkdocs-material==9.6.18 -mkdocs-material-extensions==1.3.1 -mkdocstrings==0.30.0 -mkdocstrings-python==1.17.0 -mkdocs-print-site-plugin==2.8 -markdown-exec==1.11.0 -thefuzz==0.22.1 -pandas==2.3.2 -scikit-learn==1.6.1 -jsonschema==4.25.1 -networkx==3.4.2 -pydantic==2.11.7 -semver==3.0.4 \ No newline at end of file +# This file was autogenerated by uv via the following command: +# uv export --project=src -o ./requirements.txt +-e . +annotated-types==0.7.0 \ + --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ + --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 + # via pydantic +anyio==4.10.0 \ + --hash=sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6 \ + --hash=sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1 + # via + # httpx + # starlette + # watchfiles +attrs==25.3.0 \ + --hash=sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3 \ + --hash=sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b + # via + # jsonschema + # referencing +babel==2.17.0 \ + --hash=sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d \ + --hash=sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2 + # via mkdocs-material +backrefs==5.9 \ + --hash=sha256:6907635edebbe9b2dc3de3a2befff44d74f30a4562adbb8b36f21252ea19c5cf \ + --hash=sha256:7fdf9771f63e6028d7fee7e0c497c81abda597ea45d6b8f89e8ad76994f5befa \ + --hash=sha256:808548cb708d66b82ee231f962cb36faaf4f2baab032f2fbb783e9c2fdddaa59 \ + --hash=sha256:cc37b19fa219e93ff825ed1fed8879e47b4d89aa7a1884860e2db64ccd7c676b \ + --hash=sha256:db8e8ba0e9de81fcd635f440deab5ae5f2591b54ac1ebe0550a2ca063488cd9f \ + --hash=sha256:df5e169836cc8acb5e440ebae9aad4bf9d15e226d3bad049cf3f6a5c20cc8dc9 \ + --hash=sha256:f48ee18f6252b8f5777a22a00a09a85de0ca931658f1dd96d4406a34f3748c60 + # via mkdocs-material +beautifulsoup4==4.13.4 \ + --hash=sha256:9bbbb14bfde9d79f38b8cd5f8c7c85f4b8f2523190ebed90e950a8dea4cb1c4b \ + --hash=sha256:dbb3c4e1ceae6aefebdaf2423247260cd062430a410e38c66f2baa50a8437195 + # via linkchecker +bracex==2.6 \ + --hash=sha256:0b0049264e7340b3ec782b5cb99beb325f36c3782a32e36e876452fd49a09952 \ + --hash=sha256:98f1347cd77e22ee8d967a30ad4e310b233f7754dbf31ff3fceb76145ba47dc7 + # via wcmatch +certifi==2025.8.3 \ + --hash=sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407 \ + --hash=sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5 + # via + # httpcore + # httpx + # requests + # sentry-sdk +charset-normalizer==3.4.3 \ + --hash=sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154 \ + --hash=sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884 \ + --hash=sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe \ + --hash=sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f \ + --hash=sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc \ + --hash=sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa \ + --hash=sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9 \ + --hash=sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d \ + --hash=sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92 \ + --hash=sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31 \ + --hash=sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f \ + --hash=sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15 \ + --hash=sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392 \ + --hash=sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f \ + --hash=sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8 \ + --hash=sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491 \ + --hash=sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0 \ + --hash=sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927 \ + --hash=sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce \ + --hash=sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14 \ + --hash=sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c \ + --hash=sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc \ + --hash=sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096 \ + --hash=sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db \ + --hash=sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5 \ + --hash=sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce \ + --hash=sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018 \ + --hash=sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93 \ + --hash=sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049 \ + --hash=sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a \ + --hash=sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef \ + --hash=sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16 \ + --hash=sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1 \ + --hash=sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37 \ + --hash=sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9 + # via requests +click==8.2.1 \ + --hash=sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202 \ + --hash=sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b + # via + # mkdocs + # mkdocs-material + # rich-toolkit + # typer + # uvicorn +colorama==0.4.6 \ + --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ + --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 + # via + # click + # griffe + # mkdocs + # mkdocs-material + # pytest + # uvicorn +dnspython==2.7.0 \ + --hash=sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86 \ + --hash=sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1 + # via + # email-validator + # linkchecker +email-validator==2.2.0 \ + --hash=sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631 \ + --hash=sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7 + # via + # fastapi + # pydantic +fastapi==0.116.1 \ + --hash=sha256:c46ac7c312df840f0c9e220f7964bada936781bc4e2e6eb71f1c4d7553786565 \ + --hash=sha256:ed52cbf946abfd70c5a0dccb24673f0670deeb517a88b3544d03c2a6bf283143 + # via ssvc +fastapi-cli==0.0.8 \ + --hash=sha256:0ea95d882c85b9219a75a65ab27e8da17dac02873e456850fa0a726e96e985eb \ + --hash=sha256:2360f2989b1ab4a3d7fc8b3a0b20e8288680d8af2e31de7c38309934d7f8a0ee + # via fastapi +fastapi-cloud-cli==0.1.5 \ + --hash=sha256:341ee585eb731a6d3c3656cb91ad38e5f39809bf1a16d41de1333e38635a7937 \ + --hash=sha256:d80525fb9c0e8af122370891f9fa83cf5d496e4ad47a8dd26c0496a6c85a012a + # via fastapi-cli +ghp-import==2.1.0 \ + --hash=sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619 \ + --hash=sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343 + # via mkdocs +griffe==1.12.1 \ + --hash=sha256:29f5a6114c0aeda7d9c86a570f736883f8a2c5b38b57323d56b3d1c000565567 \ + --hash=sha256:2d7c12334de00089c31905424a00abcfd931b45b8b516967f224133903d302cc + # via mkdocstrings-python +h11==0.16.0 \ + --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ + --hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 + # via + # httpcore + # uvicorn +httpcore==1.0.9 \ + --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ + --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 + # via httpx +httptools==0.6.4 \ + --hash=sha256:16e603a3bff50db08cd578d54f07032ca1631450ceb972c2f834c2b860c28ea2 \ + --hash=sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8 \ + --hash=sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3 \ + --hash=sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5 \ + --hash=sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0 \ + --hash=sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071 \ + --hash=sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c \ + --hash=sha256:69422b7f458c5af875922cdb5bd586cc1f1033295aa9ff63ee196a87519ac8e1 \ + --hash=sha256:85071a1e8c2d051b507161f6c3e26155b5c790e4e28d7f236422dbacc2a9cc44 \ + --hash=sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083 \ + --hash=sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660 \ + --hash=sha256:db78cb9ca56b59b016e64b6031eda5653be0589dba2b1b43453f6e8b405a0970 \ + --hash=sha256:df017d6c780287d5c80601dafa31f17bddb170232d85c066604d8558683711a2 \ + --hash=sha256:ec4f178901fa1834d4a060320d2f3abc5c9e39766953d038f1458cb885f47e81 \ + --hash=sha256:f9eb89ecf8b290f2e293325c646a211ff1c2493222798bb80a530c5e7502494f + # via uvicorn +httpx==0.28.1 \ + --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ + --hash=sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad + # via + # fastapi + # fastapi-cloud-cli +idna==3.10 \ + --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \ + --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 + # via + # anyio + # email-validator + # httpx + # requests +iniconfig==2.1.0 \ + --hash=sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7 \ + --hash=sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760 + # via pytest +itsdangerous==2.2.0 \ + --hash=sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef \ + --hash=sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173 + # via fastapi +jinja2==3.1.6 \ + --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ + --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 + # via + # fastapi + # mkdocs + # mkdocs-material + # mkdocstrings +joblib==1.5.1 \ + --hash=sha256:4719a31f054c7d766948dcd83e9613686b27114f190f717cec7eaa2084f8a74a \ + --hash=sha256:f4f86e351f39fe3d0d32a9f2c3d8af1ee4cec285aafcb27003dda5205576b444 + # via scikit-learn +jsonschema==4.25.1 \ + --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ + --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 + # via ssvc +jsonschema-specifications==2025.4.1 \ + --hash=sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af \ + --hash=sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608 + # via jsonschema +latexcodec==3.0.1 \ + --hash=sha256:a9eb8200bff693f0437a69581f7579eb6bca25c4193515c09900ce76451e452e \ + --hash=sha256:e78a6911cd72f9dec35031c6ec23584de6842bfbc4610a9678868d14cdfb0357 + # via pybtex +linkchecker==10.6.0 \ + --hash=sha256:5268587ed0b0f7e7521b75905128c96856f30f67dad49f66e2c963bc174ca92d \ + --hash=sha256:fb7e8facda7749c2fa5fa5dc241c0adc302da3d31d588964a2570db501aa49e5 +markdown==3.8.2 \ + --hash=sha256:247b9a70dd12e27f67431ce62523e675b866d254f900c4fe75ce3dda62237c45 \ + --hash=sha256:5c83764dbd4e00bdd94d85a19b8d55ccca20fe35b2e678a1422b380324dd5f24 + # via + # mkdocs + # mkdocs-autorefs + # mkdocs-material + # mkdocstrings + # pymdown-extensions +markdown-exec==1.11.0 \ + --hash=sha256:0526957984980f55c02b425d32e8ac8bb21090c109c7012ff905d3ddcc468ceb \ + --hash=sha256:e0313a0dff715869a311d24853b3a7ecbbaa12e74eb0f3cf7d91401a7d8f0082 + # via ssvc +markdown-it-py==4.0.0 \ + --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ + --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 + # via rich +markupsafe==3.0.2 \ + --hash=sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30 \ + --hash=sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9 \ + --hash=sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396 \ + --hash=sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028 \ + --hash=sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557 \ + --hash=sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a \ + --hash=sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c \ + --hash=sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c \ + --hash=sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22 \ + --hash=sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094 \ + --hash=sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5 \ + --hash=sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225 \ + --hash=sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c \ + --hash=sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87 \ + --hash=sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf \ + --hash=sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb \ + --hash=sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48 \ + --hash=sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c \ + --hash=sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6 \ + --hash=sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd \ + --hash=sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1 \ + --hash=sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d \ + --hash=sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca \ + --hash=sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a \ + --hash=sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe \ + --hash=sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8 \ + --hash=sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f \ + --hash=sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f \ + --hash=sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0 \ + --hash=sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79 \ + --hash=sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430 + # via + # jinja2 + # mkdocs + # mkdocs-autorefs + # mkdocstrings +mdurl==0.1.2 \ + --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ + --hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba + # via markdown-it-py +mergedeep==1.3.4 \ + --hash=sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8 \ + --hash=sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307 + # via + # mkdocs + # mkdocs-get-deps +mkdocs==1.6.1 \ + --hash=sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2 \ + --hash=sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e + # via + # mkdocs-autorefs + # mkdocs-bibtex + # mkdocs-include-markdown-plugin + # mkdocs-material + # mkdocs-table-reader-plugin + # mkdocstrings + # ssvc +mkdocs-autorefs==1.4.2 \ + --hash=sha256:83d6d777b66ec3c372a1aad4ae0cf77c243ba5bcda5bf0c6b8a2c5e7a3d89f13 \ + --hash=sha256:e2ebe1abd2b67d597ed19378c0fff84d73d1dbce411fce7a7cc6f161888b6749 + # via + # mkdocstrings + # mkdocstrings-python +mkdocs-bibtex==4.4.0 \ + --hash=sha256:32a1e0624ab0e0edc3539a90a5ffe0a2cb965f03ad5df8746a9fc9e049b6778b \ + --hash=sha256:fc0ce0f9641b63f900585a48cc09f5817345bbaba1435abf361e21fafe279723 + # via ssvc +mkdocs-get-deps==0.2.0 \ + --hash=sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c \ + --hash=sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134 + # via mkdocs +mkdocs-include-markdown-plugin==7.1.6 \ + --hash=sha256:7975a593514887c18ecb68e11e35c074c5499cfa3e51b18cd16323862e1f7345 \ + --hash=sha256:a0753cb82704c10a287f1e789fc9848f82b6beb8749814b24b03dd9f67816677 + # via ssvc +mkdocs-material==9.6.18 \ + --hash=sha256:a2eb253bcc8b66f8c6eaf8379c10ed6e9644090c2e2e9d0971c7722dc7211c05 \ + --hash=sha256:dbc1e146a0ecce951a4d84f97b816a54936cdc9e1edd1667fc6868878ac06701 + # via + # mkdocs-print-site-plugin + # ssvc +mkdocs-material-extensions==1.3.1 \ + --hash=sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443 \ + --hash=sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31 + # via + # mkdocs-material + # ssvc +mkdocs-print-site-plugin==2.8 \ + --hash=sha256:838bd0a9b7141c11c0f1fdaa51ffe70c35740bec1f07c0806f8018e92f93f9da \ + --hash=sha256:ab1c89cdb468352975e3bb3bb0ef25dcc2bb88931b03f173206dc95ab02f843f + # via ssvc +mkdocs-table-reader-plugin==3.1.0 \ + --hash=sha256:50a1302661c14d96b90ba0434ae96110441e0c653ce23559e3c6911fe79e7bd2 \ + --hash=sha256:eb15688ee8c0cd1a842f506f18973b87be22bd7baa5e2e551089de6b7f9ec25b + # via ssvc +mkdocstrings==0.30.0 \ + --hash=sha256:5d8019b9c31ddacd780b6784ffcdd6f21c408f34c0bd1103b5351d609d5b4444 \ + --hash=sha256:ae9e4a0d8c1789697ac776f2e034e2ddd71054ae1cf2c2bb1433ccfd07c226f2 + # via + # mkdocstrings-python + # ssvc +mkdocstrings-python==1.17.0 \ + --hash=sha256:49903fa355dfecc5ad0b891e78ff5d25d30ffd00846952801bbe8331e123d4b0 \ + --hash=sha256:c6295962b60542a9c7468a3b515ce8524616ca9f8c1a38c790db4286340ba501 + # via ssvc +networkx==3.4.2 \ + --hash=sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1 \ + --hash=sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f + # via ssvc +numpy==2.3.2 \ + --hash=sha256:07b62978075b67eee4065b166d000d457c82a1efe726cce608b9db9dd66a73a5 \ + --hash=sha256:087ffc25890d89a43536f75c5fe8770922008758e8eeeef61733957041ed2f9b \ + --hash=sha256:092aeb3449833ea9c0bf0089d70c29ae480685dd2377ec9cdbbb620257f84631 \ + --hash=sha256:095737ed986e00393ec18ec0b21b47c22889ae4b0cd2d5e88342e08b01141f58 \ + --hash=sha256:0a4f2021a6da53a0d580d6ef5db29947025ae8b35b3250141805ea9a32bbe86b \ + --hash=sha256:103ea7063fa624af04a791c39f97070bf93b96d7af7eb23530cd087dc8dbe9dc \ + --hash=sha256:11e58218c0c46c80509186e460d79fbdc9ca1eb8d8aee39d8f2dc768eb781089 \ + --hash=sha256:122bf5ed9a0221b3419672493878ba4967121514b1d7d4656a7580cd11dddcbf \ + --hash=sha256:2738534837c6a1d0c39340a190177d7d66fdf432894f469728da901f8f6dc910 \ + --hash=sha256:27c9f90e7481275c7800dc9c24b7cc40ace3fdb970ae4d21eaff983a32f70c91 \ + --hash=sha256:293b2192c6bcce487dbc6326de5853787f870aeb6c43f8f9c6496db5b1781e45 \ + --hash=sha256:2f4f0215edb189048a3c03bd5b19345bdfa7b45a7a6f72ae5945d2a28272727f \ + --hash=sha256:3dcf02866b977a38ba3ec10215220609ab9667378a9e2150615673f3ffd6c73b \ + --hash=sha256:448a66d052d0cf14ce9865d159bfc403282c9bc7bb2a31b03cc18b651eca8b1a \ + --hash=sha256:4d002ecf7c9b53240be3bb69d80f86ddbd34078bae04d87be81c1f58466f264e \ + --hash=sha256:4e6ecfeddfa83b02318f4d84acf15fbdbf9ded18e46989a15a8b6995dfbf85ab \ + --hash=sha256:508b0eada3eded10a3b55725b40806a4b855961040180028f52580c4729916a2 \ + --hash=sha256:546aaf78e81b4081b2eba1d105c3b34064783027a06b3ab20b6eba21fb64132b \ + --hash=sha256:572d5512df5470f50ada8d1972c5f1082d9a0b7aa5944db8084077570cf98370 \ + --hash=sha256:5ad4ebcb683a1f99f4f392cc522ee20a18b2bb12a2c1c42c3d48d5a1adc9d3d2 \ + --hash=sha256:66459dccc65d8ec98cc7df61307b64bf9e08101f9598755d42d8ae65d9a7a6ee \ + --hash=sha256:6f1ae3dcb840edccc45af496f312528c15b1f79ac318169d094e85e4bb35fdf1 \ + --hash=sha256:72c6df2267e926a6d5286b0a6d556ebe49eae261062059317837fda12ddf0c1a \ + --hash=sha256:72dbebb2dcc8305c431b2836bcc66af967df91be793d63a24e3d9b741374c450 \ + --hash=sha256:754d6755d9a7588bdc6ac47dc4ee97867271b17cee39cb87aef079574366db0a \ + --hash=sha256:76c3e9501ceb50b2ff3824c3589d5d1ab4ac857b0ee3f8f49629d0de55ecf7c2 \ + --hash=sha256:7d6e390423cc1f76e1b8108c9b6889d20a7a1f59d9a60cac4a050fa734d6c1e2 \ + --hash=sha256:8145dd6d10df13c559d1e4314df29695613575183fa2e2d11fac4c208c8a1f73 \ + --hash=sha256:87c930d52f45df092f7578889711a0768094debf73cfcde105e2d66954358125 \ + --hash=sha256:8b1224a734cd509f70816455c3cffe13a4f599b1bf7130f913ba0e2c0b2006c0 \ + --hash=sha256:8dc082ea901a62edb8f59713c6a7e28a85daddcb67454c839de57656478f5b19 \ + --hash=sha256:906a30249315f9c8e17b085cc5f87d3f369b35fedd0051d4a84686967bdbbd0b \ + --hash=sha256:938065908d1d869c7d75d8ec45f735a034771c6ea07088867f713d1cd3bbbe4f \ + --hash=sha256:9c144440db4bf3bb6372d2c3e49834cc0ff7bb4c24975ab33e01199e645416f2 \ + --hash=sha256:9e196ade2400c0c737d93465327d1ae7c06c7cb8a1756121ebf54b06ca183c7f \ + --hash=sha256:a3ef07ec8cbc8fc9e369c8dcd52019510c12da4de81367d8b20bc692aa07573a \ + --hash=sha256:a7af9ed2aa9ec5950daf05bb11abc4076a108bd3c7db9aa7251d5f107079b6a6 \ + --hash=sha256:a9f66e7d2b2d7712410d3bc5684149040ef5f19856f20277cd17ea83e5006286 \ + --hash=sha256:af58de8745f7fa9ca1c0c7c943616c6fe28e75d0c81f5c295810e3c83b5be92f \ + --hash=sha256:b05a89f2fb84d21235f93de47129dd4f11c16f64c87c33f5e284e6a3a54e43f2 \ + --hash=sha256:b5e40e80299607f597e1a8a247ff8d71d79c5b52baa11cc1cce30aa92d2da6e0 \ + --hash=sha256:b9d0878b21e3918d76d2209c924ebb272340da1fb51abc00f986c258cd5e957b \ + --hash=sha256:bc3186bea41fae9d8e90c2b4fb5f0a1f5a690682da79b92574d63f56b529080b \ + --hash=sha256:c63d95dc9d67b676e9108fe0d2182987ccb0f11933c1e8959f42fa0da8d4fa56 \ + --hash=sha256:c771cfac34a4f2c0de8e8c97312d07d64fd8f8ed45bc9f5726a7e947270152b5 \ + --hash=sha256:c8d9727f5316a256425892b043736d63e89ed15bbfe6556c5ff4d9d4448ff3b3 \ + --hash=sha256:cefc2219baa48e468e3db7e706305fcd0c095534a192a08f31e98d83a7d45fb0 \ + --hash=sha256:d95f59afe7f808c103be692175008bab926b59309ade3e6d25009e9a171f7036 \ + --hash=sha256:dd937f088a2df683cbb79dda9a772b62a3e5a8a7e76690612c2737f38c6ef1b6 \ + --hash=sha256:de6ea4e5a65d5a90c7d286ddff2b87f3f4ad61faa3db8dabe936b34c2275b6f8 \ + --hash=sha256:e0486a11ec30cdecb53f184d496d1c6a20786c81e55e41640270130056f8ee48 \ + --hash=sha256:ee807923782faaf60d0d7331f5e86da7d5e3079e28b291973c545476c2b00d07 \ + --hash=sha256:efc81393f25f14d11c9d161e46e6ee348637c0a1e8a54bf9dedc472a3fae993b \ + --hash=sha256:f92d6c2a8535dc4fe4419562294ff957f83a16ebdec66df0805e473ffaad8bd0 \ + --hash=sha256:fc927d7f289d14f5e037be917539620603294454130b6de200091e23d27dc9be \ + --hash=sha256:fed5527c4cf10f16c6d0b6bee1f89958bccb0ad2522c8cadc2efd318bcd545f5 + # via + # pandas + # scikit-learn + # scipy +orjson==3.11.2 \ + --hash=sha256:07349e88025b9b5c783077bf7a9f401ffbfb07fd20e86ec6fc5b7432c28c2c5e \ + --hash=sha256:0afb89f16f07220183fd00f5f297328ed0a68d8722ad1b0c8dcd95b12bc82804 \ + --hash=sha256:13d8d8db6cd8d89d4d4e0f4161acbbb373a4d2a4929e862d1d2119de4aa324ac \ + --hash=sha256:15d17bdb76a142e1f55d91913e012e6e6769659daa6bfef3ef93f11083137e81 \ + --hash=sha256:191ed27a1dddb305083d8716af413d7219f40ec1d4c9b0e977453b4db0d6fb6c \ + --hash=sha256:21cf261e8e79284242e4cb1e5924df16ae28255184aafeff19be1405f6d33f67 \ + --hash=sha256:24e32a558ebed73a6a71c8f1cbc163a7dd5132da5270ff3d8eeb727f4b6d1bc7 \ + --hash=sha256:26693dde66910078229a943e80eeb99fdce6cd2c26277dc80ead9f3ab97d2131 \ + --hash=sha256:29d91d74942b7436f29b5d1ed9bcfc3f6ef2d4f7c4997616509004679936650d \ + --hash=sha256:2cc42960515076eb639b705f105712b658c525863d89a1704d984b929b0577d1 \ + --hash=sha256:3dcba7101ea6a8d4ef060746c0f2e7aa8e2453a1012083e1ecce9726d7554cb7 \ + --hash=sha256:40193ada63fab25e35703454d65b6afc71dbc65f20041cb46c6d91709141ef7f \ + --hash=sha256:45841fbb79c96441a8c58aa29ffef570c5df9af91f0f7a9572e5505e12412f15 \ + --hash=sha256:4ad4c8acb50a28211c33fc7ef85ddf5cb18d4636a5205fd3fa2dce0411a0e30c \ + --hash=sha256:4ca4fb5ac21cd1e48028d4f708b1bb13e39c42d45614befd2ead004a8bba8535 \ + --hash=sha256:50995bbeb5d41a32ad15e023305807f561ac5dcd9bd41a12c8d8d1d2c83e44e6 \ + --hash=sha256:51da1ee2178ed09c00d09c1b953e45846bbc16b6420965eb7a913ba209f606d8 \ + --hash=sha256:51dc033df2e4a4c91c0ba4f43247de99b3cbf42ee7a42ee2b2b2f76c8b2f2cb5 \ + --hash=sha256:53c9e81768c69d4b66b8876ec3c8e431c6e13477186d0db1089d82622bccd19f \ + --hash=sha256:59f8d5ad08602711af9589375be98477d70e1d102645430b5a7985fdbf613b36 \ + --hash=sha256:6a5f62ebbc530bb8bb4b1ead103647b395ba523559149b91a6c545f7cd4110ad \ + --hash=sha256:6ab6e6b4e93b1573a026b6ec16fca9541354dd58e514b62c558b58554ae04307 \ + --hash=sha256:6f59dfea7da1fced6e782bb3699718088b1036cb361f36c6e4dd843c5111aefe \ + --hash=sha256:7c8ac5f6b682d3494217085cf04dadae66efee45349ad4ee2a1da3c97e2305a8 \ + --hash=sha256:901d80d349d8452162b3aa1afb82cec5bee79a10550660bc21311cc61a4c5486 \ + --hash=sha256:91bdcf5e69a8fd8e8bdb3de32b31ff01d2bd60c1e8d5fe7d5afabdcf19920309 \ + --hash=sha256:994181e7f1725bb5f2d481d7d228738e0743b16bf319ca85c29369c65913df14 \ + --hash=sha256:9cb23527efb61fb75527df55d20ee47989c4ee34e01a9c98ee9ede232abf6219 \ + --hash=sha256:a079fdba7062ab396380eeedb589afb81dc6683f07f528a03b6f7aae420a0219 \ + --hash=sha256:a4dd1268e4035af21b8a09e4adf2e61f87ee7bf63b86d7bb0a237ac03fad5b45 \ + --hash=sha256:ae3bb10279d57872f9aba68c9931aa71ed3b295fa880f25e68da79e79453f46e \ + --hash=sha256:b5ca86300aeb383c8fa759566aca065878d3d98c3389d769b43f0a2e84d52c5f \ + --hash=sha256:bde64aa469b5ee46cc960ed241fae3721d6a8801dacb2ca3466547a2535951e4 \ + --hash=sha256:c56777cab2a7b2a8ea687fedafb84b3d7fdafae382165c31a2adf88634c432fa \ + --hash=sha256:cf3bd3967a360e87ee14ed82cb258b7f18c710dacf3822fb0042a14313a673a1 \ + --hash=sha256:d026e1967239ec11a2559b4146a61d13914504b396f74510a1c4d6b19dfd8732 \ + --hash=sha256:d4f13af59a7b84c1ca6b8a7ab70d608f61f7c44f9740cd42409e6ae7b6c8d8b7 \ + --hash=sha256:d7df6c7b8b0931feb3420b72838c3e2ba98c228f7aa60d461bc050cf4ca5f7b2 \ + --hash=sha256:dbb79a0476393c07656b69c8e763c3cc925fa8e1d9e9b7d1f626901bb5025448 \ + --hash=sha256:e36319a5d15b97e4344110517450396845cc6789aed712b1fbf83c1bd95792f6 \ + --hash=sha256:edf49146520fef308c31aa4c45b9925fd9c7584645caca7c0c4217d7900214ae \ + --hash=sha256:ff8b155b145eaf5a9d94d2c476fbe18d6021de93cf36c2ae2c8c5b775763f14e + # via fastapi +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f + # via + # mkdocs + # pytest +paginate==0.5.7 \ + --hash=sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945 \ + --hash=sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591 + # via mkdocs-material +pandas==2.3.2 \ + --hash=sha256:0064187b80a5be6f2f9c9d6bdde29372468751dfa89f4211a3c5871854cfbf7a \ + --hash=sha256:0bd281310d4f412733f319a5bc552f86d62cddc5f51d2e392c8787335c994175 \ + --hash=sha256:0c6ecbac99a354a051ef21c5307601093cb9e0f4b1855984a084bfec9302699e \ + --hash=sha256:0cee69d583b9b128823d9514171cabb6861e09409af805b54459bd0c821a35c2 \ + --hash=sha256:114c2fe4f4328cf98ce5716d1532f3ab79c5919f95a9cfee81d9140064a2e4d6 \ + --hash=sha256:12d039facec710f7ba305786837d0225a3444af7bbd9c15c32ca2d40d157ed8b \ + --hash=sha256:1b9b52693123dd234b7c985c68b709b0b009f4521000d0525f2b95c22f15944b \ + --hash=sha256:213a5adf93d020b74327cb2c1b842884dbdd37f895f42dcc2f09d451d949f811 \ + --hash=sha256:2319656ed81124982900b4c37f0e0c58c015af9a7bbc62342ba5ad07ace82ba9 \ + --hash=sha256:3fbb977f802156e7a3f829e9d1d5398f6192375a3e2d1a9ee0803e35fe70a2b9 \ + --hash=sha256:48fa91c4dfb3b2b9bfdb5c24cd3567575f4e13f9636810462ffed8925352be5a \ + --hash=sha256:4ac8c320bded4718b298281339c1a50fb00a6ba78cb2a63521c39bec95b0209b \ + --hash=sha256:837248b4fc3a9b83b9c6214699a13f069dc13510a6a6d7f9ba33145d2841a012 \ + --hash=sha256:8c13b81a9347eb8c7548f53fd9a4f08d4dfe996836543f805c987bafa03317ae \ + --hash=sha256:96d31a6b4354e3b9b8a2c848af75d31da390657e3ac6f30c05c82068b9ed79b9 \ + --hash=sha256:ab7b58f8f82706890924ccdfb5f48002b83d2b5a3845976a9fb705d36c34dcdb \ + --hash=sha256:b37205ad6f00d52f16b6d09f406434ba928c1a1966e2771006a9033c736d30d2 \ + --hash=sha256:c624b615ce97864eb588779ed4046186f967374185c047070545253a52ab2d57 \ + --hash=sha256:c6f048aa0fd080d6a06cc7e7537c09b53be6642d330ac6f54a600c3ace857ee9 \ + --hash=sha256:d2c3554bd31b731cd6490d94a28f3abb8dd770634a9e06eb6d2911b9827db370 \ + --hash=sha256:df4df0b9d02bb873a106971bb85d448378ef14b86ba96f035f50bbd3688456b4 + # via + # mkdocs-table-reader-plugin + # ssvc +pathspec==0.12.1 \ + --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ + --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 + # via mkdocs +platformdirs==4.3.8 \ + --hash=sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc \ + --hash=sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4 + # via mkdocs-get-deps +pluggy==1.6.0 \ + --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ + --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 + # via pytest +pybtex==0.25.1 \ + --hash=sha256:9053b0d619409a0a83f38abad5d9921de5f7b3ede00742beafcd9f10ad0d8c5c \ + --hash=sha256:9eaf90267c7e83e225af89fea65c370afbf65f458220d3946a9e3049e1eca491 + # via mkdocs-bibtex +pydantic==2.11.7 \ + --hash=sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db \ + --hash=sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b + # via + # fastapi + # fastapi-cloud-cli + # pydantic-extra-types + # pydantic-settings + # ssvc +pydantic-core==2.33.2 \ + --hash=sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56 \ + --hash=sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef \ + --hash=sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a \ + --hash=sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f \ + --hash=sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916 \ + --hash=sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a \ + --hash=sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7 \ + --hash=sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025 \ + --hash=sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849 \ + --hash=sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b \ + --hash=sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e \ + --hash=sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea \ + --hash=sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac \ + --hash=sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162 \ + --hash=sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc \ + --hash=sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1 \ + --hash=sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5 \ + --hash=sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88 \ + --hash=sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290 \ + --hash=sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d \ + --hash=sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc \ + --hash=sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9 \ + --hash=sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9 \ + --hash=sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f \ + --hash=sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5 \ + --hash=sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab \ + --hash=sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1 \ + --hash=sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9 \ + --hash=sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011 \ + --hash=sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6 \ + --hash=sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2 \ + --hash=sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6 + # via pydantic +pydantic-extra-types==2.10.5 \ + --hash=sha256:1dcfa2c0cf741a422f088e0dbb4690e7bfadaaf050da3d6f80d6c3cf58a2bad8 \ + --hash=sha256:b60c4e23d573a69a4f1a16dd92888ecc0ef34fb0e655b4f305530377fa70e7a8 + # via fastapi +pydantic-settings==2.10.1 \ + --hash=sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee \ + --hash=sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796 + # via fastapi +pygments==2.19.2 \ + --hash=sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887 \ + --hash=sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b + # via + # mkdocs-material + # pygments-ansi-color + # pytest + # rich +pygments-ansi-color==0.3.0 \ + --hash=sha256:7018954cf5b11d1e734383a1bafab5af613213f246109417fee3f76da26d5431 \ + --hash=sha256:7eb063feaecadad9d4d1fd3474cbfeadf3486b64f760a8f2a00fc25392180aba + # via markdown-exec +pymdown-extensions==10.16.1 \ + --hash=sha256:aace82bcccba3efc03e25d584e6a22d27a8e17caa3f4dd9f207e49b787aa9a91 \ + --hash=sha256:d6ba157a6c03146a7fb122b2b9a121300056384eafeec9c9f9e584adfdb2a32d + # via + # markdown-exec + # mkdocs-material + # mkdocstrings +pypandoc==1.15 \ + --hash=sha256:4ededcc76c8770f27aaca6dff47724578428eca84212a31479403a9731fc2b16 \ + --hash=sha256:ea25beebe712ae41d63f7410c08741a3cab0e420f6703f95bc9b3a749192ce13 + # via mkdocs-bibtex +pytest==8.4.1 \ + --hash=sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7 \ + --hash=sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c +python-dateutil==2.9.0.post0 \ + --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ + --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 + # via + # ghp-import + # pandas +python-dotenv==1.1.1 \ + --hash=sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc \ + --hash=sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab + # via + # pydantic-settings + # uvicorn +python-multipart==0.0.20 \ + --hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \ + --hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13 + # via fastapi +pytz==2025.2 \ + --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ + --hash=sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00 + # via pandas +pyyaml==6.0.2 \ + --hash=sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48 \ + --hash=sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133 \ + --hash=sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484 \ + --hash=sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5 \ + --hash=sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc \ + --hash=sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1 \ + --hash=sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652 \ + --hash=sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5 \ + --hash=sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8 \ + --hash=sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476 \ + --hash=sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563 \ + --hash=sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b \ + --hash=sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425 \ + --hash=sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183 \ + --hash=sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab \ + --hash=sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725 \ + --hash=sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e \ + --hash=sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4 \ + --hash=sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba + # via + # fastapi + # mkdocs + # mkdocs-get-deps + # mkdocs-table-reader-plugin + # pybtex + # pymdown-extensions + # pyyaml-env-tag + # responses + # uvicorn +pyyaml-env-tag==1.1 \ + --hash=sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04 \ + --hash=sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff + # via mkdocs +rapidfuzz==3.13.0 \ + --hash=sha256:09e908064d3684c541d312bd4c7b05acb99a2c764f6231bd507d4b4b65226c23 \ + --hash=sha256:0da54aa8547b3c2c188db3d1c7eb4d1bb6dd80baa8cdaeaec3d1da3346ec9caa \ + --hash=sha256:0e1d08cb884805a543f2de1f6744069495ef527e279e05370dd7c83416af83f8 \ + --hash=sha256:11b125d8edd67e767b2295eac6eb9afe0b1cdc82ea3d4b9257da4b8e06077798 \ + --hash=sha256:11b47b40650e06147dee5e51a9c9ad73bb7b86968b6f7d30e503b9f8dd1292db \ + --hash=sha256:1343d745fbf4688e412d8f398c6e6d6f269db99a54456873f232ba2e7aeb4939 \ + --hash=sha256:1dc82b6ed01acb536b94a43996a94471a218f4d89f3fdd9185ab496de4b2a981 \ + --hash=sha256:2d18228a2390375cf45726ce1af9d36ff3dc1f11dce9775eae1f1b13ac6ec50f \ + --hash=sha256:2fd0975e015b05c79a97f38883a11236f5a24cca83aa992bd2558ceaa5652b26 \ + --hash=sha256:3f32f15bacd1838c929b35c84b43618481e1b3d7a61b5ed2db0291b70ae88b53 \ + --hash=sha256:461fd13250a2adf8e90ca9a0e1e166515cbcaa5e9c3b1f37545cbbeff9e77f6b \ + --hash=sha256:4671ee300d1818d7bdfd8fa0608580d7778ba701817216f0c17fb29e6b972514 \ + --hash=sha256:4a1a6a906ba62f2556372282b1ef37b26bca67e3d2ea957277cfcefc6275cca7 \ + --hash=sha256:57c390336cb50d5d3bfb0cfe1467478a15733703af61f6dffb14b1cd312a6fae \ + --hash=sha256:5d4e13593d298c50c4f94ce453f757b4b398af3fa0fd2fde693c3e51195b7f69 \ + --hash=sha256:65cc97c2fc2c2fe23586599686f3b1ceeedeca8e598cfcc1b7e56dc8ca7e2aa7 \ + --hash=sha256:694eb531889f71022b2be86f625a4209c4049e74be9ca836919b9e395d5e33b3 \ + --hash=sha256:6e2065f68fb1d0bf65adc289c1bdc45ba7e464e406b319d67bb54441a1b9da9e \ + --hash=sha256:98b8107ff14f5af0243f27d236bcc6e1ef8e7e3b3c25df114e91e3a99572da73 \ + --hash=sha256:9a7c6232be5f809cd39da30ee5d24e6cadd919831e6020ec6c2391f4c3bc9264 \ + --hash=sha256:9f5fe634c9482ec5d4a6692afb8c45d370ae86755e5f57aa6c50bfe4ca2bdd87 \ + --hash=sha256:ae4574cb66cf1e85d32bb7e9ec45af5409c5b3970b7ceb8dea90168024127566 \ + --hash=sha256:b1b065f370d54551dcc785c6f9eeb5bd517ae14c983d2784c064b3aa525896df \ + --hash=sha256:b836f486dba0aceb2551e838ff3f514a38ee72b015364f739e526d720fdb823a \ + --hash=sha256:c2b3dd5d206a12deca16870acc0d6e5036abeb70e3cad6549c294eff15591527 \ + --hash=sha256:c33f9c841630b2bb7e69a3fb5c84a854075bb812c47620978bddc591f764da3d \ + --hash=sha256:d2eaf3839e52cbcc0accbe9817a67b4b0fcf70aaeb229cfddc1c28061f9ce5d8 \ + --hash=sha256:df8e8c21e67afb9d7fbe18f42c6111fe155e801ab103c81109a61312927cc611 \ + --hash=sha256:e05752418b24bbd411841b256344c26f57da1148c5509e34ea39c7eb5099ab72 \ + --hash=sha256:e9d824de871daa6e443b39ff495a884931970d567eb0dfa213d234337343835f \ + --hash=sha256:ed6f416bda1c9133000009d84d9409823eb2358df0950231cc936e4bf784eb97 + # via thefuzz +referencing==0.36.2 \ + --hash=sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa \ + --hash=sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0 + # via + # jsonschema + # jsonschema-specifications +requests==2.32.5 \ + --hash=sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6 \ + --hash=sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf + # via + # linkchecker + # mkdocs-bibtex + # mkdocs-material + # responses +responses==0.25.8 \ + --hash=sha256:0c710af92def29c8352ceadff0c3fe340ace27cf5af1bbe46fb71275bcd2831c \ + --hash=sha256:9374d047a575c8f781b94454db5cab590b6029505f488d12899ddb10a4af1cf4 + # via mkdocs-bibtex +rich==14.1.0 \ + --hash=sha256:536f5f1785986d6dbdea3c75205c473f970777b4a0d6c6dd1b696aa05a3fa04f \ + --hash=sha256:e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8 + # via + # rich-toolkit + # typer +rich-toolkit==0.15.0 \ + --hash=sha256:3f5730e9f2d36d0bfe01cf723948b7ecf4cc355d2b71e2c00e094f7963128c09 \ + --hash=sha256:ddb91008283d4a7989fd8ff0324a48773a7a2276229c6a3070755645538ef1bb + # via + # fastapi-cli + # fastapi-cloud-cli +rignore==0.6.4 \ + --hash=sha256:0a8184fcf567bd6b6d7b85a0c138d98dd40f63054141c96b175844414c5530d7 \ + --hash=sha256:0cc35773a8a9c119359ef974d0856988d4601d4daa6f532c05f66b4587cf35bc \ + --hash=sha256:145177f0e32716dc2f220b07b3cde2385b994b7ea28d5c96fbec32639e9eac6f \ + --hash=sha256:240777332b859dc89dcba59ab6e3f1e062bc8e862ffa3e5f456e93f7fd5cb415 \ + --hash=sha256:2521f7bf3ee1f2ab22a100a3a4eed39a97b025804e5afe4323528e9ce8f084a5 \ + --hash=sha256:2b3b1e266ce45189240d14dfa1057f8013ea34b9bc8b3b44125ec8d25fdb3985 \ + --hash=sha256:456456802b1e77d1e2d149320ee32505b8183e309e228129950b807d204ddd17 \ + --hash=sha256:45fe803628cc14714df10e8d6cdc23950a47eb9eb37dfea9a4779f4c672d2aa0 \ + --hash=sha256:465179bc30beb1f7a3439e428739a2b5777ed26660712b8c4e351b15a7c04483 \ + --hash=sha256:4a4877b4dca9cf31a4d09845b300c677c86267657540d0b4d3e6d0ce3110e6e9 \ + --hash=sha256:4c1ff2fc223f1d9473d36923160af37bf765548578eb9d47a2f52e90da8ae408 \ + --hash=sha256:4d1918221a249e5342b60fd5fa513bf3d6bf272a8738e66023799f0c82ecd788 \ + --hash=sha256:50359e0d5287b5e2743bd2f2fbf05df619c8282fd3af12f6628ff97b9675551d \ + --hash=sha256:52b0957b585ab48a445cf8ac1dbc33a272ab060835e583b4f95aa8c67c23fb2b \ + --hash=sha256:536392c5ec91755db48389546c833c4ab1426fe03e5a8522992b54ef8a244e7e \ + --hash=sha256:66b0e548753e55cc648f1e7b02d9f74285fe48bb49cec93643d31e563773ab3f \ + --hash=sha256:6971ac9fdd5a0bd299a181096f091c4f3fd286643adceba98eccc03c688a6637 \ + --hash=sha256:74720d074b79f32449d5d212ce732e0144a294a184246d1f1e7bcc1fc5c83b69 \ + --hash=sha256:7a6ccc0ea83d2c0c6df6b166f2acacedcc220a516436490f41e99a5ae73b6019 \ + --hash=sha256:84b5121650ae24621154c7bdba8b8970b0739d8146505c9f38e0cda9385d1004 \ + --hash=sha256:91dc94b1cc5af8d6d25ce6edd29e7351830f19b0a03b75cb3adf1f76d00f3007 \ + --hash=sha256:a63f5720dffc8d8fb0a4d02fafb8370a4031ebf3f99a4e79f334a91e905b7349 \ + --hash=sha256:b665b1ea14457d7b49e834baabc635a3b8c10cfb5cca5c21161fabdbfc2b850e \ + --hash=sha256:b79c212d9990a273ad91e8d9765e1766ef6ecedd3be65375d786a252762ba385 \ + --hash=sha256:bcb0d7d7ecc3fbccf6477bb187c04a091579ea139f15f139abe0b3b48bdfef69 \ + --hash=sha256:c6ffa7f2a8894c65aa5dc4e8ac8bbdf39a326c0c6589efd27686cfbb48f0197d \ + --hash=sha256:c7fd339f344a8548724f289495b835bed7b81174a0bc1c28c6497854bd8855db \ + --hash=sha256:ce33982da47ac5dc09d19b04fa8d7c9aa6292fc0bd1ecf33076989faa8886094 \ + --hash=sha256:d0615a6bf4890ec5a90b5fb83666822088fbd4e8fcd740c386fcce51e2f6feea \ + --hash=sha256:d899621867aa266824fbd9150e298f19d25b93903ef0133c09f70c65a3416eca \ + --hash=sha256:e02eecb9e1b9f9bf7c9030ae73308a777bed3b2486204cc74dfcfbe699ab1497 \ + --hash=sha256:e07d9c5270fc869bc431aadcfb6ed0447f89b8aafaa666914c077435dc76a123 \ + --hash=sha256:e439f034277a947a4126e2da79dbb43e33d73d7c09d3d72a927e02f8a16f59aa \ + --hash=sha256:e445fbc214ae18e0e644a78086ea5d0f579e210229a4fbe86367d11a4cd03c11 \ + --hash=sha256:e55bf8f9bbd186f58ab646b4a08718c77131d28a9004e477612b0cbbd5202db2 \ + --hash=sha256:e893fdd2d7fdcfa9407d0b7600ef2c2e2df97f55e1c45d4a8f54364829ddb0ab \ + --hash=sha256:efe18096dcb1596757dfe0b412aab6d32564473ae7ee58dea0a8b4be5b1a2e3b \ + --hash=sha256:f5f9dca46fc41c0a1e236767f68be9d63bdd2726db13a0ae3a30f68414472969 \ + --hash=sha256:feac73377a156fb77b3df626c76f7e5893d9b4e9e886ac8c0f9d44f1206a2a91 + # via fastapi-cloud-cli +rpds-py==0.27.0 \ + --hash=sha256:010c4843a3b92b54373e3d2291a7447d6c3fc29f591772cc2ea0e9f5c1da434b \ + --hash=sha256:0665be515767dc727ffa5f74bd2ef60b0ff85dad6bb8f50d91eaa6b5fb226f51 \ + --hash=sha256:069e0384a54f427bd65d7fda83b68a90606a3835901aaff42185fcd94f5a9295 \ + --hash=sha256:0954e3a92e1d62e83a54ea7b3fdc9efa5d61acef8488a8a3d31fdafbfb00460d \ + --hash=sha256:09965b314091829b378b60607022048953e25f0b396c2b70e7c4c81bcecf932e \ + --hash=sha256:0c431bfb91478d7cbe368d0a699978050d3b112d7f1d440a41e90faa325557fd \ + --hash=sha256:0f401c369186a5743694dd9fc08cba66cf70908757552e1f714bfc5219c655b5 \ + --hash=sha256:0f4f69d7a4300fbf91efb1fb4916421bd57804c01ab938ab50ac9c4aa2212f03 \ + --hash=sha256:13bbc4846ae4c993f07c93feb21a24d8ec637573d567a924b1001e81c8ae80f9 \ + --hash=sha256:14f028eb47f59e9169bfdf9f7ceafd29dd64902141840633683d0bad5b04ff34 \ + --hash=sha256:183f5e221ba3e283cd36fdfbe311d95cd87699a083330b4f792543987167eff1 \ + --hash=sha256:184f0d7b342967f6cda94a07d0e1fae177d11d0b8f17d73e06e36ac02889f303 \ + --hash=sha256:19c990fdf5acecbf0623e906ae2e09ce1c58947197f9bced6bbd7482662231c4 \ + --hash=sha256:203f581accef67300a942e49a37d74c12ceeef4514874c7cede21b012613ca2c \ + --hash=sha256:20e222a44ae9f507d0f2678ee3dd0c45ec1e930f6875d99b8459631c24058aec \ + --hash=sha256:249ab91ceaa6b41abc5f19513cb95b45c6f956f6b89f1fe3d99c81255a849f9e \ + --hash=sha256:27bac29bbbf39601b2aab474daf99dbc8e7176ca3389237a23944b17f8913d97 \ + --hash=sha256:2cff9bdd6c7b906cc562a505c04a57d92e82d37200027e8d362518df427f96cd \ + --hash=sha256:2fe6e18e5c8581f0361b35ae575043c7029d0a92cb3429e6e596c2cdde251432 \ + --hash=sha256:3001013dae10f806380ba739d40dee11db1ecb91684febb8406a87c2ded23dae \ + --hash=sha256:32196b5a99821476537b3f7732432d64d93a58d680a52c5e12a190ee0135d8b5 \ + --hash=sha256:341d8acb6724c0c17bdf714319c393bb27f6d23d39bc74f94221b3e59fc31828 \ + --hash=sha256:3841f66c1ffdc6cebce8aed64e36db71466f1dc23c0d9a5592e2a782a3042c79 \ + --hash=sha256:4045e2fc4b37ec4b48e8907a5819bdd3380708c139d7cc358f03a3653abedb89 \ + --hash=sha256:42894616da0fc0dcb2ec08a77896c3f56e9cb2f4b66acd76fc8992c3557ceb1c \ + --hash=sha256:443d239d02d9ae55b74015234f2cd8eb09e59fbba30bf60baeb3123ad4c6d5ff \ + --hash=sha256:4bc262ace5a1a7dc3e2eac2fa97b8257ae795389f688b5adf22c5db1e2431c43 \ + --hash=sha256:5355527adaa713ab693cbce7c1e0ec71682f599f61b128cf19d07e5c13c9b1f1 \ + --hash=sha256:5b3a5c8089eed498a3af23ce87a80805ff98f6ef8f7bdb70bd1b7dae5105f6ac \ + --hash=sha256:5fa01b3d5e3b7d97efab65bd3d88f164e289ec323a8c033c5c38e53ee25c007e \ + --hash=sha256:6168af0be75bba990a39f9431cdfae5f0ad501f4af32ae62e8856307200517b8 \ + --hash=sha256:64f689ab822f9b5eb6dfc69893b4b9366db1d2420f7db1f6a2adf2a9ca15ad64 \ + --hash=sha256:6b96b0b784fe5fd03beffff2b1533dc0d85e92bab8d1b2c24ef3a5dc8fac5669 \ + --hash=sha256:6c135708e987f46053e0a1246a206f53717f9fadfba27174a9769ad4befba5c3 \ + --hash=sha256:6c27a7054b5224710fcfb1a626ec3ff4f28bcb89b899148c72873b18210e446b \ + --hash=sha256:6de6a7f622860af0146cb9ee148682ff4d0cea0b8fd3ad51ce4d40efb2f061d0 \ + --hash=sha256:7451ede3560086abe1aa27dcdcf55cd15c96b56f543fb12e5826eee6f721f858 \ + --hash=sha256:7873b65686a6471c0037139aa000d23fe94628e0daaa27b6e40607c90e3f5ec4 \ + --hash=sha256:7e57906e38583a2cba67046a09c2637e23297618dc1f3caddbc493f2be97c93f \ + --hash=sha256:86aca1616922b40d8ac1b3073a1ead4255a2f13405e5700c01f7c8d29a03972d \ + --hash=sha256:8a06aa1197ec0281eb1d7daf6073e199eb832fe591ffa329b88bae28f25f5fe5 \ + --hash=sha256:8a1dca5507fa1337f75dcd5070218b20bc68cf8844271c923c1b79dfcbc20391 \ + --hash=sha256:8b23cf252f180cda89220b378d917180f29d313cd6a07b2431c0d3b776aae86f \ + --hash=sha256:8d0e09cf4863c74106b5265c2c310f36146e2b445ff7b3018a56799f28f39f6f \ + --hash=sha256:90fb790138c1a89a2e58c9282fe1089638401f2f3b8dddd758499041bc6e0774 \ + --hash=sha256:92f3b3ec3e6008a1fe00b7c0946a170f161ac00645cde35e3c9a68c2475e8156 \ + --hash=sha256:9d0f92b78cfc3b74a42239fdd8c1266f4715b573204c234d2f9fc3fc7a24f185 \ + --hash=sha256:9da162b718b12c4219eeeeb68a5b7552fbc7aadedf2efee440f88b9c0e54b45d \ + --hash=sha256:a00c91104c173c9043bc46f7b30ee5e6d2f6b1149f11f545580f5d6fdff42c0b \ + --hash=sha256:a029be818059870664157194e46ce0e995082ac49926f1423c1f058534d2aaa9 \ + --hash=sha256:a1b3db5fae5cbce2131b7420a3f83553d4d89514c03d67804ced36161fe8b6b2 \ + --hash=sha256:aa0bf113d15e8abdfee92aa4db86761b709a09954083afcb5bf0f952d6065fdb \ + --hash=sha256:ab47fe727c13c09d0e6f508e3a49e545008e23bf762a245b020391b621f5b726 \ + --hash=sha256:b1fef1f13c842a39a03409e30ca0bf87b39a1e2a305a9924deadb75a43105d23 \ + --hash=sha256:b4c4fbbcff474e1e5f38be1bf04511c03d492d42eec0babda5d03af3b5589374 \ + --hash=sha256:b8a7acf04fda1f30f1007f3cc96d29d8cf0a53e626e4e1655fdf4eabc082d367 \ + --hash=sha256:be0744661afbc4099fef7f4e604e7f1ea1be1dd7284f357924af12a705cc7d5c \ + --hash=sha256:c9ce7a9e967afc0a2af7caa0d15a3e9c1054815f73d6a8cb9225b61921b419bd \ + --hash=sha256:ce4ed8e0c7dbc5b19352b9c2c6131dd23b95fa8698b5cdd076307a33626b72dc \ + --hash=sha256:ce96ab0bdfcef1b8c371ada2100767ace6804ea35aacce0aef3aeb4f3f499ca8 \ + --hash=sha256:cf824aceaeffff029ccfba0da637d432ca71ab21f13e7f6f5179cd88ebc77a8a \ + --hash=sha256:d2f184336bc1d6abfaaa1262ed42739c3789b1e3a65a29916a615307d22ffd2e \ + --hash=sha256:d3c622c39f04d5751408f5b801ecb527e6e0a471b367f420a877f7a660d583f6 \ + --hash=sha256:d93ebdb82363d2e7bec64eecdc3632b59e84bd270d74fe5be1659f7787052f9b \ + --hash=sha256:db8a6313dbac934193fc17fe7610f70cd8181c542a91382531bef5ed785e5615 \ + --hash=sha256:dc79d192fb76fc0c84f2c58672c17bbbc383fd26c3cdc29daae16ce3d927e8b2 \ + --hash=sha256:e14aab02258cb776a108107bd15f5b5e4a1bbaa61ef33b36693dfab6f89d54f9 \ + --hash=sha256:e36c80c49853b3ffda7aa1831bf175c13356b210c73128c861f3aa93c3cc4015 \ + --hash=sha256:eb91d252b35004a84670dfeafadb042528b19842a0080d8b53e5ec1128e8f433 \ + --hash=sha256:f3cd110e02c5bf17d8fb562f6c9df5c20e73029d587cf8602a2da6c5ef1e32cb \ + --hash=sha256:f7a37dd208f0d658e0487522078b1ed68cd6bce20ef4b5a915d2809b9094b410 \ + --hash=sha256:fc327f4497b7087d06204235199daf208fd01c82d80465dc5efa4ec9df1c5b4e \ + --hash=sha256:fcc01c57ce6e70b728af02b2401c5bc853a9e14eb07deda30624374f0aebfe42 \ + --hash=sha256:fde355b02934cc6b07200cc3b27ab0c15870a757d1a72fd401aa92e2ea3c6bfe + # via + # jsonschema + # referencing +scikit-learn==1.6.1 \ + --hash=sha256:0650e730afb87402baa88afbf31c07b84c98272622aaba002559b614600ca691 \ + --hash=sha256:1061b7c028a8663fb9a1a1baf9317b64a257fcb036dae5c8752b2abef31d136f \ + --hash=sha256:2c2cae262064e6a9b77eee1c8e768fc46aa0b8338c6a8297b9b6759720ec0ff2 \ + --hash=sha256:2e69fab4ebfc9c9b580a7a80111b43d214ab06250f8a7ef590a4edf72464dd86 \ + --hash=sha256:2ffa1e9e25b3d93990e74a4be2c2fc61ee5af85811562f1288d5d055880c4322 \ + --hash=sha256:3f59fe08dc03ea158605170eb52b22a105f238a5d512c4470ddeca71feae8e5f \ + --hash=sha256:6a7aa5f9908f0f28f4edaa6963c0a6183f1911e63a69aa03782f0d924c830a35 \ + --hash=sha256:70b1d7e85b1c96383f872a519b3375f92f14731e279a7b4c6cfd650cf5dffc52 \ + --hash=sha256:7a1c43c8ec9fde528d664d947dc4c0789be4077a3647f232869f41d9bf50e0fb \ + --hash=sha256:926f207c804104677af4857b2c609940b743d04c4c35ce0ddc8ff4f053cddc1b \ + --hash=sha256:a17c1dea1d56dcda2fac315712f3651a1fea86565b64b48fa1bc090249cbf236 \ + --hash=sha256:b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e \ + --hash=sha256:c06beb2e839ecc641366000ca84f3cf6fa9faa1777e29cf0c04be6e4d096a348 \ + --hash=sha256:dc5cf3d68c5a20ad6d571584c0750ec641cc46aeef1c1507be51300e6003a7e1 \ + --hash=sha256:e8ca8cb270fee8f1f76fa9bfd5c3507d60c6438bbee5687f81042e2bb98e5a97 + # via ssvc +scipy==1.16.1 \ + --hash=sha256:0851f6a1e537fe9399f35986897e395a1aa61c574b178c0d456be5b1a0f5ca1f \ + --hash=sha256:15240c3aac087a522b4eaedb09f0ad061753c5eebf1ea430859e5bf8640d5919 \ + --hash=sha256:21a611ced9275cb861bacadbada0b8c0623bc00b05b09eb97f23b370fc2ae56d \ + --hash=sha256:2ef500e72f9623a6735769e4b93e9dcb158d40752cdbb077f305487e3e2d1f45 \ + --hash=sha256:30cc4bb81c41831ecfd6dc450baf48ffd80ef5aed0f5cf3ea775740e80f16ecc \ + --hash=sha256:367d567ee9fc1e9e2047d31f39d9d6a7a04e0710c86e701e053f237d14a9b4f6 \ + --hash=sha256:3d0b80fb26d3e13a794c71d4b837e2a589d839fd574a6bbb4ee1288c213ad4a3 \ + --hash=sha256:3ddfb1e8d0b540cb4ee9c53fc3dea3186f97711248fb94b4142a1b27178d8b4b \ + --hash=sha256:3ea0733a2ff73fd6fdc5fecca54ee9b459f4d74f00b99aced7d9a3adb43fb1cc \ + --hash=sha256:44c76f9e8b6e8e488a586190ab38016e4ed2f8a038af7cd3defa903c0a2238b3 \ + --hash=sha256:4cf5785e44e19dcd32a0e4807555e1e9a9b8d475c6afff3d21c3c543a6aa84f4 \ + --hash=sha256:4dc0e7be79e95d8ba3435d193e0d8ce372f47f774cffd882f88ea4e1e1ddc731 \ + --hash=sha256:5451606823a5e73dfa621a89948096c6528e2896e40b39248295d3a0138d594f \ + --hash=sha256:57d75524cb1c5a374958a2eae3d84e1929bb971204cc9d52213fb8589183fc19 \ + --hash=sha256:5aa2687b9935da3ed89c5dbed5234576589dd28d0bf7cd237501ccfbdf1ad608 \ + --hash=sha256:5e1a106f8c023d57a2a903e771228bf5c5b27b5d692088f457acacd3b54511e4 \ + --hash=sha256:65f81a25805f3659b48126b5053d9e823d3215e4a63730b5e1671852a1705921 \ + --hash=sha256:6c62eea7f607f122069b9bad3f99489ddca1a5173bef8a0c75555d7488b6f725 \ + --hash=sha256:709559a1db68a9abc3b2c8672c4badf1614f3b440b3ab326d86a5c0491eafae3 \ + --hash=sha256:744d977daa4becb9fc59135e75c069f8d301a87d64f88f1e602a9ecf51e77b27 \ + --hash=sha256:796a5a9ad36fa3a782375db8f4241ab02a091308eb079746bc0f874c9b998318 \ + --hash=sha256:81929ed0fa7a5713fcdd8b2e6f73697d3b4c4816d090dd34ff937c20fa90e8ab \ + --hash=sha256:81b433bbeaf35728dad619afc002db9b189e45eebe2cd676effe1fb93fef2b9c \ + --hash=sha256:8503517c44c18d1030d666cb70aaac1cc8913608816e06742498833b128488b7 \ + --hash=sha256:85764fb15a2ad994e708258bb4ed8290d1305c62a4e1ef07c414356a24fcfbf8 \ + --hash=sha256:886cc81fdb4c6903a3bb0464047c25a6d1016fef77bb97949817d0c0d79f9e04 \ + --hash=sha256:89728678c5ca5abd610aee148c199ac1afb16e19844401ca97d43dc548a354eb \ + --hash=sha256:8dfbb25dffc4c3dd9371d8ab456ca81beeaf6f9e1c2119f179392f0dc1ab7695 \ + --hash=sha256:978d8311674b05a8f7ff2ea6c6bce5d8b45a0cb09d4c5793e0318f448613ea65 \ + --hash=sha256:bcc12db731858abda693cecdb3bdc9e6d4bd200213f49d224fe22df82687bdd6 \ + --hash=sha256:c0c804d60492a0aad7f5b2bb1862f4548b990049e27e828391ff2bf6f7199998 \ + --hash=sha256:c24fa02f7ed23ae514460a22c57eca8f530dbfa50b1cfdbf4f37c05b5309cc39 \ + --hash=sha256:ca66d980469cb623b1759bdd6e9fd97d4e33a9fad5b33771ced24d0cb24df67e \ + --hash=sha256:cc1d2f2fd48ba1e0620554fe5bc44d3e8f5d4185c8c109c7fbdf5af2792cfad2 \ + --hash=sha256:d8da7c3dd67bcd93f15618938f43ed0995982eb38973023d46d4646c4283ad65 \ + --hash=sha256:dc54f76ac18073bcecffb98d93f03ed6b81a92ef91b5d3b135dcc81d55a724c7 \ + --hash=sha256:e756d688cb03fd07de0fffad475649b03cb89bee696c98ce508b17c11a03f95c \ + --hash=sha256:e7cc1ffcc230f568549fc56670bcf3df1884c30bd652c5da8138199c8c76dae0 \ + --hash=sha256:e8fd15fc5085ab4cca74cb91fe0a4263b1f32e4420761ddae531ad60934c2119 \ + --hash=sha256:f006e323874ffd0b0b816d8c6a8e7f9a73d55ab3b8c3f72b752b226d0e3ac83d \ + --hash=sha256:f0ebb7204f063fad87fc0a0e4ff4a2ff40b2a226e4ba1b7e34bf4b79bf97cd86 \ + --hash=sha256:f1b9e5962656f2734c2b285a8745358ecb4e4efbadd00208c80a389227ec61ff \ + --hash=sha256:f23634f9e5adb51b2a77766dac217063e764337fbc816aa8ad9aaebcd4397fd3 \ + --hash=sha256:f7b8013c6c066609577d910d1a2a077021727af07b6fab0ee22c2f901f22352a \ + --hash=sha256:f965bbf3235b01c776115ab18f092a95aa74c271a52577bcb0563e85738fd618 \ + --hash=sha256:fedc2cbd1baed37474b1924c331b97bdff611d762c196fac1a9b71e67b813b1b + # via + # scikit-learn + # ssvc +semver==3.0.4 \ + --hash=sha256:9c824d87ba7f7ab4a1890799cec8596f15c1241cb473404ea1cb0c55e4b04746 \ + --hash=sha256:afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602 + # via ssvc +sentry-sdk==2.35.0 \ + --hash=sha256:5ea58d352779ce45d17bc2fa71ec7185205295b83a9dbb5707273deb64720092 \ + --hash=sha256:6e0c29b9a5d34de8575ffb04d289a987ff3053cf2c98ede445bea995e3830263 + # via fastapi-cloud-cli +setuptools==80.9.0 \ + --hash=sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922 \ + --hash=sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c + # via mkdocs-bibtex +shellingham==1.5.4 \ + --hash=sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686 \ + --hash=sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de + # via typer +six==1.17.0 \ + --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ + --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 + # via python-dateutil +sniffio==1.3.1 \ + --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ + --hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc + # via anyio +soupsieve==2.7 \ + --hash=sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4 \ + --hash=sha256:ad282f9b6926286d2ead4750552c8a6142bc4c783fd66b0293547c8fe6ae126a + # via beautifulsoup4 +starlette==0.47.2 \ + --hash=sha256:6ae9aa5db235e4846decc1e7b79c4f346adf41e9777aebeb49dfd09bbd7023d8 \ + --hash=sha256:c5847e96134e5c5371ee9fac6fdf1a67336d5815e09eb2a01fdb57a351ef915b + # via fastapi +tabulate==0.9.0 \ + --hash=sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c \ + --hash=sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f + # via mkdocs-table-reader-plugin +thefuzz==0.22.1 \ + --hash=sha256:59729b33556850b90e1093c4cf9e618af6f2e4c985df193fdf3c5b5cf02ca481 \ + --hash=sha256:7138039a7ecf540da323792d8592ef9902b1d79eb78c147d4f20664de79f3680 + # via ssvc +threadpoolctl==3.6.0 \ + --hash=sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb \ + --hash=sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e + # via scikit-learn +typer==0.16.1 \ + --hash=sha256:90ee01cb02d9b8395ae21ee3368421faf21fa138cb2a541ed369c08cec5237c9 \ + --hash=sha256:d358c65a464a7a90f338e3bb7ff0c74ac081449e53884b12ba658cbd72990614 + # via + # fastapi-cli + # fastapi-cloud-cli +typing-extensions==4.14.1 \ + --hash=sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36 \ + --hash=sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76 + # via + # anyio + # beautifulsoup4 + # fastapi + # pydantic + # pydantic-core + # pydantic-extra-types + # referencing + # rich-toolkit + # starlette + # typer + # typing-inspection +typing-inspection==0.4.1 \ + --hash=sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51 \ + --hash=sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28 + # via + # pydantic + # pydantic-settings +tzdata==2025.2 \ + --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ + --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 + # via pandas +ujson==5.10.0 \ + --hash=sha256:2a890b706b64e0065f02577bf6d8ca3b66c11a5e81fb75d757233a38c07a1f20 \ + --hash=sha256:38665e7d8290188b1e0d57d584eb8110951a9591363316dd41cf8686ab1d0abc \ + --hash=sha256:38d5d36b4aedfe81dfe251f76c0467399d575d1395a1755de391e58985ab1c2e \ + --hash=sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539 \ + --hash=sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165 \ + --hash=sha256:59e02cd37bc7c44d587a0ba45347cc815fb7a5fe48de16bf05caa5f7d0d2e816 \ + --hash=sha256:604a046d966457b6cdcacc5aa2ec5314f0e8c42bae52842c1e6fa02ea4bda42e \ + --hash=sha256:618efd84dc1acbd6bff8eaa736bb6c074bfa8b8a98f55b61c38d4ca2c1f7f287 \ + --hash=sha256:621e34b4632c740ecb491efc7f1fcb4f74b48ddb55e65221995e74e2d00bbff0 \ + --hash=sha256:6627029ae4f52d0e1a2451768c2c37c0c814ffc04f796eb36244cf16b8e57043 \ + --hash=sha256:67079b1f9fb29ed9a2914acf4ef6c02844b3153913eb735d4bf287ee1db6e557 \ + --hash=sha256:6dea1c8b4fc921bf78a8ff00bbd2bfe166345f5536c510671bccececb187c80e \ + --hash=sha256:6e32abdce572e3a8c3d02c886c704a38a1b015a1fb858004e03d20ca7cecbb21 \ + --hash=sha256:98ba15d8cbc481ce55695beee9f063189dce91a4b08bc1d03e7f0152cd4bbdd5 \ + --hash=sha256:a65b6af4d903103ee7b6f4f5b85f1bfd0c90ba4eeac6421aae436c9988aa64a2 \ + --hash=sha256:a9d2edbf1556e4f56e50fab7d8ff993dbad7f54bac68eacdd27a8f55f433578e \ + --hash=sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1 \ + --hash=sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f \ + --hash=sha256:d7d0e0ceeb8fe2468c70ec0c37b439dd554e2aa539a8a56365fd761edb418988 \ + --hash=sha256:f3caf9cd64abfeb11a3b661329085c5e167abbe15256b3b68cb5d914ba7396f3 \ + --hash=sha256:f8ccb77b3e40b151e20519c6ae6d89bfe3f4c14e8e210d910287f778368bb3d1 + # via fastapi +urllib3==2.5.0 \ + --hash=sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760 \ + --hash=sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc + # via + # requests + # responses + # sentry-sdk +uvicorn==0.35.0 \ + --hash=sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a \ + --hash=sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01 + # via + # fastapi + # fastapi-cli + # fastapi-cloud-cli +uvloop==0.21.0 ; platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32' \ + --hash=sha256:183aef7c8730e54c9a3ee3227464daed66e37ba13040bb3f350bc2ddc040f22f \ + --hash=sha256:359ec2c888397b9e592a889c4d72ba3d6befba8b2bb01743f72fffbde663b59c \ + --hash=sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3 \ + --hash=sha256:461d9ae6660fbbafedd07559c6a2e57cd553b34b0065b6550685f6653a98c1cb \ + --hash=sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6 \ + --hash=sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af \ + --hash=sha256:86975dca1c773a2c9864f4c52c5a55631038e387b47eaf56210f873887b6c8dc \ + --hash=sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553 \ + --hash=sha256:baa4dcdbd9ae0a372f2167a207cd98c9f9a1ea1188a8a526431eef2f8116cc8d \ + --hash=sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc \ + --hash=sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281 \ + --hash=sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816 \ + --hash=sha256:f7089d2dc73179ce5ac255bdf37c236a9f914b264825fdaacaded6990a7fb4c2 + # via uvicorn +validators==0.35.0 \ + --hash=sha256:992d6c48a4e77c81f1b4daba10d16c3a9bb0dbb79b3a19ea847ff0928e70497a \ + --hash=sha256:e8c947097eae7892cb3d26868d637f79f47b4a0554bc6b80065dfe5aac3705dd + # via mkdocs-bibtex +watchdog==6.0.0 \ + --hash=sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a \ + --hash=sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2 \ + --hash=sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f \ + --hash=sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c \ + --hash=sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c \ + --hash=sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0 \ + --hash=sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13 \ + --hash=sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134 \ + --hash=sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e \ + --hash=sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379 \ + --hash=sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282 \ + --hash=sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b \ + --hash=sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f \ + --hash=sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948 \ + --hash=sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860 \ + --hash=sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680 \ + --hash=sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26 + # via mkdocs +watchfiles==1.1.0 \ + --hash=sha256:0a7d40b77f07be87c6faa93d0951a0fcd8cbca1ddff60a1b65d741bac6f3a9f6 \ + --hash=sha256:12b0a02a91762c08f7264e2e79542f76870c3040bbc847fb67410ab81474932a \ + --hash=sha256:12fe8eaffaf0faa7906895b4f8bb88264035b3f0243275e0bf24af0436b27259 \ + --hash=sha256:130fc497b8ee68dce163e4254d9b0356411d1490e868bd8790028bc46c5cc297 \ + --hash=sha256:17ab167cca6339c2b830b744eaf10803d2a5b6683be4d79d8475d88b4a8a4be1 \ + --hash=sha256:20ecc8abbd957046f1fe9562757903f5eaf57c3bce70929fda6c7711bb58074a \ + --hash=sha256:239736577e848678e13b201bba14e89718f5c2133dfd6b1f7846fa1b58a8532b \ + --hash=sha256:249590eb75ccc117f488e2fabd1bfa33c580e24b96f00658ad88e38844a040bb \ + --hash=sha256:29e7bc2eee15cbb339c68445959108803dc14ee0c7b4eea556400131a8de462b \ + --hash=sha256:328dbc9bff7205c215a7807da7c18dce37da7da718e798356212d22696404339 \ + --hash=sha256:32d6d4e583593cb8576e129879ea0991660b935177c0f93c6681359b3654bfa9 \ + --hash=sha256:3434e401f3ce0ed6b42569128b3d1e3af773d7ec18751b918b89cd49c14eaafb \ + --hash=sha256:37d3d3f7defb13f62ece99e9be912afe9dd8a0077b7c45ee5a57c74811d581a4 \ + --hash=sha256:4281cd9fce9fc0a9dbf0fc1217f39bf9cf2b4d315d9626ef1d4e87b84699e7e8 \ + --hash=sha256:5007f860c7f1f8df471e4e04aaa8c43673429047d63205d1630880f7637bca30 \ + --hash=sha256:50a51a90610d0845a5931a780d8e51d7bd7f309ebc25132ba975aca016b576a0 \ + --hash=sha256:5366164391873ed76bfdf618818c82084c9db7fac82b64a20c44d335eec9ced5 \ + --hash=sha256:60022527e71d1d1fda67a33150ee42869042bce3d0fcc9cc49be009a9cded3fb \ + --hash=sha256:62cc7a30eeb0e20ecc5f4bd113cd69dcdb745a07c68c0370cea919f373f65d9e \ + --hash=sha256:693ed7ec72cbfcee399e92c895362b6e66d63dac6b91e2c11ae03d10d503e575 \ + --hash=sha256:6d2404af8db1329f9a3c9b79ff63e0ae7131986446901582067d9304ae8aaf7f \ + --hash=sha256:7080c4bb3efd70a07b1cc2df99a7aa51d98685be56be6038c3169199d0a1c69f \ + --hash=sha256:7fd1b3879a578a8ec2076c7961076df540b9af317123f84569f5a9ddee64ce92 \ + --hash=sha256:80f811146831c8c86ab17b640801c25dc0a88c630e855e2bef3568f30434d52b \ + --hash=sha256:891c69e027748b4a73847335d208e374ce54ca3c335907d381fde4e41661b13b \ + --hash=sha256:8ac164e20d17cc285f2b94dc31c384bc3aa3dd5e7490473b3db043dd70fbccfd \ + --hash=sha256:8c5701dc474b041e2934a26d31d39f90fac8a3dee2322b39f7729867f932b1d4 \ + --hash=sha256:95ab1594377effac17110e1352989bdd7bdfca9ff0e5eeccd8c69c5389b826d0 \ + --hash=sha256:9974d2f7dc561cce3bb88dfa8eb309dab64c729de85fba32e98d75cf24b66297 \ + --hash=sha256:9c733cda03b6d636b4219625a4acb5c6ffb10803338e437fb614fef9516825ef \ + --hash=sha256:9dc001c3e10de4725c749d4c2f2bdc6ae24de5a88a339c4bce32300a31ede179 \ + --hash=sha256:a543492513a93b001975ae283a51f4b67973662a375a403ae82f420d2c7205ee \ + --hash=sha256:a8f6f72974a19efead54195bc9bed4d850fc047bb7aa971268fd9a8387c89011 \ + --hash=sha256:a9ccbf1f129480ed3044f540c0fdbc4ee556f7175e5ab40fe077ff6baf286d4e \ + --hash=sha256:adb4167043d3a78280d5d05ce0ba22055c266cf8655ce942f2fb881262ff3cdf \ + --hash=sha256:af06c863f152005c7592df1d6a7009c836a247c9d8adb78fef8575a5a98699db \ + --hash=sha256:b067915e3c3936966a8607f6fe5487df0c9c4afb85226613b520890049deea20 \ + --hash=sha256:ba0e3255b0396cac3cc7bbace76404dd72b5438bf0d8e7cefa2f79a7f3649caa \ + --hash=sha256:bfe3c517c283e484843cb2e357dd57ba009cff351edf45fb455b5fbd1f45b15f \ + --hash=sha256:c68e9f1fcb4d43798ad8814c4c1b61547b014b667216cb754e606bfade587018 \ + --hash=sha256:cbcf8630ef4afb05dc30107bfa17f16c0896bb30ee48fc24bf64c1f970f3b1fd \ + --hash=sha256:cbd949bdd87567b0ad183d7676feb98136cde5bb9025403794a4c0db28ed3a47 \ + --hash=sha256:cc08ef8b90d78bfac66f0def80240b0197008e4852c9f285907377b2947ffdcb \ + --hash=sha256:d05686b5487cfa2e2c28ff1aa370ea3e6c5accfe6435944ddea1e10d93872147 \ + --hash=sha256:d0e10e6f8f6dc5762adee7dece33b722282e1f59aa6a55da5d493a97282fedd8 \ + --hash=sha256:d181ef50923c29cf0450c3cd47e2f0557b62218c50b2ab8ce2ecaa02bd97e670 \ + --hash=sha256:d9481174d3ed982e269c090f780122fb59cee6c3796f74efe74e70f7780ed94c \ + --hash=sha256:d9ba68ec283153dead62cbe81872d28e053745f12335d037de9cbd14bd1877f5 \ + --hash=sha256:dc44678a72ac0910bac46fa6a0de6af9ba1355669b3dfaf1ce5f05ca7a74364e \ + --hash=sha256:e78b6ed8165996013165eeabd875c5dfc19d41b54f94b40e9fff0eb3193e5e8e \ + --hash=sha256:eff4b8d89f444f7e49136dc695599a591ff769300734446c0a86cba2eb2f9895 \ + --hash=sha256:f21af781a4a6fbad54f03c598ab620e3a77032c5878f3d780448421a6e1818c7 \ + --hash=sha256:f2f0498b7d2a3c072766dba3274fe22a183dbea1f99d188f1c6c72209a1063dc \ + --hash=sha256:f7208ab6e009c627b7557ce55c465c98967e8caa8b11833531fdf95799372633 \ + --hash=sha256:f7590d5a455321e53857892ab8879dce62d1f4b04748769f5adf2e707afb9d4f \ + --hash=sha256:fa257a4d0d21fcbca5b5fcba9dca5a78011cb93c0323fb8855c6d2dfbc76eb77 \ + --hash=sha256:fba9b62da882c1be1280a7584ec4515d0a6006a94d6e5819730ec2eab60ffe12 + # via uvicorn +wcmatch==10.1 \ + --hash=sha256:5848ace7dbb0476e5e55ab63c6bbd529745089343427caa5537f230cc01beb8a \ + --hash=sha256:f11f94208c8c8484a16f4f48638a85d771d9513f4ab3f37595978801cb9465af + # via mkdocs-include-markdown-plugin +websockets==15.0.1 \ + --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ + --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ + --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ + --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ + --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ + --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ + --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ + --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ + --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ + --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ + --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ + --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ + --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ + --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ + --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ + --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ + --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ + --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ + --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ + --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ + --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ + --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ + --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ + --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 + # via uvicorn diff --git a/src/pyproject.toml b/src/pyproject.toml index 83b62dbb..3025fbb9 100644 --- a/src/pyproject.toml +++ b/src/pyproject.toml @@ -20,7 +20,7 @@ authors = [ ] description = "Tools for working with a Stakeholder Specific Vulnerability Categorization (SSVC)" readme = {file="README.md", content-type="text/markdown"} -requires-python = ">=3.8" +requires-python = ">=3.12" keywords =["ssvc","vulnerability management","vulnerability management"] license = {file="LICENSE.md"} classifiers = [ @@ -31,8 +31,25 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Python Modules", ] dependencies = [ - "mkdocs","mkdocs-material","mkdocs-material-extensions","mkdocstrings","mkdocstrings-python", - "mkdocs-include-markdown-plugin", "pandas","scipy", "dataclasses-json", "jsonschema" + "mkdocs==1.6.1", + "mkdocs-material==9.6.18", + "mkdocs-material-extensions==1.3.1", + "mkdocstrings==0.30.0", + "mkdocstrings-python==1.17.0", + "mkdocs-include-markdown-plugin==7.1.6", + "pandas==2.3.2", + "scipy==1.16.1", + "jsonschema==4.25.1", + "mkdocs-bibtex==4.4.0", + "mkdocs-table-reader-plugin==3.1.0", + "mkdocs-print-site-plugin==2.8", + "markdown-exec[ansi]==1.11.0", + "thefuzz==0.22.1", + "scikit-learn==1.6.1", + "networkx==3.4.2", + "pydantic==2.11.7", + "semver==3.0.4", + "fastapi[all,standard]>=0.116.1", ] dynamic = ["version",] @@ -67,4 +84,10 @@ minversion = "6.0" addopts = "-ra -q" testpaths = [ "test", -] \ No newline at end of file +] + +[dependency-groups] +dev = [ + "linkchecker>=10.6.0", + "pytest>=8.4.1", +] diff --git a/src/ssvc/api/__init__.py b/src/ssvc/api/__init__.py new file mode 100644 index 00000000..bf6fa6cc --- /dev/null +++ b/src/ssvc/api/__init__.py @@ -0,0 +1,20 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +"""SSVC API module.""" diff --git a/src/ssvc/api/helpers.py b/src/ssvc/api/helpers.py new file mode 100644 index 00000000..c9b5ce78 --- /dev/null +++ b/src/ssvc/api/helpers.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +""" +file: helpers +author: adh +created_at: 8/20/25 4:35 PM +""" + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from typing import Any + +from fastapi import HTTPException + + +def _404_on_none(obj: Any) -> None: + """ + API helper function to raise a 404 HTTPException if the passed object is None. + + Args: + obj: The object to check. If it is None, a 404 error will be raised. + """ + if obj is None: + raise HTTPException(status_code=404, detail=f"Item not found") diff --git a/src/ssvc/api/main.py b/src/ssvc/api/main.py new file mode 100644 index 00000000..be460440 --- /dev/null +++ b/src/ssvc/api/main.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python +""" +API for SSVC +""" + + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from fastapi import FastAPI +from fastapi.responses import RedirectResponse + +import ssvc # noqa: F401 +from ssvc.api.routers import ( + decision_point, + decision_points, + decision_table, + decision_tables, + keys, + namespaces, + objects, + types, + versions, +) +from ssvc.registry.base import ( + get_registry, +) + +r = get_registry() + +app = FastAPI( + title="SSVC Object Registry API", + description="An API for accessing SSVC decision points and decision tables.", + version="0.1.0", + contact={ + "name": "CERT/CC SSVC Team", + "url": "https://certcc.github.io/SSVC/", + "email": "cert@cert.org", + }, +) +app.include_router(decision_point.router) +app.include_router(decision_points.router) +app.include_router(decision_table.router) +app.include_router(decision_tables.router) +app.include_router(types.router) +app.include_router(namespaces.router) +app.include_router(keys.router) +app.include_router(versions.router) +app.include_router(objects.router) + + +# root should redirect to docs +# at least until we have something better to show +@app.get("/", include_in_schema=False) +async def redirect_root_to_docs(): + return RedirectResponse(url="/docs") + + +if __name__ == "__main__": + from tabulate import tabulate + + rows = [] + for route in app.routes: + methods = ",".join(sorted(route.methods - {"HEAD", "OPTIONS"})) + response_model = getattr(route, "response_model", None) + response_model_name = response_model.__name__ if response_model else "" + description = getattr(route, "summary", "") or getattr( + route, "description", "" + ) + rows.append([route.path, methods, response_model_name, description]) + + table = tabulate( + rows, + headers=["Path", "Methods", "Response Model", "Description"], + tablefmt="github", + ) + print(table) diff --git a/src/ssvc/api/response_models/__init__.py b/src/ssvc/api/response_models/__init__.py new file mode 100644 index 00000000..d6de6b3f --- /dev/null +++ b/src/ssvc/api/response_models/__init__.py @@ -0,0 +1,343 @@ +"""Response Models for SSVC API.""" + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from pydantic import RootModel, model_validator + +from ssvc.api.response_models._type_defs import (DecisionPointDictType, DecisionPointValuesListType, + DecisionTableDictType, KeyDictType, NamespaceDictType, StringsListType, + TypesDictType, VersionDictType) +from ssvc.decision_points.base import DecisionPoint, DecisionPointValue +from ssvc.decision_tables.base import DecisionTable + + +class DecisionPointListResponse(RootModel[list[DecisionPoint]]): + """Response model for a list of DecisionPoint objects.""" + + @model_validator(mode="before") + @classmethod + def model_validate(cls, value): + if not isinstance(value, list): + raise TypeError("Value must be a list") + + for item in value: + if not isinstance(item, DecisionPoint): + raise TypeError( + f"Item '{item}' must be a DecisionPoint object" + ) + + return value + + +class DecisionPointValueListResponse(RootModel[DecisionPointValuesListType]): + """Response model for a list of DecisionPointValue objects.""" + + @model_validator(mode="before") + @classmethod + def model_validate(cls, value): + if not isinstance(value, list): + raise TypeError("Value must be a list") + + for item in value: + if not isinstance(item, DecisionPointValue): + raise TypeError( + f"Item '{item}' must be a DecisionPointValue object" + ) + + return value + + +class DecisionPointDictResponse(RootModel[DecisionPointDictType]): + """A dictionary of DecisionPoint objects with keys as 'namespace:key:version'.""" + + @model_validator(mode="before") + @classmethod + def model_validate(cls, value): + if not isinstance(value, dict): + raise TypeError("Value must be a dictionary") + + for k, obj in value.items(): + if not isinstance(k, str): + raise TypeError(f"Key '{k}' must be a string") + if not isinstance(obj, DecisionPoint): + raise TypeError(f"Value for key '{k}' must be a DecisionPoint") + + # key must be the value.id + if k != obj.id: + raise ValueError( + f"Key '{k}' does not match DecisionPoint id '{obj.id}'" + ) + + return value + + +class DecisionTableDictResponse(RootModel[DecisionTableDictType]): + """A dictionary of DecisionTable objects with keys as 'namespace:key:version'.""" + + @model_validator(mode="before") + @classmethod + def model_validate(cls, value): + if not isinstance(value, dict): + raise TypeError("Value must be a dictionary") + + for k, obj in value.items(): + if not isinstance(k, str): + raise TypeError(f"Key '{k}' must be a string") + if not isinstance(obj, DecisionTable): + raise TypeError(f"Value for key '{k}' must be a DecisionTable") + + # key must be the value.id + if k != obj.id: + raise ValueError( + f"Key '{k}' does not match DecisionPoint id '{obj.id}'" + ) + + return value + + +class ListOfStringsResponse(RootModel[StringsListType]): + """Response model for a list of strings.""" + + @model_validator(mode="before") + @classmethod + def model_validate(cls, value): + if not isinstance(value, list): + raise TypeError("Value must be a list") + + for item in value: + if not isinstance(item, str): + raise TypeError(f"Item '{item}' must be a string") + + return value + + +class TypesDictResponse(RootModel[TypesDictType]): + """Response model for the list of object types.""" + + @model_validator(mode="before") + @classmethod + def model_validate(cls, value): + if not isinstance(value, dict): + raise TypeError("Value must be a dictionary") + + if "types" not in value: + raise ValueError('Top-level key must be "types"') + + if not isinstance(value["types"], list): + raise TypeError('"types" must be a list') + + for item in value["types"]: + if not isinstance(item, str): + raise TypeError(f'Object type "{item}" must be a string') + + return value + + +class NamespaceDictResponse(RootModel[NamespaceDictType]): + """Response model for the namespaces of object types.""" + + @model_validator(mode="before") + @classmethod + def model_validate(cls, value): + # validators: + # top key is "types" + # then the keys of that dict are object types + # then the keys of that dict is "namespaces" + # and the value of that is a list of strings + if not isinstance(value, dict): + raise TypeError("Value must be a dictionary") + + if "types" not in value: + raise ValueError('Top-level key must be "types"') + + if not isinstance(value["types"], dict): + raise TypeError('"types" must be a dictionary') + + for objtype, obj in value["types"].items(): + if not isinstance(obj, dict): + raise TypeError( + f'Value for object type "{objtype}" must be a dictionary' + ) + + if "namespaces" not in obj: + raise ValueError( + f'Key "namespaces" missing for object type "{objtype}"' + ) + + if not isinstance(obj["namespaces"], list): + raise TypeError( + f'"namespaces" for object type "{objtype}" must be a list' + ) + + for ns in obj["namespaces"]: + if not isinstance(ns, str): + raise TypeError( + f'Namespace "{ns}" for object type "{objtype}" must be a string' + ) + + return value + + +class KeyDictResponse( + RootModel[KeyDictType], +): + """Response model for key list grouped by object type and namespace.""" + + # validators: + # top key is "types" + # then the keys of that dict are object types + # then the keys of that dict is "namespaces" + # then the keys of that dict are namespace strings + # then the keys of that dict are "keys" + # and the value of that is a list of strings + @model_validator(mode="before") + @classmethod + def model_validate(cls, value): + if not isinstance(value, dict): + raise TypeError("Value must be a dictionary") + + if "types" not in value: + raise ValueError('Top-level key must be "types"') + + if not isinstance(value["types"], dict): + raise TypeError('"types" must be a dictionary') + + for objtype, obj in value["types"].items(): + if not isinstance(objtype, str): + raise TypeError(f'Object type "{objtype}" must be a string') + + if not isinstance(obj, dict): + raise TypeError( + f'Value for object type "{objtype}" must be a dictionary' + ) + + if "namespaces" not in obj: + raise ValueError( + f'Key "namespaces" missing for object type "{objtype}"' + ) + + if not isinstance(obj["namespaces"], dict): + raise TypeError( + f'"namespaces" for object type "{objtype}" must be a dictionary' + ) + + for namespace, ns in obj["namespaces"].items(): + if not isinstance(ns, dict): + raise TypeError( + f'Value for namespace "{namespace}" in object type "{objtype}" must be a dictionary' + ) + + if "keys" not in ns: + raise ValueError( + f'Key "keys" missing for namespace "{namespace}" in object type "{objtype}"' + ) + + if not isinstance(ns["keys"], list): + raise TypeError( + f'"keys" for namespace "{namespace}" in object type "{objtype}" must be a list' + ) + for key in ns["keys"]: + if not isinstance(key, str): + raise TypeError( + f'Key "{key}" in namespace "{namespace}" of object type "{objtype}" must be a string' + ) + + return value + + +class VersionDictResponse(RootModel[VersionDictType]): + """Response model for version list grouped by object type, namespace, and key.""" + + @model_validator(mode="before") + @classmethod + def model_validate(cls, value): + # validators: + # top key is "types" + # then the keys of that dict are object types + # then the keys of that dict is "namespaces" + # then the keys of that dict are namespace strings + # then the keys of that dict are "keys" + # then the keys of that dict are key strings + # then the keys of that dict are "versions" + # and the value of that is a list of strings + if not isinstance(value, dict): + raise TypeError("Value must be a dictionary") + + if "types" not in value: + raise ValueError('Top-level key must be "types"') + + if not isinstance(value["types"], dict): + raise TypeError('"types" must be a dictionary') + + for objtype, obj in value["types"].items(): + if not isinstance(objtype, str): + raise TypeError(f'Object type "{objtype}" must be a string') + + if not isinstance(obj, dict): + raise TypeError( + f'Value for object type "{objtype}" must be a dictionary' + ) + + if "namespaces" not in obj: + raise ValueError( + f'Key "namespaces" missing for object type "{objtype}"' + ) + + if not isinstance(obj["namespaces"], dict): + raise TypeError( + f'"namespaces" for object type "{objtype}" must be a dictionary' + ) + + for namespace, ns in obj["namespaces"].items(): + if not isinstance(ns, dict): + raise TypeError( + f'Value for namespace "{namespace}" in object type "{objtype}" must be a dictionary' + ) + + if "keys" not in ns: + raise ValueError( + f'Key "keys" missing for namespace "{namespace}" in object type "{objtype}"' + ) + + if not isinstance(ns["keys"], dict): + raise TypeError( + f'"keys" for namespace "{namespace}" in object type "{objtype}" must be a dictionary' + ) + + for key, k in ns["keys"].items(): + if not isinstance(k, dict): + raise TypeError( + f'Value for key "{key}" in namespace "{namespace}" of object type "{objtype}" must be a dictionary' + ) + if "versions" not in k: + raise ValueError( + f'Key "versions" missing for key "{key}" in namespace "{namespace}" of object type "{objtype}"' + ) + if not isinstance(k["versions"], list): + raise TypeError( + f'"versions" for key "{key}" in namespace "{namespace}" of object type "{objtype}" must be a list' + ) + for version in k["versions"]: + if not isinstance(version, str): + raise TypeError( + f'Version "{version}" in key "{key}" of namespace "{namespace}" in object type "{objtype}" must be a string' + ) + + return value diff --git a/src/ssvc/api/response_models/_type_defs.py b/src/ssvc/api/response_models/_type_defs.py new file mode 100644 index 00000000..394cff87 --- /dev/null +++ b/src/ssvc/api/response_models/_type_defs.py @@ -0,0 +1,94 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +"""Type definitions for use in response models and API endpoints.""" +from ssvc.decision_points.base import DecisionPoint, DecisionPointValue +from ssvc.decision_tables.base import DecisionTable + +# simple stuff first +StringsListType = list[str] +"""A list of strings, used for various purposes in the API.""" + +DecisionPointValuesListType = list[DecisionPointValue] +"""A list of decision point values.""" + +DecisionPointDictType = dict[str, DecisionPoint] +"""A dictionary mapping decision point IDs to their corresponding DecisionPoint objects.""" + +DecisionTableDictType = dict[str, DecisionTable] +"""A dictionary mapping decision table IDs to their corresponding DecisionTable objects.""" + + +# more complex types +TypesDictType = dict[ + str, # "types" + list[str], # list of object types +] +"""A dictionary containing a list of object types.""" + +NamespaceDictType = dict[ + str, # "types" + dict[ + str, # specific type + dict[ + str, StringsListType # "namespaces" # list of namespace strings + ], + ], +] +"""A nested dictionary mapping object types to lists of namespaces for each type.""" + +KeyDictType = dict[ + str, # "types" + dict[ + str, # specific type + dict[ + str, # "namespaces" + dict[ + str, # specific namespace + dict[str, StringsListType], # "keys" # list of keys + ], + ], + ], +] +"""A nested dictionary mapping object types to namespaces and keys for each type.""" + +VersionDictType = dict[ + # types type namespaces namespace keys + str, # "types" + dict[ + str, # specific type + dict[ + str, # "namespaces" + dict[ + str, # specific namespace + dict[ + str, # "keys" + dict[ + str, # specific key + dict[ + str, # "versions" + StringsListType, # list of version strings + ], + ], + ], + ], + ], + ], +] +"""A nested dictionary mapping object types to namespaces, keys, and versions for each type.""" diff --git a/src/ssvc/api/routers/__init__.py b/src/ssvc/api/routers/__init__.py new file mode 100644 index 00000000..e490931b --- /dev/null +++ b/src/ssvc/api/routers/__init__.py @@ -0,0 +1,20 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +"""SSVC API Routes""" diff --git a/src/ssvc/api/routers/decision_point.py b/src/ssvc/api/routers/decision_point.py new file mode 100644 index 00000000..87923887 --- /dev/null +++ b/src/ssvc/api/routers/decision_point.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python +""" +API Routes for decision_point +""" + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from fastapi import HTTPException + +from ssvc.api.helpers import _404_on_none +from ssvc.decision_points.base import DecisionPoint +from ssvc.registry.base import get_registry +from ssvc.registry.base import lookup_version + +r = get_registry() + +from fastapi import APIRouter + + +router = APIRouter(prefix="/decision_point", tags=["Decision Point"]) + + +@router.get("/", response_model=DecisionPoint) +async def get_decision_point_by_id(id: str) -> DecisionPoint: + """Returns a single DecisionPoint object by its ID.""" + try: + (namespace, key, version) = id.split(":") + except ValueError: + raise HTTPException( + status_code=400, + detail="ID must be in the format 'namespace:key:version'", + ) + + version = lookup_version( + objtype="DecisionPoint", + namespace=namespace, + key=key, + version=version, + registry=r, + ) + _404_on_none(version) + return version.obj + + +def main(): + pass + + +if __name__ == "__main__": + main() diff --git a/src/ssvc/api/routers/decision_points.py b/src/ssvc/api/routers/decision_points.py new file mode 100644 index 00000000..1259303b --- /dev/null +++ b/src/ssvc/api/routers/decision_points.py @@ -0,0 +1,188 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +"""Decision Points API Router.""" +from fastapi import APIRouter + +from ssvc.api.helpers import _404_on_none +from ssvc.api.response_models import ( + DecisionPointDictResponse, + DecisionPointDictType, + DecisionPointValueListResponse, + DecisionPointValuesListType, +) +from ssvc.decision_points.base import DecisionPoint +from ssvc.registry.base import get_registry +from ssvc.registry.base import ( + lookup_key, + lookup_latest, + lookup_namespace, + lookup_objtype, + lookup_version, +) + +r = get_registry() + +router = APIRouter(prefix="/decision_points", tags=["Decision Points"]) + + +@router.get( + "/", + summary="Get all decision points", + description="Returns a dictionary of all DecisionPoint objects organized by their object id.", + response_model=DecisionPointDictResponse, +) +async def get_all_decision_points() -> DecisionPointDictType: + result = lookup_objtype(objtype="DecisionPoint", registry=r) + _404_on_none(result) + + objs = {} + # result has namespaces, namespaces have keys, keys have versions. + for ns in result.namespaces: + for k in result.namespaces[ns].keys: + for ver in result.namespaces[ns].keys[k].versions: + obj = result.namespaces[ns].keys[k].versions[ver].obj + objs[obj.id] = obj + return objs + + +@router.get( + "/{namespace}", + summary="Get all decision points for a namespace", + description="Returns a dictionary of DecisionPoint objects for the given namespace organized by their object id.", + response_model=DecisionPointDictResponse, +) +async def get_all_decision_points_for_namespace( + namespace: str, +) -> DecisionPointDictType: + result = lookup_namespace( + objtype="DecisionPoint", namespace=namespace, registry=r + ) + _404_on_none(result) + + objs = {} + # result has keys, keys have versions, versions have objs. + for k in result.keys: + for ver in result.keys[k].versions: + obj = result.keys[k].versions[ver].obj + objs[obj.id] = obj + return objs + + +@router.get( + "/{namespace}/{key}", + summary="Get all versions of a decision point for a key in a namespace", + description="Returns a dictionary of DecisionPoint objects for the given namespace and key organized by their object id.", + response_model=DecisionPointDictResponse, +) +async def get_all_versions_of_decision_points_for_key( + namespace: str, key: str +) -> DecisionPointDictType: + """Returns a dictionary of DecisionPoint objects for the given namespace and key. + Dictionary keys are namespace:key:version.""" + result = lookup_key( + objtype="DecisionPoint", namespace=namespace, key=key, registry=r + ) + _404_on_none(result) + # result obj has versions. + objs = {} + for ver in result.versions: + obj = result.versions[ver].obj + objs[obj.id] = obj + return objs + + +@router.get( + "/{namespace}/{key}/latest", + summary="Get the latest decision point for a key in a namespace", + description="Returns the latest DecisionPoint object for the given namespace and key.", + response_model=DecisionPoint, +) +async def get_latest_decision_point_for_key( + namespace: str, key: str +) -> DecisionPoint: + """Returns the latest DecisionPoint object for the given namespace and key.""" + result = lookup_latest( + objtype="DecisionPoint", namespace=namespace, key=key, registry=r + ) + _404_on_none(result) + dp = result + return dp + + +@router.get( + "/{namespace}/{key}/{version}", + summary="Get a specific version of a decision point", + description="Returns a single DecisionPoint object for the given namespace, key, and version.", + response_model=DecisionPoint, +) +async def get_decision_point_version( + namespace: str, key: str, version: str +) -> DecisionPoint: + """Returns a single DecisionPoint object for the given namespace, key, and version.""" + result = lookup_version( + objtype="DecisionPoint", + namespace=namespace, + key=key, + version=version, + registry=r, + ) + _404_on_none(result) + dp = result.obj + return dp + + +@router.get( + "/{namespace}/{key}/latest/values", + summary="Get the latest decision point for a key in a namespace", + description="Returns the latest DecisionPoint object for the given namespace and key.", + response_model=DecisionPointValueListResponse, +) +async def get_latest_decision_point_for_key( + namespace: str, key: str +) -> DecisionPointValuesListType: + """Returns the latest DecisionPoint object for the given namespace and key.""" + result = lookup_latest( + objtype="DecisionPoint", namespace=namespace, key=key, registry=r + ) + _404_on_none(result) + dp = result + return list(dp.values) + + +@router.get( + "/{namespace}/{key}/{version}/values", + summary="Get the values of a decision point", + description="Returns the list of values of a single DecisionPoint object for the given namespace, key, and version.", + response_model=DecisionPointValueListResponse, +) +async def get_decision_point_values( + namespace: str, key: str, version: str +) -> DecisionPointValuesListType: + """Returns the values of a single DecisionPoint object for the given namespace, key, and version.""" + result = lookup_version( + objtype="DecisionPoint", + namespace=namespace, + key=key, + version=version, + registry=r, + ) + _404_on_none(result) + dp = result.obj + return list(dp.values) diff --git a/src/ssvc/api/routers/decision_table.py b/src/ssvc/api/routers/decision_table.py new file mode 100644 index 00000000..7f3d7044 --- /dev/null +++ b/src/ssvc/api/routers/decision_table.py @@ -0,0 +1,51 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +"""Decision Table API Router.""" +from fastapi import APIRouter, HTTPException + +from ssvc.api.helpers import _404_on_none +from ssvc.decision_tables.base import DecisionTable +from ssvc.registry.base import get_registry +from ssvc.registry.base import lookup_version + +r = get_registry() +router = APIRouter(prefix="/decision_table", tags=["Decision Table"]) + + +@router.get("/", response_model=DecisionTable) +async def get_decision_table_by_id(id: str) -> DecisionTable: + """Returns a single DecisionTable object by its ID.""" + try: + (namespace, key, version) = id.split(":") + except ValueError: + raise HTTPException( + status_code=400, + detail="ID must be in the format 'namespace:key:version'", + ) + + version = lookup_version( + objtype="DecisionTable", + namespace=namespace, + key=key, + version=version, + registry=r, + ) + _404_on_none(version) + return version.obj diff --git a/src/ssvc/api/routers/decision_tables.py b/src/ssvc/api/routers/decision_tables.py new file mode 100644 index 00000000..58083ce4 --- /dev/null +++ b/src/ssvc/api/routers/decision_tables.py @@ -0,0 +1,149 @@ +"""Decision Tables API Router.""" + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from fastapi import APIRouter + +from ssvc.api.helpers import _404_on_none +from ssvc.api.response_models import ( + DecisionTableDictResponse, + DecisionTableDictType, +) +from ssvc.decision_tables.base import DecisionTable +from ssvc.registry.base import get_registry +from ssvc.registry.base import ( + lookup_key, + lookup_latest, + lookup_namespace, + lookup_objtype, + lookup_version, +) + +r = get_registry() +router = APIRouter(prefix="/decision_tables", tags=["Decision Tables"]) + + +@router.get( + "/", + summary="Get all decision tables", + description="Returns a dictionary of all decision tables in the registry organized by their object id.", + response_model=DecisionTableDictResponse, +) +async def get_decision_tables() -> DecisionTableDictType: + # load registry and return decision tables + result = lookup_objtype(objtype="DecisionTable", registry=r) + _404_on_none(result) + # result obj has namespaces, namespaces have keys, keys have versions. + objs = {} + for ns in result.namespaces: + for k in result.namespaces[ns].keys: + for ver in result.namespaces[ns].keys[k].versions: + obj = result.namespaces[ns].keys[k].versions[ver].obj + objs[obj.id] = obj + return objs + + +@router.get( + "/{namespace}", + summary="Get decision tables for a namespace", + description="Returns a dictionary of DecisionTable objects for the given namespace organized by their object id.", + response_model=DecisionTableDictResponse, +) +async def get_decision_tables_for_namespace( + namespace: str, +) -> DecisionTableDictType: + + ns_obj = lookup_namespace( + objtype="DecisionTable", namespace=namespace, registry=r + ) + _404_on_none(ns_obj) + # namespace obj has keys, keys have versions. + objs = {} + for k in ns_obj.keys.keys(): + for ver in ns_obj.keys[k].versions.keys(): + obj = ns_obj.keys[k].versions[ver].obj + objs[obj.id] = obj + return objs + + +@router.get( + "/{namespace}/{key}", + summary="Get decision tables for namespace and key", + description="Returns a dictionary of DecisionTable objects for the given namespace and key organized by their object id.", + response_model=DecisionTableDictResponse, +) +async def get_decision_tables_for_key( + namespace: str, key: str +) -> DecisionTableDictType: + """Returns a dictionary of DecisionTable objects for the given namespace and key. + Dictionary keys are version strings.""" + results = lookup_key( + objtype="DecisionTable", namespace=namespace, key=key, registry=r + ) + _404_on_none(results) + + objs = {} + # results is a DecisionTableKey object with versions. + # versions is a dict of version strings to DecisionTableVersion objects. + # DecisionTableVersion objects have an obj attribute which is the DecisionTable. + for ver in results.versions.values(): + obj = ver.obj + objs[obj.id] = obj + return objs + + +@router.get( + "/{namespace}/{key}/latest", + summary="Get the latest decision table for a namespace and key", + description="Returns the latest DecisionTable object for the given namespace and key.", + response_model=DecisionTable, +) +async def get_latest_decision_table_for_key( + namespace: str, key: str +) -> DecisionTable: + """Returns the latest DecisionPoint object for the given namespace and key.""" + result = lookup_latest( + objtype="DecisionTable", namespace=namespace, key=key, registry=r + ) + _404_on_none(result) + dt = result + return dt + + +@router.get( + "/{namespace}/{key}/{version}", + summary="Get a specific version of a decision table", + description="Returns a specific version of a DecisionTable object for the given namespace, key, and version.", + response_model=DecisionTable, +) +async def get_decision_table_version( + namespace: str, key: str, version: str +) -> DecisionTable: + """Returns a single DecisionTable object for the given namespace, key, and version.""" + dt_version = lookup_version( + objtype="DecisionTable", + namespace=namespace, + key=key, + version=version, + registry=r, + ) + _404_on_none(dt_version) + dt = dt_version.obj + return dt diff --git a/src/ssvc/api/routers/keys.py b/src/ssvc/api/routers/keys.py new file mode 100644 index 00000000..03d343b3 --- /dev/null +++ b/src/ssvc/api/routers/keys.py @@ -0,0 +1,121 @@ +"""Keys API Router.""" + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from fastapi import APIRouter + +from ssvc.api.helpers import _404_on_none +from ssvc.api.response_models import ( + KeyDictResponse, + ListOfStringsResponse, + StringsListType, +) +from ssvc.registry.base import get_registry, lookup_namespace + +router = APIRouter(prefix="/keys", tags=["SSVC Keys"]) +r = get_registry() + + +@router.get( + "/", + summary="Get Key Dictionary", + description="Returns a dictionary of all keys in the registry, grouped by object type and namespace", + response_model=KeyDictResponse, +) +async def get_key_dict() -> dict: + """Returns a dictionary of all keys in the registry, grouped by object type and namespace.""" + response = {} + response["types"] = {} + + for object_type in r.types.keys(): + response["types"][object_type] = {"namespaces": {}} + + for namespace in r.types[object_type].namespaces.keys(): + ns = lookup_namespace( + objtype=object_type, namespace=namespace, registry=r + ) + if ns is not None: + response["types"][object_type]["namespaces"][namespace] = {} + response["types"][object_type]["namespaces"][namespace][ + "keys" + ] = sorted(list(ns.keys.keys())) + return response + + +@router.get( + "/{objtype}", + summary="Get Key Dictionary for Type", + description="Returns a dictionary of all keys for a given object type in the registry, grouped by object type and namespace", + response_model=KeyDictResponse, +) +async def get_key_dict_for_type(objtype: str) -> dict: + """Returns a dictionary of all keys for a given object type in the registry, grouped by object type and namespace.""" + object_type = r.types.get(objtype) + _404_on_none(object_type) + response = {"types": {objtype: {"namespaces": {}}}} + for namespace in object_type.namespaces: + ns = lookup_namespace(objtype=objtype, namespace=namespace, registry=r) + if ns: + response["types"][objtype]["namespaces"][namespace] = { + "keys": (sorted(list(ns.keys.keys()))) + } + return response + + +@router.get( + "/{objtype}/{namespace}", + summary="Get Key Dictionary for Type and Namespace", + description="Returns a dictionary of all keys for a given object type and namespace in the registry, grouped by object type and namespace", + response_model=KeyDictResponse, +) +async def get_key_dict_for_type_and_namespace( + objtype: str, namespace: str +) -> dict: + """Returns a dictionary of all keys for a given object type and namespace in the registry, grouped by object type and namespace.""" + ns = lookup_namespace(objtype=objtype, namespace=namespace, registry=r) + _404_on_none(ns) + + response = { + "types": { + objtype: { + "namespaces": { + namespace: {"keys": sorted(list(ns.keys.keys()))} + } + } + } + } + return response + + +@router.get( + "/{objtype}/{namespace}/list", + summary="Get Key Dictionary for Type and Namespace", + description="Returns a list (without the enclosing dict) of all keys for a given object type and namespace in the registry", + response_model=ListOfStringsResponse, +) +async def get_key_list_for_type_and_namespace( + objtype: str, namespace: str +) -> StringsListType: + """Returns a list of all keys for a given object type and namespace in the registry.""" + ns = lookup_namespace(objtype=objtype, namespace=namespace, registry=r) + _404_on_none(ns) + + response = sorted(list(ns.keys.keys())) + return response diff --git a/src/ssvc/api/routers/namespaces.py b/src/ssvc/api/routers/namespaces.py new file mode 100644 index 00000000..59eb40a5 --- /dev/null +++ b/src/ssvc/api/routers/namespaces.py @@ -0,0 +1,100 @@ +"""Namespace Router.""" + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from fastapi import APIRouter + +from ssvc.api.helpers import _404_on_none +from ssvc.api.response_models import (ListOfStringsResponse, NamespaceDictResponse, NamespaceDictType, StringsListType) +from ssvc.registry.base import get_registry, lookup_objtype + +router = APIRouter( + prefix="/namespaces", + tags=["SSVC Namespaces"], +) + +r = get_registry() + + +@router.get( + "/", + summary="Get all object types and their namespaces", + description="Returns a dictionary of namespaces organized by object type.", + response_model=NamespaceDictResponse, +) +async def get_object_type_namespaces() -> ( + dict[str, dict[str, dict[str, list[str]]]] +): + """Returns a dictionary of object types and their namespaces.""" + response = {} + response["types"] = {} + for objtype in r.types: + response["types"][objtype] = {} + response["types"][objtype]["namespaces"] = sorted( + list(r.types[objtype].namespaces.keys()) + ) + return response + + +@router.get( + "/list", + summary="Get a list (without the enclosing dict) of all namespaces in the registry (regardless of object type)", + description="Returns a list of all namespaces in the registry.", + response_model=ListOfStringsResponse, +) +async def get_namespace_list() -> StringsListType: + """Returns a list of all namespaces in the registry.""" + namespaces = set() + for objtype in r.types: + for namespace in r.types[objtype].namespaces: + namespaces.add(namespace) + return sorted(list(namespaces)) + + +@router.get( + "/{objtype}", + summary="Get the namespaces in the registry for a given object type", + description="Returns a dictionary containing a list of namespaces for a given object type in the registry, organized by object type.", + response_model=NamespaceDictResponse, +) +async def get_namespace_list_for_type(objtype: str) -> NamespaceDictType: + """Returns a dict of all namespaces for a given object type in the registry.""" + result = lookup_objtype(objtype=objtype, registry=r) + _404_on_none(result) + response = {"types": {}} + response["types"][objtype] = {} + response["types"][objtype]["namespaces"] = sorted( + list(r.types[objtype].namespaces.keys()) + ) + + return response + + +@router.get( + "/{objtype}/list", + summary="Get a list of namespaces for a given object type", + description="Returns a list of namespaces (without the enclosing dict) for a given object type in the registry.", + response_model=ListOfStringsResponse, +) +async def get_namespace_list_for_type(objtype: str) -> list[str]: + """Returns a list of all namespaces for a given object type in the registry.""" + result = lookup_objtype(objtype=objtype, registry=r) + _404_on_none(result) + return sorted(list(result.namespaces.keys())) diff --git a/src/ssvc/api/routers/objects.py b/src/ssvc/api/routers/objects.py new file mode 100644 index 00000000..88a32e72 --- /dev/null +++ b/src/ssvc/api/routers/objects.py @@ -0,0 +1,67 @@ +"""Objects API Router.""" + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from fastapi import APIRouter + +from ssvc.api.helpers import _404_on_none +from ssvc.decision_points.base import DecisionPoint +from ssvc.decision_tables.base import DecisionTable +from ssvc.registry.base import get_registry, lookup_by_id + +router = APIRouter(prefix="/objects", tags=["SSVC Objects"]) +r = get_registry() + +# generate endpoints for each object type +object_types = [DecisionPoint, DecisionTable] + + +@router.get( + "/DecisionPoint/{namespace}/{key}/{version}", + summary="Get an object by objtype, namespace, key, and version", + response_model=DecisionPoint, +) +async def get_object(namespace: str, key: str, version: str) -> DecisionPoint: + """ + Get an object by its type, namespace, key, and version. + """ + obj_id = ":".join([namespace, key, version]) + ver_obj = lookup_by_id(objtype="DecisionPoint", objid=obj_id, registry=r) + + _404_on_none(ver_obj) + obj = ver_obj.obj + return obj + + +@router.get( + "/DecisionTable/{namespace}/{key}/{version}", + summary="Get an object by objtype, namespace, key, and version", + response_model=DecisionTable, +) +async def get_object(namespace: str, key: str, version: str) -> DecisionTable: + """ + Get an object by its type, namespace, key, and version. + """ + obj_id = ":".join([namespace, key, version]) + ver_obj = lookup_by_id(objtype="DecisionTable", objid=obj_id, registry=r) + + _404_on_none(ver_obj) + obj = ver_obj.obj + return obj diff --git a/src/ssvc/api/routers/types.py b/src/ssvc/api/routers/types.py new file mode 100644 index 00000000..3af3e80b --- /dev/null +++ b/src/ssvc/api/routers/types.py @@ -0,0 +1,57 @@ +"""Types Router.""" + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from fastapi import APIRouter + +from ssvc.api.response_models import ( + ListOfStringsResponse, + StringsListType, + TypesDictResponse, +) +from ssvc.api.response_models._type_defs import TypesDictType +from ssvc.registry.base import get_registry + +r = get_registry() + +router = APIRouter(prefix="/objtypes", tags=["SSVC Object Types"]) + + +@router.get( + "/", + summary="Get all object types", + description="Returns a dictionary containing a list of all object types available in the SSVC registry.", + response_model=TypesDictResponse, +) +async def get_object_types() -> TypesDictType: + """Returns a dictionary of all object types in the registry.""" + response = {"types": sorted(list(r.types.keys()))} + return response + + +@router.get( + "/list", + summary="Retrieve a list of available object types", + description="Returns a sorted list (without the enclosing dict) of all object types available in the SSVC registry.", + response_model=ListOfStringsResponse, +) +async def get_object_type_list() -> StringsListType: + """Returns a list of all object types in the registry.""" + return sorted(list(r.types.keys())) diff --git a/src/ssvc/api/routers/versions.py b/src/ssvc/api/routers/versions.py new file mode 100644 index 00000000..b0e5bc6e --- /dev/null +++ b/src/ssvc/api/routers/versions.py @@ -0,0 +1,72 @@ +"""Versions API Router.""" + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from fastapi import APIRouter + +from ssvc.api.helpers import _404_on_none +from ssvc.api.response_models import ( + ListOfStringsResponse, + StringsListType, + VersionDictResponse, + VersionDictType, +) +from ssvc.registry.base import get_registry, lookup_key + +router = APIRouter(prefix="/versions", tags=["SSVC Versions"]) +r = get_registry() + + +@router.get( + "/{objtype}/{namespace}/{key}", + summary="Get the version strings for a given object type, namespace, and key.", + description="Returns a dict for a specific object type, namespace, and key in the SSVC registry containing a list of version strings available.", + response_model=VersionDictResponse, +) +async def get_version_dict_for_key( + objtype: str, namespace: str, key: str +) -> VersionDictType: + """Returns a dictionary of all versions for a given object type, namespace, and key in the registry.""" + k = lookup_key(objtype=objtype, namespace=namespace, key=key, registry=r) + _404_on_none(k) + + response = { + "types": {objtype: {"namespaces": {namespace: {"keys": {key: {}}}}}} + } + response["types"][objtype]["namespaces"][namespace]["keys"][key][ + "versions" + ] = sorted(list(k.versions.keys())) + + return response + + +@router.get( + "/{objtype}/{namespace}/{key}/list", + summary="Get the list (without the enclosing dict) of version strings for a given object type, namespace, and key.", + description="Returns a sorted list of version strings available for the specified object type, namespace, and key in the SSVC registry.", + response_model=ListOfStringsResponse, +) +async def get_version_list_for_key( + objtype: str, namespace: str, key: str +) -> StringsListType: + """Returns a list of all versions for a given object type, namespace, and key in the registry.""" + k = lookup_key(objtype=objtype, namespace=namespace, key=key, registry=r) + _404_on_none(k) + return sorted(list(k.versions.keys())) diff --git a/src/ssvc/decision_tables/cisa/__init__.py b/src/ssvc/decision_tables/cisa/__init__.py new file mode 100644 index 00000000..35435d58 --- /dev/null +++ b/src/ssvc/decision_tables/cisa/__init__.py @@ -0,0 +1,20 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +"""Decision tables for the CISA namespace""" diff --git a/src/ssvc/decision_tables/helpers.py b/src/ssvc/decision_tables/helpers.py index 16ef89c3..3de37678 100644 --- a/src/ssvc/decision_tables/helpers.py +++ b/src/ssvc/decision_tables/helpers.py @@ -23,12 +23,15 @@ # DM24-0278 +import logging + from ssvc.decision_tables.base import ( DecisionTable, decision_table_to_longform_df, decision_table_to_shortform_df, ) +logger = logging.getLogger(__name__) EDGE_LIMIT = 500 @@ -99,7 +102,7 @@ def _mapping2mermaid(mapping: list[dict[str:str]], title: str = None) -> str: # add the yaml front matter for the title lines.extend(["---", f"title: {title}", "---"]) - lines.extend(["graph LR", "n1(( ))"]) + lines.extend(["graph LR", "subgraph inputs[Inputs]", "n1(( ))"]) columns = list(mapping[0].keys()) node_ids = {} # (col_idx, path_tuple) -> node_id @@ -107,6 +110,11 @@ def _mapping2mermaid(mapping: list[dict[str:str]], title: str = None) -> str: # Build subgraphs + nodes for col_idx, col in enumerate(columns): + # if it's the last column, close the Inputs subgraph and start the Outputs subgraph + if col_idx == len(columns) - 1: + lines.append("end") + lines.append("subgraph outputs[Outcome]") + subgraph_name = f's{col_idx+1}["{col}"]' lines.append(f"subgraph {subgraph_name}") seen_paths = set() @@ -121,6 +129,7 @@ def _mapping2mermaid(mapping: list[dict[str:str]], title: str = None) -> str: lines.append(f"{node_id}([{label}])") node_ids[(col_idx, path)] = node_id lines.append("end") + lines.append("end") # close the outputs subgraph # Root → level 0 for row in mapping: @@ -196,7 +205,7 @@ def mapping2mermaid(rows: list[dict[str:str]], title: str = None) -> str: ) diagrams.append(diagram) except ValueError as e: - print(f"Skipping {value} due to error: {e}") + logger.error(f"Skipping {title} {value} due to error: {e}") return ( "\n\n".join(diagrams) diff --git a/src/ssvc/decision_tables/ssvc/public_safety_impact.py b/src/ssvc/decision_tables/ssvc/public_safety_impact.py new file mode 100644 index 00000000..a93f1c93 --- /dev/null +++ b/src/ssvc/decision_tables/ssvc/public_safety_impact.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python +""" +Public Safety Impact Decision Table +""" + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +from ssvc.decision_points.ssvc.public_safety_impact import ( + PUBLIC_SAFETY_IMPACT_2_0_1 as PSI, +) +from ssvc.decision_points.ssvc.safety_impact import SAFETY_IMPACT_2 as SI +from ssvc.decision_tables.base import DecisionTable +from ssvc.namespaces import NameSpace + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +V1_0_0 = DecisionTable( + namespace=NameSpace.SSVC, + key="DT_PSI", + version="1.0.0", + name="Public Safety Impact", + description="Public Safety Impact Decision Table", + decision_points={dp.id: dp for dp in [SI, PSI]}, + outcome=PSI.id, + mapping=[ + {"ssvc:SI:2.0.0": "N", "ssvc:PSI:2.0.1": "M"}, + {"ssvc:SI:2.0.0": "M", "ssvc:PSI:2.0.1": "S"}, + {"ssvc:SI:2.0.0": "R", "ssvc:PSI:2.0.1": "S"}, + {"ssvc:SI:2.0.0": "C", "ssvc:PSI:2.0.1": "S"}, + ], +) + +VERSIONS = (V1_0_0,) +LATEST = VERSIONS[-1] + + +def main(): + from ssvc.decision_tables.helpers import print_dt_version + + print_dt_version(LATEST, longform=False) + + +if __name__ == "__main__": + main() diff --git a/src/ssvc/decision_tables/ssvc/utlity.py b/src/ssvc/decision_tables/ssvc/utility.py similarity index 100% rename from src/ssvc/decision_tables/ssvc/utlity.py rename to src/ssvc/decision_tables/ssvc/utility.py diff --git a/src/ssvc/dp_groups/cvss/collections.py b/src/ssvc/dp_groups/cvss/collections.py index 37bf11b8..e345adb0 100644 --- a/src/ssvc/dp_groups/cvss/collections.py +++ b/src/ssvc/dp_groups/cvss/collections.py @@ -132,7 +132,7 @@ from ssvc.dp_groups.base import DecisionPointGroup # Instantiate the CVSS v1 decision point group -_BASE_1 = [ +BASE_1 = [ ACCESS_VECTOR_1, ACCESS_COMPLEXITY_1, AUTHENTICATION_1, @@ -141,42 +141,50 @@ AVAILABILITY_IMPACT_1, IMPACT_BIAS_1, ] -_TEMPORAL_1 = [ +"""List of CVSS v1 Base decision points""" + +TEMPORAL_1 = [ EXPLOITABILITY_1, REMEDIATION_LEVEL_1, REPORT_CONFIDENCE_1, ] -_ENVIRONMENTAL_1 = [ +"""List of CVSS v1 Temporal decision points""" + +ENVIRONMENTAL_1 = [ COLLATERAL_DAMAGE_POTENTIAL_1, TARGET_DISTRIBUTION_1, ] +"""List of CVSS v1 Environmental decision points""" CVSSv1_B = DecisionPointGroup( name="CVSS", version="1.0.0", description="CVSS v1 decision points", - decision_points=tuple(_BASE_1), + decision_points=tuple(BASE_1), ) +"""CVSS v1 Base Metrics""" CVSSv1_BT = DecisionPointGroup( name="CVSS", version="1.0.0", description="CVSS v1 decision points", - decision_points=tuple(_BASE_1 + _TEMPORAL_1), + decision_points=tuple(BASE_1 + TEMPORAL_1), ) +"""CVSS v1 Base and Temporal Metrics""" CVSSv1_BTE = DecisionPointGroup( name="CVSS", version="1.0.0", description="CVSS v1 decision points", - decision_points=tuple(_BASE_1 + _TEMPORAL_1 + _ENVIRONMENTAL_1), + decision_points=tuple(BASE_1 + TEMPORAL_1 + ENVIRONMENTAL_1), ) +"""CVSS v1 Base, Temporal, and Environmental Metrics""" CVSSv1 = CVSSv1_BTE # convenience alias # CVSS v2 decision points -_BASE_2 = [ +BASE_2 = [ ACCESS_VECTOR_2, ACCESS_COMPLEXITY_2, AUTHENTICATION_2, @@ -184,44 +192,52 @@ INTEGRITY_IMPACT_1, AVAILABILITY_IMPACT_1, ] -_TEMPORAL_2 = [ +"""List of CVSS v2 Base decision points""" + +TEMPORAL_2 = [ EXPLOITABILITY_1_1, REMEDIATION_LEVEL_1_1, REPORT_CONFIDENCE_1_1, ] -_ENVIRONMENTAL_2 = [ +"""List of CVSS v2 Temporal decision points""" + +ENVIRONMENTAL_2 = [ COLLATERAL_DAMAGE_POTENTIAL_2, TARGET_DISTRIBUTION_1_1, CONFIDENTIALITY_REQUIREMENT_1, INTEGRITY_REQUIREMENT_1, AVAILABILITY_REQUIREMENT_1, ] +"""List of CVSS v2 Environmental decision points""" CVSSv2_B = DecisionPointGroup( name="CVSS Version 2 Base Metrics", description="Base metrics for CVSS v2", version="2.0.0", - decision_points=tuple(_BASE_2), + decision_points=tuple(BASE_2), ) +"""CVSS v2 Base Metrics""" CVSSv2_BT = DecisionPointGroup( name="CVSS Version 2 Base and Temporal Metrics", description="Base and Temporal metrics for CVSS v2", version="2.0.0", - decision_points=tuple(_BASE_2 + _TEMPORAL_2), + decision_points=tuple(BASE_2 + TEMPORAL_2), ) +"""CVSS v2 Base and Temporal Metrics""" CVSSv2_BTE = DecisionPointGroup( name="CVSS Version 2 Base, Temporal, and Environmental Metrics", description="Base, Temporal, and Environmental metrics for CVSS v2", version="2.0.0", - decision_points=tuple(_BASE_2 + _TEMPORAL_2 + _ENVIRONMENTAL_2), + decision_points=tuple(BASE_2 + TEMPORAL_2 + ENVIRONMENTAL_2), ) +"""CVSS v2 Base, Temporal, and Environmental Metrics""" CVSSv2 = CVSSv2_BTE # convenience alias # CVSS v3 decision points -_BASE_3 = [ +BASE_3 = [ ATTACK_VECTOR_3, ATTACK_COMPLEXITY_3, PRIVILEGES_REQUIRED_1, @@ -231,54 +247,61 @@ INTEGRITY_IMPACT_2, AVAILABILITY_IMPACT_2, ] -_TEMPORAL_3 = [ +"""List of CVSS v3 Base decision points""" + +TEMPORAL_3 = [ EXPLOIT_CODE_MATURITY_1_2, REMEDIATION_LEVEL_1_1, REPORT_CONFIDENCE_2, ] +"""List of CVSS v3 Temporal decision points""" + +ENVIRONMENTAL_3 = [modify_3(dp) for dp in BASE_3] + [ + CONFIDENTIALITY_REQUIREMENT_1_1, + INTEGRITY_REQUIREMENT_1_1, + AVAILABILITY_REQUIREMENT_1_1, +] +"""List of CVSS v3 Environmental decision points""" -_ENVIRONMENTAL_3 = [modify_3(dp) for dp in _BASE_3] -_ENVIRONMENTAL_3.extend( - [ - CONFIDENTIALITY_REQUIREMENT_1_1, - INTEGRITY_REQUIREMENT_1_1, - AVAILABILITY_REQUIREMENT_1_1, - ] -) CVSSv3_B = DecisionPointGroup( name="CVSS Version 3 Base Metrics", description="Base metrics for CVSS v3", version="3.0.0", - decision_points=tuple(_BASE_3), + decision_points=tuple(BASE_3), ) +"""CVSS v3 Base Metrics""" CVSSv3_BT = DecisionPointGroup( name="CVSS Version 3 Base and Temporal Metrics", description="Base and Temporal metrics for CVSS v3", version="3.0.0", - decision_points=tuple(_BASE_3 + _TEMPORAL_3), + decision_points=tuple(BASE_3 + TEMPORAL_3), ) +"""CVSS v3 Base and Temporal Metrics""" CVSSv3_BTE = DecisionPointGroup( name="CVSS Version 3 Base, Temporal, and Environmental Metrics", description="Base, Temporal, and Environmental metrics for CVSS v3", version="3.0.0", - decision_points=tuple(_BASE_3 + _TEMPORAL_3 + _ENVIRONMENTAL_3), + decision_points=tuple(BASE_3 + TEMPORAL_3 + ENVIRONMENTAL_3), ) +"""CVSS v3 Base, Temporal, and Environmental Metrics""" CVSSv3 = CVSSv3_BTE # convenience alias # CVSS v4 decision points -_EXPLOITABILITY_4 = [ +EXPLOITABILITY_4 = [ ATTACK_VECTOR_3_0_1, ATTACK_COMPLEXITY_3_0_1, ATTACK_REQUIREMENTS_1, PRIVILEGES_REQUIRED_1_0_1, USER_INTERACTION_2, ] -_IMPACT_4 = [ +"""List of CVSS v4 Exploitability decision points""" + +IMPACT_4 = [ CONFIDENTIALITY_IMPACT_3_0_0, INTEGRITY_IMPACT_3_0_0, AVAILABILITY_IMPACT_3_0_0, @@ -286,22 +309,25 @@ SUBSEQUENT_INTEGRITY_IMPACT_1, SUBSEQUENT_AVAILABILITY_IMPACT_1, ] -_BASE_4 = _EXPLOITABILITY_4 + _IMPACT_4 +"""List of CVSS v4 Impact decision points""" + +BASE_4 = EXPLOITABILITY_4 + IMPACT_4 +"""List of CVSS v4 Base decision points""" # note: CVSS v4 does more than just insert "modified" in front of the name and "M" in front of the key -_ENVIRONMENTAL_4 = [modify_4(dp) for dp in _BASE_4] -_ENVIRONMENTAL_4.extend( - [ - CONFIDENTIALITY_REQUIREMENT_1_1_1, - INTEGRITY_REQUIREMENT_1_1_1, - AVAILABILITY_REQUIREMENT_1_1_1, - ] -) -_THREAT_4 = [ +ENVIRONMENTAL_4 = [modify_4(dp) for dp in BASE_4] + [ + CONFIDENTIALITY_REQUIREMENT_1_1_1, + INTEGRITY_REQUIREMENT_1_1_1, + AVAILABILITY_REQUIREMENT_1_1_1, +] +"""List of CVSS v4 Environmental decision points""" + +THREAT_4 = [ EXPLOIT_MATURITY_2, ] +"""List of CVSS v4 Threat decision points""" -_SUPPLEMENTAL_4 = [ +SUPPLEMENTAL_4 = [ SAFETY_1, AUTOMATABLE_1, PROVIDER_URGENCY_1, @@ -309,46 +335,53 @@ VALUE_DENSITY_1, VULNERABILITY_RESPONSE_EFFORT_1, ] +"""List of CVSS v4 Supplemental decision points""" + # CVSS-B Base metrics CVSSv4_B = DecisionPointGroup( name="CVSSv4 Base Metrics", description="Base metrics for CVSS v4", version="4.0.0", - decision_points=tuple(_BASE_4), + decision_points=tuple(BASE_4), ) +"""CVSS v4 Base Metrics""" # CVSS-BE Base and Environmental metrics CVSSv4_BE = DecisionPointGroup( name="CVSSv4 Base and Environmental Metrics", description="Base and Environmental metrics for CVSS v4", version="4.0.0", - decision_points=tuple(_BASE_4 + _ENVIRONMENTAL_4), + decision_points=tuple(BASE_4 + ENVIRONMENTAL_4), ) +"""CVSS v4 Base and Environmental Metrics""" # CVSS-BT Base and Threat metrics CVSSv4_BT = DecisionPointGroup( name="CVSSv4 Base and Threat Metrics", description="Base and Threat metrics for CVSS v4", version="4.0.0", - decision_points=tuple(_BASE_4 + _THREAT_4), + decision_points=tuple(BASE_4 + THREAT_4), ) +"""CVSS v4 Base and Threat Metrics""" # CVSS-BTE CVSSv4_BTE = DecisionPointGroup( name="CVSSv4 Base, Threat, and Environmental Metrics", description="Base, Threat, and Environmental metrics for CVSS v4", version="4.0.0", - decision_points=tuple(_BASE_4 + _THREAT_4 + _ENVIRONMENTAL_4), + decision_points=tuple(BASE_4 + THREAT_4 + ENVIRONMENTAL_4), ) +"""CVSS v4 Base, Threat, and Environmental Metrics""" CVSSv4 = DecisionPointGroup( name="CVSSv4", description="All decision points for CVSS v4 (including supplemental metrics)", version="4.0.0", decision_points=tuple( - _BASE_4 + _THREAT_4 + _ENVIRONMENTAL_4 + _SUPPLEMENTAL_4 + BASE_4 + THREAT_4 + ENVIRONMENTAL_4 + SUPPLEMENTAL_4 ), ) +"""CVSS v4 All Metrics""" CVSSv4_Equivalence_Sets = DecisionPointGroup( name="CVSSv4 EQ Sets", @@ -364,6 +397,7 @@ ), ) + CVSSv4_EQ = CVSSv4_Equivalence_Sets # convenience alias diff --git a/src/ssvc/dp_groups/ssvc/collections.py b/src/ssvc/dp_groups/ssvc/collections.py index 5845401c..05f20da0 100644 --- a/src/ssvc/dp_groups/ssvc/collections.py +++ b/src/ssvc/dp_groups/ssvc/collections.py @@ -46,6 +46,8 @@ PATCH_APPLIER_1, PATCH_DEVELOPER_1 ), ) +"""SSVC version 1 decision point group.""" + SSVCv2 = DecisionPointGroup( name="SSVCv2", description="The second version of the SSVC.", @@ -54,6 +56,8 @@ COORDINATOR_PUBLICATION_1, COORDINATOR_TRIAGE_1, DEPLOYER_2, SUPPLIER_2 ), ) +"""SSVC version 2 decision point group.""" + SSVCv2_1 = DecisionPointGroup( name="SSVCv2.1", description="The second version of the SSVC.", @@ -62,6 +66,7 @@ COORDINATOR_PUBLICATION_1, COORDINATOR_TRIAGE_1, DEPLOYER_3, SUPPLIER_2 ), ) +"""SSVC version 2.1 decision point group.""" VERSIONS = (SSVCv1, SSVCv2, SSVCv2_1) LATEST = VERSIONS[-1] diff --git a/src/test/api/__init__.py b/src/test/api/__init__.py new file mode 100644 index 00000000..f704113b --- /dev/null +++ b/src/test/api/__init__.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +""" +file: __init__.py +author: adh +created_at: 8/21/25 4:33 PM +""" + + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + + +def main(): + pass + + +if __name__ == "__main__": + main() diff --git a/src/test/api/response_models/__init__.py b/src/test/api/response_models/__init__.py new file mode 100644 index 00000000..f18e5308 --- /dev/null +++ b/src/test/api/response_models/__init__.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +""" +file: __init__.py +author: adh +created_at: 8/21/25 4:35 PM +""" + + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/src/test/api/routers/__init__.py b/src/test/api/routers/__init__.py new file mode 100644 index 00000000..49ba3463 --- /dev/null +++ b/src/test/api/routers/__init__.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +""" +file: __init__.py +author: adh +created_at: 8/21/25 4:35 PM +""" + + +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + + +def main(): + pass + + +if __name__ == "__main__": + main() diff --git a/src/test/api/routers/test_decision_point.py b/src/test/api/routers/test_decision_point.py new file mode 100644 index 00000000..efbdc7a1 --- /dev/null +++ b/src/test/api/routers/test_decision_point.py @@ -0,0 +1,94 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 +import json +import unittest + +from fastapi import HTTPException +from fastapi.testclient import TestClient + +from ssvc.api.routers import decision_point +from ssvc.decision_points.base import DecisionPoint, DecisionPointValue +from ssvc.registry.base import SsvcObjectRegistry + + +class TestDecisionPointAPI(unittest.TestCase): + def setUp(self): + self.client = TestClient(decision_point.router) + + # create a new registry for testing + self.r = SsvcObjectRegistry( + name="test registry", description="test registry" + ) + self.r.reset(force=True) + # make sure it's empty + self.assertEqual(0, len(self.r.types)) + + decision_point.r = self.r + + # now add a decision point + self.dp = DecisionPoint( + namespace="test", + key="A", + version="1.0.0", + name="Test Decision Point", + description="This is a test decision point.", + values=( + DecisionPointValue(name="value1", description=".", key="K1"), + DecisionPointValue(name="value2", description=".", key="K2"), + ), + registered=False, + ) + + def test_get_decision_point_by_id_success(self): + r = self.r + response = self.client.get("/decision_point/test:A:1.0.0") + # should 404 because we have no registry entries + self.assertEqual( + 404, + response.status_code, + ) + + r.register(self.dp) + # ensure it's added to the registry + + self.assertEqual(1, len(r.types)) + self.assertEqual( + self.dp, + r.types["DecisionPoint"] + .namespaces["test"] + .keys["A"] + .versions["1.0.0"] + .obj, + ) + response = self.client.get("/decision_point?id=test:A:1.0.0") + self.assertEqual( + 200, + response.status_code, + ) + # we need to do this because JSON doesn't do tuples + expected = json.loads(self.dp.model_dump_json()) + self.assertEqual(expected, response.json()) + + def test_get_decision_point_by_id_bad_id(self): + with self.assertRaises(HTTPException): + self.client.get("/decision_point?id=bad_id_format") + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/api/routers/test_decision_points.py b/src/test/api/routers/test_decision_points.py new file mode 100644 index 00000000..843fd95e --- /dev/null +++ b/src/test/api/routers/test_decision_points.py @@ -0,0 +1,134 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +import unittest +from unittest.mock import MagicMock, patch + +from fastapi import FastAPI +from fastapi.testclient import TestClient + +from ssvc.api.routers import decision_points +from ssvc.decision_points.base import DecisionPoint, DecisionPointValue + + +class TestDecisionPointsRouter(unittest.TestCase): + def setUp(self): + self.app = FastAPI() + self.app.include_router(decision_points.router) + self.client = TestClient(self.app) + self.dp = DecisionPoint( + namespace="test", + key="key1", + version="1.0.0", + name="Test DP", + description="desc", + values=( + DecisionPointValue( + key="value1", + name="Value 1", + description="Description for value 1", + ), + DecisionPointValue( + key="value2", + name="Value 2", + description="Description for value 2", + ), + ), + ) + + @patch("ssvc.api.routers.decision_points.lookup_objtype") + def test_get_all_decision_points_success(self, mock_lookup): + dp = self.dp + result_mock = MagicMock() + result_mock.namespaces = { + "ns1": MagicMock( + keys={"key1": MagicMock(versions={"1.0.0": MagicMock(obj=dp)})} + ) + } + mock_lookup.return_value = result_mock + response = self.client.get("/decision_points/") + self.assertEqual(response.status_code, 200) + self.assertIn(dp.id, response.json()) + + @patch("ssvc.api.routers.decision_points.lookup_objtype") + def test_get_all_decision_points_not_found(self, mock_lookup): + mock_lookup.return_value = None + response = self.client.get("/decision_points/") + self.assertEqual(response.status_code, 404) + + @patch("ssvc.api.routers.decision_points.lookup_namespace") + def test_get_all_decision_points_for_namespace_success(self, mock_lookup): + dp = self.dp + result_mock = MagicMock() + result_mock.keys = { + "key1": MagicMock(versions={"1.0.0": MagicMock(obj=dp)}) + } + mock_lookup.return_value = result_mock + response = self.client.get("/decision_points/ns1") + self.assertEqual(response.status_code, 200) + self.assertIn(dp.id, response.json()) + + @patch("ssvc.api.routers.decision_points.lookup_namespace") + def test_get_all_decision_points_for_namespace_not_found( + self, mock_lookup + ): + mock_lookup.return_value = None + response = self.client.get("/decision_points/ns1") + self.assertEqual(response.status_code, 404) + + @patch("ssvc.api.routers.decision_points.lookup_key") + def test_get_all_versions_of_decision_points_for_key_success( + self, mock_lookup + ): + dp = self.dp + result_mock = MagicMock() + result_mock.versions = {"1.0.0": MagicMock(obj=dp)} + mock_lookup.return_value = result_mock + response = self.client.get("/decision_points/ns1/key1") + self.assertEqual(response.status_code, 200) + self.assertIn(dp.id, response.json()) + + @patch("ssvc.api.routers.decision_points.lookup_key") + def test_get_all_versions_of_decision_points_for_key_not_found( + self, mock_lookup + ): + mock_lookup.return_value = None + response = self.client.get("/decision_points/ns1/key1") + self.assertEqual(response.status_code, 404) + + @patch("ssvc.api.routers.decision_points.lookup_latest") + def test_get_latest_decision_point_for_key_success(self, mock_lookup): + dp = self.dp + mock_lookup.return_value = dp + response = self.client.get("/decision_points/test/key1/latest") + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json()["namespace"], dp.namespace) + self.assertEqual(response.json()["key"], dp.key) + self.assertEqual(response.json()["version"], dp.version) + self.assertEqual(response.json()["name"], dp.name) + + @patch("ssvc.api.routers.decision_points.lookup_latest") + def test_get_latest_decision_point_for_key_not_found(self, mock_lookup): + mock_lookup.return_value = None + response = self.client.get("/decision_points/ns1/key1/latest") + self.assertEqual(response.status_code, 404) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/api/routers/test_decision_table.py b/src/test/api/routers/test_decision_table.py new file mode 100644 index 00000000..b605120f --- /dev/null +++ b/src/test/api/routers/test_decision_table.py @@ -0,0 +1,118 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 +import json +import unittest + +from fastapi import HTTPException +from fastapi.testclient import TestClient + +from ssvc.api.routers import decision_table +from ssvc.decision_points.base import DecisionPoint, DecisionPointValue +from ssvc.decision_tables.base import DecisionTable +from ssvc.registry.base import SsvcObjectRegistry + + +class TestDecisionPointAPI(unittest.TestCase): + def setUp(self): + self.client = TestClient(decision_table.router) + + # create a new registry for testing + self.r = SsvcObjectRegistry( + name="test registry", description="test registry" + ) + self.r.reset(force=True) + # make sure it's empty + self.assertEqual(0, len(self.r.types)) + + decision_table.r = self.r + + # now add a decision table + self.dp1 = DecisionPoint( + namespace="test", + key="A", + version="1.0.0", + name="Test Decision Point", + description="This is a test decision point.", + values=( + DecisionPointValue(name="value1", description=".", key="K1"), + DecisionPointValue(name="value2", description=".", key="K2"), + DecisionPointValue(name="value3", description=".", key="K3"), + ), + registered=False, + ) + self.dp2 = DecisionPoint( + namespace="test", + key="B", + version="1.0.0", + name="Test Decision Point", + description="This is a test decision point.", + values=( + DecisionPointValue(name="value1", description=".", key="K1"), + DecisionPointValue(name="value2", description=".", key="K2"), + ), + registered=False, + ) + self.dt = DecisionTable( + namespace="test", + key="DT_1", + version="1.0.0", + name="Test Decision Table", + description="This is a test decision table.", + decision_points={dp.id: dp for dp in (self.dp1, self.dp2)}, + outcome=self.dp2.id, + registered=False, + ) + + def test_get_decision_point_by_id_success(self): + r = self.r + response = self.client.get("/decision_point/test:A:1.0.0") + # should 404 because we have no registry entries + self.assertEqual( + 404, + response.status_code, + ) + + r.register(self.dt) + # ensure it's added to the registry + + self.assertEqual(1, len(r.types)) + self.assertEqual( + self.dt, + r.types["DecisionTable"] + .namespaces["test"] + .keys["DT_1"] + .versions["1.0.0"] + .obj, + ) + response = self.client.get("/decision_table?id=test:DT_1:1.0.0") + self.assertEqual( + 200, + response.status_code, + ) + # we need to do this because JSON doesn't do tuples + expected = json.loads(self.dt.model_dump_json()) + self.assertEqual(expected, response.json()) + + def test_get_decision_point_by_id_bad_id(self): + with self.assertRaises(HTTPException): + self.client.get("/decision_table?id=bad_id_format") + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/api/routers/test_decision_tables.py b/src/test/api/routers/test_decision_tables.py new file mode 100644 index 00000000..46159b5b --- /dev/null +++ b/src/test/api/routers/test_decision_tables.py @@ -0,0 +1,166 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +import unittest +from unittest.mock import MagicMock, patch + +from fastapi import FastAPI +from fastapi.testclient import TestClient + +from ssvc.api.routers import decision_tables +from ssvc.decision_points.base import DecisionPoint, DecisionPointValue +from ssvc.decision_tables.base import DecisionTable +from ssvc.registry.base import SsvcObjectRegistry + + +class TestDecisionTablesRouter(unittest.TestCase): + def setUp(self): + self.app = FastAPI() + self.app.include_router(decision_tables.router) + self.client = TestClient(self.app) + + # create a new registry for testing + self.r = SsvcObjectRegistry( + name="test registry", description="test registry" + ) + self.r.reset(force=True) + # make sure it's empty + self.assertEqual(0, len(self.r.types)) + + decision_tables.r = self.r + + self.dp1 = DecisionPoint( + namespace="test", + key="A", + version="1.0.0", + name="Test Decision Point", + description="This is a test decision point.", + values=( + DecisionPointValue(name="value1", description=".", key="K1"), + DecisionPointValue(name="value2", description=".", key="K2"), + DecisionPointValue(name="value3", description=".", key="K3"), + ), + registered=False, + ) + self.dp2 = DecisionPoint( + namespace="test", + key="B", + version="1.0.0", + name="Test Decision Point", + description="This is a test decision point.", + values=( + DecisionPointValue(name="value1", description=".", key="K1"), + DecisionPointValue(name="value2", description=".", key="K2"), + ), + registered=False, + ) + self.dt = DecisionTable( + namespace="test", + key="DT_1", + version="1.0.0", + name="Test Decision Table", + description="This is a test decision table.", + decision_points={dp.id: dp for dp in (self.dp1, self.dp2)}, + outcome=self.dp2.id, + registered=False, + ) + + @patch("ssvc.api.routers.decision_tables.lookup_objtype") + def test_get_all_decision_tables_success(self, mock_lookup): + result_mock = MagicMock() + result_mock.namespaces = { + self.dt.namespace: MagicMock( + keys={ + self.dt.key: MagicMock( + versions={self.dt.version: MagicMock(obj=self.dt)} + ) + } + ) + } + mock_lookup.return_value = result_mock + response = self.client.get("/decision_tables/") + self.assertEqual(response.status_code, 200) + self.assertIn(self.dt.id, response.json()) + + @patch("ssvc.api.routers.decision_tables.lookup_objtype") + def test_get_all_decision_tables_not_found(self, mock_lookup): + mock_lookup.return_value = None + response = self.client.get("/decision_tables/") + self.assertEqual(response.status_code, 404) + + @patch("ssvc.api.routers.decision_tables.lookup_namespace") + def test_get_decision_tables_for_namespace_success(self, mock_lookup): + ns_mock = MagicMock() + ns_mock.keys = { + self.dt.key: MagicMock( + versions={self.dt.version: MagicMock(obj=self.dt)} + ) + } + mock_lookup.return_value = ns_mock + response = self.client.get(f"/decision_tables/{self.dt.namespace}") + self.assertEqual(response.status_code, 200) + self.assertIn(self.dt.id, response.json()) + + @patch("ssvc.api.routers.decision_tables.lookup_namespace") + def test_get_decision_tables_for_namespace_not_found(self, mock_lookup): + mock_lookup.return_value = None + response = self.client.get(f"/decision_tables/{self.dt.namespace}") + self.assertEqual(response.status_code, 404) + + @patch("ssvc.api.routers.decision_tables.lookup_key") + def test_get_decision_tables_for_key_success(self, mock_lookup): + key_mock = MagicMock() + key_mock.versions = {self.dt.version: MagicMock(obj=self.dt)} + mock_lookup.return_value = key_mock + response = self.client.get( + f"/decision_tables/{self.dt.namespace}/{self.dt.key}" + ) + self.assertEqual(response.status_code, 200) + self.assertIn(self.dt.id, response.json()) + + @patch("ssvc.api.routers.decision_tables.lookup_key") + def test_get_decision_tables_for_key_not_found(self, mock_lookup): + mock_lookup.return_value = None + response = self.client.get( + f"/decision_tables/{self.dt.namespace}/{self.dt.key}" + ) + self.assertEqual(response.status_code, 404) + + @patch("ssvc.api.routers.decision_tables.lookup_latest") + def test_get_latest_decision_table_for_key_success(self, mock_lookup): + latest_dt = self.dt + mock_lookup.return_value = latest_dt + response = self.client.get( + f"/decision_tables/{latest_dt.namespace}/{latest_dt.key}/latest" + ) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json()["namespace"], latest_dt.namespace) + self.assertEqual(response.json()["key"], latest_dt.key) + self.assertEqual(response.json()["version"], latest_dt.version) + self.assertEqual(response.json()["name"], latest_dt.name) + + @patch("ssvc.api.routers.decision_tables.lookup_latest") + def test_get_latest_decision_table_for_key_not_found(self, mock_lookup): + mock_lookup.return_value = None + response = self.client.get(f"/decision_tables/test/key1/latest") + self.assertEqual(response.status_code, 404) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/api/routers/test_keys.py b/src/test/api/routers/test_keys.py new file mode 100644 index 00000000..c001c445 --- /dev/null +++ b/src/test/api/routers/test_keys.py @@ -0,0 +1,116 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +import unittest +from unittest.mock import MagicMock, patch + +from fastapi import FastAPI +from fastapi.testclient import TestClient + +from ssvc.api.routers import keys + + +class TestKeysRouter(unittest.TestCase): + def setUp(self): + self.app = FastAPI() + self.app.include_router(keys.router) + self.client = TestClient(self.app) + self.registry_patch = patch.object(keys, "r", autospec=True) + self.mock_registry = self.registry_patch.start() + self.addCleanup(self.registry_patch.stop) + + def test_get_key_dict(self): + # Setup mock registry + ns_mock1 = MagicMock(keys={"k1": None, "k2": None}) + ns_mock2 = MagicMock(keys={"k3": None}) + type_mock = MagicMock(namespaces={"ns1": ns_mock1, "ns2": ns_mock2}) + self.mock_registry.types = {"TypeA": type_mock} + response = self.client.get("/keys/") + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.json(), + { + "types": { + "TypeA": { + "namespaces": { + "ns1": {"keys": ["k1", "k2"]}, + "ns2": {"keys": ["k3"]}, + } + } + } + }, + ) + + @patch("ssvc.api.routers.keys._404_on_none") + def test_get_key_dict_for_type(self, mock_404): + ns_mock1 = MagicMock(keys={"k1": None}) + type_mock = MagicMock(namespaces={"ns1": ns_mock1}) + self.mock_registry.types = {"TypeA": type_mock} + response = self.client.get("/keys/TypeA") + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.json(), + {"types": {"TypeA": {"namespaces": {"ns1": {"keys": ["k1"]}}}}}, + ) + mock_404.assert_called_once() + + @patch("ssvc.api.routers.keys.lookup_namespace") + @patch("ssvc.api.routers.keys._404_on_none") + def test_get_key_dict_for_type_and_namespace(self, mock_404, mock_lookup): + ns_mock = MagicMock(keys={"k1": None, "k2": None}) + mock_lookup.return_value = ns_mock + mock_404.return_value = None + response = self.client.get("/keys/TypeA/ns1") + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.json(), + { + "types": { + "TypeA": {"namespaces": {"ns1": {"keys": ["k1", "k2"]}}} + } + }, + ) + mock_lookup.assert_called_once_with( + objtype="TypeA", namespace="ns1", registry=self.mock_registry + ) + mock_404.assert_called_once() + + @patch("ssvc.api.routers.keys.lookup_namespace") + @patch("ssvc.api.routers.keys._404_on_none") + def test_get_key_list_for_type_and_namespace(self, mock_404, mock_lookup): + ns_mock = MagicMock(keys={"k1": None, "k2": None}) + mock_lookup.return_value = ns_mock + mock_404.return_value = None + response = self.client.get("/keys/TypeA/ns1/list") + self.assertEqual(response.status_code, 200) + self.assertEqual(sorted(response.json()), ["k1", "k2"]) + mock_lookup.assert_called_once_with( + objtype="TypeA", namespace="ns1", registry=self.mock_registry + ) + mock_404.assert_called_once() + + def test_get_key_dict_for_type_not_found(self): + self.mock_registry.types = {} + + response = self.client.get("/keys/TypeA") + self.assertEqual(response.status_code, 404) # Exception raised + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/api/routers/test_namespaces.py b/src/test/api/routers/test_namespaces.py new file mode 100644 index 00000000..8922aa46 --- /dev/null +++ b/src/test/api/routers/test_namespaces.py @@ -0,0 +1,87 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +import unittest +from unittest.mock import MagicMock, patch + +from fastapi import FastAPI +from fastapi.testclient import TestClient + +from ssvc.api.routers import namespaces + + +class TestNamespacesRouter(unittest.TestCase): + def setUp(self): + self.app = FastAPI() + self.app.include_router(namespaces.router) + self.client = TestClient(self.app) + self.registry_patch = patch.object(namespaces, "r", autospec=True) + self.mock_registry = self.registry_patch.start() + self.addCleanup(self.registry_patch.stop) + + def test_get_object_type_namespaces(self): + # Setup mock registry + self.mock_registry.types = { + "TypeA": MagicMock(namespaces={"ns1": None, "ns2": None}), + "TypeB": MagicMock(namespaces={"ns3": None}), + } + response = self.client.get("/namespaces/") + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.json(), + { + "types": { + "TypeA": {"namespaces": ["ns1", "ns2"]}, + "TypeB": {"namespaces": ["ns3"]}, + } + }, + ) + + def test_get_namespace_list(self): + self.mock_registry.types = { + "TypeA": MagicMock(namespaces={"ns1": None, "ns2": None}), + "TypeB": MagicMock(namespaces={"ns3": None}), + } + response = self.client.get("/namespaces/list") + self.assertEqual(response.status_code, 200) + self.assertEqual(sorted(response.json()), ["ns1", "ns2", "ns3"]) + + @patch("ssvc.api.routers.namespaces.lookup_objtype") + @patch("ssvc.api.routers.namespaces._404_on_none") + def test_get_namespace_list_for_type(self, mock_404, mock_lookup): + + self.mock_registry.types = { + "TypeA": MagicMock(namespaces={"ns1": None, "ns2": None}), + "TypeB": MagicMock(namespaces={"ns3": None}), + } + mock_404.return_value = None + response = self.client.get("/namespaces/TypeA") + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.json(), + {"types": {"TypeA": {"namespaces": ["ns1", "ns2"]}}}, + ) + mock_lookup.assert_called_once_with( + objtype="TypeA", registry=self.mock_registry + ) + mock_404.assert_called_once() + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/api/routers/test_objects.py b/src/test/api/routers/test_objects.py new file mode 100644 index 00000000..5f6e2035 --- /dev/null +++ b/src/test/api/routers/test_objects.py @@ -0,0 +1,159 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +import unittest +from unittest.mock import MagicMock, patch + +from fastapi import FastAPI +from fastapi.testclient import TestClient + +from ssvc.api.routers import objects +from ssvc.decision_points.base import DecisionPoint, DecisionPointValue +from ssvc.decision_tables.base import DecisionTable + + +class TestObjectsRouter(unittest.TestCase): + def setUp(self): + self.app = FastAPI() + self.app.include_router(objects.router) + self.client = TestClient(self.app) + + objects.r.reset(force=True) + + self.dp1 = DecisionPoint( + namespace="test", + key="key1", + version="1.0.0", + name="Test DP 1", + description="desc1", + values=( + DecisionPointValue( + key="value1", + name="Value 1", + description="Description for value 1", + ), + DecisionPointValue( + key="value2", + name="Value 2", + description="Description for value 2", + ), + ), + ) + self.dp2 = DecisionPoint( + namespace="test", + key="key2", + version="1.0.0", + name="Test DP 2", + description="desc2", + values=( + DecisionPointValue( + key="value1", + name="Value 1", + description="Description for value 1", + ), + DecisionPointValue( + key="value2", + name="Value 2", + description="Description for value 2", + ), + ), + ) + self.dp3 = DecisionPoint( + namespace="test", + key="key3", + version="1.0.0", + name="Test DP 3", + description="desc3", + values=( + DecisionPointValue( + key="value1", + name="Value 1", + description="Description for value 1", + ), + DecisionPointValue( + key="value2", + name="Value 2", + description="Description for value 2", + ), + DecisionPointValue( + key="value3", + name="Value 3", + description="Description for value 3", + ), + ), + ) + self.dt = DecisionTable( + namespace="test", + key="key2", + version="2.0.0", + name="Test DT", + description="desc", + decision_points={ + dp.id: dp for dp in (self.dp1, self.dp2, self.dp3) + }, + outcome=self.dp3.id, + ) + + @patch("ssvc.api.routers.objects.lookup_by_id") + def test_get_decision_point_success(self, mock_lookup): + dp = self.dp1 + ver_obj = MagicMock(obj=dp) + mock_lookup.return_value = ver_obj + response = self.client.get("/objects/DecisionPoint/ns1/key1/1.0.0") + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json()["namespace"], dp.namespace) + self.assertEqual(response.json()["key"], dp.key) + self.assertEqual(response.json()["version"], dp.version) + self.assertEqual(response.json()["name"], dp.name) + + @patch("ssvc.api.routers.objects.lookup_by_id") + def test_get_decision_point_not_found(self, mock_lookup): + mock_lookup.return_value = None + response = self.client.get("/objects/DecisionPoint/ns1/key1/1.0.0") + self.assertEqual(response.status_code, 404) + + @patch("ssvc.api.routers.objects.lookup_by_id") + def test_get_decision_table_success(self, mock_lookup): + dt = self.dt + ver_obj = MagicMock(obj=dt) + mock_lookup.return_value = ver_obj + response = self.client.get("/objects/DecisionTable/ns2/key2/2.0.0") + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json()["namespace"], dt.namespace) + self.assertEqual(response.json()["key"], dt.key) + self.assertEqual(response.json()["version"], dt.version) + self.assertEqual(response.json()["name"], dt.name) + self.assertEqual(response.json()["description"], dt.description) + + @patch("ssvc.api.routers.objects.lookup_by_id") + def test_get_decision_table_not_found(self, mock_lookup): + mock_lookup.return_value = None + response = self.client.get("/objects/DecisionTable/ns2/key2/2.0.0") + self.assertEqual(response.status_code, 404) + + def test_get_object_invalid_params(self): + # Missing version param + response = self.client.get("/objects/DecisionPoint/ns1/key1/") + self.assertEqual( + response.status_code, 404 + ) # FastAPI returns 404 for missing path param + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/api/routers/test_types.py b/src/test/api/routers/test_types.py new file mode 100644 index 00000000..b3be9071 --- /dev/null +++ b/src/test/api/routers/test_types.py @@ -0,0 +1,54 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +import unittest +from unittest.mock import patch + +from fastapi import FastAPI +from fastapi.testclient import TestClient + +from ssvc.api.routers import types + + +class TestTypesRouter(unittest.TestCase): + def setUp(self): + # Create FastAPI app and include the router + self.app = FastAPI() + self.app.include_router(types.router) + self.client = TestClient(self.app) + # Patch the registry + self.registry_patch = patch.object(types, "r", autospec=True) + self.mock_registry = self.registry_patch.start() + self.addCleanup(self.registry_patch.stop) + + def test_get_object_types(self): + self.mock_registry.types = {"A": None, "B": None} + response = self.client.get("/objtypes/") + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json(), {"types": ["A", "B"]}) + + def test_get_object_type_list(self): + self.mock_registry.types = {"X": None, "Y": None} + response = self.client.get("/objtypes/list") + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json(), ["X", "Y"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/api/routers/test_versions.py b/src/test/api/routers/test_versions.py new file mode 100644 index 00000000..492f7f88 --- /dev/null +++ b/src/test/api/routers/test_versions.py @@ -0,0 +1,111 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +import unittest +from unittest.mock import MagicMock, patch + +from fastapi import FastAPI +from fastapi.testclient import TestClient + +from ssvc.api.routers import versions + + +class TestVersionsRouter(unittest.TestCase): + def setUp(self): + self.app = FastAPI() + self.app.include_router(versions.router) + self.client = TestClient(self.app) + + @patch("ssvc.api.routers.versions.lookup_key") + def test_get_version_dict_for_key_success(self, mock_lookup): + key_mock = MagicMock() + key_mock.versions = {"1.0.0": None, "2.0.0": None} + mock_lookup.return_value = key_mock + response = self.client.get("/versions/TypeA/ns1/key1") + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.json(), + { + "types": { + "TypeA": { + "namespaces": { + "ns1": { + "keys": { + "key1": {"versions": ["1.0.0", "2.0.0"]} + } + } + } + } + } + }, + ) + + @patch("ssvc.api.routers.versions.lookup_key") + def test_get_version_dict_for_key_not_found(self, mock_lookup): + mock_lookup.return_value = None + response = self.client.get("/versions/TypeA/ns1/key1") + self.assertEqual(response.status_code, 404) + + @patch("ssvc.api.routers.versions.lookup_key") + def test_get_version_dict_for_key_empty_versions(self, mock_lookup): + key_mock = MagicMock() + key_mock.versions = {} + mock_lookup.return_value = key_mock + response = self.client.get("/versions/TypeA/ns1/key1") + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.json(), + { + "types": { + "TypeA": { + "namespaces": { + "ns1": {"keys": {"key1": {"versions": []}}} + } + } + } + }, + ) + + @patch("ssvc.api.routers.versions.lookup_key") + def test_get_version_list_for_key_success(self, mock_lookup): + key_mock = MagicMock() + key_mock.versions = {"1.0.0": None, "2.0.0": None} + mock_lookup.return_value = key_mock + response = self.client.get("/versions/TypeA/ns1/key1/list") + self.assertEqual(response.status_code, 200) + self.assertEqual(sorted(response.json()), ["1.0.0", "2.0.0"]) + + @patch("ssvc.api.routers.versions.lookup_key") + def test_get_version_list_for_key_not_found(self, mock_lookup): + mock_lookup.return_value = None + response = self.client.get("/versions/TypeA/ns1/key1/list") + self.assertEqual(response.status_code, 404) + + @patch("ssvc.api.routers.versions.lookup_key") + def test_get_version_list_for_key_empty_versions(self, mock_lookup): + key_mock = MagicMock() + key_mock.versions = {} + mock_lookup.return_value = key_mock + response = self.client.get("/versions/TypeA/ns1/key1/list") + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json(), []) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/api/test_helpers.py b/src/test/api/test_helpers.py new file mode 100644 index 00000000..c30f8b81 --- /dev/null +++ b/src/test/api/test_helpers.py @@ -0,0 +1,44 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +import unittest + +from fastapi import HTTPException + +from ssvc.api.helpers import _404_on_none + + +class Test404OnNone(unittest.TestCase): + def test_raises_404_on_none(self): + with self.assertRaises(HTTPException) as context: + _404_on_none(None) + self.assertEqual(context.exception.status_code, 404) + self.assertEqual(context.exception.detail, "Item not found") + + def test_does_not_raise_on_not_none(self): + try: + _404_on_none("not none") + except HTTPException: + self.fail( + "HTTPException should not be raised when obj is not None" + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/api/test_main.py b/src/test/api/test_main.py new file mode 100644 index 00000000..be81a600 --- /dev/null +++ b/src/test/api/test_main.py @@ -0,0 +1,63 @@ +# Copyright (c) 2025 Carnegie Mellon University. +# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE +# ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. +# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT +# NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR +# MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE +# OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE +# ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM +# PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. +# Licensed under a MIT (SEI)-style license, please see LICENSE or contact +# permission@sei.cmu.edu for full terms. +# [DISTRIBUTION STATEMENT A] This material has been approved for +# public release and unlimited distribution. Please see Copyright notice +# for non-US Government use and distribution. +# This Software includes and/or makes use of Third-Party Software each +# subject to its own license. +# DM24-0278 + +import unittest + +from fastapi.testclient import TestClient + +from ssvc.api.main import app + + +class MyTestCase(unittest.TestCase): + def setUp(self): + self.client = TestClient(app) + + def tearDown(self): + pass + + def test_expected_routers(self): + # Check if the expected routers are included in the app + expected_routers = [ + "decision_point", + "decision_points", + "decision_table", + "decision_tables", + "types", + "namespaces", + "keys", + "versions", + ] + routes = [r.path for r in app.routes] + for expected in expected_routers: + self.assertTrue( + any([expected in route for route in routes]), + "Expected router '{}' not found in app routes.".format( + expected + ), + ) + + def test_root_redirects_to_docs(self): + # disable redirect + response = self.client.get("/", follow_redirects=False) + self.assertIn(response.status_code, [302, 307]) + self.assertEqual("/docs", response.headers["location"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/uv.lock b/src/uv.lock new file mode 100644 index 00000000..c93a5b40 --- /dev/null +++ b/src/uv.lock @@ -0,0 +1,1894 @@ +version = 1 +revision = 3 +requires-python = ">=3.12" + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f1/b4/636b3b65173d3ce9a38ef5f0522789614e590dab6a8d505340a4efe4c567/anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6", size = 213252, upload-time = "2025-08-04T08:54:26.451Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/12/e5e0282d673bb9746bacfb6e2dba8719989d3660cdb2ea79aee9a9651afb/anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1", size = 107213, upload-time = "2025-08-04T08:54:24.882Z" }, +] + +[[package]] +name = "attrs" +version = "25.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032, upload-time = "2025-03-13T11:10:22.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload-time = "2025-03-13T11:10:21.14Z" }, +] + +[[package]] +name = "babel" +version = "2.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852, upload-time = "2025-02-01T15:17:41.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537, upload-time = "2025-02-01T15:17:37.39Z" }, +] + +[[package]] +name = "backrefs" +version = "5.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/a7/312f673df6a79003279e1f55619abbe7daebbb87c17c976ddc0345c04c7b/backrefs-5.9.tar.gz", hash = "sha256:808548cb708d66b82ee231f962cb36faaf4f2baab032f2fbb783e9c2fdddaa59", size = 5765857, upload-time = "2025-06-22T19:34:13.97Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/4d/798dc1f30468134906575156c089c492cf79b5a5fd373f07fe26c4d046bf/backrefs-5.9-py310-none-any.whl", hash = "sha256:db8e8ba0e9de81fcd635f440deab5ae5f2591b54ac1ebe0550a2ca063488cd9f", size = 380267, upload-time = "2025-06-22T19:34:05.252Z" }, + { url = "https://files.pythonhosted.org/packages/55/07/f0b3375bf0d06014e9787797e6b7cc02b38ac9ff9726ccfe834d94e9991e/backrefs-5.9-py311-none-any.whl", hash = "sha256:6907635edebbe9b2dc3de3a2befff44d74f30a4562adbb8b36f21252ea19c5cf", size = 392072, upload-time = "2025-06-22T19:34:06.743Z" }, + { url = "https://files.pythonhosted.org/packages/9d/12/4f345407259dd60a0997107758ba3f221cf89a9b5a0f8ed5b961aef97253/backrefs-5.9-py312-none-any.whl", hash = "sha256:7fdf9771f63e6028d7fee7e0c497c81abda597ea45d6b8f89e8ad76994f5befa", size = 397947, upload-time = "2025-06-22T19:34:08.172Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/fa31834dc27a7f05e5290eae47c82690edc3a7b37d58f7fb35a1bdbf355b/backrefs-5.9-py313-none-any.whl", hash = "sha256:cc37b19fa219e93ff825ed1fed8879e47b4d89aa7a1884860e2db64ccd7c676b", size = 399843, upload-time = "2025-06-22T19:34:09.68Z" }, + { url = "https://files.pythonhosted.org/packages/fc/24/b29af34b2c9c41645a9f4ff117bae860291780d73880f449e0b5d948c070/backrefs-5.9-py314-none-any.whl", hash = "sha256:df5e169836cc8acb5e440ebae9aad4bf9d15e226d3bad049cf3f6a5c20cc8dc9", size = 411762, upload-time = "2025-06-22T19:34:11.037Z" }, + { url = "https://files.pythonhosted.org/packages/41/ff/392bff89415399a979be4a65357a41d92729ae8580a66073d8ec8d810f98/backrefs-5.9-py39-none-any.whl", hash = "sha256:f48ee18f6252b8f5777a22a00a09a85de0ca931658f1dd96d4406a34f3748c60", size = 380265, upload-time = "2025-06-22T19:34:12.405Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.13.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d8/e4/0c4c39e18fd76d6a628d4dd8da40543d136ce2d1752bd6eeeab0791f4d6b/beautifulsoup4-4.13.4.tar.gz", hash = "sha256:dbb3c4e1ceae6aefebdaf2423247260cd062430a410e38c66f2baa50a8437195", size = 621067, upload-time = "2025-04-15T17:05:13.836Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/cd/30110dc0ffcf3b131156077b90e9f60ed75711223f306da4db08eff8403b/beautifulsoup4-4.13.4-py3-none-any.whl", hash = "sha256:9bbbb14bfde9d79f38b8cd5f8c7c85f4b8f2523190ebed90e950a8dea4cb1c4b", size = 187285, upload-time = "2025-04-15T17:05:12.221Z" }, +] + +[[package]] +name = "bracex" +version = "2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/63/9a/fec38644694abfaaeca2798b58e276a8e61de49e2e37494ace423395febc/bracex-2.6.tar.gz", hash = "sha256:98f1347cd77e22ee8d967a30ad4e310b233f7754dbf31ff3fceb76145ba47dc7", size = 26642, upload-time = "2025-06-22T19:12:31.254Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/2a/9186535ce58db529927f6cf5990a849aa9e052eea3e2cfefe20b9e1802da/bracex-2.6-py3-none-any.whl", hash = "sha256:0b0049264e7340b3ec782b5cb99beb325f36c3782a32e36e876452fd49a09952", size = 11508, upload-time = "2025-06-22T19:12:29.781Z" }, +] + +[[package]] +name = "certifi" +version = "2025.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386, upload-time = "2025-08-03T03:07:47.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload-time = "2025-08-03T03:07:45.777Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371, upload-time = "2025-08-09T07:57:28.46Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655, upload-time = "2025-08-09T07:56:08.475Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223, upload-time = "2025-08-09T07:56:09.708Z" }, + { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366, upload-time = "2025-08-09T07:56:11.326Z" }, + { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104, upload-time = "2025-08-09T07:56:13.014Z" }, + { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830, upload-time = "2025-08-09T07:56:14.428Z" }, + { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854, upload-time = "2025-08-09T07:56:16.051Z" }, + { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670, upload-time = "2025-08-09T07:56:17.314Z" }, + { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501, upload-time = "2025-08-09T07:56:18.641Z" }, + { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173, upload-time = "2025-08-09T07:56:20.289Z" }, + { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822, upload-time = "2025-08-09T07:56:21.551Z" }, + { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543, upload-time = "2025-08-09T07:56:23.115Z" }, + { url = "https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", size = 205326, upload-time = "2025-08-09T07:56:24.721Z" }, + { url = "https://files.pythonhosted.org/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", size = 146008, upload-time = "2025-08-09T07:56:26.004Z" }, + { url = "https://files.pythonhosted.org/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", size = 159196, upload-time = "2025-08-09T07:56:27.25Z" }, + { url = "https://files.pythonhosted.org/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", size = 156819, upload-time = "2025-08-09T07:56:28.515Z" }, + { url = "https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", size = 151350, upload-time = "2025-08-09T07:56:29.716Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", size = 148644, upload-time = "2025-08-09T07:56:30.984Z" }, + { url = "https://files.pythonhosted.org/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9", size = 160468, upload-time = "2025-08-09T07:56:32.252Z" }, + { url = "https://files.pythonhosted.org/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", size = 158187, upload-time = "2025-08-09T07:56:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", size = 152699, upload-time = "2025-08-09T07:56:34.739Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", size = 99580, upload-time = "2025-08-09T07:56:35.981Z" }, + { url = "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", size = 107366, upload-time = "2025-08-09T07:56:37.339Z" }, + { url = "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", size = 204342, upload-time = "2025-08-09T07:56:38.687Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", size = 145995, upload-time = "2025-08-09T07:56:40.048Z" }, + { url = "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", size = 158640, upload-time = "2025-08-09T07:56:41.311Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", size = 156636, upload-time = "2025-08-09T07:56:43.195Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", size = 150939, upload-time = "2025-08-09T07:56:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", size = 148580, upload-time = "2025-08-09T07:56:46.684Z" }, + { url = "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", size = 159870, upload-time = "2025-08-09T07:56:47.941Z" }, + { url = "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", size = 157797, upload-time = "2025-08-09T07:56:49.756Z" }, + { url = "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", size = 152224, upload-time = "2025-08-09T07:56:51.369Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", size = 100086, upload-time = "2025-08-09T07:56:52.722Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", size = 107400, upload-time = "2025-08-09T07:56:55.172Z" }, + { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175, upload-time = "2025-08-09T07:57:26.864Z" }, +] + +[[package]] +name = "click" +version = "8.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215, upload-time = "2025-05-20T23:19:47.796Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "dnspython" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/4a/263763cb2ba3816dd94b08ad3a33d5fdae34ecb856678773cc40a3605829/dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1", size = 345197, upload-time = "2024-10-05T20:14:59.362Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/1b/e0a87d256e40e8c888847551b20a017a6b98139178505dc7ffb96f04e954/dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86", size = 313632, upload-time = "2024-10-05T20:14:57.687Z" }, +] + +[[package]] +name = "email-validator" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/ce/13508a1ec3f8bb981ae4ca79ea40384becc868bfae97fd1c942bb3a001b1/email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7", size = 48967, upload-time = "2024-06-20T11:30:30.034Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/ee/bf0adb559ad3c786f12bcbc9296b3f5675f529199bef03e2df281fa1fadb/email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631", size = 33521, upload-time = "2024-06-20T11:30:28.248Z" }, +] + +[[package]] +name = "fastapi" +version = "0.116.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/d7/6c8b3bfe33eeffa208183ec037fee0cce9f7f024089ab1c5d12ef04bd27c/fastapi-0.116.1.tar.gz", hash = "sha256:ed52cbf946abfd70c5a0dccb24673f0670deeb517a88b3544d03c2a6bf283143", size = 296485, upload-time = "2025-07-11T16:22:32.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl", hash = "sha256:c46ac7c312df840f0c9e220f7964bada936781bc4e2e6eb71f1c4d7553786565", size = 95631, upload-time = "2025-07-11T16:22:30.485Z" }, +] + +[package.optional-dependencies] +all = [ + { name = "email-validator" }, + { name = "fastapi-cli", extra = ["standard"] }, + { name = "httpx" }, + { name = "itsdangerous" }, + { name = "jinja2" }, + { name = "orjson" }, + { name = "pydantic-extra-types" }, + { name = "pydantic-settings" }, + { name = "python-multipart" }, + { name = "pyyaml" }, + { name = "ujson" }, + { name = "uvicorn", extra = ["standard"] }, +] +standard = [ + { name = "email-validator" }, + { name = "fastapi-cli", extra = ["standard"] }, + { name = "httpx" }, + { name = "jinja2" }, + { name = "python-multipart" }, + { name = "uvicorn", extra = ["standard"] }, +] + +[[package]] +name = "fastapi-cli" +version = "0.0.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "rich-toolkit" }, + { name = "typer" }, + { name = "uvicorn", extra = ["standard"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/94/3ef75d9c7c32936ecb539b9750ccbdc3d2568efd73b1cb913278375f4533/fastapi_cli-0.0.8.tar.gz", hash = "sha256:2360f2989b1ab4a3d7fc8b3a0b20e8288680d8af2e31de7c38309934d7f8a0ee", size = 16884, upload-time = "2025-07-07T14:44:09.326Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/3f/6ad3103c5f59208baf4c798526daea6a74085bb35d1c161c501863470476/fastapi_cli-0.0.8-py3-none-any.whl", hash = "sha256:0ea95d882c85b9219a75a65ab27e8da17dac02873e456850fa0a726e96e985eb", size = 10770, upload-time = "2025-07-07T14:44:08.255Z" }, +] + +[package.optional-dependencies] +standard = [ + { name = "fastapi-cloud-cli" }, + { name = "uvicorn", extra = ["standard"] }, +] + +[[package]] +name = "fastapi-cloud-cli" +version = "0.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "pydantic", extra = ["email"] }, + { name = "rich-toolkit" }, + { name = "rignore" }, + { name = "sentry-sdk" }, + { name = "typer" }, + { name = "uvicorn", extra = ["standard"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/2e/3b6e5016affc310e5109bc580f760586eabecea0c8a7ab067611cd849ac0/fastapi_cloud_cli-0.1.5.tar.gz", hash = "sha256:341ee585eb731a6d3c3656cb91ad38e5f39809bf1a16d41de1333e38635a7937", size = 22710, upload-time = "2025-07-28T13:30:48.216Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/a6/5aa862489a2918a096166fd98d9fe86b7fd53c607678b3fa9d8c432d88d5/fastapi_cloud_cli-0.1.5-py3-none-any.whl", hash = "sha256:d80525fb9c0e8af122370891f9fa83cf5d496e4ad47a8dd26c0496a6c85a012a", size = 18992, upload-time = "2025-07-28T13:30:47.427Z" }, +] + +[[package]] +name = "ghp-import" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/29/d40217cbe2f6b1359e00c6c307bb3fc876ba74068cbab3dde77f03ca0dc4/ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343", size = 10943, upload-time = "2022-05-02T15:47:16.11Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" }, +] + +[[package]] +name = "griffe" +version = "1.12.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/ca/29f36e00c74844ae50d139cf5a8b1751887b2f4d5023af65d460268ad7aa/griffe-1.12.1.tar.gz", hash = "sha256:29f5a6114c0aeda7d9c86a570f736883f8a2c5b38b57323d56b3d1c000565567", size = 411863, upload-time = "2025-08-14T21:08:15.38Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/f2/4fab6c3e5bcaf38a44cc8a974d2752eaad4c129e45d6533d926a30edd133/griffe-1.12.1-py3-none-any.whl", hash = "sha256:2d7c12334de00089c31905424a00abcfd931b45b8b516967f224133903d302cc", size = 138940, upload-time = "2025-08-14T21:08:13.382Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httptools" +version = "0.6.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/9a/ce5e1f7e131522e6d3426e8e7a490b3a01f39a6696602e1c4f33f9e94277/httptools-0.6.4.tar.gz", hash = "sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c", size = 240639, upload-time = "2024-10-16T19:45:08.902Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/0e/d0b71465c66b9185f90a091ab36389a7352985fe857e352801c39d6127c8/httptools-0.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df017d6c780287d5c80601dafa31f17bddb170232d85c066604d8558683711a2", size = 200683, upload-time = "2024-10-16T19:44:30.175Z" }, + { url = "https://files.pythonhosted.org/packages/e2/b8/412a9bb28d0a8988de3296e01efa0bd62068b33856cdda47fe1b5e890954/httptools-0.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:85071a1e8c2d051b507161f6c3e26155b5c790e4e28d7f236422dbacc2a9cc44", size = 104337, upload-time = "2024-10-16T19:44:31.786Z" }, + { url = "https://files.pythonhosted.org/packages/9b/01/6fb20be3196ffdc8eeec4e653bc2a275eca7f36634c86302242c4fbb2760/httptools-0.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69422b7f458c5af875922cdb5bd586cc1f1033295aa9ff63ee196a87519ac8e1", size = 508796, upload-time = "2024-10-16T19:44:32.825Z" }, + { url = "https://files.pythonhosted.org/packages/f7/d8/b644c44acc1368938317d76ac991c9bba1166311880bcc0ac297cb9d6bd7/httptools-0.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16e603a3bff50db08cd578d54f07032ca1631450ceb972c2f834c2b860c28ea2", size = 510837, upload-time = "2024-10-16T19:44:33.974Z" }, + { url = "https://files.pythonhosted.org/packages/52/d8/254d16a31d543073a0e57f1c329ca7378d8924e7e292eda72d0064987486/httptools-0.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec4f178901fa1834d4a060320d2f3abc5c9e39766953d038f1458cb885f47e81", size = 485289, upload-time = "2024-10-16T19:44:35.111Z" }, + { url = "https://files.pythonhosted.org/packages/5f/3c/4aee161b4b7a971660b8be71a92c24d6c64372c1ab3ae7f366b3680df20f/httptools-0.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb89ecf8b290f2e293325c646a211ff1c2493222798bb80a530c5e7502494f", size = 489779, upload-time = "2024-10-16T19:44:36.253Z" }, + { url = "https://files.pythonhosted.org/packages/12/b7/5cae71a8868e555f3f67a50ee7f673ce36eac970f029c0c5e9d584352961/httptools-0.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:db78cb9ca56b59b016e64b6031eda5653be0589dba2b1b43453f6e8b405a0970", size = 88634, upload-time = "2024-10-16T19:44:37.357Z" }, + { url = "https://files.pythonhosted.org/packages/94/a3/9fe9ad23fd35f7de6b91eeb60848986058bd8b5a5c1e256f5860a160cc3e/httptools-0.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660", size = 197214, upload-time = "2024-10-16T19:44:38.738Z" }, + { url = "https://files.pythonhosted.org/packages/ea/d9/82d5e68bab783b632023f2fa31db20bebb4e89dfc4d2293945fd68484ee4/httptools-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083", size = 102431, upload-time = "2024-10-16T19:44:39.818Z" }, + { url = "https://files.pythonhosted.org/packages/96/c1/cb499655cbdbfb57b577734fde02f6fa0bbc3fe9fb4d87b742b512908dff/httptools-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3", size = 473121, upload-time = "2024-10-16T19:44:41.189Z" }, + { url = "https://files.pythonhosted.org/packages/af/71/ee32fd358f8a3bb199b03261f10921716990808a675d8160b5383487a317/httptools-0.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071", size = 473805, upload-time = "2024-10-16T19:44:42.384Z" }, + { url = "https://files.pythonhosted.org/packages/8a/0a/0d4df132bfca1507114198b766f1737d57580c9ad1cf93c1ff673e3387be/httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5", size = 448858, upload-time = "2024-10-16T19:44:43.959Z" }, + { url = "https://files.pythonhosted.org/packages/1e/6a/787004fdef2cabea27bad1073bf6a33f2437b4dbd3b6fb4a9d71172b1c7c/httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0", size = 452042, upload-time = "2024-10-16T19:44:45.071Z" }, + { url = "https://files.pythonhosted.org/packages/4d/dc/7decab5c404d1d2cdc1bb330b1bf70e83d6af0396fd4fc76fc60c0d522bf/httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8", size = 87682, upload-time = "2024-10-16T19:44:46.46Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, +] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/fe/0f5a938c54105553436dbff7a61dc4fed4b1b2c98852f8833beaf4d5968f/joblib-1.5.1.tar.gz", hash = "sha256:f4f86e351f39fe3d0d32a9f2c3d8af1ee4cec285aafcb27003dda5205576b444", size = 330475, upload-time = "2025-05-23T12:04:37.097Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/4f/1195bbac8e0c2acc5f740661631d8d750dc38d4a32b23ee5df3cde6f4e0d/joblib-1.5.1-py3-none-any.whl", hash = "sha256:4719a31f054c7d766948dcd83e9613686b27114f190f717cec7eaa2084f8a74a", size = 307746, upload-time = "2025-05-23T12:04:35.124Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342, upload-time = "2025-08-18T17:03:50.038Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload-time = "2025-08-18T17:03:48.373Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/ce/46fbd9c8119cfc3581ee5643ea49464d168028cfb5caff5fc0596d0cf914/jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608", size = 15513, upload-time = "2025-04-23T12:34:07.418Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/0e/b27cdbaccf30b890c40ed1da9fd4a3593a5cf94dae54fb34f8a4b74fcd3f/jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af", size = 18437, upload-time = "2025-04-23T12:34:05.422Z" }, +] + +[[package]] +name = "latexcodec" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/27/dd/4270b2c5e2ee49316c3859e62293bd2ea8e382339d63ab7bbe9f39c0ec3b/latexcodec-3.0.1.tar.gz", hash = "sha256:e78a6911cd72f9dec35031c6ec23584de6842bfbc4610a9678868d14cdfb0357", size = 31222, upload-time = "2025-06-17T18:47:34.051Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/40/23569737873cc9637fd488606347e9dd92b9fa37ba4fcda1f98ee5219a97/latexcodec-3.0.1-py3-none-any.whl", hash = "sha256:a9eb8200bff693f0437a69581f7579eb6bca25c4193515c09900ce76451e452e", size = 18532, upload-time = "2025-06-17T18:47:30.726Z" }, +] + +[[package]] +name = "linkchecker" +version = "10.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "dnspython" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6e/60/1ad47dd9db638546c4e70b49b5adfddfaadb2c6669a1a9b06a4dcf140d7b/LinkChecker-10.6.0.tar.gz", hash = "sha256:fb7e8facda7749c2fa5fa5dc241c0adc302da3d31d588964a2570db501aa49e5", size = 547746, upload-time = "2025-07-28T18:43:50.884Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/07/ff8a29330fa35483a19221fd89e102e7ebf700acda8f0ba0b66ef14bcd48/LinkChecker-10.6.0-py3-none-any.whl", hash = "sha256:5268587ed0b0f7e7521b75905128c96856f30f67dad49f66e2c963bc174ca92d", size = 280937, upload-time = "2025-07-28T18:43:48.932Z" }, +] + +[[package]] +name = "markdown" +version = "3.8.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/c2/4ab49206c17f75cb08d6311171f2d65798988db4360c4d1485bd0eedd67c/markdown-3.8.2.tar.gz", hash = "sha256:247b9a70dd12e27f67431ce62523e675b866d254f900c4fe75ce3dda62237c45", size = 362071, upload-time = "2025-06-19T17:12:44.483Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/2b/34cc11786bc00d0f04d0f5fdc3a2b1ae0b6239eef72d3d345805f9ad92a1/markdown-3.8.2-py3-none-any.whl", hash = "sha256:5c83764dbd4e00bdd94d85a19b8d55ccca20fe35b2e678a1422b380324dd5f24", size = 106827, upload-time = "2025-06-19T17:12:42.994Z" }, +] + +[[package]] +name = "markdown-exec" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pymdown-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e8/e4/ddd5ca350f2b072e51a22359cb51e94b5fdbe85810351e7484ccfd923324/markdown_exec-1.11.0.tar.gz", hash = "sha256:e0313a0dff715869a311d24853b3a7ecbbaa12e74eb0f3cf7d91401a7d8f0082", size = 81826, upload-time = "2025-06-28T10:30:43.781Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/41/5551f05c0e6430e3d2dcbd40965840a4cf280c045a529552690f04b7c0a0/markdown_exec-1.11.0-py3-none-any.whl", hash = "sha256:0526957984980f55c02b425d32e8ac8bb21090c109c7012ff905d3ddcc468ceb", size = 34747, upload-time = "2025-06-28T10:30:42.265Z" }, +] + +[package.optional-dependencies] +ansi = [ + { name = "pygments-ansi-color" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload-time = "2024-10-18T15:21:54.129Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274, upload-time = "2024-10-18T15:21:13.777Z" }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348, upload-time = "2024-10-18T15:21:14.822Z" }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149, upload-time = "2024-10-18T15:21:15.642Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118, upload-time = "2024-10-18T15:21:17.133Z" }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993, upload-time = "2024-10-18T15:21:18.064Z" }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178, upload-time = "2024-10-18T15:21:18.859Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319, upload-time = "2024-10-18T15:21:19.671Z" }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352, upload-time = "2024-10-18T15:21:20.971Z" }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097, upload-time = "2024-10-18T15:21:22.646Z" }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601, upload-time = "2024-10-18T15:21:23.499Z" }, + { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload-time = "2024-10-18T15:21:24.577Z" }, + { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload-time = "2024-10-18T15:21:25.382Z" }, + { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload-time = "2024-10-18T15:21:26.199Z" }, + { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload-time = "2024-10-18T15:21:27.029Z" }, + { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload-time = "2024-10-18T15:21:27.846Z" }, + { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload-time = "2024-10-18T15:21:28.744Z" }, + { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload-time = "2024-10-18T15:21:29.545Z" }, + { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload-time = "2024-10-18T15:21:30.366Z" }, + { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload-time = "2024-10-18T15:21:31.207Z" }, + { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload-time = "2024-10-18T15:21:32.032Z" }, + { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload-time = "2024-10-18T15:21:33.625Z" }, + { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload-time = "2024-10-18T15:21:34.611Z" }, + { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload-time = "2024-10-18T15:21:35.398Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload-time = "2024-10-18T15:21:36.231Z" }, + { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload-time = "2024-10-18T15:21:37.073Z" }, + { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload-time = "2024-10-18T15:21:37.932Z" }, + { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload-time = "2024-10-18T15:21:39.799Z" }, + { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload-time = "2024-10-18T15:21:40.813Z" }, + { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload-time = "2024-10-18T15:21:41.814Z" }, + { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload-time = "2024-10-18T15:21:42.784Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "mergedeep" +version = "1.3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/41/580bb4006e3ed0361b8151a01d324fb03f420815446c7def45d02f74c270/mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8", size = 4661, upload-time = "2021-02-05T18:55:30.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354, upload-time = "2021-02-05T18:55:29.583Z" }, +] + +[[package]] +name = "mkdocs" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "ghp-import" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "markupsafe" }, + { name = "mergedeep" }, + { name = "mkdocs-get-deps" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "pyyaml" }, + { name = "pyyaml-env-tag" }, + { name = "watchdog" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/c6/bbd4f061bd16b378247f12953ffcb04786a618ce5e904b8c5a01a0309061/mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2", size = 3889159, upload-time = "2024-08-30T12:24:06.899Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/5b/dbc6a8cddc9cfa9c4971d59fb12bb8d42e161b7e7f8cc89e49137c5b279c/mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e", size = 3864451, upload-time = "2024-08-30T12:24:05.054Z" }, +] + +[[package]] +name = "mkdocs-autorefs" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown" }, + { name = "markupsafe" }, + { name = "mkdocs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/0c/c9826f35b99c67fa3a7cddfa094c1a6c43fafde558c309c6e4403e5b37dc/mkdocs_autorefs-1.4.2.tar.gz", hash = "sha256:e2ebe1abd2b67d597ed19378c0fff84d73d1dbce411fce7a7cc6f161888b6749", size = 54961, upload-time = "2025-05-20T13:09:09.886Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/dc/fc063b78f4b769d1956319351704e23ebeba1e9e1d6a41b4b602325fd7e4/mkdocs_autorefs-1.4.2-py3-none-any.whl", hash = "sha256:83d6d777b66ec3c372a1aad4ae0cf77c243ba5bcda5bf0c6b8a2c5e7a3d89f13", size = 24969, upload-time = "2025-05-20T13:09:08.237Z" }, +] + +[[package]] +name = "mkdocs-bibtex" +version = "4.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mkdocs" }, + { name = "pybtex" }, + { name = "pypandoc" }, + { name = "requests" }, + { name = "responses" }, + { name = "setuptools" }, + { name = "validators" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/18/37/e7518cabcf1f11e99b973b850f753d632588ce329d634c2517b3b450fc5c/mkdocs_bibtex-4.4.0.tar.gz", hash = "sha256:32a1e0624ab0e0edc3539a90a5ffe0a2cb965f03ad5df8746a9fc9e049b6778b", size = 34852, upload-time = "2025-07-01T14:57:36.464Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/ef/2a0971707b21f5490a557c9e1b0ac428d5d47e7ef604536d092ca186a28c/mkdocs_bibtex-4.4.0-py3-none-any.whl", hash = "sha256:fc0ce0f9641b63f900585a48cc09f5817345bbaba1435abf361e21fafe279723", size = 14449, upload-time = "2025-07-01T14:57:35.273Z" }, +] + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mergedeep" }, + { name = "platformdirs" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/f5/ed29cd50067784976f25ed0ed6fcd3c2ce9eb90650aa3b2796ddf7b6870b/mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c", size = 10239, upload-time = "2023-11-20T17:51:09.981Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" }, +] + +[[package]] +name = "mkdocs-include-markdown-plugin" +version = "7.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mkdocs" }, + { name = "wcmatch" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2c/17/988d97ac6849b196f54d45ca9c60ca894880c160a512785f03834704b3d9/mkdocs_include_markdown_plugin-7.1.6.tar.gz", hash = "sha256:a0753cb82704c10a287f1e789fc9848f82b6beb8749814b24b03dd9f67816677", size = 23391, upload-time = "2025-06-13T18:25:51.193Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/a1/6cf1667a05e5f468e1263fcf848772bca8cc9e358cd57ae19a01f92c9f6f/mkdocs_include_markdown_plugin-7.1.6-py3-none-any.whl", hash = "sha256:7975a593514887c18ecb68e11e35c074c5499cfa3e51b18cd16323862e1f7345", size = 27161, upload-time = "2025-06-13T18:25:49.847Z" }, +] + +[[package]] +name = "mkdocs-material" +version = "9.6.18" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "backrefs" }, + { name = "click" }, + { name = "colorama" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "mkdocs" }, + { name = "mkdocs-material-extensions" }, + { name = "paginate" }, + { name = "pygments" }, + { name = "pymdown-extensions" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e6/46/db0d78add5aac29dfcd0a593bcc6049c86c77ba8a25b3a5b681c190d5e99/mkdocs_material-9.6.18.tar.gz", hash = "sha256:a2eb253bcc8b66f8c6eaf8379c10ed6e9644090c2e2e9d0971c7722dc7211c05", size = 4034856, upload-time = "2025-08-22T08:21:47.575Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/0b/545a4f8d4f9057e77f1d99640eb09aaae40c4f9034707f25636caf716ff9/mkdocs_material-9.6.18-py3-none-any.whl", hash = "sha256:dbc1e146a0ecce951a4d84f97b816a54936cdc9e1edd1667fc6868878ac06701", size = 9232642, upload-time = "2025-08-22T08:21:44.52Z" }, +] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", size = 11847, upload-time = "2023-11-22T19:09:45.208Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728, upload-time = "2023-11-22T19:09:43.465Z" }, +] + +[[package]] +name = "mkdocs-print-site-plugin" +version = "2.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mkdocs-material" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/18/5c71f48b83191fb30cc58617fea20f56647eaa6cafd06a7fb34c738c5acb/mkdocs_print_site_plugin-2.8.tar.gz", hash = "sha256:ab1c89cdb468352975e3bb3bb0ef25dcc2bb88931b03f173206dc95ab02f843f", size = 231688, upload-time = "2025-08-03T14:15:07.579Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/3e/7513f2f37c563da65d1b91781e047f4a1c0ceac8206d4f6042428428e4ad/mkdocs_print_site_plugin-2.8-py3-none-any.whl", hash = "sha256:838bd0a9b7141c11c0f1fdaa51ffe70c35740bec1f07c0806f8018e92f93f9da", size = 21477, upload-time = "2025-08-03T14:15:06.301Z" }, +] + +[[package]] +name = "mkdocs-table-reader-plugin" +version = "3.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mkdocs" }, + { name = "pandas" }, + { name = "pyyaml" }, + { name = "tabulate" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/1b/ca35e4b51a1814924153f7c8afa5a9c2f961688a9c275fa9f4afe7f5083a/mkdocs_table_reader_plugin-3.1.0.tar.gz", hash = "sha256:eb15688ee8c0cd1a842f506f18973b87be22bd7baa5e2e551089de6b7f9ec25b", size = 12510, upload-time = "2024-08-29T14:08:09.54Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/6f/dcc966874f74f8580b99d2ffecbdc85dfd00c4a5039fedbee4ddd7fc8c7f/mkdocs_table_reader_plugin-3.1.0-py3-none-any.whl", hash = "sha256:50a1302661c14d96b90ba0434ae96110441e0c653ce23559e3c6911fe79e7bd2", size = 10564, upload-time = "2024-08-29T14:08:07.367Z" }, +] + +[[package]] +name = "mkdocstrings" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "markdown" }, + { name = "markupsafe" }, + { name = "mkdocs" }, + { name = "mkdocs-autorefs" }, + { name = "pymdown-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e2/0a/7e4776217d4802009c8238c75c5345e23014a4706a8414a62c0498858183/mkdocstrings-0.30.0.tar.gz", hash = "sha256:5d8019b9c31ddacd780b6784ffcdd6f21c408f34c0bd1103b5351d609d5b4444", size = 106597, upload-time = "2025-07-22T23:48:45.998Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/b4/3c5eac68f31e124a55d255d318c7445840fa1be55e013f507556d6481913/mkdocstrings-0.30.0-py3-none-any.whl", hash = "sha256:ae9e4a0d8c1789697ac776f2e034e2ddd71054ae1cf2c2bb1433ccfd07c226f2", size = 36579, upload-time = "2025-07-22T23:48:44.152Z" }, +] + +[[package]] +name = "mkdocstrings-python" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "griffe" }, + { name = "mkdocs-autorefs" }, + { name = "mkdocstrings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/39/7c/6dfd8ad59c0eebae167168528ed6cad00116f58ef2327686149f7b25d175/mkdocstrings_python-1.17.0.tar.gz", hash = "sha256:c6295962b60542a9c7468a3b515ce8524616ca9f8c1a38c790db4286340ba501", size = 200408, upload-time = "2025-08-14T21:18:14.568Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/ac/b1fcc937f4ecd372f3e857162dea67c45c1e2eedbac80447be516e3372bb/mkdocstrings_python-1.17.0-py3-none-any.whl", hash = "sha256:49903fa355dfecc5ad0b891e78ff5d25d30ffd00846952801bbe8331e123d4b0", size = 124778, upload-time = "2025-08-14T21:18:12.821Z" }, +] + +[[package]] +name = "networkx" +version = "3.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368, upload-time = "2024-10-21T12:39:38.695Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263, upload-time = "2024-10-21T12:39:36.247Z" }, +] + +[[package]] +name = "numpy" +version = "2.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/7d/3fec4199c5ffb892bed55cff901e4f39a58c81df9c44c280499e92cad264/numpy-2.3.2.tar.gz", hash = "sha256:e0486a11ec30cdecb53f184d496d1c6a20786c81e55e41640270130056f8ee48", size = 20489306, upload-time = "2025-07-24T21:32:07.553Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/6d/745dd1c1c5c284d17725e5c802ca4d45cfc6803519d777f087b71c9f4069/numpy-2.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bc3186bea41fae9d8e90c2b4fb5f0a1f5a690682da79b92574d63f56b529080b", size = 20956420, upload-time = "2025-07-24T20:28:18.002Z" }, + { url = "https://files.pythonhosted.org/packages/bc/96/e7b533ea5740641dd62b07a790af5d9d8fec36000b8e2d0472bd7574105f/numpy-2.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f4f0215edb189048a3c03bd5b19345bdfa7b45a7a6f72ae5945d2a28272727f", size = 14184660, upload-time = "2025-07-24T20:28:39.522Z" }, + { url = "https://files.pythonhosted.org/packages/2b/53/102c6122db45a62aa20d1b18c9986f67e6b97e0d6fbc1ae13e3e4c84430c/numpy-2.3.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8b1224a734cd509f70816455c3cffe13a4f599b1bf7130f913ba0e2c0b2006c0", size = 5113382, upload-time = "2025-07-24T20:28:48.544Z" }, + { url = "https://files.pythonhosted.org/packages/2b/21/376257efcbf63e624250717e82b4fae93d60178f09eb03ed766dbb48ec9c/numpy-2.3.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3dcf02866b977a38ba3ec10215220609ab9667378a9e2150615673f3ffd6c73b", size = 6647258, upload-time = "2025-07-24T20:28:59.104Z" }, + { url = "https://files.pythonhosted.org/packages/91/ba/f4ebf257f08affa464fe6036e13f2bf9d4642a40228781dc1235da81be9f/numpy-2.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:572d5512df5470f50ada8d1972c5f1082d9a0b7aa5944db8084077570cf98370", size = 14281409, upload-time = "2025-07-24T20:40:30.298Z" }, + { url = "https://files.pythonhosted.org/packages/59/ef/f96536f1df42c668cbacb727a8c6da7afc9c05ece6d558927fb1722693e1/numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8145dd6d10df13c559d1e4314df29695613575183fa2e2d11fac4c208c8a1f73", size = 16641317, upload-time = "2025-07-24T20:40:56.625Z" }, + { url = "https://files.pythonhosted.org/packages/f6/a7/af813a7b4f9a42f498dde8a4c6fcbff8100eed00182cc91dbaf095645f38/numpy-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:103ea7063fa624af04a791c39f97070bf93b96d7af7eb23530cd087dc8dbe9dc", size = 16056262, upload-time = "2025-07-24T20:41:20.797Z" }, + { url = "https://files.pythonhosted.org/packages/8b/5d/41c4ef8404caaa7f05ed1cfb06afe16a25895260eacbd29b4d84dff2920b/numpy-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc927d7f289d14f5e037be917539620603294454130b6de200091e23d27dc9be", size = 18579342, upload-time = "2025-07-24T20:41:50.753Z" }, + { url = "https://files.pythonhosted.org/packages/a1/4f/9950e44c5a11636f4a3af6e825ec23003475cc9a466edb7a759ed3ea63bd/numpy-2.3.2-cp312-cp312-win32.whl", hash = "sha256:d95f59afe7f808c103be692175008bab926b59309ade3e6d25009e9a171f7036", size = 6320610, upload-time = "2025-07-24T20:42:01.551Z" }, + { url = "https://files.pythonhosted.org/packages/7c/2f/244643a5ce54a94f0a9a2ab578189c061e4a87c002e037b0829dd77293b6/numpy-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:9e196ade2400c0c737d93465327d1ae7c06c7cb8a1756121ebf54b06ca183c7f", size = 12786292, upload-time = "2025-07-24T20:42:20.738Z" }, + { url = "https://files.pythonhosted.org/packages/54/cd/7b5f49d5d78db7badab22d8323c1b6ae458fbf86c4fdfa194ab3cd4eb39b/numpy-2.3.2-cp312-cp312-win_arm64.whl", hash = "sha256:ee807923782faaf60d0d7331f5e86da7d5e3079e28b291973c545476c2b00d07", size = 10194071, upload-time = "2025-07-24T20:42:36.657Z" }, + { url = "https://files.pythonhosted.org/packages/1c/c0/c6bb172c916b00700ed3bf71cb56175fd1f7dbecebf8353545d0b5519f6c/numpy-2.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c8d9727f5316a256425892b043736d63e89ed15bbfe6556c5ff4d9d4448ff3b3", size = 20949074, upload-time = "2025-07-24T20:43:07.813Z" }, + { url = "https://files.pythonhosted.org/packages/20/4e/c116466d22acaf4573e58421c956c6076dc526e24a6be0903219775d862e/numpy-2.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:efc81393f25f14d11c9d161e46e6ee348637c0a1e8a54bf9dedc472a3fae993b", size = 14177311, upload-time = "2025-07-24T20:43:29.335Z" }, + { url = "https://files.pythonhosted.org/packages/78/45/d4698c182895af189c463fc91d70805d455a227261d950e4e0f1310c2550/numpy-2.3.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dd937f088a2df683cbb79dda9a772b62a3e5a8a7e76690612c2737f38c6ef1b6", size = 5106022, upload-time = "2025-07-24T20:43:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/9f/76/3e6880fef4420179309dba72a8c11f6166c431cf6dee54c577af8906f914/numpy-2.3.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:11e58218c0c46c80509186e460d79fbdc9ca1eb8d8aee39d8f2dc768eb781089", size = 6640135, upload-time = "2025-07-24T20:43:49.28Z" }, + { url = "https://files.pythonhosted.org/packages/34/fa/87ff7f25b3c4ce9085a62554460b7db686fef1e0207e8977795c7b7d7ba1/numpy-2.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5ad4ebcb683a1f99f4f392cc522ee20a18b2bb12a2c1c42c3d48d5a1adc9d3d2", size = 14278147, upload-time = "2025-07-24T20:44:10.328Z" }, + { url = "https://files.pythonhosted.org/packages/1d/0f/571b2c7a3833ae419fe69ff7b479a78d313581785203cc70a8db90121b9a/numpy-2.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:938065908d1d869c7d75d8ec45f735a034771c6ea07088867f713d1cd3bbbe4f", size = 16635989, upload-time = "2025-07-24T20:44:34.88Z" }, + { url = "https://files.pythonhosted.org/packages/24/5a/84ae8dca9c9a4c592fe11340b36a86ffa9fd3e40513198daf8a97839345c/numpy-2.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:66459dccc65d8ec98cc7df61307b64bf9e08101f9598755d42d8ae65d9a7a6ee", size = 16053052, upload-time = "2025-07-24T20:44:58.872Z" }, + { url = "https://files.pythonhosted.org/packages/57/7c/e5725d99a9133b9813fcf148d3f858df98511686e853169dbaf63aec6097/numpy-2.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7af9ed2aa9ec5950daf05bb11abc4076a108bd3c7db9aa7251d5f107079b6a6", size = 18577955, upload-time = "2025-07-24T20:45:26.714Z" }, + { url = "https://files.pythonhosted.org/packages/ae/11/7c546fcf42145f29b71e4d6f429e96d8d68e5a7ba1830b2e68d7418f0bbd/numpy-2.3.2-cp313-cp313-win32.whl", hash = "sha256:906a30249315f9c8e17b085cc5f87d3f369b35fedd0051d4a84686967bdbbd0b", size = 6311843, upload-time = "2025-07-24T20:49:24.444Z" }, + { url = "https://files.pythonhosted.org/packages/aa/6f/a428fd1cb7ed39b4280d057720fed5121b0d7754fd2a9768640160f5517b/numpy-2.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:c63d95dc9d67b676e9108fe0d2182987ccb0f11933c1e8959f42fa0da8d4fa56", size = 12782876, upload-time = "2025-07-24T20:49:43.227Z" }, + { url = "https://files.pythonhosted.org/packages/65/85/4ea455c9040a12595fb6c43f2c217257c7b52dd0ba332c6a6c1d28b289fe/numpy-2.3.2-cp313-cp313-win_arm64.whl", hash = "sha256:b05a89f2fb84d21235f93de47129dd4f11c16f64c87c33f5e284e6a3a54e43f2", size = 10192786, upload-time = "2025-07-24T20:49:59.443Z" }, + { url = "https://files.pythonhosted.org/packages/80/23/8278f40282d10c3f258ec3ff1b103d4994bcad78b0cba9208317f6bb73da/numpy-2.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4e6ecfeddfa83b02318f4d84acf15fbdbf9ded18e46989a15a8b6995dfbf85ab", size = 21047395, upload-time = "2025-07-24T20:45:58.821Z" }, + { url = "https://files.pythonhosted.org/packages/1f/2d/624f2ce4a5df52628b4ccd16a4f9437b37c35f4f8a50d00e962aae6efd7a/numpy-2.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:508b0eada3eded10a3b55725b40806a4b855961040180028f52580c4729916a2", size = 14300374, upload-time = "2025-07-24T20:46:20.207Z" }, + { url = "https://files.pythonhosted.org/packages/f6/62/ff1e512cdbb829b80a6bd08318a58698867bca0ca2499d101b4af063ee97/numpy-2.3.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:754d6755d9a7588bdc6ac47dc4ee97867271b17cee39cb87aef079574366db0a", size = 5228864, upload-time = "2025-07-24T20:46:30.58Z" }, + { url = "https://files.pythonhosted.org/packages/7d/8e/74bc18078fff03192d4032cfa99d5a5ca937807136d6f5790ce07ca53515/numpy-2.3.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f66e7d2b2d7712410d3bc5684149040ef5f19856f20277cd17ea83e5006286", size = 6737533, upload-time = "2025-07-24T20:46:46.111Z" }, + { url = "https://files.pythonhosted.org/packages/19/ea/0731efe2c9073ccca5698ef6a8c3667c4cf4eea53fcdcd0b50140aba03bc/numpy-2.3.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de6ea4e5a65d5a90c7d286ddff2b87f3f4ad61faa3db8dabe936b34c2275b6f8", size = 14352007, upload-time = "2025-07-24T20:47:07.1Z" }, + { url = "https://files.pythonhosted.org/packages/cf/90/36be0865f16dfed20f4bc7f75235b963d5939707d4b591f086777412ff7b/numpy-2.3.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3ef07ec8cbc8fc9e369c8dcd52019510c12da4de81367d8b20bc692aa07573a", size = 16701914, upload-time = "2025-07-24T20:47:32.459Z" }, + { url = "https://files.pythonhosted.org/packages/94/30/06cd055e24cb6c38e5989a9e747042b4e723535758e6153f11afea88c01b/numpy-2.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:27c9f90e7481275c7800dc9c24b7cc40ace3fdb970ae4d21eaff983a32f70c91", size = 16132708, upload-time = "2025-07-24T20:47:58.129Z" }, + { url = "https://files.pythonhosted.org/packages/9a/14/ecede608ea73e58267fd7cb78f42341b3b37ba576e778a1a06baffbe585c/numpy-2.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:07b62978075b67eee4065b166d000d457c82a1efe726cce608b9db9dd66a73a5", size = 18651678, upload-time = "2025-07-24T20:48:25.402Z" }, + { url = "https://files.pythonhosted.org/packages/40/f3/2fe6066b8d07c3685509bc24d56386534c008b462a488b7f503ba82b8923/numpy-2.3.2-cp313-cp313t-win32.whl", hash = "sha256:c771cfac34a4f2c0de8e8c97312d07d64fd8f8ed45bc9f5726a7e947270152b5", size = 6441832, upload-time = "2025-07-24T20:48:37.181Z" }, + { url = "https://files.pythonhosted.org/packages/0b/ba/0937d66d05204d8f28630c9c60bc3eda68824abde4cf756c4d6aad03b0c6/numpy-2.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:72dbebb2dcc8305c431b2836bcc66af967df91be793d63a24e3d9b741374c450", size = 12927049, upload-time = "2025-07-24T20:48:56.24Z" }, + { url = "https://files.pythonhosted.org/packages/e9/ed/13542dd59c104d5e654dfa2ac282c199ba64846a74c2c4bcdbc3a0f75df1/numpy-2.3.2-cp313-cp313t-win_arm64.whl", hash = "sha256:72c6df2267e926a6d5286b0a6d556ebe49eae261062059317837fda12ddf0c1a", size = 10262935, upload-time = "2025-07-24T20:49:13.136Z" }, + { url = "https://files.pythonhosted.org/packages/c9/7c/7659048aaf498f7611b783e000c7268fcc4dcf0ce21cd10aad7b2e8f9591/numpy-2.3.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:448a66d052d0cf14ce9865d159bfc403282c9bc7bb2a31b03cc18b651eca8b1a", size = 20950906, upload-time = "2025-07-24T20:50:30.346Z" }, + { url = "https://files.pythonhosted.org/packages/80/db/984bea9d4ddf7112a04cfdfb22b1050af5757864cfffe8e09e44b7f11a10/numpy-2.3.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:546aaf78e81b4081b2eba1d105c3b34064783027a06b3ab20b6eba21fb64132b", size = 14185607, upload-time = "2025-07-24T20:50:51.923Z" }, + { url = "https://files.pythonhosted.org/packages/e4/76/b3d6f414f4eca568f469ac112a3b510938d892bc5a6c190cb883af080b77/numpy-2.3.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:87c930d52f45df092f7578889711a0768094debf73cfcde105e2d66954358125", size = 5114110, upload-time = "2025-07-24T20:51:01.041Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d2/6f5e6826abd6bca52392ed88fe44a4b52aacb60567ac3bc86c67834c3a56/numpy-2.3.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:8dc082ea901a62edb8f59713c6a7e28a85daddcb67454c839de57656478f5b19", size = 6642050, upload-time = "2025-07-24T20:51:11.64Z" }, + { url = "https://files.pythonhosted.org/packages/c4/43/f12b2ade99199e39c73ad182f103f9d9791f48d885c600c8e05927865baf/numpy-2.3.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af58de8745f7fa9ca1c0c7c943616c6fe28e75d0c81f5c295810e3c83b5be92f", size = 14296292, upload-time = "2025-07-24T20:51:33.488Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f9/77c07d94bf110a916b17210fac38680ed8734c236bfed9982fd8524a7b47/numpy-2.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed5527c4cf10f16c6d0b6bee1f89958bccb0ad2522c8cadc2efd318bcd545f5", size = 16638913, upload-time = "2025-07-24T20:51:58.517Z" }, + { url = "https://files.pythonhosted.org/packages/9b/d1/9d9f2c8ea399cc05cfff8a7437453bd4e7d894373a93cdc46361bbb49a7d/numpy-2.3.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:095737ed986e00393ec18ec0b21b47c22889ae4b0cd2d5e88342e08b01141f58", size = 16071180, upload-time = "2025-07-24T20:52:22.827Z" }, + { url = "https://files.pythonhosted.org/packages/4c/41/82e2c68aff2a0c9bf315e47d61951099fed65d8cb2c8d9dc388cb87e947e/numpy-2.3.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5e40e80299607f597e1a8a247ff8d71d79c5b52baa11cc1cce30aa92d2da6e0", size = 18576809, upload-time = "2025-07-24T20:52:51.015Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/4b4fd3efb0837ed252d0f583c5c35a75121038a8c4e065f2c259be06d2d8/numpy-2.3.2-cp314-cp314-win32.whl", hash = "sha256:7d6e390423cc1f76e1b8108c9b6889d20a7a1f59d9a60cac4a050fa734d6c1e2", size = 6366410, upload-time = "2025-07-24T20:56:44.949Z" }, + { url = "https://files.pythonhosted.org/packages/11/9e/b4c24a6b8467b61aced5c8dc7dcfce23621baa2e17f661edb2444a418040/numpy-2.3.2-cp314-cp314-win_amd64.whl", hash = "sha256:b9d0878b21e3918d76d2209c924ebb272340da1fb51abc00f986c258cd5e957b", size = 12918821, upload-time = "2025-07-24T20:57:06.479Z" }, + { url = "https://files.pythonhosted.org/packages/0e/0f/0dc44007c70b1007c1cef86b06986a3812dd7106d8f946c09cfa75782556/numpy-2.3.2-cp314-cp314-win_arm64.whl", hash = "sha256:2738534837c6a1d0c39340a190177d7d66fdf432894f469728da901f8f6dc910", size = 10477303, upload-time = "2025-07-24T20:57:22.879Z" }, + { url = "https://files.pythonhosted.org/packages/8b/3e/075752b79140b78ddfc9c0a1634d234cfdbc6f9bbbfa6b7504e445ad7d19/numpy-2.3.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:4d002ecf7c9b53240be3bb69d80f86ddbd34078bae04d87be81c1f58466f264e", size = 21047524, upload-time = "2025-07-24T20:53:22.086Z" }, + { url = "https://files.pythonhosted.org/packages/fe/6d/60e8247564a72426570d0e0ea1151b95ce5bd2f1597bb878a18d32aec855/numpy-2.3.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:293b2192c6bcce487dbc6326de5853787f870aeb6c43f8f9c6496db5b1781e45", size = 14300519, upload-time = "2025-07-24T20:53:44.053Z" }, + { url = "https://files.pythonhosted.org/packages/4d/73/d8326c442cd428d47a067070c3ac6cc3b651a6e53613a1668342a12d4479/numpy-2.3.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:0a4f2021a6da53a0d580d6ef5db29947025ae8b35b3250141805ea9a32bbe86b", size = 5228972, upload-time = "2025-07-24T20:53:53.81Z" }, + { url = "https://files.pythonhosted.org/packages/34/2e/e71b2d6dad075271e7079db776196829019b90ce3ece5c69639e4f6fdc44/numpy-2.3.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9c144440db4bf3bb6372d2c3e49834cc0ff7bb4c24975ab33e01199e645416f2", size = 6737439, upload-time = "2025-07-24T20:54:04.742Z" }, + { url = "https://files.pythonhosted.org/packages/15/b0/d004bcd56c2c5e0500ffc65385eb6d569ffd3363cb5e593ae742749b2daa/numpy-2.3.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f92d6c2a8535dc4fe4419562294ff957f83a16ebdec66df0805e473ffaad8bd0", size = 14352479, upload-time = "2025-07-24T20:54:25.819Z" }, + { url = "https://files.pythonhosted.org/packages/11/e3/285142fcff8721e0c99b51686426165059874c150ea9ab898e12a492e291/numpy-2.3.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cefc2219baa48e468e3db7e706305fcd0c095534a192a08f31e98d83a7d45fb0", size = 16702805, upload-time = "2025-07-24T20:54:50.814Z" }, + { url = "https://files.pythonhosted.org/packages/33/c3/33b56b0e47e604af2c7cd065edca892d180f5899599b76830652875249a3/numpy-2.3.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:76c3e9501ceb50b2ff3824c3589d5d1ab4ac857b0ee3f8f49629d0de55ecf7c2", size = 16133830, upload-time = "2025-07-24T20:55:17.306Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ae/7b1476a1f4d6a48bc669b8deb09939c56dd2a439db1ab03017844374fb67/numpy-2.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:122bf5ed9a0221b3419672493878ba4967121514b1d7d4656a7580cd11dddcbf", size = 18652665, upload-time = "2025-07-24T20:55:46.665Z" }, + { url = "https://files.pythonhosted.org/packages/14/ba/5b5c9978c4bb161034148ade2de9db44ec316fab89ce8c400db0e0c81f86/numpy-2.3.2-cp314-cp314t-win32.whl", hash = "sha256:6f1ae3dcb840edccc45af496f312528c15b1f79ac318169d094e85e4bb35fdf1", size = 6514777, upload-time = "2025-07-24T20:55:57.66Z" }, + { url = "https://files.pythonhosted.org/packages/eb/46/3dbaf0ae7c17cdc46b9f662c56da2054887b8d9e737c1476f335c83d33db/numpy-2.3.2-cp314-cp314t-win_amd64.whl", hash = "sha256:087ffc25890d89a43536f75c5fe8770922008758e8eeeef61733957041ed2f9b", size = 13111856, upload-time = "2025-07-24T20:56:17.318Z" }, + { url = "https://files.pythonhosted.org/packages/c1/9e/1652778bce745a67b5fe05adde60ed362d38eb17d919a540e813d30f6874/numpy-2.3.2-cp314-cp314t-win_arm64.whl", hash = "sha256:092aeb3449833ea9c0bf0089d70c29ae480685dd2377ec9cdbbb620257f84631", size = 10544226, upload-time = "2025-07-24T20:56:34.509Z" }, +] + +[[package]] +name = "orjson" +version = "3.11.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/1d/5e0ae38788bdf0721326695e65fdf41405ed535f633eb0df0f06f57552fa/orjson-3.11.2.tar.gz", hash = "sha256:91bdcf5e69a8fd8e8bdb3de32b31ff01d2bd60c1e8d5fe7d5afabdcf19920309", size = 5470739, upload-time = "2025-08-12T15:12:28.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/02/46054ebe7996a8adee9640dcad7d39d76c2000dc0377efa38e55dc5cbf78/orjson-3.11.2-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:901d80d349d8452162b3aa1afb82cec5bee79a10550660bc21311cc61a4c5486", size = 226528, upload-time = "2025-08-12T15:11:03.317Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c6/6b6f0b4d8aea1137436546b990f71be2cd8bd870aa2f5aa14dba0fcc95dc/orjson-3.11.2-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:cf3bd3967a360e87ee14ed82cb258b7f18c710dacf3822fb0042a14313a673a1", size = 115931, upload-time = "2025-08-12T15:11:04.759Z" }, + { url = "https://files.pythonhosted.org/packages/ae/05/4205cc97c30e82a293dd0d149b1a89b138ebe76afeca66fc129fa2aa4e6a/orjson-3.11.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26693dde66910078229a943e80eeb99fdce6cd2c26277dc80ead9f3ab97d2131", size = 111382, upload-time = "2025-08-12T15:11:06.468Z" }, + { url = "https://files.pythonhosted.org/packages/50/c7/b8a951a93caa821f9272a7c917115d825ae2e4e8768f5ddf37968ec9de01/orjson-3.11.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4ad4c8acb50a28211c33fc7ef85ddf5cb18d4636a5205fd3fa2dce0411a0e30c", size = 116271, upload-time = "2025-08-12T15:11:07.845Z" }, + { url = "https://files.pythonhosted.org/packages/17/03/1006c7f8782d5327439e26d9b0ec66500ea7b679d4bbb6b891d2834ab3ee/orjson-3.11.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:994181e7f1725bb5f2d481d7d228738e0743b16bf319ca85c29369c65913df14", size = 119086, upload-time = "2025-08-12T15:11:09.329Z" }, + { url = "https://files.pythonhosted.org/packages/44/61/57d22bc31f36a93878a6f772aea76b2184102c6993dea897656a66d18c74/orjson-3.11.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dbb79a0476393c07656b69c8e763c3cc925fa8e1d9e9b7d1f626901bb5025448", size = 120724, upload-time = "2025-08-12T15:11:10.674Z" }, + { url = "https://files.pythonhosted.org/packages/78/a9/4550e96b4c490c83aea697d5347b8f7eb188152cd7b5a38001055ca5b379/orjson-3.11.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:191ed27a1dddb305083d8716af413d7219f40ec1d4c9b0e977453b4db0d6fb6c", size = 123577, upload-time = "2025-08-12T15:11:12.015Z" }, + { url = "https://files.pythonhosted.org/packages/3a/86/09b8cb3ebd513d708ef0c92d36ac3eebda814c65c72137b0a82d6d688fc4/orjson-3.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0afb89f16f07220183fd00f5f297328ed0a68d8722ad1b0c8dcd95b12bc82804", size = 121195, upload-time = "2025-08-12T15:11:13.399Z" }, + { url = "https://files.pythonhosted.org/packages/37/68/7b40b39ac2c1c644d4644e706d0de6c9999764341cd85f2a9393cb387661/orjson-3.11.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6ab6e6b4e93b1573a026b6ec16fca9541354dd58e514b62c558b58554ae04307", size = 119234, upload-time = "2025-08-12T15:11:15.134Z" }, + { url = "https://files.pythonhosted.org/packages/40/7c/bb6e7267cd80c19023d44d8cbc4ea4ed5429fcd4a7eb9950f50305697a28/orjson-3.11.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:9cb23527efb61fb75527df55d20ee47989c4ee34e01a9c98ee9ede232abf6219", size = 392250, upload-time = "2025-08-12T15:11:16.604Z" }, + { url = "https://files.pythonhosted.org/packages/64/f2/6730ace05583dbca7c1b406d59f4266e48cd0d360566e71482420fb849fc/orjson-3.11.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a4dd1268e4035af21b8a09e4adf2e61f87ee7bf63b86d7bb0a237ac03fad5b45", size = 134572, upload-time = "2025-08-12T15:11:18.205Z" }, + { url = "https://files.pythonhosted.org/packages/96/0f/7d3e03a30d5aac0432882b539a65b8c02cb6dd4221ddb893babf09c424cc/orjson-3.11.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ff8b155b145eaf5a9d94d2c476fbe18d6021de93cf36c2ae2c8c5b775763f14e", size = 123869, upload-time = "2025-08-12T15:11:19.554Z" }, + { url = "https://files.pythonhosted.org/packages/45/80/1513265eba6d4a960f078f4b1d2bff94a571ab2d28c6f9835e03dfc65cc6/orjson-3.11.2-cp312-cp312-win32.whl", hash = "sha256:ae3bb10279d57872f9aba68c9931aa71ed3b295fa880f25e68da79e79453f46e", size = 124430, upload-time = "2025-08-12T15:11:20.914Z" }, + { url = "https://files.pythonhosted.org/packages/fb/61/eadf057b68a332351eeb3d89a4cc538d14f31cd8b5ec1b31a280426ccca2/orjson-3.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:d026e1967239ec11a2559b4146a61d13914504b396f74510a1c4d6b19dfd8732", size = 119598, upload-time = "2025-08-12T15:11:22.372Z" }, + { url = "https://files.pythonhosted.org/packages/6b/3f/7f4b783402143d965ab7e9a2fc116fdb887fe53bdce7d3523271cd106098/orjson-3.11.2-cp312-cp312-win_arm64.whl", hash = "sha256:59f8d5ad08602711af9589375be98477d70e1d102645430b5a7985fdbf613b36", size = 114052, upload-time = "2025-08-12T15:11:23.762Z" }, + { url = "https://files.pythonhosted.org/packages/c2/f3/0dd6b4750eb556ae4e2c6a9cb3e219ec642e9c6d95f8ebe5dc9020c67204/orjson-3.11.2-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a079fdba7062ab396380eeedb589afb81dc6683f07f528a03b6f7aae420a0219", size = 226419, upload-time = "2025-08-12T15:11:25.517Z" }, + { url = "https://files.pythonhosted.org/packages/44/d5/e67f36277f78f2af8a4690e0c54da6b34169812f807fd1b4bfc4dbcf9558/orjson-3.11.2-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:6a5f62ebbc530bb8bb4b1ead103647b395ba523559149b91a6c545f7cd4110ad", size = 115803, upload-time = "2025-08-12T15:11:27.357Z" }, + { url = "https://files.pythonhosted.org/packages/24/37/ff8bc86e0dacc48f07c2b6e20852f230bf4435611bab65e3feae2b61f0ae/orjson-3.11.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7df6c7b8b0931feb3420b72838c3e2ba98c228f7aa60d461bc050cf4ca5f7b2", size = 111337, upload-time = "2025-08-12T15:11:28.805Z" }, + { url = "https://files.pythonhosted.org/packages/b9/25/37d4d3e8079ea9784ea1625029988e7f4594ce50d4738b0c1e2bf4a9e201/orjson-3.11.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6f59dfea7da1fced6e782bb3699718088b1036cb361f36c6e4dd843c5111aefe", size = 116222, upload-time = "2025-08-12T15:11:30.18Z" }, + { url = "https://files.pythonhosted.org/packages/b7/32/a63fd9c07fce3b4193dcc1afced5dd4b0f3a24e27556604e9482b32189c9/orjson-3.11.2-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edf49146520fef308c31aa4c45b9925fd9c7584645caca7c0c4217d7900214ae", size = 119020, upload-time = "2025-08-12T15:11:31.59Z" }, + { url = "https://files.pythonhosted.org/packages/b4/b6/400792b8adc3079a6b5d649264a3224d6342436d9fac9a0ed4abc9dc4596/orjson-3.11.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50995bbeb5d41a32ad15e023305807f561ac5dcd9bd41a12c8d8d1d2c83e44e6", size = 120721, upload-time = "2025-08-12T15:11:33.035Z" }, + { url = "https://files.pythonhosted.org/packages/40/f3/31ab8f8c699eb9e65af8907889a0b7fef74c1d2b23832719a35da7bb0c58/orjson-3.11.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cc42960515076eb639b705f105712b658c525863d89a1704d984b929b0577d1", size = 123574, upload-time = "2025-08-12T15:11:34.433Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a6/ce4287c412dff81878f38d06d2c80845709c60012ca8daf861cb064b4574/orjson-3.11.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c56777cab2a7b2a8ea687fedafb84b3d7fdafae382165c31a2adf88634c432fa", size = 121225, upload-time = "2025-08-12T15:11:36.133Z" }, + { url = "https://files.pythonhosted.org/packages/69/b0/7a881b2aef4fed0287d2a4fbb029d01ed84fa52b4a68da82bdee5e50598e/orjson-3.11.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:07349e88025b9b5c783077bf7a9f401ffbfb07fd20e86ec6fc5b7432c28c2c5e", size = 119201, upload-time = "2025-08-12T15:11:37.642Z" }, + { url = "https://files.pythonhosted.org/packages/cf/98/a325726b37f7512ed6338e5e65035c3c6505f4e628b09a5daf0419f054ea/orjson-3.11.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:45841fbb79c96441a8c58aa29ffef570c5df9af91f0f7a9572e5505e12412f15", size = 392193, upload-time = "2025-08-12T15:11:39.153Z" }, + { url = "https://files.pythonhosted.org/packages/cb/4f/a7194f98b0ce1d28190e0c4caa6d091a3fc8d0107ad2209f75c8ba398984/orjson-3.11.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:13d8d8db6cd8d89d4d4e0f4161acbbb373a4d2a4929e862d1d2119de4aa324ac", size = 134548, upload-time = "2025-08-12T15:11:40.768Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/b84caa2986c3f472dc56343ddb0167797a708a8d5c3be043e1e2677b55df/orjson-3.11.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51da1ee2178ed09c00d09c1b953e45846bbc16b6420965eb7a913ba209f606d8", size = 123798, upload-time = "2025-08-12T15:11:42.164Z" }, + { url = "https://files.pythonhosted.org/packages/9c/5b/e398449080ce6b4c8fcadad57e51fa16f65768e1b142ba90b23ac5d10801/orjson-3.11.2-cp313-cp313-win32.whl", hash = "sha256:51dc033df2e4a4c91c0ba4f43247de99b3cbf42ee7a42ee2b2b2f76c8b2f2cb5", size = 124402, upload-time = "2025-08-12T15:11:44.036Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/429e4608e124debfc4790bfc37131f6958e59510ba3b542d5fc163be8e5f/orjson-3.11.2-cp313-cp313-win_amd64.whl", hash = "sha256:29d91d74942b7436f29b5d1ed9bcfc3f6ef2d4f7c4997616509004679936650d", size = 119498, upload-time = "2025-08-12T15:11:45.864Z" }, + { url = "https://files.pythonhosted.org/packages/7b/04/f8b5f317cce7ad3580a9ad12d7e2df0714dfa8a83328ecddd367af802f5b/orjson-3.11.2-cp313-cp313-win_arm64.whl", hash = "sha256:4ca4fb5ac21cd1e48028d4f708b1bb13e39c42d45614befd2ead004a8bba8535", size = 114051, upload-time = "2025-08-12T15:11:47.555Z" }, + { url = "https://files.pythonhosted.org/packages/74/83/2c363022b26c3c25b3708051a19d12f3374739bb81323f05b284392080c0/orjson-3.11.2-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:3dcba7101ea6a8d4ef060746c0f2e7aa8e2453a1012083e1ecce9726d7554cb7", size = 226406, upload-time = "2025-08-12T15:11:49.445Z" }, + { url = "https://files.pythonhosted.org/packages/b0/a7/aa3c973de0b33fc93b4bd71691665ffdfeae589ea9d0625584ab10a7d0f5/orjson-3.11.2-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:15d17bdb76a142e1f55d91913e012e6e6769659daa6bfef3ef93f11083137e81", size = 115788, upload-time = "2025-08-12T15:11:50.992Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f2/e45f233dfd09fdbb052ec46352363dca3906618e1a2b264959c18f809d0b/orjson-3.11.2-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:53c9e81768c69d4b66b8876ec3c8e431c6e13477186d0db1089d82622bccd19f", size = 111318, upload-time = "2025-08-12T15:11:52.495Z" }, + { url = "https://files.pythonhosted.org/packages/3e/23/cf5a73c4da6987204cbbf93167f353ff0c5013f7c5e5ef845d4663a366da/orjson-3.11.2-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:d4f13af59a7b84c1ca6b8a7ab70d608f61f7c44f9740cd42409e6ae7b6c8d8b7", size = 121231, upload-time = "2025-08-12T15:11:53.941Z" }, + { url = "https://files.pythonhosted.org/packages/40/1d/47468a398ae68a60cc21e599144e786e035bb12829cb587299ecebc088f1/orjson-3.11.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bde64aa469b5ee46cc960ed241fae3721d6a8801dacb2ca3466547a2535951e4", size = 119204, upload-time = "2025-08-12T15:11:55.409Z" }, + { url = "https://files.pythonhosted.org/packages/4d/d9/f99433d89b288b5bc8836bffb32a643f805e673cf840ef8bab6e73ced0d1/orjson-3.11.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:b5ca86300aeb383c8fa759566aca065878d3d98c3389d769b43f0a2e84d52c5f", size = 392237, upload-time = "2025-08-12T15:11:57.18Z" }, + { url = "https://files.pythonhosted.org/packages/d4/dc/1b9d80d40cebef603325623405136a29fb7d08c877a728c0943dd066c29a/orjson-3.11.2-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:24e32a558ebed73a6a71c8f1cbc163a7dd5132da5270ff3d8eeb727f4b6d1bc7", size = 134578, upload-time = "2025-08-12T15:11:58.844Z" }, + { url = "https://files.pythonhosted.org/packages/45/b3/72e7a4c5b6485ef4e83ef6aba7f1dd041002bad3eb5d1d106ca5b0fc02c6/orjson-3.11.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e36319a5d15b97e4344110517450396845cc6789aed712b1fbf83c1bd95792f6", size = 123799, upload-time = "2025-08-12T15:12:00.352Z" }, + { url = "https://files.pythonhosted.org/packages/c8/3e/a3d76b392e7acf9b34dc277171aad85efd6accc75089bb35b4c614990ea9/orjson-3.11.2-cp314-cp314-win32.whl", hash = "sha256:40193ada63fab25e35703454d65b6afc71dbc65f20041cb46c6d91709141ef7f", size = 124461, upload-time = "2025-08-12T15:12:01.854Z" }, + { url = "https://files.pythonhosted.org/packages/fb/e3/75c6a596ff8df9e4a5894813ff56695f0a218e6ea99420b4a645c4f7795d/orjson-3.11.2-cp314-cp314-win_amd64.whl", hash = "sha256:7c8ac5f6b682d3494217085cf04dadae66efee45349ad4ee2a1da3c97e2305a8", size = 119494, upload-time = "2025-08-12T15:12:03.337Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3d/9e74742fc261c5ca473c96bb3344d03995869e1dc6402772c60afb97736a/orjson-3.11.2-cp314-cp314-win_arm64.whl", hash = "sha256:21cf261e8e79284242e4cb1e5924df16ae28255184aafeff19be1405f6d33f67", size = 114046, upload-time = "2025-08-12T15:12:04.87Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "paginate" +version = "0.5.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" }, +] + +[[package]] +name = "pandas" +version = "2.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/79/8e/0e90233ac205ad182bd6b422532695d2b9414944a280488105d598c70023/pandas-2.3.2.tar.gz", hash = "sha256:ab7b58f8f82706890924ccdfb5f48002b83d2b5a3845976a9fb705d36c34dcdb", size = 4488684, upload-time = "2025-08-21T10:28:29.257Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/db/614c20fb7a85a14828edd23f1c02db58a30abf3ce76f38806155d160313c/pandas-2.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fbb977f802156e7a3f829e9d1d5398f6192375a3e2d1a9ee0803e35fe70a2b9", size = 11587652, upload-time = "2025-08-21T10:27:15.888Z" }, + { url = "https://files.pythonhosted.org/packages/99/b0/756e52f6582cade5e746f19bad0517ff27ba9c73404607c0306585c201b3/pandas-2.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1b9b52693123dd234b7c985c68b709b0b009f4521000d0525f2b95c22f15944b", size = 10717686, upload-time = "2025-08-21T10:27:18.486Z" }, + { url = "https://files.pythonhosted.org/packages/37/4c/dd5ccc1e357abfeee8353123282de17997f90ff67855f86154e5a13b81e5/pandas-2.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bd281310d4f412733f319a5bc552f86d62cddc5f51d2e392c8787335c994175", size = 11278722, upload-time = "2025-08-21T10:27:21.149Z" }, + { url = "https://files.pythonhosted.org/packages/d3/a4/f7edcfa47e0a88cda0be8b068a5bae710bf264f867edfdf7b71584ace362/pandas-2.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96d31a6b4354e3b9b8a2c848af75d31da390657e3ac6f30c05c82068b9ed79b9", size = 11987803, upload-time = "2025-08-21T10:27:23.767Z" }, + { url = "https://files.pythonhosted.org/packages/f6/61/1bce4129f93ab66f1c68b7ed1c12bac6a70b1b56c5dab359c6bbcd480b52/pandas-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:df4df0b9d02bb873a106971bb85d448378ef14b86ba96f035f50bbd3688456b4", size = 12766345, upload-time = "2025-08-21T10:27:26.6Z" }, + { url = "https://files.pythonhosted.org/packages/8e/46/80d53de70fee835531da3a1dae827a1e76e77a43ad22a8cd0f8142b61587/pandas-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:213a5adf93d020b74327cb2c1b842884dbdd37f895f42dcc2f09d451d949f811", size = 13439314, upload-time = "2025-08-21T10:27:29.213Z" }, + { url = "https://files.pythonhosted.org/packages/28/30/8114832daff7489f179971dbc1d854109b7f4365a546e3ea75b6516cea95/pandas-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:8c13b81a9347eb8c7548f53fd9a4f08d4dfe996836543f805c987bafa03317ae", size = 10983326, upload-time = "2025-08-21T10:27:31.901Z" }, + { url = "https://files.pythonhosted.org/packages/27/64/a2f7bf678af502e16b472527735d168b22b7824e45a4d7e96a4fbb634b59/pandas-2.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0c6ecbac99a354a051ef21c5307601093cb9e0f4b1855984a084bfec9302699e", size = 11531061, upload-time = "2025-08-21T10:27:34.647Z" }, + { url = "https://files.pythonhosted.org/packages/54/4c/c3d21b2b7769ef2f4c2b9299fcadd601efa6729f1357a8dbce8dd949ed70/pandas-2.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c6f048aa0fd080d6a06cc7e7537c09b53be6642d330ac6f54a600c3ace857ee9", size = 10668666, upload-time = "2025-08-21T10:27:37.203Z" }, + { url = "https://files.pythonhosted.org/packages/50/e2/f775ba76ecfb3424d7f5862620841cf0edb592e9abd2d2a5387d305fe7a8/pandas-2.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0064187b80a5be6f2f9c9d6bdde29372468751dfa89f4211a3c5871854cfbf7a", size = 11332835, upload-time = "2025-08-21T10:27:40.188Z" }, + { url = "https://files.pythonhosted.org/packages/8f/52/0634adaace9be2d8cac9ef78f05c47f3a675882e068438b9d7ec7ef0c13f/pandas-2.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ac8c320bded4718b298281339c1a50fb00a6ba78cb2a63521c39bec95b0209b", size = 12057211, upload-time = "2025-08-21T10:27:43.117Z" }, + { url = "https://files.pythonhosted.org/packages/0b/9d/2df913f14b2deb9c748975fdb2491da1a78773debb25abbc7cbc67c6b549/pandas-2.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:114c2fe4f4328cf98ce5716d1532f3ab79c5919f95a9cfee81d9140064a2e4d6", size = 12749277, upload-time = "2025-08-21T10:27:45.474Z" }, + { url = "https://files.pythonhosted.org/packages/87/af/da1a2417026bd14d98c236dba88e39837182459d29dcfcea510b2ac9e8a1/pandas-2.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:48fa91c4dfb3b2b9bfdb5c24cd3567575f4e13f9636810462ffed8925352be5a", size = 13415256, upload-time = "2025-08-21T10:27:49.885Z" }, + { url = "https://files.pythonhosted.org/packages/22/3c/f2af1ce8840ef648584a6156489636b5692c162771918aa95707c165ad2b/pandas-2.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:12d039facec710f7ba305786837d0225a3444af7bbd9c15c32ca2d40d157ed8b", size = 10982579, upload-time = "2025-08-21T10:28:08.435Z" }, + { url = "https://files.pythonhosted.org/packages/f3/98/8df69c4097a6719e357dc249bf437b8efbde808038268e584421696cbddf/pandas-2.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:c624b615ce97864eb588779ed4046186f967374185c047070545253a52ab2d57", size = 12028163, upload-time = "2025-08-21T10:27:52.232Z" }, + { url = "https://files.pythonhosted.org/packages/0e/23/f95cbcbea319f349e10ff90db488b905c6883f03cbabd34f6b03cbc3c044/pandas-2.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0cee69d583b9b128823d9514171cabb6861e09409af805b54459bd0c821a35c2", size = 11391860, upload-time = "2025-08-21T10:27:54.673Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1b/6a984e98c4abee22058aa75bfb8eb90dce58cf8d7296f8bc56c14bc330b0/pandas-2.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2319656ed81124982900b4c37f0e0c58c015af9a7bbc62342ba5ad07ace82ba9", size = 11309830, upload-time = "2025-08-21T10:27:56.957Z" }, + { url = "https://files.pythonhosted.org/packages/15/d5/f0486090eb18dd8710bf60afeaf638ba6817047c0c8ae5c6a25598665609/pandas-2.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b37205ad6f00d52f16b6d09f406434ba928c1a1966e2771006a9033c736d30d2", size = 11883216, upload-time = "2025-08-21T10:27:59.302Z" }, + { url = "https://files.pythonhosted.org/packages/10/86/692050c119696da19e20245bbd650d8dfca6ceb577da027c3a73c62a047e/pandas-2.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:837248b4fc3a9b83b9c6214699a13f069dc13510a6a6d7f9ba33145d2841a012", size = 12699743, upload-time = "2025-08-21T10:28:02.447Z" }, + { url = "https://files.pythonhosted.org/packages/cd/d7/612123674d7b17cf345aad0a10289b2a384bff404e0463a83c4a3a59d205/pandas-2.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d2c3554bd31b731cd6490d94a28f3abb8dd770634a9e06eb6d2911b9827db370", size = 13186141, upload-time = "2025-08-21T10:28:05.377Z" }, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.3.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc", size = 21362, upload-time = "2025-05-07T22:47:42.121Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567, upload-time = "2025-05-07T22:47:40.376Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "pybtex" +version = "0.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "latexcodec" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/bc/c2be05ca72f8c103670e983df8be26d1e288bc6556f487fa8cccaa27779f/pybtex-0.25.1.tar.gz", hash = "sha256:9eaf90267c7e83e225af89fea65c370afbf65f458220d3946a9e3049e1eca491", size = 406157, upload-time = "2025-06-26T13:27:41.903Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/68/ceb5d6679baa326261f5d3e5113d9cfed6efef2810afd9f18bffb8ed312b/pybtex-0.25.1-py2.py3-none-any.whl", hash = "sha256:9053b0d619409a0a83f38abad5d9921de5f7b3ede00742beafcd9f10ad0d8c5c", size = 127437, upload-time = "2025-06-26T13:27:43.585Z" }, +] + +[[package]] +name = "pydantic" +version = "2.11.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 788350, upload-time = "2025-06-14T08:33:17.137Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b", size = 444782, upload-time = "2025-06-14T08:33:14.905Z" }, +] + +[package.optional-dependencies] +email = [ + { name = "email-validator" }, +] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195, upload-time = "2025-04-23T18:33:52.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc", size = 2009000, upload-time = "2025-04-23T18:31:25.863Z" }, + { url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7", size = 1847996, upload-time = "2025-04-23T18:31:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025", size = 1880957, upload-time = "2025-04-23T18:31:28.956Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011", size = 1964199, upload-time = "2025-04-23T18:31:31.025Z" }, + { url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f", size = 2120296, upload-time = "2025-04-23T18:31:32.514Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88", size = 2676109, upload-time = "2025-04-23T18:31:33.958Z" }, + { url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1", size = 2002028, upload-time = "2025-04-23T18:31:39.095Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b", size = 2100044, upload-time = "2025-04-23T18:31:41.034Z" }, + { url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1", size = 2058881, upload-time = "2025-04-23T18:31:42.757Z" }, + { url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6", size = 2227034, upload-time = "2025-04-23T18:31:44.304Z" }, + { url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea", size = 2234187, upload-time = "2025-04-23T18:31:45.891Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290", size = 1892628, upload-time = "2025-04-23T18:31:47.819Z" }, + { url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2", size = 1955866, upload-time = "2025-04-23T18:31:49.635Z" }, + { url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab", size = 1888894, upload-time = "2025-04-23T18:31:51.609Z" }, + { url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f", size = 2015688, upload-time = "2025-04-23T18:31:53.175Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6", size = 1844808, upload-time = "2025-04-23T18:31:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef", size = 1885580, upload-time = "2025-04-23T18:31:57.393Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a", size = 1973859, upload-time = "2025-04-23T18:31:59.065Z" }, + { url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916", size = 2120810, upload-time = "2025-04-23T18:32:00.78Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a", size = 2676498, upload-time = "2025-04-23T18:32:02.418Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d", size = 2000611, upload-time = "2025-04-23T18:32:04.152Z" }, + { url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56", size = 2107924, upload-time = "2025-04-23T18:32:06.129Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5", size = 2063196, upload-time = "2025-04-23T18:32:08.178Z" }, + { url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e", size = 2236389, upload-time = "2025-04-23T18:32:10.242Z" }, + { url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162", size = 2239223, upload-time = "2025-04-23T18:32:12.382Z" }, + { url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849", size = 1900473, upload-time = "2025-04-23T18:32:14.034Z" }, + { url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9", size = 1955269, upload-time = "2025-04-23T18:32:15.783Z" }, + { url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9", size = 1893921, upload-time = "2025-04-23T18:32:18.473Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac", size = 1806162, upload-time = "2025-04-23T18:32:20.188Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5", size = 1981560, upload-time = "2025-04-23T18:32:22.354Z" }, + { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777, upload-time = "2025-04-23T18:32:25.088Z" }, +] + +[[package]] +name = "pydantic-extra-types" +version = "2.10.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7e/ba/4178111ec4116c54e1dc7ecd2a1ff8f54256cdbd250e576882911e8f710a/pydantic_extra_types-2.10.5.tar.gz", hash = "sha256:1dcfa2c0cf741a422f088e0dbb4690e7bfadaaf050da3d6f80d6c3cf58a2bad8", size = 138429, upload-time = "2025-06-02T09:31:52.713Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/1a/5f4fd9e7285f10c44095a4f9fe17d0f358d1702a7c74a9278c794e8a7537/pydantic_extra_types-2.10.5-py3-none-any.whl", hash = "sha256:b60c4e23d573a69a4f1a16dd92888ecc0ef34fb0e655b4f305530377fa70e7a8", size = 38315, upload-time = "2025-06-02T09:31:51.229Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee", size = 172583, upload-time = "2025-06-24T13:26:46.841Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796", size = 45235, upload-time = "2025-06-24T13:26:45.485Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pygments-ansi-color" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/50/f9/7f417aaee98a74b4f757f2b72971245181fcf25d824d2e7a190345669eaf/pygments-ansi-color-0.3.0.tar.gz", hash = "sha256:7018954cf5b11d1e734383a1bafab5af613213f246109417fee3f76da26d5431", size = 7317, upload-time = "2023-05-18T22:44:35.792Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/17/8306a0bcd8c88d7761c2e73e831b0be026cd6873ce1f12beb3b4c9a03ffa/pygments_ansi_color-0.3.0-py3-none-any.whl", hash = "sha256:7eb063feaecadad9d4d1fd3474cbfeadf3486b64f760a8f2a00fc25392180aba", size = 10242, upload-time = "2023-05-18T22:44:34.287Z" }, +] + +[[package]] +name = "pymdown-extensions" +version = "10.16.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/b3/6d2b3f149bc5413b0a29761c2c5832d8ce904a1d7f621e86616d96f505cc/pymdown_extensions-10.16.1.tar.gz", hash = "sha256:aace82bcccba3efc03e25d584e6a22d27a8e17caa3f4dd9f207e49b787aa9a91", size = 853277, upload-time = "2025-07-28T16:19:34.167Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/06/43084e6cbd4b3bc0e80f6be743b2e79fbc6eed8de9ad8c629939fa55d972/pymdown_extensions-10.16.1-py3-none-any.whl", hash = "sha256:d6ba157a6c03146a7fb122b2b9a121300056384eafeec9c9f9e584adfdb2a32d", size = 266178, upload-time = "2025-07-28T16:19:31.401Z" }, +] + +[[package]] +name = "pypandoc" +version = "1.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/88/26e650d053df5f3874aa3c05901a14166ce3271f58bfe114fd776987efbd/pypandoc-1.15.tar.gz", hash = "sha256:ea25beebe712ae41d63f7410c08741a3cab0e420f6703f95bc9b3a749192ce13", size = 32940, upload-time = "2025-01-08T17:39:58.705Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/06/0763e0ccc81754d3eadb21b2cb86cf21bdedc9b52698c2ad6785db7f0a4e/pypandoc-1.15-py3-none-any.whl", hash = "sha256:4ededcc76c8770f27aaca6dff47724578428eca84212a31479403a9731fc2b16", size = 21321, upload-time = "2025-01-08T17:39:09.928Z" }, +] + +[[package]] +name = "pytest" +version = "8.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714, upload-time = "2025-06-18T05:48:06.109Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7", size = 365474, upload-time = "2025-06-18T05:48:03.955Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size = 41978, upload-time = "2025-06-24T04:21:07.341Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556, upload-time = "2025-06-24T04:21:06.073Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/87/f44d7c9f274c7ee665a29b885ec97089ec5dc034c7f3fafa03da9e39a09e/python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13", size = 37158, upload-time = "2024-12-16T19:45:46.972Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/58/38b5afbc1a800eeea951b9285d3912613f2603bdf897a4ab0f4bd7f405fc/python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104", size = 24546, upload-time = "2024-12-16T19:45:44.423Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631, upload-time = "2024-08-06T20:33:50.674Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873, upload-time = "2024-08-06T20:32:25.131Z" }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302, upload-time = "2024-08-06T20:32:26.511Z" }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154, upload-time = "2024-08-06T20:32:28.363Z" }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223, upload-time = "2024-08-06T20:32:30.058Z" }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542, upload-time = "2024-08-06T20:32:31.881Z" }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164, upload-time = "2024-08-06T20:32:37.083Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611, upload-time = "2024-08-06T20:32:38.898Z" }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591, upload-time = "2024-08-06T20:32:40.241Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338, upload-time = "2024-08-06T20:32:41.93Z" }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309, upload-time = "2024-08-06T20:32:43.4Z" }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679, upload-time = "2024-08-06T20:32:44.801Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428, upload-time = "2024-08-06T20:32:46.432Z" }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361, upload-time = "2024-08-06T20:32:51.188Z" }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523, upload-time = "2024-08-06T20:32:53.019Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660, upload-time = "2024-08-06T20:32:54.708Z" }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597, upload-time = "2024-08-06T20:32:56.985Z" }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527, upload-time = "2024-08-06T20:33:03.001Z" }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446, upload-time = "2024-08-06T20:33:04.33Z" }, +] + +[[package]] +name = "pyyaml-env-tag" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/2e/79c822141bfd05a853236b504869ebc6b70159afc570e1d5a20641782eaa/pyyaml_env_tag-1.1.tar.gz", hash = "sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff", size = 5737, upload-time = "2025-05-13T15:24:01.64Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/11/432f32f8097b03e3cd5fe57e88efb685d964e2e5178a48ed61e841f7fdce/pyyaml_env_tag-1.1-py3-none-any.whl", hash = "sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04", size = 4722, upload-time = "2025-05-13T15:23:59.629Z" }, +] + +[[package]] +name = "rapidfuzz" +version = "3.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/6895abc3a3d056b9698da3199b04c0e56226d530ae44a470edabf8b664f0/rapidfuzz-3.13.0.tar.gz", hash = "sha256:d2eaf3839e52cbcc0accbe9817a67b4b0fcf70aaeb229cfddc1c28061f9ce5d8", size = 57904226, upload-time = "2025-04-03T20:38:51.226Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/4b/a326f57a4efed8f5505b25102797a58e37ee11d94afd9d9422cb7c76117e/rapidfuzz-3.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a1a6a906ba62f2556372282b1ef37b26bca67e3d2ea957277cfcefc6275cca7", size = 1989501, upload-time = "2025-04-03T20:36:13.43Z" }, + { url = "https://files.pythonhosted.org/packages/b7/53/1f7eb7ee83a06c400089ec7cb841cbd581c2edd7a4b21eb2f31030b88daa/rapidfuzz-3.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2fd0975e015b05c79a97f38883a11236f5a24cca83aa992bd2558ceaa5652b26", size = 1445379, upload-time = "2025-04-03T20:36:16.439Z" }, + { url = "https://files.pythonhosted.org/packages/07/09/de8069a4599cc8e6d194e5fa1782c561151dea7d5e2741767137e2a8c1f0/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d4e13593d298c50c4f94ce453f757b4b398af3fa0fd2fde693c3e51195b7f69", size = 1405986, upload-time = "2025-04-03T20:36:18.447Z" }, + { url = "https://files.pythonhosted.org/packages/5d/77/d9a90b39c16eca20d70fec4ca377fbe9ea4c0d358c6e4736ab0e0e78aaf6/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed6f416bda1c9133000009d84d9409823eb2358df0950231cc936e4bf784eb97", size = 5310809, upload-time = "2025-04-03T20:36:20.324Z" }, + { url = "https://files.pythonhosted.org/packages/1e/7d/14da291b0d0f22262d19522afaf63bccf39fc027c981233fb2137a57b71f/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1dc82b6ed01acb536b94a43996a94471a218f4d89f3fdd9185ab496de4b2a981", size = 1629394, upload-time = "2025-04-03T20:36:22.256Z" }, + { url = "https://files.pythonhosted.org/packages/b7/e4/79ed7e4fa58f37c0f8b7c0a62361f7089b221fe85738ae2dbcfb815e985a/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9d824de871daa6e443b39ff495a884931970d567eb0dfa213d234337343835f", size = 1600544, upload-time = "2025-04-03T20:36:24.207Z" }, + { url = "https://files.pythonhosted.org/packages/4e/20/e62b4d13ba851b0f36370060025de50a264d625f6b4c32899085ed51f980/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d18228a2390375cf45726ce1af9d36ff3dc1f11dce9775eae1f1b13ac6ec50f", size = 3052796, upload-time = "2025-04-03T20:36:26.279Z" }, + { url = "https://files.pythonhosted.org/packages/cd/8d/55fdf4387dec10aa177fe3df8dbb0d5022224d95f48664a21d6b62a5299d/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f5fe634c9482ec5d4a6692afb8c45d370ae86755e5f57aa6c50bfe4ca2bdd87", size = 2464016, upload-time = "2025-04-03T20:36:28.525Z" }, + { url = "https://files.pythonhosted.org/packages/9b/be/0872f6a56c0f473165d3b47d4170fa75263dc5f46985755aa9bf2bbcdea1/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:694eb531889f71022b2be86f625a4209c4049e74be9ca836919b9e395d5e33b3", size = 7556725, upload-time = "2025-04-03T20:36:30.629Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f3/6c0750e484d885a14840c7a150926f425d524982aca989cdda0bb3bdfa57/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:11b47b40650e06147dee5e51a9c9ad73bb7b86968b6f7d30e503b9f8dd1292db", size = 2859052, upload-time = "2025-04-03T20:36:32.836Z" }, + { url = "https://files.pythonhosted.org/packages/6f/98/5a3a14701b5eb330f444f7883c9840b43fb29c575e292e09c90a270a6e07/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:98b8107ff14f5af0243f27d236bcc6e1ef8e7e3b3c25df114e91e3a99572da73", size = 3390219, upload-time = "2025-04-03T20:36:35.062Z" }, + { url = "https://files.pythonhosted.org/packages/e9/7d/f4642eaaeb474b19974332f2a58471803448be843033e5740965775760a5/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b836f486dba0aceb2551e838ff3f514a38ee72b015364f739e526d720fdb823a", size = 4377924, upload-time = "2025-04-03T20:36:37.363Z" }, + { url = "https://files.pythonhosted.org/packages/8e/83/fa33f61796731891c3e045d0cbca4436a5c436a170e7f04d42c2423652c3/rapidfuzz-3.13.0-cp312-cp312-win32.whl", hash = "sha256:4671ee300d1818d7bdfd8fa0608580d7778ba701817216f0c17fb29e6b972514", size = 1823915, upload-time = "2025-04-03T20:36:39.451Z" }, + { url = "https://files.pythonhosted.org/packages/03/25/5ee7ab6841ca668567d0897905eebc79c76f6297b73bf05957be887e9c74/rapidfuzz-3.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e2065f68fb1d0bf65adc289c1bdc45ba7e464e406b319d67bb54441a1b9da9e", size = 1616985, upload-time = "2025-04-03T20:36:41.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/5e/3f0fb88db396cb692aefd631e4805854e02120a2382723b90dcae720bcc6/rapidfuzz-3.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:65cc97c2fc2c2fe23586599686f3b1ceeedeca8e598cfcc1b7e56dc8ca7e2aa7", size = 860116, upload-time = "2025-04-03T20:36:43.915Z" }, + { url = "https://files.pythonhosted.org/packages/0a/76/606e71e4227790750f1646f3c5c873e18d6cfeb6f9a77b2b8c4dec8f0f66/rapidfuzz-3.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:09e908064d3684c541d312bd4c7b05acb99a2c764f6231bd507d4b4b65226c23", size = 1982282, upload-time = "2025-04-03T20:36:46.149Z" }, + { url = "https://files.pythonhosted.org/packages/0a/f5/d0b48c6b902607a59fd5932a54e3518dae8223814db8349b0176e6e9444b/rapidfuzz-3.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:57c390336cb50d5d3bfb0cfe1467478a15733703af61f6dffb14b1cd312a6fae", size = 1439274, upload-time = "2025-04-03T20:36:48.323Z" }, + { url = "https://files.pythonhosted.org/packages/59/cf/c3ac8c80d8ced6c1f99b5d9674d397ce5d0e9d0939d788d67c010e19c65f/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0da54aa8547b3c2c188db3d1c7eb4d1bb6dd80baa8cdaeaec3d1da3346ec9caa", size = 1399854, upload-time = "2025-04-03T20:36:50.294Z" }, + { url = "https://files.pythonhosted.org/packages/09/5d/ca8698e452b349c8313faf07bfa84e7d1c2d2edf7ccc67bcfc49bee1259a/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df8e8c21e67afb9d7fbe18f42c6111fe155e801ab103c81109a61312927cc611", size = 5308962, upload-time = "2025-04-03T20:36:52.421Z" }, + { url = "https://files.pythonhosted.org/packages/66/0a/bebada332854e78e68f3d6c05226b23faca79d71362509dbcf7b002e33b7/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:461fd13250a2adf8e90ca9a0e1e166515cbcaa5e9c3b1f37545cbbeff9e77f6b", size = 1625016, upload-time = "2025-04-03T20:36:54.639Z" }, + { url = "https://files.pythonhosted.org/packages/de/0c/9e58d4887b86d7121d1c519f7050d1be5eb189d8a8075f5417df6492b4f5/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2b3dd5d206a12deca16870acc0d6e5036abeb70e3cad6549c294eff15591527", size = 1600414, upload-time = "2025-04-03T20:36:56.669Z" }, + { url = "https://files.pythonhosted.org/packages/9b/df/6096bc669c1311568840bdcbb5a893edc972d1c8d2b4b4325c21d54da5b1/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1343d745fbf4688e412d8f398c6e6d6f269db99a54456873f232ba2e7aeb4939", size = 3053179, upload-time = "2025-04-03T20:36:59.366Z" }, + { url = "https://files.pythonhosted.org/packages/f9/46/5179c583b75fce3e65a5cd79a3561bd19abd54518cb7c483a89b284bf2b9/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b1b065f370d54551dcc785c6f9eeb5bd517ae14c983d2784c064b3aa525896df", size = 2456856, upload-time = "2025-04-03T20:37:01.708Z" }, + { url = "https://files.pythonhosted.org/packages/6b/64/e9804212e3286d027ac35bbb66603c9456c2bce23f823b67d2f5cabc05c1/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:11b125d8edd67e767b2295eac6eb9afe0b1cdc82ea3d4b9257da4b8e06077798", size = 7567107, upload-time = "2025-04-03T20:37:04.521Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f2/7d69e7bf4daec62769b11757ffc31f69afb3ce248947aadbb109fefd9f65/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c33f9c841630b2bb7e69a3fb5c84a854075bb812c47620978bddc591f764da3d", size = 2854192, upload-time = "2025-04-03T20:37:06.905Z" }, + { url = "https://files.pythonhosted.org/packages/05/21/ab4ad7d7d0f653e6fe2e4ccf11d0245092bef94cdff587a21e534e57bda8/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ae4574cb66cf1e85d32bb7e9ec45af5409c5b3970b7ceb8dea90168024127566", size = 3398876, upload-time = "2025-04-03T20:37:09.692Z" }, + { url = "https://files.pythonhosted.org/packages/0f/a8/45bba94c2489cb1ee0130dcb46e1df4fa2c2b25269e21ffd15240a80322b/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e05752418b24bbd411841b256344c26f57da1148c5509e34ea39c7eb5099ab72", size = 4377077, upload-time = "2025-04-03T20:37:11.929Z" }, + { url = "https://files.pythonhosted.org/packages/0c/f3/5e0c6ae452cbb74e5436d3445467447e8c32f3021f48f93f15934b8cffc2/rapidfuzz-3.13.0-cp313-cp313-win32.whl", hash = "sha256:0e1d08cb884805a543f2de1f6744069495ef527e279e05370dd7c83416af83f8", size = 1822066, upload-time = "2025-04-03T20:37:14.425Z" }, + { url = "https://files.pythonhosted.org/packages/96/e3/a98c25c4f74051df4dcf2f393176b8663bfd93c7afc6692c84e96de147a2/rapidfuzz-3.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9a7c6232be5f809cd39da30ee5d24e6cadd919831e6020ec6c2391f4c3bc9264", size = 1615100, upload-time = "2025-04-03T20:37:16.611Z" }, + { url = "https://files.pythonhosted.org/packages/60/b1/05cd5e697c00cd46d7791915f571b38c8531f714832eff2c5e34537c49ee/rapidfuzz-3.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:3f32f15bacd1838c929b35c84b43618481e1b3d7a61b5ed2db0291b70ae88b53", size = 858976, upload-time = "2025-04-03T20:37:19.336Z" }, +] + +[[package]] +name = "referencing" +version = "0.36.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload-time = "2025-01-25T08:48:16.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775, upload-time = "2025-01-25T08:48:14.241Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "responses" +version = "0.25.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyyaml" }, + { name = "requests" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/95/89c054ad70bfef6da605338b009b2e283485835351a9935c7bfbfaca7ffc/responses-0.25.8.tar.gz", hash = "sha256:9374d047a575c8f781b94454db5cab590b6029505f488d12899ddb10a4af1cf4", size = 79320, upload-time = "2025-08-08T19:01:46.709Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/4c/cc276ce57e572c102d9542d383b2cfd551276581dc60004cb94fe8774c11/responses-0.25.8-py3-none-any.whl", hash = "sha256:0c710af92def29c8352ceadff0c3fe340ace27cf5af1bbe46fb71275bcd2831c", size = 34769, upload-time = "2025-08-08T19:01:45.018Z" }, +] + +[[package]] +name = "rich" +version = "14.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fe/75/af448d8e52bf1d8fa6a9d089ca6c07ff4453d86c65c145d0a300bb073b9b/rich-14.1.0.tar.gz", hash = "sha256:e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8", size = 224441, upload-time = "2025-07-25T07:32:58.125Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/30/3c4d035596d3cf444529e0b2953ad0466f6049528a879d27534700580395/rich-14.1.0-py3-none-any.whl", hash = "sha256:536f5f1785986d6dbdea3c75205c473f970777b4a0d6c6dd1b696aa05a3fa04f", size = 243368, upload-time = "2025-07-25T07:32:56.73Z" }, +] + +[[package]] +name = "rich-toolkit" +version = "0.15.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/65/36/cdb3d51371ad0cccbf1541506304783bd72d55790709b8eb68c0d401a13a/rich_toolkit-0.15.0.tar.gz", hash = "sha256:3f5730e9f2d36d0bfe01cf723948b7ecf4cc355d2b71e2c00e094f7963128c09", size = 115118, upload-time = "2025-08-11T10:55:37.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/e4/b0794eefb3cf78566b15e5bf576492c1d4a92ce5f6da55675bc11e9ef5d8/rich_toolkit-0.15.0-py3-none-any.whl", hash = "sha256:ddb91008283d4a7989fd8ff0324a48773a7a2276229c6a3070755645538ef1bb", size = 29062, upload-time = "2025-08-11T10:55:37.152Z" }, +] + +[[package]] +name = "rignore" +version = "0.6.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/73/46/05a94dc55ac03cf931d18e43b86ecee5ee054cb88b7853fffd741e35009c/rignore-0.6.4.tar.gz", hash = "sha256:e893fdd2d7fdcfa9407d0b7600ef2c2e2df97f55e1c45d4a8f54364829ddb0ab", size = 11633, upload-time = "2025-07-19T19:24:46.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/6c/e5af4383cdd7829ef9aa63ac82a6507983e02dbc7c2e7b9aa64b7b8e2c7a/rignore-0.6.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:74720d074b79f32449d5d212ce732e0144a294a184246d1f1e7bcc1fc5c83b69", size = 885885, upload-time = "2025-07-19T19:23:53.236Z" }, + { url = "https://files.pythonhosted.org/packages/89/3e/1b02a868830e464769aa417ee195ac352fe71ff818df8ce50c4b998edb9c/rignore-0.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0a8184fcf567bd6b6d7b85a0c138d98dd40f63054141c96b175844414c5530d7", size = 819736, upload-time = "2025-07-19T19:23:46.565Z" }, + { url = "https://files.pythonhosted.org/packages/e0/75/b9be0c523d97c09f3c6508a67ce376aba4efe41c333c58903a0d7366439a/rignore-0.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcb0d7d7ecc3fbccf6477bb187c04a091579ea139f15f139abe0b3b48bdfef69", size = 892779, upload-time = "2025-07-19T19:22:35.167Z" }, + { url = "https://files.pythonhosted.org/packages/91/f4/3064b06233697f2993485d132f06fe95061fef71631485da75aed246c4fd/rignore-0.6.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feac73377a156fb77b3df626c76f7e5893d9b4e9e886ac8c0f9d44f1206a2a91", size = 872116, upload-time = "2025-07-19T19:22:47.828Z" }, + { url = "https://files.pythonhosted.org/packages/99/94/cb8e7af9a3c0a665f10e2366144e0ebc66167cf846aca5f1ac31b3661598/rignore-0.6.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:465179bc30beb1f7a3439e428739a2b5777ed26660712b8c4e351b15a7c04483", size = 1163345, upload-time = "2025-07-19T19:23:00.557Z" }, + { url = "https://files.pythonhosted.org/packages/86/6b/49faa7ad85ceb6ccef265df40091d9992232d7f6055fa664fe0a8b13781c/rignore-0.6.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4a4877b4dca9cf31a4d09845b300c677c86267657540d0b4d3e6d0ce3110e6e9", size = 939967, upload-time = "2025-07-19T19:23:13.494Z" }, + { url = "https://files.pythonhosted.org/packages/80/c8/b91afda10bd5ca1e3a80463340b899c0dc26a7750a9f3c94f668585c7f40/rignore-0.6.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:456456802b1e77d1e2d149320ee32505b8183e309e228129950b807d204ddd17", size = 949717, upload-time = "2025-07-19T19:23:36.404Z" }, + { url = "https://files.pythonhosted.org/packages/3f/f1/88bfdde58ae3fb1c1a92bb801f492eea8eafcdaf05ab9b75130023a4670b/rignore-0.6.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c1ff2fc223f1d9473d36923160af37bf765548578eb9d47a2f52e90da8ae408", size = 975534, upload-time = "2025-07-19T19:23:25.988Z" }, + { url = "https://files.pythonhosted.org/packages/aa/8f/a80b4a2e48ceba56ba19e096d41263d844757e10aa36ede212571b5d8117/rignore-0.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e445fbc214ae18e0e644a78086ea5d0f579e210229a4fbe86367d11a4cd03c11", size = 1067837, upload-time = "2025-07-19T19:23:59.888Z" }, + { url = "https://files.pythonhosted.org/packages/7d/90/0905597af0e78748909ef58418442a480ddd93e9fc89b0ca9ab170c357c0/rignore-0.6.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e07d9c5270fc869bc431aadcfb6ed0447f89b8aafaa666914c077435dc76a123", size = 1134959, upload-time = "2025-07-19T19:24:12.396Z" }, + { url = "https://files.pythonhosted.org/packages/cc/7d/0fa29adf9183b61947ce6dc8a1a9779a8ea16573f557be28ec893f6ddbaa/rignore-0.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7a6ccc0ea83d2c0c6df6b166f2acacedcc220a516436490f41e99a5ae73b6019", size = 1109708, upload-time = "2025-07-19T19:24:24.176Z" }, + { url = "https://files.pythonhosted.org/packages/4e/a7/92892ed86b2e36da403dd3a0187829f2d880414cef75bd612bfdf4dedebc/rignore-0.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:536392c5ec91755db48389546c833c4ab1426fe03e5a8522992b54ef8a244e7e", size = 1120546, upload-time = "2025-07-19T19:24:36.377Z" }, + { url = "https://files.pythonhosted.org/packages/31/1b/d29ae1fe901d523741d6d1d3ffe0d630734dd0ed6b047628a69c1e15ea44/rignore-0.6.4-cp312-cp312-win32.whl", hash = "sha256:f5f9dca46fc41c0a1e236767f68be9d63bdd2726db13a0ae3a30f68414472969", size = 642005, upload-time = "2025-07-19T19:24:56.671Z" }, + { url = "https://files.pythonhosted.org/packages/1a/41/a224944824688995374e4525115ce85fecd82442fc85edd5bcd81f4f256d/rignore-0.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:e02eecb9e1b9f9bf7c9030ae73308a777bed3b2486204cc74dfcfbe699ab1497", size = 720358, upload-time = "2025-07-19T19:24:49.959Z" }, + { url = "https://files.pythonhosted.org/packages/db/a3/edd7d0d5cc0720de132b6651cef95ee080ce5fca11c77d8a47db848e5f90/rignore-0.6.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:2b3b1e266ce45189240d14dfa1057f8013ea34b9bc8b3b44125ec8d25fdb3985", size = 885304, upload-time = "2025-07-19T19:23:54.268Z" }, + { url = "https://files.pythonhosted.org/packages/93/a1/d8d2fb97a6548307507d049b7e93885d4a0dfa1c907af5983fd9f9362a21/rignore-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45fe803628cc14714df10e8d6cdc23950a47eb9eb37dfea9a4779f4c672d2aa0", size = 818799, upload-time = "2025-07-19T19:23:47.544Z" }, + { url = "https://files.pythonhosted.org/packages/b1/cd/949981fcc180ad5ba7b31c52e78b74b2dea6b7bf744ad4c0c4b212f6da78/rignore-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e439f034277a947a4126e2da79dbb43e33d73d7c09d3d72a927e02f8a16f59aa", size = 892024, upload-time = "2025-07-19T19:22:36.18Z" }, + { url = "https://files.pythonhosted.org/packages/b0/d3/9042d701a8062d9c88f87760bbc2695ee2c23b3f002d34486b72a85f8efe/rignore-0.6.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:84b5121650ae24621154c7bdba8b8970b0739d8146505c9f38e0cda9385d1004", size = 871430, upload-time = "2025-07-19T19:22:49.62Z" }, + { url = "https://files.pythonhosted.org/packages/eb/50/3370249b984212b7355f3d9241aa6d02e706067c6d194a2614dfbc0f5b27/rignore-0.6.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52b0957b585ab48a445cf8ac1dbc33a272ab060835e583b4f95aa8c67c23fb2b", size = 1160559, upload-time = "2025-07-19T19:23:01.629Z" }, + { url = "https://files.pythonhosted.org/packages/6c/6f/2ad7f925838091d065524f30a8abda846d1813eee93328febf262b5cda21/rignore-0.6.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:50359e0d5287b5e2743bd2f2fbf05df619c8282fd3af12f6628ff97b9675551d", size = 939947, upload-time = "2025-07-19T19:23:14.608Z" }, + { url = "https://files.pythonhosted.org/packages/1f/01/626ec94d62475ae7ef8b00ef98cea61cbea52a389a666703c97c4673d406/rignore-0.6.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efe18096dcb1596757dfe0b412aab6d32564473ae7ee58dea0a8b4be5b1a2e3b", size = 949471, upload-time = "2025-07-19T19:23:37.521Z" }, + { url = "https://files.pythonhosted.org/packages/e8/c3/699c4f03b3c46f4b5c02f17a0a339225da65aad547daa5b03001e7c6a382/rignore-0.6.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b79c212d9990a273ad91e8d9765e1766ef6ecedd3be65375d786a252762ba385", size = 974912, upload-time = "2025-07-19T19:23:27.13Z" }, + { url = "https://files.pythonhosted.org/packages/cd/35/04626c12f9f92a9fc789afc2be32838a5d9b23b6fa8b2ad4a8625638d15b/rignore-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c6ffa7f2a8894c65aa5dc4e8ac8bbdf39a326c0c6589efd27686cfbb48f0197d", size = 1067281, upload-time = "2025-07-19T19:24:01.016Z" }, + { url = "https://files.pythonhosted.org/packages/fe/9c/8f17baf3b984afea151cb9094716f6f1fb8e8737db97fc6eb6d494bd0780/rignore-0.6.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a63f5720dffc8d8fb0a4d02fafb8370a4031ebf3f99a4e79f334a91e905b7349", size = 1134414, upload-time = "2025-07-19T19:24:13.534Z" }, + { url = "https://files.pythonhosted.org/packages/10/88/ef84ffa916a96437c12cefcc39d474122da9626d75e3a2ebe09ec5d32f1b/rignore-0.6.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ce33982da47ac5dc09d19b04fa8d7c9aa6292fc0bd1ecf33076989faa8886094", size = 1109330, upload-time = "2025-07-19T19:24:25.303Z" }, + { url = "https://files.pythonhosted.org/packages/27/43/2ada5a2ec03b82e903610a1c483f516f78e47700ee6db9823f739e08b3af/rignore-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d899621867aa266824fbd9150e298f19d25b93903ef0133c09f70c65a3416eca", size = 1120381, upload-time = "2025-07-19T19:24:37.798Z" }, + { url = "https://files.pythonhosted.org/packages/3b/99/e7bcc643085131cb14dbea772def72bf1f6fe9037171ebe177c4f228abc8/rignore-0.6.4-cp313-cp313-win32.whl", hash = "sha256:d0615a6bf4890ec5a90b5fb83666822088fbd4e8fcd740c386fcce51e2f6feea", size = 641761, upload-time = "2025-07-19T19:24:58.096Z" }, + { url = "https://files.pythonhosted.org/packages/d9/25/7798908044f27dea1a8abdc75c14523e33770137651e5f775a15143f4218/rignore-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:145177f0e32716dc2f220b07b3cde2385b994b7ea28d5c96fbec32639e9eac6f", size = 719876, upload-time = "2025-07-19T19:24:51.125Z" }, + { url = "https://files.pythonhosted.org/packages/b4/e3/ae1e30b045bf004ad77bbd1679b9afff2be8edb166520921c6f29420516a/rignore-0.6.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e55bf8f9bbd186f58ab646b4a08718c77131d28a9004e477612b0cbbd5202db2", size = 891776, upload-time = "2025-07-19T19:22:37.78Z" }, + { url = "https://files.pythonhosted.org/packages/45/a9/1193e3bc23ca0e6eb4f17cf4b99971237f97cfa6f241d98366dff90a6d09/rignore-0.6.4-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2521f7bf3ee1f2ab22a100a3a4eed39a97b025804e5afe4323528e9ce8f084a5", size = 871442, upload-time = "2025-07-19T19:22:50.972Z" }, + { url = "https://files.pythonhosted.org/packages/20/83/4c52ae429a0b2e1ce667e35b480e9a6846f9468c443baeaed5d775af9485/rignore-0.6.4-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cc35773a8a9c119359ef974d0856988d4601d4daa6f532c05f66b4587cf35bc", size = 1159844, upload-time = "2025-07-19T19:23:02.751Z" }, + { url = "https://files.pythonhosted.org/packages/c1/2f/c740f5751f464c937bfe252dc15a024ae081352cfe80d94aa16d6a617482/rignore-0.6.4-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b665b1ea14457d7b49e834baabc635a3b8c10cfb5cca5c21161fabdbfc2b850e", size = 939456, upload-time = "2025-07-19T19:23:15.72Z" }, + { url = "https://files.pythonhosted.org/packages/fc/dd/68dbb08ac0edabf44dd144ff546a3fb0253c5af708e066847df39fc9188f/rignore-0.6.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c7fd339f344a8548724f289495b835bed7b81174a0bc1c28c6497854bd8855db", size = 1067070, upload-time = "2025-07-19T19:24:02.803Z" }, + { url = "https://files.pythonhosted.org/packages/3b/3a/7e7ea6f0d31d3f5beb0f2cf2c4c362672f5f7f125714458673fc579e2bed/rignore-0.6.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:91dc94b1cc5af8d6d25ce6edd29e7351830f19b0a03b75cb3adf1f76d00f3007", size = 1134598, upload-time = "2025-07-19T19:24:15.039Z" }, + { url = "https://files.pythonhosted.org/packages/7e/06/1b3307f6437d29bede5a95738aa89e6d910ba68d4054175c9f60d8e2c6b1/rignore-0.6.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4d1918221a249e5342b60fd5fa513bf3d6bf272a8738e66023799f0c82ecd788", size = 1108862, upload-time = "2025-07-19T19:24:26.765Z" }, + { url = "https://files.pythonhosted.org/packages/b0/d5/b37c82519f335f2c472a63fc6215c6f4c51063ecf3166e3acf508011afbd/rignore-0.6.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:240777332b859dc89dcba59ab6e3f1e062bc8e862ffa3e5f456e93f7fd5cb415", size = 1120002, upload-time = "2025-07-19T19:24:38.952Z" }, + { url = "https://files.pythonhosted.org/packages/ac/72/2f05559ed5e69bdfdb56ea3982b48e6c0017c59f7241f7e1c5cae992b347/rignore-0.6.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b0e548753e55cc648f1e7b02d9f74285fe48bb49cec93643d31e563773ab3f", size = 949454, upload-time = "2025-07-19T19:23:38.664Z" }, + { url = "https://files.pythonhosted.org/packages/0b/92/186693c8f838d670510ac1dfb35afbe964320fbffb343ba18f3d24441941/rignore-0.6.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6971ac9fdd5a0bd299a181096f091c4f3fd286643adceba98eccc03c688a6637", size = 974663, upload-time = "2025-07-19T19:23:28.24Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.27.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/d9/991a0dee12d9fc53ed027e26a26a64b151d77252ac477e22666b9688bc16/rpds_py-0.27.0.tar.gz", hash = "sha256:8b23cf252f180cda89220b378d917180f29d313cd6a07b2431c0d3b776aae86f", size = 27420, upload-time = "2025-08-07T08:26:39.624Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/17/e67309ca1ac993fa1888a0d9b2f5ccc1f67196ace32e76c9f8e1dbbbd50c/rpds_py-0.27.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:19c990fdf5acecbf0623e906ae2e09ce1c58947197f9bced6bbd7482662231c4", size = 362611, upload-time = "2025-08-07T08:23:44.773Z" }, + { url = "https://files.pythonhosted.org/packages/93/2e/28c2fb84aa7aa5d75933d1862d0f7de6198ea22dfd9a0cca06e8a4e7509e/rpds_py-0.27.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6c27a7054b5224710fcfb1a626ec3ff4f28bcb89b899148c72873b18210e446b", size = 347680, upload-time = "2025-08-07T08:23:46.014Z" }, + { url = "https://files.pythonhosted.org/packages/44/3e/9834b4c8f4f5fe936b479e623832468aa4bd6beb8d014fecaee9eac6cdb1/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09965b314091829b378b60607022048953e25f0b396c2b70e7c4c81bcecf932e", size = 384600, upload-time = "2025-08-07T08:23:48Z" }, + { url = "https://files.pythonhosted.org/packages/19/78/744123c7b38865a965cd9e6f691fde7ef989a00a256fa8bf15b75240d12f/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:14f028eb47f59e9169bfdf9f7ceafd29dd64902141840633683d0bad5b04ff34", size = 400697, upload-time = "2025-08-07T08:23:49.407Z" }, + { url = "https://files.pythonhosted.org/packages/32/97/3c3d32fe7daee0a1f1a678b6d4dfb8c4dcf88197fa2441f9da7cb54a8466/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6168af0be75bba990a39f9431cdfae5f0ad501f4af32ae62e8856307200517b8", size = 517781, upload-time = "2025-08-07T08:23:50.557Z" }, + { url = "https://files.pythonhosted.org/packages/b2/be/28f0e3e733680aa13ecec1212fc0f585928a206292f14f89c0b8a684cad1/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab47fe727c13c09d0e6f508e3a49e545008e23bf762a245b020391b621f5b726", size = 406449, upload-time = "2025-08-07T08:23:51.732Z" }, + { url = "https://files.pythonhosted.org/packages/95/ae/5d15c83e337c082d0367053baeb40bfba683f42459f6ebff63a2fd7e5518/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fa01b3d5e3b7d97efab65bd3d88f164e289ec323a8c033c5c38e53ee25c007e", size = 386150, upload-time = "2025-08-07T08:23:52.822Z" }, + { url = "https://files.pythonhosted.org/packages/bf/65/944e95f95d5931112829e040912b25a77b2e7ed913ea5fe5746aa5c1ce75/rpds_py-0.27.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:6c135708e987f46053e0a1246a206f53717f9fadfba27174a9769ad4befba5c3", size = 406100, upload-time = "2025-08-07T08:23:54.339Z" }, + { url = "https://files.pythonhosted.org/packages/21/a4/1664b83fae02894533cd11dc0b9f91d673797c2185b7be0f7496107ed6c5/rpds_py-0.27.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc327f4497b7087d06204235199daf208fd01c82d80465dc5efa4ec9df1c5b4e", size = 421345, upload-time = "2025-08-07T08:23:55.832Z" }, + { url = "https://files.pythonhosted.org/packages/7c/26/b7303941c2b0823bfb34c71378249f8beedce57301f400acb04bb345d025/rpds_py-0.27.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7e57906e38583a2cba67046a09c2637e23297618dc1f3caddbc493f2be97c93f", size = 561891, upload-time = "2025-08-07T08:23:56.951Z" }, + { url = "https://files.pythonhosted.org/packages/9b/c8/48623d64d4a5a028fa99576c768a6159db49ab907230edddc0b8468b998b/rpds_py-0.27.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f4f69d7a4300fbf91efb1fb4916421bd57804c01ab938ab50ac9c4aa2212f03", size = 591756, upload-time = "2025-08-07T08:23:58.146Z" }, + { url = "https://files.pythonhosted.org/packages/b3/51/18f62617e8e61cc66334c9fb44b1ad7baae3438662098efbc55fb3fda453/rpds_py-0.27.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b4c4fbbcff474e1e5f38be1bf04511c03d492d42eec0babda5d03af3b5589374", size = 557088, upload-time = "2025-08-07T08:23:59.6Z" }, + { url = "https://files.pythonhosted.org/packages/bd/4c/e84c3a276e2496a93d245516be6b49e20499aa8ca1c94d59fada0d79addc/rpds_py-0.27.0-cp312-cp312-win32.whl", hash = "sha256:27bac29bbbf39601b2aab474daf99dbc8e7176ca3389237a23944b17f8913d97", size = 221926, upload-time = "2025-08-07T08:24:00.695Z" }, + { url = "https://files.pythonhosted.org/packages/83/89/9d0fbcef64340db0605eb0a0044f258076f3ae0a3b108983b2c614d96212/rpds_py-0.27.0-cp312-cp312-win_amd64.whl", hash = "sha256:8a06aa1197ec0281eb1d7daf6073e199eb832fe591ffa329b88bae28f25f5fe5", size = 233235, upload-time = "2025-08-07T08:24:01.846Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b0/e177aa9f39cbab060f96de4a09df77d494f0279604dc2f509263e21b05f9/rpds_py-0.27.0-cp312-cp312-win_arm64.whl", hash = "sha256:e14aab02258cb776a108107bd15f5b5e4a1bbaa61ef33b36693dfab6f89d54f9", size = 223315, upload-time = "2025-08-07T08:24:03.337Z" }, + { url = "https://files.pythonhosted.org/packages/81/d2/dfdfd42565a923b9e5a29f93501664f5b984a802967d48d49200ad71be36/rpds_py-0.27.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:443d239d02d9ae55b74015234f2cd8eb09e59fbba30bf60baeb3123ad4c6d5ff", size = 362133, upload-time = "2025-08-07T08:24:04.508Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4a/0a2e2460c4b66021d349ce9f6331df1d6c75d7eea90df9785d333a49df04/rpds_py-0.27.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b8a7acf04fda1f30f1007f3cc96d29d8cf0a53e626e4e1655fdf4eabc082d367", size = 347128, upload-time = "2025-08-07T08:24:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/35/8d/7d1e4390dfe09d4213b3175a3f5a817514355cb3524593380733204f20b9/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d0f92b78cfc3b74a42239fdd8c1266f4715b573204c234d2f9fc3fc7a24f185", size = 384027, upload-time = "2025-08-07T08:24:06.841Z" }, + { url = "https://files.pythonhosted.org/packages/c1/65/78499d1a62172891c8cd45de737b2a4b84a414b6ad8315ab3ac4945a5b61/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ce4ed8e0c7dbc5b19352b9c2c6131dd23b95fa8698b5cdd076307a33626b72dc", size = 399973, upload-time = "2025-08-07T08:24:08.143Z" }, + { url = "https://files.pythonhosted.org/packages/10/a1/1c67c1d8cc889107b19570bb01f75cf49852068e95e6aee80d22915406fc/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fde355b02934cc6b07200cc3b27ab0c15870a757d1a72fd401aa92e2ea3c6bfe", size = 515295, upload-time = "2025-08-07T08:24:09.711Z" }, + { url = "https://files.pythonhosted.org/packages/df/27/700ec88e748436b6c7c4a2262d66e80f8c21ab585d5e98c45e02f13f21c0/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13bbc4846ae4c993f07c93feb21a24d8ec637573d567a924b1001e81c8ae80f9", size = 406737, upload-time = "2025-08-07T08:24:11.182Z" }, + { url = "https://files.pythonhosted.org/packages/33/cc/6b0ee8f0ba3f2df2daac1beda17fde5cf10897a7d466f252bd184ef20162/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be0744661afbc4099fef7f4e604e7f1ea1be1dd7284f357924af12a705cc7d5c", size = 385898, upload-time = "2025-08-07T08:24:12.798Z" }, + { url = "https://files.pythonhosted.org/packages/e8/7e/c927b37d7d33c0a0ebf249cc268dc2fcec52864c1b6309ecb960497f2285/rpds_py-0.27.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:069e0384a54f427bd65d7fda83b68a90606a3835901aaff42185fcd94f5a9295", size = 405785, upload-time = "2025-08-07T08:24:14.906Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d2/8ed50746d909dcf402af3fa58b83d5a590ed43e07251d6b08fad1a535ba6/rpds_py-0.27.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4bc262ace5a1a7dc3e2eac2fa97b8257ae795389f688b5adf22c5db1e2431c43", size = 419760, upload-time = "2025-08-07T08:24:16.129Z" }, + { url = "https://files.pythonhosted.org/packages/d3/60/2b2071aee781cb3bd49f94d5d35686990b925e9b9f3e3d149235a6f5d5c1/rpds_py-0.27.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2fe6e18e5c8581f0361b35ae575043c7029d0a92cb3429e6e596c2cdde251432", size = 561201, upload-time = "2025-08-07T08:24:17.645Z" }, + { url = "https://files.pythonhosted.org/packages/98/1f/27b67304272521aaea02be293fecedce13fa351a4e41cdb9290576fc6d81/rpds_py-0.27.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d93ebdb82363d2e7bec64eecdc3632b59e84bd270d74fe5be1659f7787052f9b", size = 591021, upload-time = "2025-08-07T08:24:18.999Z" }, + { url = "https://files.pythonhosted.org/packages/db/9b/a2fadf823164dd085b1f894be6443b0762a54a7af6f36e98e8fcda69ee50/rpds_py-0.27.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0954e3a92e1d62e83a54ea7b3fdc9efa5d61acef8488a8a3d31fdafbfb00460d", size = 556368, upload-time = "2025-08-07T08:24:20.54Z" }, + { url = "https://files.pythonhosted.org/packages/24/f3/6d135d46a129cda2e3e6d4c5e91e2cc26ea0428c6cf152763f3f10b6dd05/rpds_py-0.27.0-cp313-cp313-win32.whl", hash = "sha256:2cff9bdd6c7b906cc562a505c04a57d92e82d37200027e8d362518df427f96cd", size = 221236, upload-time = "2025-08-07T08:24:22.144Z" }, + { url = "https://files.pythonhosted.org/packages/c5/44/65d7494f5448ecc755b545d78b188440f81da98b50ea0447ab5ebfdf9bd6/rpds_py-0.27.0-cp313-cp313-win_amd64.whl", hash = "sha256:dc79d192fb76fc0c84f2c58672c17bbbc383fd26c3cdc29daae16ce3d927e8b2", size = 232634, upload-time = "2025-08-07T08:24:23.642Z" }, + { url = "https://files.pythonhosted.org/packages/70/d9/23852410fadab2abb611733933401de42a1964ce6600a3badae35fbd573e/rpds_py-0.27.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b3a5c8089eed498a3af23ce87a80805ff98f6ef8f7bdb70bd1b7dae5105f6ac", size = 222783, upload-time = "2025-08-07T08:24:25.098Z" }, + { url = "https://files.pythonhosted.org/packages/15/75/03447917f78512b34463f4ef11066516067099a0c466545655503bed0c77/rpds_py-0.27.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:90fb790138c1a89a2e58c9282fe1089638401f2f3b8dddd758499041bc6e0774", size = 359154, upload-time = "2025-08-07T08:24:26.249Z" }, + { url = "https://files.pythonhosted.org/packages/6b/fc/4dac4fa756451f2122ddaf136e2c6aeb758dc6fdbe9ccc4bc95c98451d50/rpds_py-0.27.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:010c4843a3b92b54373e3d2291a7447d6c3fc29f591772cc2ea0e9f5c1da434b", size = 343909, upload-time = "2025-08-07T08:24:27.405Z" }, + { url = "https://files.pythonhosted.org/packages/7b/81/723c1ed8e6f57ed9d8c0c07578747a2d3d554aaefc1ab89f4e42cfeefa07/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9ce7a9e967afc0a2af7caa0d15a3e9c1054815f73d6a8cb9225b61921b419bd", size = 379340, upload-time = "2025-08-07T08:24:28.714Z" }, + { url = "https://files.pythonhosted.org/packages/98/16/7e3740413de71818ce1997df82ba5f94bae9fff90c0a578c0e24658e6201/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aa0bf113d15e8abdfee92aa4db86761b709a09954083afcb5bf0f952d6065fdb", size = 391655, upload-time = "2025-08-07T08:24:30.223Z" }, + { url = "https://files.pythonhosted.org/packages/e0/63/2a9f510e124d80660f60ecce07953f3f2d5f0b96192c1365443859b9c87f/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb91d252b35004a84670dfeafadb042528b19842a0080d8b53e5ec1128e8f433", size = 513017, upload-time = "2025-08-07T08:24:31.446Z" }, + { url = "https://files.pythonhosted.org/packages/2c/4e/cf6ff311d09776c53ea1b4f2e6700b9d43bb4e99551006817ade4bbd6f78/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:db8a6313dbac934193fc17fe7610f70cd8181c542a91382531bef5ed785e5615", size = 402058, upload-time = "2025-08-07T08:24:32.613Z" }, + { url = "https://files.pythonhosted.org/packages/88/11/5e36096d474cb10f2a2d68b22af60a3bc4164fd8db15078769a568d9d3ac/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce96ab0bdfcef1b8c371ada2100767ace6804ea35aacce0aef3aeb4f3f499ca8", size = 383474, upload-time = "2025-08-07T08:24:33.767Z" }, + { url = "https://files.pythonhosted.org/packages/db/a2/3dff02805b06058760b5eaa6d8cb8db3eb3e46c9e452453ad5fc5b5ad9fe/rpds_py-0.27.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:7451ede3560086abe1aa27dcdcf55cd15c96b56f543fb12e5826eee6f721f858", size = 400067, upload-time = "2025-08-07T08:24:35.021Z" }, + { url = "https://files.pythonhosted.org/packages/67/87/eed7369b0b265518e21ea836456a4ed4a6744c8c12422ce05bce760bb3cf/rpds_py-0.27.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:32196b5a99821476537b3f7732432d64d93a58d680a52c5e12a190ee0135d8b5", size = 412085, upload-time = "2025-08-07T08:24:36.267Z" }, + { url = "https://files.pythonhosted.org/packages/8b/48/f50b2ab2fbb422fbb389fe296e70b7a6b5ea31b263ada5c61377e710a924/rpds_py-0.27.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a029be818059870664157194e46ce0e995082ac49926f1423c1f058534d2aaa9", size = 555928, upload-time = "2025-08-07T08:24:37.573Z" }, + { url = "https://files.pythonhosted.org/packages/98/41/b18eb51045d06887666c3560cd4bbb6819127b43d758f5adb82b5f56f7d1/rpds_py-0.27.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3841f66c1ffdc6cebce8aed64e36db71466f1dc23c0d9a5592e2a782a3042c79", size = 585527, upload-time = "2025-08-07T08:24:39.391Z" }, + { url = "https://files.pythonhosted.org/packages/be/03/a3dd6470fc76499959b00ae56295b76b4bdf7c6ffc60d62006b1217567e1/rpds_py-0.27.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:42894616da0fc0dcb2ec08a77896c3f56e9cb2f4b66acd76fc8992c3557ceb1c", size = 554211, upload-time = "2025-08-07T08:24:40.6Z" }, + { url = "https://files.pythonhosted.org/packages/bf/d1/ee5fd1be395a07423ac4ca0bcc05280bf95db2b155d03adefeb47d5ebf7e/rpds_py-0.27.0-cp313-cp313t-win32.whl", hash = "sha256:b1fef1f13c842a39a03409e30ca0bf87b39a1e2a305a9924deadb75a43105d23", size = 216624, upload-time = "2025-08-07T08:24:42.204Z" }, + { url = "https://files.pythonhosted.org/packages/1c/94/4814c4c858833bf46706f87349c37ca45e154da7dbbec9ff09f1abeb08cc/rpds_py-0.27.0-cp313-cp313t-win_amd64.whl", hash = "sha256:183f5e221ba3e283cd36fdfbe311d95cd87699a083330b4f792543987167eff1", size = 230007, upload-time = "2025-08-07T08:24:43.329Z" }, + { url = "https://files.pythonhosted.org/packages/0e/a5/8fffe1c7dc7c055aa02df310f9fb71cfc693a4d5ccc5de2d3456ea5fb022/rpds_py-0.27.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:f3cd110e02c5bf17d8fb562f6c9df5c20e73029d587cf8602a2da6c5ef1e32cb", size = 362595, upload-time = "2025-08-07T08:24:44.478Z" }, + { url = "https://files.pythonhosted.org/packages/bc/c7/4e4253fd2d4bb0edbc0b0b10d9f280612ca4f0f990e3c04c599000fe7d71/rpds_py-0.27.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8d0e09cf4863c74106b5265c2c310f36146e2b445ff7b3018a56799f28f39f6f", size = 347252, upload-time = "2025-08-07T08:24:45.678Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c8/3d1a954d30f0174dd6baf18b57c215da03cf7846a9d6e0143304e784cddc/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f689ab822f9b5eb6dfc69893b4b9366db1d2420f7db1f6a2adf2a9ca15ad64", size = 384886, upload-time = "2025-08-07T08:24:46.86Z" }, + { url = "https://files.pythonhosted.org/packages/e0/52/3c5835f2df389832b28f9276dd5395b5a965cea34226e7c88c8fbec2093c/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e36c80c49853b3ffda7aa1831bf175c13356b210c73128c861f3aa93c3cc4015", size = 399716, upload-time = "2025-08-07T08:24:48.174Z" }, + { url = "https://files.pythonhosted.org/packages/40/73/176e46992461a1749686a2a441e24df51ff86b99c2d34bf39f2a5273b987/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6de6a7f622860af0146cb9ee148682ff4d0cea0b8fd3ad51ce4d40efb2f061d0", size = 517030, upload-time = "2025-08-07T08:24:49.52Z" }, + { url = "https://files.pythonhosted.org/packages/79/2a/7266c75840e8c6e70effeb0d38922a45720904f2cd695e68a0150e5407e2/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4045e2fc4b37ec4b48e8907a5819bdd3380708c139d7cc358f03a3653abedb89", size = 408448, upload-time = "2025-08-07T08:24:50.727Z" }, + { url = "https://files.pythonhosted.org/packages/e6/5f/a7efc572b8e235093dc6cf39f4dbc8a7f08e65fdbcec7ff4daeb3585eef1/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9da162b718b12c4219eeeeb68a5b7552fbc7aadedf2efee440f88b9c0e54b45d", size = 387320, upload-time = "2025-08-07T08:24:52.004Z" }, + { url = "https://files.pythonhosted.org/packages/a2/eb/9ff6bc92efe57cf5a2cb74dee20453ba444b6fdc85275d8c99e0d27239d1/rpds_py-0.27.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:0665be515767dc727ffa5f74bd2ef60b0ff85dad6bb8f50d91eaa6b5fb226f51", size = 407414, upload-time = "2025-08-07T08:24:53.664Z" }, + { url = "https://files.pythonhosted.org/packages/fb/bd/3b9b19b00d5c6e1bd0f418c229ab0f8d3b110ddf7ec5d9d689ef783d0268/rpds_py-0.27.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:203f581accef67300a942e49a37d74c12ceeef4514874c7cede21b012613ca2c", size = 420766, upload-time = "2025-08-07T08:24:55.917Z" }, + { url = "https://files.pythonhosted.org/packages/17/6b/521a7b1079ce16258c70805166e3ac6ec4ee2139d023fe07954dc9b2d568/rpds_py-0.27.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7873b65686a6471c0037139aa000d23fe94628e0daaa27b6e40607c90e3f5ec4", size = 562409, upload-time = "2025-08-07T08:24:57.17Z" }, + { url = "https://files.pythonhosted.org/packages/8b/bf/65db5bfb14ccc55e39de8419a659d05a2a9cd232f0a699a516bb0991da7b/rpds_py-0.27.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:249ab91ceaa6b41abc5f19513cb95b45c6f956f6b89f1fe3d99c81255a849f9e", size = 590793, upload-time = "2025-08-07T08:24:58.388Z" }, + { url = "https://files.pythonhosted.org/packages/db/b8/82d368b378325191ba7aae8f40f009b78057b598d4394d1f2cdabaf67b3f/rpds_py-0.27.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d2f184336bc1d6abfaaa1262ed42739c3789b1e3a65a29916a615307d22ffd2e", size = 558178, upload-time = "2025-08-07T08:24:59.756Z" }, + { url = "https://files.pythonhosted.org/packages/f6/ff/f270bddbfbc3812500f8131b1ebbd97afd014cd554b604a3f73f03133a36/rpds_py-0.27.0-cp314-cp314-win32.whl", hash = "sha256:d3c622c39f04d5751408f5b801ecb527e6e0a471b367f420a877f7a660d583f6", size = 222355, upload-time = "2025-08-07T08:25:01.027Z" }, + { url = "https://files.pythonhosted.org/packages/bf/20/fdab055b1460c02ed356a0e0b0a78c1dd32dc64e82a544f7b31c9ac643dc/rpds_py-0.27.0-cp314-cp314-win_amd64.whl", hash = "sha256:cf824aceaeffff029ccfba0da637d432ca71ab21f13e7f6f5179cd88ebc77a8a", size = 234007, upload-time = "2025-08-07T08:25:02.268Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a8/694c060005421797a3be4943dab8347c76c2b429a9bef68fb2c87c9e70c7/rpds_py-0.27.0-cp314-cp314-win_arm64.whl", hash = "sha256:86aca1616922b40d8ac1b3073a1ead4255a2f13405e5700c01f7c8d29a03972d", size = 223527, upload-time = "2025-08-07T08:25:03.45Z" }, + { url = "https://files.pythonhosted.org/packages/1e/f9/77f4c90f79d2c5ca8ce6ec6a76cb4734ee247de6b3a4f337e289e1f00372/rpds_py-0.27.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:341d8acb6724c0c17bdf714319c393bb27f6d23d39bc74f94221b3e59fc31828", size = 359469, upload-time = "2025-08-07T08:25:04.648Z" }, + { url = "https://files.pythonhosted.org/packages/c0/22/b97878d2f1284286fef4172069e84b0b42b546ea7d053e5fb7adb9ac6494/rpds_py-0.27.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6b96b0b784fe5fd03beffff2b1533dc0d85e92bab8d1b2c24ef3a5dc8fac5669", size = 343960, upload-time = "2025-08-07T08:25:05.863Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b0/dfd55b5bb480eda0578ae94ef256d3061d20b19a0f5e18c482f03e65464f/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c431bfb91478d7cbe368d0a699978050d3b112d7f1d440a41e90faa325557fd", size = 380201, upload-time = "2025-08-07T08:25:07.513Z" }, + { url = "https://files.pythonhosted.org/packages/28/22/e1fa64e50d58ad2b2053077e3ec81a979147c43428de9e6de68ddf6aff4e/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:20e222a44ae9f507d0f2678ee3dd0c45ec1e930f6875d99b8459631c24058aec", size = 392111, upload-time = "2025-08-07T08:25:09.149Z" }, + { url = "https://files.pythonhosted.org/packages/49/f9/43ab7a43e97aedf6cea6af70fdcbe18abbbc41d4ae6cdec1bfc23bbad403/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:184f0d7b342967f6cda94a07d0e1fae177d11d0b8f17d73e06e36ac02889f303", size = 515863, upload-time = "2025-08-07T08:25:10.431Z" }, + { url = "https://files.pythonhosted.org/packages/38/9b/9bd59dcc636cd04d86a2d20ad967770bf348f5eb5922a8f29b547c074243/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a00c91104c173c9043bc46f7b30ee5e6d2f6b1149f11f545580f5d6fdff42c0b", size = 402398, upload-time = "2025-08-07T08:25:11.819Z" }, + { url = "https://files.pythonhosted.org/packages/71/bf/f099328c6c85667aba6b66fa5c35a8882db06dcd462ea214be72813a0dd2/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7a37dd208f0d658e0487522078b1ed68cd6bce20ef4b5a915d2809b9094b410", size = 384665, upload-time = "2025-08-07T08:25:13.194Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c5/9c1f03121ece6634818490bd3c8be2c82a70928a19de03467fb25a3ae2a8/rpds_py-0.27.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:92f3b3ec3e6008a1fe00b7c0946a170f161ac00645cde35e3c9a68c2475e8156", size = 400405, upload-time = "2025-08-07T08:25:14.417Z" }, + { url = "https://files.pythonhosted.org/packages/b5/b8/e25d54af3e63ac94f0c16d8fe143779fe71ff209445a0c00d0f6984b6b2c/rpds_py-0.27.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a1b3db5fae5cbce2131b7420a3f83553d4d89514c03d67804ced36161fe8b6b2", size = 413179, upload-time = "2025-08-07T08:25:15.664Z" }, + { url = "https://files.pythonhosted.org/packages/f9/d1/406b3316433fe49c3021546293a04bc33f1478e3ec7950215a7fce1a1208/rpds_py-0.27.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5355527adaa713ab693cbce7c1e0ec71682f599f61b128cf19d07e5c13c9b1f1", size = 556895, upload-time = "2025-08-07T08:25:17.061Z" }, + { url = "https://files.pythonhosted.org/packages/5f/bc/3697c0c21fcb9a54d46ae3b735eb2365eea0c2be076b8f770f98e07998de/rpds_py-0.27.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:fcc01c57ce6e70b728af02b2401c5bc853a9e14eb07deda30624374f0aebfe42", size = 585464, upload-time = "2025-08-07T08:25:18.406Z" }, + { url = "https://files.pythonhosted.org/packages/63/09/ee1bb5536f99f42c839b177d552f6114aa3142d82f49cef49261ed28dbe0/rpds_py-0.27.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3001013dae10f806380ba739d40dee11db1ecb91684febb8406a87c2ded23dae", size = 555090, upload-time = "2025-08-07T08:25:20.461Z" }, + { url = "https://files.pythonhosted.org/packages/7d/2c/363eada9e89f7059199d3724135a86c47082cbf72790d6ba2f336d146ddb/rpds_py-0.27.0-cp314-cp314t-win32.whl", hash = "sha256:0f401c369186a5743694dd9fc08cba66cf70908757552e1f714bfc5219c655b5", size = 218001, upload-time = "2025-08-07T08:25:21.761Z" }, + { url = "https://files.pythonhosted.org/packages/e2/3f/d6c216ed5199c9ef79e2a33955601f454ed1e7420a93b89670133bca5ace/rpds_py-0.27.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8a1dca5507fa1337f75dcd5070218b20bc68cf8844271c923c1b79dfcbc20391", size = 230993, upload-time = "2025-08-07T08:25:23.34Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9e/a5/4ae3b3a0755f7b35a280ac90b28817d1f380318973cff14075ab41ef50d9/scikit_learn-1.6.1.tar.gz", hash = "sha256:b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e", size = 7068312, upload-time = "2025-01-10T08:07:55.348Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/18/c797c9b8c10380d05616db3bfb48e2a3358c767affd0857d56c2eb501caa/scikit_learn-1.6.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:926f207c804104677af4857b2c609940b743d04c4c35ce0ddc8ff4f053cddc1b", size = 12104516, upload-time = "2025-01-10T08:06:40.009Z" }, + { url = "https://files.pythonhosted.org/packages/c4/b7/2e35f8e289ab70108f8cbb2e7a2208f0575dc704749721286519dcf35f6f/scikit_learn-1.6.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c2cae262064e6a9b77eee1c8e768fc46aa0b8338c6a8297b9b6759720ec0ff2", size = 11167837, upload-time = "2025-01-10T08:06:43.305Z" }, + { url = "https://files.pythonhosted.org/packages/a4/f6/ff7beaeb644bcad72bcfd5a03ff36d32ee4e53a8b29a639f11bcb65d06cd/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1061b7c028a8663fb9a1a1baf9317b64a257fcb036dae5c8752b2abef31d136f", size = 12253728, upload-time = "2025-01-10T08:06:47.618Z" }, + { url = "https://files.pythonhosted.org/packages/29/7a/8bce8968883e9465de20be15542f4c7e221952441727c4dad24d534c6d99/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e69fab4ebfc9c9b580a7a80111b43d214ab06250f8a7ef590a4edf72464dd86", size = 13147700, upload-time = "2025-01-10T08:06:50.888Z" }, + { url = "https://files.pythonhosted.org/packages/62/27/585859e72e117fe861c2079bcba35591a84f801e21bc1ab85bce6ce60305/scikit_learn-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:70b1d7e85b1c96383f872a519b3375f92f14731e279a7b4c6cfd650cf5dffc52", size = 11110613, upload-time = "2025-01-10T08:06:54.115Z" }, + { url = "https://files.pythonhosted.org/packages/2e/59/8eb1872ca87009bdcdb7f3cdc679ad557b992c12f4b61f9250659e592c63/scikit_learn-1.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ffa1e9e25b3d93990e74a4be2c2fc61ee5af85811562f1288d5d055880c4322", size = 12010001, upload-time = "2025-01-10T08:06:58.613Z" }, + { url = "https://files.pythonhosted.org/packages/9d/05/f2fc4effc5b32e525408524c982c468c29d22f828834f0625c5ef3d601be/scikit_learn-1.6.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:dc5cf3d68c5a20ad6d571584c0750ec641cc46aeef1c1507be51300e6003a7e1", size = 11096360, upload-time = "2025-01-10T08:07:01.556Z" }, + { url = "https://files.pythonhosted.org/packages/c8/e4/4195d52cf4f113573fb8ebc44ed5a81bd511a92c0228889125fac2f4c3d1/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c06beb2e839ecc641366000ca84f3cf6fa9faa1777e29cf0c04be6e4d096a348", size = 12209004, upload-time = "2025-01-10T08:07:06.931Z" }, + { url = "https://files.pythonhosted.org/packages/94/be/47e16cdd1e7fcf97d95b3cb08bde1abb13e627861af427a3651fcb80b517/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8ca8cb270fee8f1f76fa9bfd5c3507d60c6438bbee5687f81042e2bb98e5a97", size = 13171776, upload-time = "2025-01-10T08:07:11.715Z" }, + { url = "https://files.pythonhosted.org/packages/34/b0/ca92b90859070a1487827dbc672f998da95ce83edce1270fc23f96f1f61a/scikit_learn-1.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:7a1c43c8ec9fde528d664d947dc4c0789be4077a3647f232869f41d9bf50e0fb", size = 11071865, upload-time = "2025-01-10T08:07:16.088Z" }, + { url = "https://files.pythonhosted.org/packages/12/ae/993b0fb24a356e71e9a894e42b8a9eec528d4c70217353a1cd7a48bc25d4/scikit_learn-1.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a17c1dea1d56dcda2fac315712f3651a1fea86565b64b48fa1bc090249cbf236", size = 11955804, upload-time = "2025-01-10T08:07:20.385Z" }, + { url = "https://files.pythonhosted.org/packages/d6/54/32fa2ee591af44507eac86406fa6bba968d1eb22831494470d0a2e4a1eb1/scikit_learn-1.6.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a7aa5f9908f0f28f4edaa6963c0a6183f1911e63a69aa03782f0d924c830a35", size = 11100530, upload-time = "2025-01-10T08:07:23.675Z" }, + { url = "https://files.pythonhosted.org/packages/3f/58/55856da1adec655bdce77b502e94a267bf40a8c0b89f8622837f89503b5a/scikit_learn-1.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0650e730afb87402baa88afbf31c07b84c98272622aaba002559b614600ca691", size = 12433852, upload-time = "2025-01-10T08:07:26.817Z" }, + { url = "https://files.pythonhosted.org/packages/ff/4f/c83853af13901a574f8f13b645467285a48940f185b690936bb700a50863/scikit_learn-1.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:3f59fe08dc03ea158605170eb52b22a105f238a5d512c4470ddeca71feae8e5f", size = 11337256, upload-time = "2025-01-10T08:07:31.084Z" }, +] + +[[package]] +name = "scipy" +version = "1.16.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/4a/b927028464795439faec8eaf0b03b011005c487bb2d07409f28bf30879c4/scipy-1.16.1.tar.gz", hash = "sha256:44c76f9e8b6e8e488a586190ab38016e4ed2f8a038af7cd3defa903c0a2238b3", size = 30580861, upload-time = "2025-07-27T16:33:30.834Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/d9/ec4864f5896232133f51382b54a08de91a9d1af7a76dfa372894026dfee2/scipy-1.16.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:81b433bbeaf35728dad619afc002db9b189e45eebe2cd676effe1fb93fef2b9c", size = 36575194, upload-time = "2025-07-27T16:27:41.321Z" }, + { url = "https://files.pythonhosted.org/packages/5c/6d/40e81ecfb688e9d25d34a847dca361982a6addf8e31f0957b1a54fbfa994/scipy-1.16.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:886cc81fdb4c6903a3bb0464047c25a6d1016fef77bb97949817d0c0d79f9e04", size = 28594590, upload-time = "2025-07-27T16:27:49.204Z" }, + { url = "https://files.pythonhosted.org/packages/0e/37/9f65178edfcc629377ce9a64fc09baebea18c80a9e57ae09a52edf84880b/scipy-1.16.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:15240c3aac087a522b4eaedb09f0ad061753c5eebf1ea430859e5bf8640d5919", size = 20866458, upload-time = "2025-07-27T16:27:54.98Z" }, + { url = "https://files.pythonhosted.org/packages/2c/7b/749a66766871ea4cb1d1ea10f27004db63023074c22abed51f22f09770e0/scipy-1.16.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:65f81a25805f3659b48126b5053d9e823d3215e4a63730b5e1671852a1705921", size = 23539318, upload-time = "2025-07-27T16:28:01.604Z" }, + { url = "https://files.pythonhosted.org/packages/c4/db/8d4afec60eb833a666434d4541a3151eedbf2494ea6d4d468cbe877f00cd/scipy-1.16.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6c62eea7f607f122069b9bad3f99489ddca1a5173bef8a0c75555d7488b6f725", size = 33292899, upload-time = "2025-07-27T16:28:09.147Z" }, + { url = "https://files.pythonhosted.org/packages/51/1e/79023ca3bbb13a015d7d2757ecca3b81293c663694c35d6541b4dca53e98/scipy-1.16.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f965bbf3235b01c776115ab18f092a95aa74c271a52577bcb0563e85738fd618", size = 35162637, upload-time = "2025-07-27T16:28:17.535Z" }, + { url = "https://files.pythonhosted.org/packages/b6/49/0648665f9c29fdaca4c679182eb972935b3b4f5ace41d323c32352f29816/scipy-1.16.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f006e323874ffd0b0b816d8c6a8e7f9a73d55ab3b8c3f72b752b226d0e3ac83d", size = 35490507, upload-time = "2025-07-27T16:28:25.705Z" }, + { url = "https://files.pythonhosted.org/packages/62/8f/66cbb9d6bbb18d8c658f774904f42a92078707a7c71e5347e8bf2f52bb89/scipy-1.16.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8fd15fc5085ab4cca74cb91fe0a4263b1f32e4420761ddae531ad60934c2119", size = 37923998, upload-time = "2025-07-27T16:28:34.339Z" }, + { url = "https://files.pythonhosted.org/packages/14/c3/61f273ae550fbf1667675701112e380881905e28448c080b23b5a181df7c/scipy-1.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:f7b8013c6c066609577d910d1a2a077021727af07b6fab0ee22c2f901f22352a", size = 38508060, upload-time = "2025-07-27T16:28:43.242Z" }, + { url = "https://files.pythonhosted.org/packages/93/0b/b5c99382b839854a71ca9482c684e3472badc62620287cbbdab499b75ce6/scipy-1.16.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5451606823a5e73dfa621a89948096c6528e2896e40b39248295d3a0138d594f", size = 36533717, upload-time = "2025-07-27T16:28:51.706Z" }, + { url = "https://files.pythonhosted.org/packages/eb/e5/69ab2771062c91e23e07c12e7d5033a6b9b80b0903ee709c3c36b3eb520c/scipy-1.16.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:89728678c5ca5abd610aee148c199ac1afb16e19844401ca97d43dc548a354eb", size = 28570009, upload-time = "2025-07-27T16:28:57.017Z" }, + { url = "https://files.pythonhosted.org/packages/f4/69/bd75dbfdd3cf524f4d753484d723594aed62cfaac510123e91a6686d520b/scipy-1.16.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e756d688cb03fd07de0fffad475649b03cb89bee696c98ce508b17c11a03f95c", size = 20841942, upload-time = "2025-07-27T16:29:01.152Z" }, + { url = "https://files.pythonhosted.org/packages/ea/74/add181c87663f178ba7d6144b370243a87af8476664d5435e57d599e6874/scipy-1.16.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5aa2687b9935da3ed89c5dbed5234576589dd28d0bf7cd237501ccfbdf1ad608", size = 23498507, upload-time = "2025-07-27T16:29:05.202Z" }, + { url = "https://files.pythonhosted.org/packages/1d/74/ece2e582a0d9550cee33e2e416cc96737dce423a994d12bbe59716f47ff1/scipy-1.16.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0851f6a1e537fe9399f35986897e395a1aa61c574b178c0d456be5b1a0f5ca1f", size = 33286040, upload-time = "2025-07-27T16:29:10.201Z" }, + { url = "https://files.pythonhosted.org/packages/e4/82/08e4076df538fb56caa1d489588d880ec7c52d8273a606bb54d660528f7c/scipy-1.16.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fedc2cbd1baed37474b1924c331b97bdff611d762c196fac1a9b71e67b813b1b", size = 35176096, upload-time = "2025-07-27T16:29:17.091Z" }, + { url = "https://files.pythonhosted.org/packages/fa/79/cd710aab8c921375711a8321c6be696e705a120e3011a643efbbcdeeabcc/scipy-1.16.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2ef500e72f9623a6735769e4b93e9dcb158d40752cdbb077f305487e3e2d1f45", size = 35490328, upload-time = "2025-07-27T16:29:22.928Z" }, + { url = "https://files.pythonhosted.org/packages/71/73/e9cc3d35ee4526d784520d4494a3e1ca969b071fb5ae5910c036a375ceec/scipy-1.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:978d8311674b05a8f7ff2ea6c6bce5d8b45a0cb09d4c5793e0318f448613ea65", size = 37939921, upload-time = "2025-07-27T16:29:29.108Z" }, + { url = "https://files.pythonhosted.org/packages/21/12/c0efd2941f01940119b5305c375ae5c0fcb7ec193f806bd8f158b73a1782/scipy-1.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:81929ed0fa7a5713fcdd8b2e6f73697d3b4c4816d090dd34ff937c20fa90e8ab", size = 38479462, upload-time = "2025-07-27T16:30:24.078Z" }, + { url = "https://files.pythonhosted.org/packages/7a/19/c3d08b675260046a991040e1ea5d65f91f40c7df1045fffff412dcfc6765/scipy-1.16.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:bcc12db731858abda693cecdb3bdc9e6d4bd200213f49d224fe22df82687bdd6", size = 36938832, upload-time = "2025-07-27T16:29:35.057Z" }, + { url = "https://files.pythonhosted.org/packages/81/f2/ce53db652c033a414a5b34598dba6b95f3d38153a2417c5a3883da429029/scipy-1.16.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:744d977daa4becb9fc59135e75c069f8d301a87d64f88f1e602a9ecf51e77b27", size = 29093084, upload-time = "2025-07-27T16:29:40.201Z" }, + { url = "https://files.pythonhosted.org/packages/a9/ae/7a10ff04a7dc15f9057d05b33737ade244e4bd195caa3f7cc04d77b9e214/scipy-1.16.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:dc54f76ac18073bcecffb98d93f03ed6b81a92ef91b5d3b135dcc81d55a724c7", size = 21365098, upload-time = "2025-07-27T16:29:44.295Z" }, + { url = "https://files.pythonhosted.org/packages/36/ac/029ff710959932ad3c2a98721b20b405f05f752f07344622fd61a47c5197/scipy-1.16.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:367d567ee9fc1e9e2047d31f39d9d6a7a04e0710c86e701e053f237d14a9b4f6", size = 23896858, upload-time = "2025-07-27T16:29:48.784Z" }, + { url = "https://files.pythonhosted.org/packages/71/13/d1ef77b6bd7898720e1f0b6b3743cb945f6c3cafa7718eaac8841035ab60/scipy-1.16.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4cf5785e44e19dcd32a0e4807555e1e9a9b8d475c6afff3d21c3c543a6aa84f4", size = 33438311, upload-time = "2025-07-27T16:29:54.164Z" }, + { url = "https://files.pythonhosted.org/packages/2d/e0/e64a6821ffbb00b4c5b05169f1c1fddb4800e9307efe3db3788995a82a2c/scipy-1.16.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3d0b80fb26d3e13a794c71d4b837e2a589d839fd574a6bbb4ee1288c213ad4a3", size = 35279542, upload-time = "2025-07-27T16:30:00.249Z" }, + { url = "https://files.pythonhosted.org/packages/57/59/0dc3c8b43e118f1e4ee2b798dcc96ac21bb20014e5f1f7a8e85cc0653bdb/scipy-1.16.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8503517c44c18d1030d666cb70aaac1cc8913608816e06742498833b128488b7", size = 35667665, upload-time = "2025-07-27T16:30:05.916Z" }, + { url = "https://files.pythonhosted.org/packages/45/5f/844ee26e34e2f3f9f8febb9343748e72daeaec64fe0c70e9bf1ff84ec955/scipy-1.16.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:30cc4bb81c41831ecfd6dc450baf48ffd80ef5aed0f5cf3ea775740e80f16ecc", size = 38045210, upload-time = "2025-07-27T16:30:11.655Z" }, + { url = "https://files.pythonhosted.org/packages/8d/d7/210f2b45290f444f1de64bc7353aa598ece9f0e90c384b4a156f9b1a5063/scipy-1.16.1-cp313-cp313t-win_amd64.whl", hash = "sha256:c24fa02f7ed23ae514460a22c57eca8f530dbfa50b1cfdbf4f37c05b5309cc39", size = 38593661, upload-time = "2025-07-27T16:30:17.825Z" }, + { url = "https://files.pythonhosted.org/packages/81/ea/84d481a5237ed223bd3d32d6e82d7a6a96e34756492666c260cef16011d1/scipy-1.16.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:796a5a9ad36fa3a782375db8f4241ab02a091308eb079746bc0f874c9b998318", size = 36525921, upload-time = "2025-07-27T16:30:30.081Z" }, + { url = "https://files.pythonhosted.org/packages/4e/9f/d9edbdeff9f3a664807ae3aea383e10afaa247e8e6255e6d2aa4515e8863/scipy-1.16.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:3ea0733a2ff73fd6fdc5fecca54ee9b459f4d74f00b99aced7d9a3adb43fb1cc", size = 28564152, upload-time = "2025-07-27T16:30:35.336Z" }, + { url = "https://files.pythonhosted.org/packages/3b/95/8125bcb1fe04bc267d103e76516243e8d5e11229e6b306bda1024a5423d1/scipy-1.16.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:85764fb15a2ad994e708258bb4ed8290d1305c62a4e1ef07c414356a24fcfbf8", size = 20836028, upload-time = "2025-07-27T16:30:39.421Z" }, + { url = "https://files.pythonhosted.org/packages/77/9c/bf92e215701fc70bbcd3d14d86337cf56a9b912a804b9c776a269524a9e9/scipy-1.16.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:ca66d980469cb623b1759bdd6e9fd97d4e33a9fad5b33771ced24d0cb24df67e", size = 23489666, upload-time = "2025-07-27T16:30:43.663Z" }, + { url = "https://files.pythonhosted.org/packages/5e/00/5e941d397d9adac41b02839011594620d54d99488d1be5be755c00cde9ee/scipy-1.16.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e7cc1ffcc230f568549fc56670bcf3df1884c30bd652c5da8138199c8c76dae0", size = 33358318, upload-time = "2025-07-27T16:30:48.982Z" }, + { url = "https://files.pythonhosted.org/packages/0e/87/8db3aa10dde6e3e8e7eb0133f24baa011377d543f5b19c71469cf2648026/scipy-1.16.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3ddfb1e8d0b540cb4ee9c53fc3dea3186f97711248fb94b4142a1b27178d8b4b", size = 35185724, upload-time = "2025-07-27T16:30:54.26Z" }, + { url = "https://files.pythonhosted.org/packages/89/b4/6ab9ae443216807622bcff02690262d8184078ea467efee2f8c93288a3b1/scipy-1.16.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4dc0e7be79e95d8ba3435d193e0d8ce372f47f774cffd882f88ea4e1e1ddc731", size = 35554335, upload-time = "2025-07-27T16:30:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/9c/9a/d0e9dc03c5269a1afb60661118296a32ed5d2c24298af61b676c11e05e56/scipy-1.16.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f23634f9e5adb51b2a77766dac217063e764337fbc816aa8ad9aaebcd4397fd3", size = 37960310, upload-time = "2025-07-27T16:31:06.151Z" }, + { url = "https://files.pythonhosted.org/packages/5e/00/c8f3130a50521a7977874817ca89e0599b1b4ee8e938bad8ae798a0e1f0d/scipy-1.16.1-cp314-cp314-win_amd64.whl", hash = "sha256:57d75524cb1c5a374958a2eae3d84e1929bb971204cc9d52213fb8589183fc19", size = 39319239, upload-time = "2025-07-27T16:31:59.942Z" }, + { url = "https://files.pythonhosted.org/packages/f2/f2/1ca3eda54c3a7e4c92f6acef7db7b3a057deb135540d23aa6343ef8ad333/scipy-1.16.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:d8da7c3dd67bcd93f15618938f43ed0995982eb38973023d46d4646c4283ad65", size = 36939460, upload-time = "2025-07-27T16:31:11.865Z" }, + { url = "https://files.pythonhosted.org/packages/80/30/98c2840b293a132400c0940bb9e140171dcb8189588619048f42b2ce7b4f/scipy-1.16.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:cc1d2f2fd48ba1e0620554fe5bc44d3e8f5d4185c8c109c7fbdf5af2792cfad2", size = 29093322, upload-time = "2025-07-27T16:31:17.045Z" }, + { url = "https://files.pythonhosted.org/packages/c1/e6/1e6e006e850622cf2a039b62d1a6ddc4497d4851e58b68008526f04a9a00/scipy-1.16.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:21a611ced9275cb861bacadbada0b8c0623bc00b05b09eb97f23b370fc2ae56d", size = 21365329, upload-time = "2025-07-27T16:31:21.188Z" }, + { url = "https://files.pythonhosted.org/packages/8e/02/72a5aa5b820589dda9a25e329ca752842bfbbaf635e36bc7065a9b42216e/scipy-1.16.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:8dfbb25dffc4c3dd9371d8ab456ca81beeaf6f9e1c2119f179392f0dc1ab7695", size = 23897544, upload-time = "2025-07-27T16:31:25.408Z" }, + { url = "https://files.pythonhosted.org/packages/2b/dc/7122d806a6f9eb8a33532982234bed91f90272e990f414f2830cfe656e0b/scipy-1.16.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f0ebb7204f063fad87fc0a0e4ff4a2ff40b2a226e4ba1b7e34bf4b79bf97cd86", size = 33442112, upload-time = "2025-07-27T16:31:30.62Z" }, + { url = "https://files.pythonhosted.org/packages/24/39/e383af23564daa1021a5b3afbe0d8d6a68ec639b943661841f44ac92de85/scipy-1.16.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f1b9e5962656f2734c2b285a8745358ecb4e4efbadd00208c80a389227ec61ff", size = 35286594, upload-time = "2025-07-27T16:31:36.112Z" }, + { url = "https://files.pythonhosted.org/packages/95/47/1a0b0aff40c3056d955f38b0df5d178350c3d74734ec54f9c68d23910be5/scipy-1.16.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e1a106f8c023d57a2a903e771228bf5c5b27b5d692088f457acacd3b54511e4", size = 35665080, upload-time = "2025-07-27T16:31:42.025Z" }, + { url = "https://files.pythonhosted.org/packages/64/df/ce88803e9ed6e27fe9b9abefa157cf2c80e4fa527cf17ee14be41f790ad4/scipy-1.16.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:709559a1db68a9abc3b2c8672c4badf1614f3b440b3ab326d86a5c0491eafae3", size = 38050306, upload-time = "2025-07-27T16:31:48.109Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6c/a76329897a7cae4937d403e623aa6aaea616a0bb5b36588f0b9d1c9a3739/scipy-1.16.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c0c804d60492a0aad7f5b2bb1862f4548b990049e27e828391ff2bf6f7199998", size = 39427705, upload-time = "2025-07-27T16:31:53.96Z" }, +] + +[[package]] +name = "semver" +version = "3.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/d1/d3159231aec234a59dd7d601e9dd9fe96f3afff15efd33c1070019b26132/semver-3.0.4.tar.gz", hash = "sha256:afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602", size = 269730, upload-time = "2025-01-24T13:19:27.617Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/24/4d91e05817e92e3a61c8a21e08fd0f390f5301f1c448b137c57c4bc6e543/semver-3.0.4-py3-none-any.whl", hash = "sha256:9c824d87ba7f7ab4a1890799cec8596f15c1241cb473404ea1cb0c55e4b04746", size = 17912, upload-time = "2025-01-24T13:19:24.949Z" }, +] + +[[package]] +name = "sentry-sdk" +version = "2.35.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/31/83/055dc157b719651ef13db569bb8cf2103df11174478649735c1b2bf3f6bc/sentry_sdk-2.35.0.tar.gz", hash = "sha256:5ea58d352779ce45d17bc2fa71ec7185205295b83a9dbb5707273deb64720092", size = 343014, upload-time = "2025-08-14T17:11:20.223Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/3d/742617a7c644deb0c1628dcf6bb2d2165ab7c6aab56fe5222758994007f8/sentry_sdk-2.35.0-py2.py3-none-any.whl", hash = "sha256:6e0c29b9a5d34de8575ffb04d289a987ff3053cf2c98ede445bea995e3830263", size = 363806, upload-time = "2025-08-14T17:11:18.29Z" }, +] + +[[package]] +name = "setuptools" +version = "80.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/f4/4a80cd6ef364b2e8b65b15816a843c0980f7a5a2b4dc701fc574952aa19f/soupsieve-2.7.tar.gz", hash = "sha256:ad282f9b6926286d2ead4750552c8a6142bc4c783fd66b0293547c8fe6ae126a", size = 103418, upload-time = "2025-04-20T18:50:08.518Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4", size = 36677, upload-time = "2025-04-20T18:50:07.196Z" }, +] + +[[package]] +name = "ssvc" +source = { editable = "." } +dependencies = [ + { name = "fastapi", extra = ["all", "standard"] }, + { name = "jsonschema" }, + { name = "markdown-exec", extra = ["ansi"] }, + { name = "mkdocs" }, + { name = "mkdocs-bibtex" }, + { name = "mkdocs-include-markdown-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-table-reader-plugin" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "networkx" }, + { name = "pandas" }, + { name = "pydantic" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "semver" }, + { name = "thefuzz" }, +] + +[package.dev-dependencies] +dev = [ + { name = "linkchecker" }, + { name = "pytest" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastapi", extras = ["all", "standard"], specifier = ">=0.116.1" }, + { name = "jsonschema", specifier = "==4.25.1" }, + { name = "markdown-exec", extras = ["ansi"], specifier = "==1.11.0" }, + { name = "mkdocs", specifier = "==1.6.1" }, + { name = "mkdocs-bibtex", specifier = "==4.4.0" }, + { name = "mkdocs-include-markdown-plugin", specifier = "==7.1.6" }, + { name = "mkdocs-material", specifier = "==9.6.18" }, + { name = "mkdocs-material-extensions", specifier = "==1.3.1" }, + { name = "mkdocs-print-site-plugin", specifier = "==2.8" }, + { name = "mkdocs-table-reader-plugin", specifier = "==3.1.0" }, + { name = "mkdocstrings", specifier = "==0.30.0" }, + { name = "mkdocstrings-python", specifier = "==1.17.0" }, + { name = "networkx", specifier = "==3.4.2" }, + { name = "pandas", specifier = "==2.3.2" }, + { name = "pydantic", specifier = "==2.11.7" }, + { name = "scikit-learn", specifier = "==1.6.1" }, + { name = "scipy", specifier = "==1.16.1" }, + { name = "semver", specifier = "==3.0.4" }, + { name = "thefuzz", specifier = "==0.22.1" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "linkchecker", specifier = ">=10.6.0" }, + { name = "pytest", specifier = ">=8.4.1" }, +] + +[[package]] +name = "starlette" +version = "0.47.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/57/d062573f391d062710d4088fa1369428c38d51460ab6fedff920efef932e/starlette-0.47.2.tar.gz", hash = "sha256:6ae9aa5db235e4846decc1e7b79c4f346adf41e9777aebeb49dfd09bbd7023d8", size = 2583948, upload-time = "2025-07-20T17:31:58.522Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/1f/b876b1f83aef204198a42dc101613fefccb32258e5428b5f9259677864b4/starlette-0.47.2-py3-none-any.whl", hash = "sha256:c5847e96134e5c5371ee9fac6fdf1a67336d5815e09eb2a01fdb57a351ef915b", size = 72984, upload-time = "2025-07-20T17:31:56.738Z" }, +] + +[[package]] +name = "tabulate" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", size = 81090, upload-time = "2022-10-06T17:21:48.54Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", size = 35252, upload-time = "2022-10-06T17:21:44.262Z" }, +] + +[[package]] +name = "thefuzz" +version = "0.22.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "rapidfuzz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/4b/d3eb25831590d6d7d38c2f2e3561d3ba41d490dc89cd91d9e65e7c812508/thefuzz-0.22.1.tar.gz", hash = "sha256:7138039a7ecf540da323792d8592ef9902b1d79eb78c147d4f20664de79f3680", size = 19993, upload-time = "2024-01-19T19:18:23.135Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/4f/1695e70ceb3604f19eda9908e289c687ea81c4fecef4d90a9d1d0f2f7ae9/thefuzz-0.22.1-py3-none-any.whl", hash = "sha256:59729b33556850b90e1093c4cf9e618af6f2e4c985df193fdf3c5b5cf02ca481", size = 8245, upload-time = "2024-01-19T19:18:20.362Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, +] + +[[package]] +name = "typer" +version = "0.16.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/78/d90f616bf5f88f8710ad067c1f8705bf7618059836ca084e5bb2a0855d75/typer-0.16.1.tar.gz", hash = "sha256:d358c65a464a7a90f338e3bb7ff0c74ac081449e53884b12ba658cbd72990614", size = 102836, upload-time = "2025-08-18T19:18:22.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/76/06dbe78f39b2203d2a47d5facc5df5102d0561e2807396471b5f7c5a30a1/typer-0.16.1-py3-none-any.whl", hash = "sha256:90ee01cb02d9b8395ae21ee3368421faf21fa138cb2a541ed369c08cec5237c9", size = 46397, upload-time = "2025-08-18T19:18:21.663Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.14.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36", size = 107673, upload-time = "2025-07-04T13:28:34.16Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76", size = 43906, upload-time = "2025-07-04T13:28:32.743Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", size = 75726, upload-time = "2025-05-21T18:55:23.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552, upload-time = "2025-05-21T18:55:22.152Z" }, +] + +[[package]] +name = "tzdata" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload-time = "2025-03-23T13:54:43.652Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" }, +] + +[[package]] +name = "ujson" +version = "5.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/00/3110fd566786bfa542adb7932d62035e0c0ef662a8ff6544b6643b3d6fd7/ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1", size = 7154885, upload-time = "2024-05-14T02:02:34.233Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/a6/fd3f8bbd80842267e2d06c3583279555e8354c5986c952385199d57a5b6c/ujson-5.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98ba15d8cbc481ce55695beee9f063189dce91a4b08bc1d03e7f0152cd4bbdd5", size = 55642, upload-time = "2024-05-14T02:01:04.055Z" }, + { url = "https://files.pythonhosted.org/packages/a8/47/dd03fd2b5ae727e16d5d18919b383959c6d269c7b948a380fdd879518640/ujson-5.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9d2edbf1556e4f56e50fab7d8ff993dbad7f54bac68eacdd27a8f55f433578e", size = 51807, upload-time = "2024-05-14T02:01:05.25Z" }, + { url = "https://files.pythonhosted.org/packages/25/23/079a4cc6fd7e2655a473ed9e776ddbb7144e27f04e8fc484a0fb45fe6f71/ujson-5.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6627029ae4f52d0e1a2451768c2c37c0c814ffc04f796eb36244cf16b8e57043", size = 51972, upload-time = "2024-05-14T02:01:06.458Z" }, + { url = "https://files.pythonhosted.org/packages/04/81/668707e5f2177791869b624be4c06fb2473bf97ee33296b18d1cf3092af7/ujson-5.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ccb77b3e40b151e20519c6ae6d89bfe3f4c14e8e210d910287f778368bb3d1", size = 53686, upload-time = "2024-05-14T02:01:07.618Z" }, + { url = "https://files.pythonhosted.org/packages/bd/50/056d518a386d80aaf4505ccf3cee1c40d312a46901ed494d5711dd939bc3/ujson-5.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3caf9cd64abfeb11a3b661329085c5e167abbe15256b3b68cb5d914ba7396f3", size = 58591, upload-time = "2024-05-14T02:01:08.901Z" }, + { url = "https://files.pythonhosted.org/packages/fc/d6/aeaf3e2d6fb1f4cfb6bf25f454d60490ed8146ddc0600fae44bfe7eb5a72/ujson-5.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6e32abdce572e3a8c3d02c886c704a38a1b015a1fb858004e03d20ca7cecbb21", size = 997853, upload-time = "2024-05-14T02:01:10.772Z" }, + { url = "https://files.pythonhosted.org/packages/f8/d5/1f2a5d2699f447f7d990334ca96e90065ea7f99b142ce96e85f26d7e78e2/ujson-5.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a65b6af4d903103ee7b6f4f5b85f1bfd0c90ba4eeac6421aae436c9988aa64a2", size = 1140689, upload-time = "2024-05-14T02:01:12.214Z" }, + { url = "https://files.pythonhosted.org/packages/f2/2c/6990f4ccb41ed93744aaaa3786394bca0875503f97690622f3cafc0adfde/ujson-5.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:604a046d966457b6cdcacc5aa2ec5314f0e8c42bae52842c1e6fa02ea4bda42e", size = 1043576, upload-time = "2024-05-14T02:01:14.39Z" }, + { url = "https://files.pythonhosted.org/packages/14/f5/a2368463dbb09fbdbf6a696062d0c0f62e4ae6fa65f38f829611da2e8fdd/ujson-5.10.0-cp312-cp312-win32.whl", hash = "sha256:6dea1c8b4fc921bf78a8ff00bbd2bfe166345f5536c510671bccececb187c80e", size = 38764, upload-time = "2024-05-14T02:01:15.83Z" }, + { url = "https://files.pythonhosted.org/packages/59/2d/691f741ffd72b6c84438a93749ac57bf1a3f217ac4b0ea4fd0e96119e118/ujson-5.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:38665e7d8290188b1e0d57d584eb8110951a9591363316dd41cf8686ab1d0abc", size = 42211, upload-time = "2024-05-14T02:01:17.567Z" }, + { url = "https://files.pythonhosted.org/packages/0d/69/b3e3f924bb0e8820bb46671979770c5be6a7d51c77a66324cdb09f1acddb/ujson-5.10.0-cp313-cp313-macosx_10_9_x86_64.whl", hash = "sha256:618efd84dc1acbd6bff8eaa736bb6c074bfa8b8a98f55b61c38d4ca2c1f7f287", size = 55646, upload-time = "2024-05-14T02:01:19.26Z" }, + { url = "https://files.pythonhosted.org/packages/32/8a/9b748eb543c6cabc54ebeaa1f28035b1bd09c0800235b08e85990734c41e/ujson-5.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38d5d36b4aedfe81dfe251f76c0467399d575d1395a1755de391e58985ab1c2e", size = 51806, upload-time = "2024-05-14T02:01:20.593Z" }, + { url = "https://files.pythonhosted.org/packages/39/50/4b53ea234413b710a18b305f465b328e306ba9592e13a791a6a6b378869b/ujson-5.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67079b1f9fb29ed9a2914acf4ef6c02844b3153913eb735d4bf287ee1db6e557", size = 51975, upload-time = "2024-05-14T02:01:21.904Z" }, + { url = "https://files.pythonhosted.org/packages/b4/9d/8061934f960cdb6dd55f0b3ceeff207fcc48c64f58b43403777ad5623d9e/ujson-5.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7d0e0ceeb8fe2468c70ec0c37b439dd554e2aa539a8a56365fd761edb418988", size = 53693, upload-time = "2024-05-14T02:01:23.742Z" }, + { url = "https://files.pythonhosted.org/packages/f5/be/7bfa84b28519ddbb67efc8410765ca7da55e6b93aba84d97764cd5794dbc/ujson-5.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59e02cd37bc7c44d587a0ba45347cc815fb7a5fe48de16bf05caa5f7d0d2e816", size = 58594, upload-time = "2024-05-14T02:01:25.554Z" }, + { url = "https://files.pythonhosted.org/packages/48/eb/85d465abafb2c69d9699cfa5520e6e96561db787d36c677370e066c7e2e7/ujson-5.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a890b706b64e0065f02577bf6d8ca3b66c11a5e81fb75d757233a38c07a1f20", size = 997853, upload-time = "2024-05-14T02:01:27.151Z" }, + { url = "https://files.pythonhosted.org/packages/9f/76/2a63409fc05d34dd7d929357b7a45e3a2c96f22b4225cd74becd2ba6c4cb/ujson-5.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:621e34b4632c740ecb491efc7f1fcb4f74b48ddb55e65221995e74e2d00bbff0", size = 1140694, upload-time = "2024-05-14T02:01:29.113Z" }, + { url = "https://files.pythonhosted.org/packages/45/ed/582c4daba0f3e1688d923b5cb914ada1f9defa702df38a1916c899f7c4d1/ujson-5.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f", size = 1043580, upload-time = "2024-05-14T02:01:31.447Z" }, + { url = "https://files.pythonhosted.org/packages/d7/0c/9837fece153051e19c7bade9f88f9b409e026b9525927824cdf16293b43b/ujson-5.10.0-cp313-cp313-win32.whl", hash = "sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165", size = 38766, upload-time = "2024-05-14T02:01:32.856Z" }, + { url = "https://files.pythonhosted.org/packages/d7/72/6cb6728e2738c05bbe9bd522d6fc79f86b9a28402f38663e85a28fddd4a0/ujson-5.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539", size = 42212, upload-time = "2024-05-14T02:01:33.97Z" }, +] + +[[package]] +name = "urllib3" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.35.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01", size = 78473, upload-time = "2025-06-28T16:15:46.058Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/e2/dc81b1bd1dcfe91735810265e9d26bc8ec5da45b4c0f6237e286819194c3/uvicorn-0.35.0-py3-none-any.whl", hash = "sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a", size = 66406, upload-time = "2025-06-28T16:15:44.816Z" }, +] + +[package.optional-dependencies] +standard = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "httptools" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "uvloop", marker = "platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'" }, + { name = "watchfiles" }, + { name = "websockets" }, +] + +[[package]] +name = "uvloop" +version = "0.21.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/c0/854216d09d33c543f12a44b393c402e89a920b1a0a7dc634c42de91b9cf6/uvloop-0.21.0.tar.gz", hash = "sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3", size = 2492741, upload-time = "2024-10-14T23:38:35.489Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/4c/03f93178830dc7ce8b4cdee1d36770d2f5ebb6f3d37d354e061eefc73545/uvloop-0.21.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:359ec2c888397b9e592a889c4d72ba3d6befba8b2bb01743f72fffbde663b59c", size = 1471284, upload-time = "2024-10-14T23:37:47.833Z" }, + { url = "https://files.pythonhosted.org/packages/43/3e/92c03f4d05e50f09251bd8b2b2b584a2a7f8fe600008bcc4523337abe676/uvloop-0.21.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7089d2dc73179ce5ac255bdf37c236a9f914b264825fdaacaded6990a7fb4c2", size = 821349, upload-time = "2024-10-14T23:37:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/a6/ef/a02ec5da49909dbbfb1fd205a9a1ac4e88ea92dcae885e7c961847cd51e2/uvloop-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:baa4dcdbd9ae0a372f2167a207cd98c9f9a1ea1188a8a526431eef2f8116cc8d", size = 4580089, upload-time = "2024-10-14T23:37:51.703Z" }, + { url = "https://files.pythonhosted.org/packages/06/a7/b4e6a19925c900be9f98bec0a75e6e8f79bb53bdeb891916609ab3958967/uvloop-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86975dca1c773a2c9864f4c52c5a55631038e387b47eaf56210f873887b6c8dc", size = 4693770, upload-time = "2024-10-14T23:37:54.122Z" }, + { url = "https://files.pythonhosted.org/packages/ce/0c/f07435a18a4b94ce6bd0677d8319cd3de61f3a9eeb1e5f8ab4e8b5edfcb3/uvloop-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:461d9ae6660fbbafedd07559c6a2e57cd553b34b0065b6550685f6653a98c1cb", size = 4451321, upload-time = "2024-10-14T23:37:55.766Z" }, + { url = "https://files.pythonhosted.org/packages/8f/eb/f7032be105877bcf924709c97b1bf3b90255b4ec251f9340cef912559f28/uvloop-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:183aef7c8730e54c9a3ee3227464daed66e37ba13040bb3f350bc2ddc040f22f", size = 4659022, upload-time = "2024-10-14T23:37:58.195Z" }, + { url = "https://files.pythonhosted.org/packages/3f/8d/2cbef610ca21539f0f36e2b34da49302029e7c9f09acef0b1c3b5839412b/uvloop-0.21.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281", size = 1468123, upload-time = "2024-10-14T23:38:00.688Z" }, + { url = "https://files.pythonhosted.org/packages/93/0d/b0038d5a469f94ed8f2b2fce2434a18396d8fbfb5da85a0a9781ebbdec14/uvloop-0.21.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af", size = 819325, upload-time = "2024-10-14T23:38:02.309Z" }, + { url = "https://files.pythonhosted.org/packages/50/94/0a687f39e78c4c1e02e3272c6b2ccdb4e0085fda3b8352fecd0410ccf915/uvloop-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6", size = 4582806, upload-time = "2024-10-14T23:38:04.711Z" }, + { url = "https://files.pythonhosted.org/packages/d2/19/f5b78616566ea68edd42aacaf645adbf71fbd83fc52281fba555dc27e3f1/uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816", size = 4701068, upload-time = "2024-10-14T23:38:06.385Z" }, + { url = "https://files.pythonhosted.org/packages/47/57/66f061ee118f413cd22a656de622925097170b9380b30091b78ea0c6ea75/uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc", size = 4454428, upload-time = "2024-10-14T23:38:08.416Z" }, + { url = "https://files.pythonhosted.org/packages/63/9a/0962b05b308494e3202d3f794a6e85abe471fe3cafdbcf95c2e8c713aabd/uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553", size = 4660018, upload-time = "2024-10-14T23:38:10.888Z" }, +] + +[[package]] +name = "validators" +version = "0.35.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/66/a435d9ae49850b2f071f7ebd8119dd4e84872b01630d6736761e6e7fd847/validators-0.35.0.tar.gz", hash = "sha256:992d6c48a4e77c81f1b4daba10d16c3a9bb0dbb79b3a19ea847ff0928e70497a", size = 73399, upload-time = "2025-05-01T05:42:06.7Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/6e/3e955517e22cbdd565f2f8b2e73d52528b14b8bcfdb04f62466b071de847/validators-0.35.0-py3-none-any.whl", hash = "sha256:e8c947097eae7892cb3d26868d637f79f47b4a0554bc6b80065dfe5aac3705dd", size = 44712, upload-time = "2025-05-01T05:42:04.203Z" }, +] + +[[package]] +name = "watchdog" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471, upload-time = "2024-11-01T14:06:37.745Z" }, + { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449, upload-time = "2024-11-01T14:06:39.748Z" }, + { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054, upload-time = "2024-11-01T14:06:41.009Z" }, + { url = "https://files.pythonhosted.org/packages/68/98/b0345cabdce2041a01293ba483333582891a3bd5769b08eceb0d406056ef/watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c", size = 96480, upload-time = "2024-11-01T14:06:42.952Z" }, + { url = "https://files.pythonhosted.org/packages/85/83/cdf13902c626b28eedef7ec4f10745c52aad8a8fe7eb04ed7b1f111ca20e/watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134", size = 88451, upload-time = "2024-11-01T14:06:45.084Z" }, + { url = "https://files.pythonhosted.org/packages/fe/c4/225c87bae08c8b9ec99030cd48ae9c4eca050a59bf5c2255853e18c87b50/watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b", size = 89057, upload-time = "2024-11-01T14:06:47.324Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, +] + +[[package]] +name = "watchfiles" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/9a/d451fcc97d029f5812e898fd30a53fd8c15c7bbd058fd75cfc6beb9bd761/watchfiles-1.1.0.tar.gz", hash = "sha256:693ed7ec72cbfcee399e92c895362b6e66d63dac6b91e2c11ae03d10d503e575", size = 94406, upload-time = "2025-06-15T19:06:59.42Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/b8/858957045a38a4079203a33aaa7d23ea9269ca7761c8a074af3524fbb240/watchfiles-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9dc001c3e10de4725c749d4c2f2bdc6ae24de5a88a339c4bce32300a31ede179", size = 402339, upload-time = "2025-06-15T19:05:24.516Z" }, + { url = "https://files.pythonhosted.org/packages/80/28/98b222cca751ba68e88521fabd79a4fab64005fc5976ea49b53fa205d1fa/watchfiles-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d9ba68ec283153dead62cbe81872d28e053745f12335d037de9cbd14bd1877f5", size = 394409, upload-time = "2025-06-15T19:05:25.469Z" }, + { url = "https://files.pythonhosted.org/packages/86/50/dee79968566c03190677c26f7f47960aff738d32087087bdf63a5473e7df/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130fc497b8ee68dce163e4254d9b0356411d1490e868bd8790028bc46c5cc297", size = 450939, upload-time = "2025-06-15T19:05:26.494Z" }, + { url = "https://files.pythonhosted.org/packages/40/45/a7b56fb129700f3cfe2594a01aa38d033b92a33dddce86c8dfdfc1247b72/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:50a51a90610d0845a5931a780d8e51d7bd7f309ebc25132ba975aca016b576a0", size = 457270, upload-time = "2025-06-15T19:05:27.466Z" }, + { url = "https://files.pythonhosted.org/packages/b5/c8/fa5ef9476b1d02dc6b5e258f515fcaaecf559037edf8b6feffcbc097c4b8/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc44678a72ac0910bac46fa6a0de6af9ba1355669b3dfaf1ce5f05ca7a74364e", size = 483370, upload-time = "2025-06-15T19:05:28.548Z" }, + { url = "https://files.pythonhosted.org/packages/98/68/42cfcdd6533ec94f0a7aab83f759ec11280f70b11bfba0b0f885e298f9bd/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a543492513a93b001975ae283a51f4b67973662a375a403ae82f420d2c7205ee", size = 598654, upload-time = "2025-06-15T19:05:29.997Z" }, + { url = "https://files.pythonhosted.org/packages/d3/74/b2a1544224118cc28df7e59008a929e711f9c68ce7d554e171b2dc531352/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ac164e20d17cc285f2b94dc31c384bc3aa3dd5e7490473b3db043dd70fbccfd", size = 478667, upload-time = "2025-06-15T19:05:31.172Z" }, + { url = "https://files.pythonhosted.org/packages/8c/77/e3362fe308358dc9f8588102481e599c83e1b91c2ae843780a7ded939a35/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7590d5a455321e53857892ab8879dce62d1f4b04748769f5adf2e707afb9d4f", size = 452213, upload-time = "2025-06-15T19:05:32.299Z" }, + { url = "https://files.pythonhosted.org/packages/6e/17/c8f1a36540c9a1558d4faf08e909399e8133599fa359bf52ec8fcee5be6f/watchfiles-1.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:37d3d3f7defb13f62ece99e9be912afe9dd8a0077b7c45ee5a57c74811d581a4", size = 626718, upload-time = "2025-06-15T19:05:33.415Z" }, + { url = "https://files.pythonhosted.org/packages/26/45/fb599be38b4bd38032643783d7496a26a6f9ae05dea1a42e58229a20ac13/watchfiles-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:7080c4bb3efd70a07b1cc2df99a7aa51d98685be56be6038c3169199d0a1c69f", size = 623098, upload-time = "2025-06-15T19:05:34.534Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e7/fdf40e038475498e160cd167333c946e45d8563ae4dd65caf757e9ffe6b4/watchfiles-1.1.0-cp312-cp312-win32.whl", hash = "sha256:cbcf8630ef4afb05dc30107bfa17f16c0896bb30ee48fc24bf64c1f970f3b1fd", size = 279209, upload-time = "2025-06-15T19:05:35.577Z" }, + { url = "https://files.pythonhosted.org/packages/3f/d3/3ae9d5124ec75143bdf088d436cba39812122edc47709cd2caafeac3266f/watchfiles-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:cbd949bdd87567b0ad183d7676feb98136cde5bb9025403794a4c0db28ed3a47", size = 292786, upload-time = "2025-06-15T19:05:36.559Z" }, + { url = "https://files.pythonhosted.org/packages/26/2f/7dd4fc8b5f2b34b545e19629b4a018bfb1de23b3a496766a2c1165ca890d/watchfiles-1.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:0a7d40b77f07be87c6faa93d0951a0fcd8cbca1ddff60a1b65d741bac6f3a9f6", size = 284343, upload-time = "2025-06-15T19:05:37.5Z" }, + { url = "https://files.pythonhosted.org/packages/d3/42/fae874df96595556a9089ade83be34a2e04f0f11eb53a8dbf8a8a5e562b4/watchfiles-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5007f860c7f1f8df471e4e04aaa8c43673429047d63205d1630880f7637bca30", size = 402004, upload-time = "2025-06-15T19:05:38.499Z" }, + { url = "https://files.pythonhosted.org/packages/fa/55/a77e533e59c3003d9803c09c44c3651224067cbe7fb5d574ddbaa31e11ca/watchfiles-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:20ecc8abbd957046f1fe9562757903f5eaf57c3bce70929fda6c7711bb58074a", size = 393671, upload-time = "2025-06-15T19:05:39.52Z" }, + { url = "https://files.pythonhosted.org/packages/05/68/b0afb3f79c8e832e6571022611adbdc36e35a44e14f129ba09709aa4bb7a/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2f0498b7d2a3c072766dba3274fe22a183dbea1f99d188f1c6c72209a1063dc", size = 449772, upload-time = "2025-06-15T19:05:40.897Z" }, + { url = "https://files.pythonhosted.org/packages/ff/05/46dd1f6879bc40e1e74c6c39a1b9ab9e790bf1f5a2fe6c08b463d9a807f4/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:239736577e848678e13b201bba14e89718f5c2133dfd6b1f7846fa1b58a8532b", size = 456789, upload-time = "2025-06-15T19:05:42.045Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ca/0eeb2c06227ca7f12e50a47a3679df0cd1ba487ea19cf844a905920f8e95/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eff4b8d89f444f7e49136dc695599a591ff769300734446c0a86cba2eb2f9895", size = 482551, upload-time = "2025-06-15T19:05:43.781Z" }, + { url = "https://files.pythonhosted.org/packages/31/47/2cecbd8694095647406645f822781008cc524320466ea393f55fe70eed3b/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12b0a02a91762c08f7264e2e79542f76870c3040bbc847fb67410ab81474932a", size = 597420, upload-time = "2025-06-15T19:05:45.244Z" }, + { url = "https://files.pythonhosted.org/packages/d9/7e/82abc4240e0806846548559d70f0b1a6dfdca75c1b4f9fa62b504ae9b083/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:29e7bc2eee15cbb339c68445959108803dc14ee0c7b4eea556400131a8de462b", size = 477950, upload-time = "2025-06-15T19:05:46.332Z" }, + { url = "https://files.pythonhosted.org/packages/25/0d/4d564798a49bf5482a4fa9416dea6b6c0733a3b5700cb8a5a503c4b15853/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9481174d3ed982e269c090f780122fb59cee6c3796f74efe74e70f7780ed94c", size = 451706, upload-time = "2025-06-15T19:05:47.459Z" }, + { url = "https://files.pythonhosted.org/packages/81/b5/5516cf46b033192d544102ea07c65b6f770f10ed1d0a6d388f5d3874f6e4/watchfiles-1.1.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:80f811146831c8c86ab17b640801c25dc0a88c630e855e2bef3568f30434d52b", size = 625814, upload-time = "2025-06-15T19:05:48.654Z" }, + { url = "https://files.pythonhosted.org/packages/0c/dd/7c1331f902f30669ac3e754680b6edb9a0dd06dea5438e61128111fadd2c/watchfiles-1.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:60022527e71d1d1fda67a33150ee42869042bce3d0fcc9cc49be009a9cded3fb", size = 622820, upload-time = "2025-06-15T19:05:50.088Z" }, + { url = "https://files.pythonhosted.org/packages/1b/14/36d7a8e27cd128d7b1009e7715a7c02f6c131be9d4ce1e5c3b73d0e342d8/watchfiles-1.1.0-cp313-cp313-win32.whl", hash = "sha256:32d6d4e583593cb8576e129879ea0991660b935177c0f93c6681359b3654bfa9", size = 279194, upload-time = "2025-06-15T19:05:51.186Z" }, + { url = "https://files.pythonhosted.org/packages/25/41/2dd88054b849aa546dbeef5696019c58f8e0774f4d1c42123273304cdb2e/watchfiles-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:f21af781a4a6fbad54f03c598ab620e3a77032c5878f3d780448421a6e1818c7", size = 292349, upload-time = "2025-06-15T19:05:52.201Z" }, + { url = "https://files.pythonhosted.org/packages/c8/cf/421d659de88285eb13941cf11a81f875c176f76a6d99342599be88e08d03/watchfiles-1.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:5366164391873ed76bfdf618818c82084c9db7fac82b64a20c44d335eec9ced5", size = 283836, upload-time = "2025-06-15T19:05:53.265Z" }, + { url = "https://files.pythonhosted.org/packages/45/10/6faf6858d527e3599cc50ec9fcae73590fbddc1420bd4fdccfebffeedbc6/watchfiles-1.1.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:17ab167cca6339c2b830b744eaf10803d2a5b6683be4d79d8475d88b4a8a4be1", size = 400343, upload-time = "2025-06-15T19:05:54.252Z" }, + { url = "https://files.pythonhosted.org/packages/03/20/5cb7d3966f5e8c718006d0e97dfe379a82f16fecd3caa7810f634412047a/watchfiles-1.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:328dbc9bff7205c215a7807da7c18dce37da7da718e798356212d22696404339", size = 392916, upload-time = "2025-06-15T19:05:55.264Z" }, + { url = "https://files.pythonhosted.org/packages/8c/07/d8f1176328fa9e9581b6f120b017e286d2a2d22ae3f554efd9515c8e1b49/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7208ab6e009c627b7557ce55c465c98967e8caa8b11833531fdf95799372633", size = 449582, upload-time = "2025-06-15T19:05:56.317Z" }, + { url = "https://files.pythonhosted.org/packages/66/e8/80a14a453cf6038e81d072a86c05276692a1826471fef91df7537dba8b46/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a8f6f72974a19efead54195bc9bed4d850fc047bb7aa971268fd9a8387c89011", size = 456752, upload-time = "2025-06-15T19:05:57.359Z" }, + { url = "https://files.pythonhosted.org/packages/5a/25/0853b3fe0e3c2f5af9ea60eb2e781eade939760239a72c2d38fc4cc335f6/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d181ef50923c29cf0450c3cd47e2f0557b62218c50b2ab8ce2ecaa02bd97e670", size = 481436, upload-time = "2025-06-15T19:05:58.447Z" }, + { url = "https://files.pythonhosted.org/packages/fe/9e/4af0056c258b861fbb29dcb36258de1e2b857be4a9509e6298abcf31e5c9/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adb4167043d3a78280d5d05ce0ba22055c266cf8655ce942f2fb881262ff3cdf", size = 596016, upload-time = "2025-06-15T19:05:59.59Z" }, + { url = "https://files.pythonhosted.org/packages/c5/fa/95d604b58aa375e781daf350897aaaa089cff59d84147e9ccff2447c8294/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5701dc474b041e2934a26d31d39f90fac8a3dee2322b39f7729867f932b1d4", size = 476727, upload-time = "2025-06-15T19:06:01.086Z" }, + { url = "https://files.pythonhosted.org/packages/65/95/fe479b2664f19be4cf5ceeb21be05afd491d95f142e72d26a42f41b7c4f8/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b067915e3c3936966a8607f6fe5487df0c9c4afb85226613b520890049deea20", size = 451864, upload-time = "2025-06-15T19:06:02.144Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8a/3c4af14b93a15ce55901cd7a92e1a4701910f1768c78fb30f61d2b79785b/watchfiles-1.1.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:9c733cda03b6d636b4219625a4acb5c6ffb10803338e437fb614fef9516825ef", size = 625626, upload-time = "2025-06-15T19:06:03.578Z" }, + { url = "https://files.pythonhosted.org/packages/da/f5/cf6aa047d4d9e128f4b7cde615236a915673775ef171ff85971d698f3c2c/watchfiles-1.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:cc08ef8b90d78bfac66f0def80240b0197008e4852c9f285907377b2947ffdcb", size = 622744, upload-time = "2025-06-15T19:06:05.066Z" }, + { url = "https://files.pythonhosted.org/packages/2c/00/70f75c47f05dea6fd30df90f047765f6fc2d6eb8b5a3921379b0b04defa2/watchfiles-1.1.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:9974d2f7dc561cce3bb88dfa8eb309dab64c729de85fba32e98d75cf24b66297", size = 402114, upload-time = "2025-06-15T19:06:06.186Z" }, + { url = "https://files.pythonhosted.org/packages/53/03/acd69c48db4a1ed1de26b349d94077cca2238ff98fd64393f3e97484cae6/watchfiles-1.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c68e9f1fcb4d43798ad8814c4c1b61547b014b667216cb754e606bfade587018", size = 393879, upload-time = "2025-06-15T19:06:07.369Z" }, + { url = "https://files.pythonhosted.org/packages/2f/c8/a9a2a6f9c8baa4eceae5887fecd421e1b7ce86802bcfc8b6a942e2add834/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95ab1594377effac17110e1352989bdd7bdfca9ff0e5eeccd8c69c5389b826d0", size = 450026, upload-time = "2025-06-15T19:06:08.476Z" }, + { url = "https://files.pythonhosted.org/packages/fe/51/d572260d98388e6e2b967425c985e07d47ee6f62e6455cefb46a6e06eda5/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fba9b62da882c1be1280a7584ec4515d0a6006a94d6e5819730ec2eab60ffe12", size = 457917, upload-time = "2025-06-15T19:06:09.988Z" }, + { url = "https://files.pythonhosted.org/packages/c6/2d/4258e52917bf9f12909b6ec314ff9636276f3542f9d3807d143f27309104/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3434e401f3ce0ed6b42569128b3d1e3af773d7ec18751b918b89cd49c14eaafb", size = 483602, upload-time = "2025-06-15T19:06:11.088Z" }, + { url = "https://files.pythonhosted.org/packages/84/99/bee17a5f341a4345fe7b7972a475809af9e528deba056f8963d61ea49f75/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa257a4d0d21fcbca5b5fcba9dca5a78011cb93c0323fb8855c6d2dfbc76eb77", size = 596758, upload-time = "2025-06-15T19:06:12.197Z" }, + { url = "https://files.pythonhosted.org/packages/40/76/e4bec1d59b25b89d2b0716b41b461ed655a9a53c60dc78ad5771fda5b3e6/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7fd1b3879a578a8ec2076c7961076df540b9af317123f84569f5a9ddee64ce92", size = 477601, upload-time = "2025-06-15T19:06:13.391Z" }, + { url = "https://files.pythonhosted.org/packages/1f/fa/a514292956f4a9ce3c567ec0c13cce427c158e9f272062685a8a727d08fc/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc7a30eeb0e20ecc5f4bd113cd69dcdb745a07c68c0370cea919f373f65d9e", size = 451936, upload-time = "2025-06-15T19:06:14.656Z" }, + { url = "https://files.pythonhosted.org/packages/32/5d/c3bf927ec3bbeb4566984eba8dd7a8eb69569400f5509904545576741f88/watchfiles-1.1.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:891c69e027748b4a73847335d208e374ce54ca3c335907d381fde4e41661b13b", size = 626243, upload-time = "2025-06-15T19:06:16.232Z" }, + { url = "https://files.pythonhosted.org/packages/e6/65/6e12c042f1a68c556802a84d54bb06d35577c81e29fba14019562479159c/watchfiles-1.1.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:12fe8eaffaf0faa7906895b4f8bb88264035b3f0243275e0bf24af0436b27259", size = 623073, upload-time = "2025-06-15T19:06:17.457Z" }, + { url = "https://files.pythonhosted.org/packages/89/ab/7f79d9bf57329e7cbb0a6fd4c7bd7d0cee1e4a8ef0041459f5409da3506c/watchfiles-1.1.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:bfe3c517c283e484843cb2e357dd57ba009cff351edf45fb455b5fbd1f45b15f", size = 400872, upload-time = "2025-06-15T19:06:18.57Z" }, + { url = "https://files.pythonhosted.org/packages/df/d5/3f7bf9912798e9e6c516094db6b8932df53b223660c781ee37607030b6d3/watchfiles-1.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a9ccbf1f129480ed3044f540c0fdbc4ee556f7175e5ab40fe077ff6baf286d4e", size = 392877, upload-time = "2025-06-15T19:06:19.55Z" }, + { url = "https://files.pythonhosted.org/packages/0d/c5/54ec7601a2798604e01c75294770dbee8150e81c6e471445d7601610b495/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba0e3255b0396cac3cc7bbace76404dd72b5438bf0d8e7cefa2f79a7f3649caa", size = 449645, upload-time = "2025-06-15T19:06:20.66Z" }, + { url = "https://files.pythonhosted.org/packages/0a/04/c2f44afc3b2fce21ca0b7802cbd37ed90a29874f96069ed30a36dfe57c2b/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4281cd9fce9fc0a9dbf0fc1217f39bf9cf2b4d315d9626ef1d4e87b84699e7e8", size = 457424, upload-time = "2025-06-15T19:06:21.712Z" }, + { url = "https://files.pythonhosted.org/packages/9f/b0/eec32cb6c14d248095261a04f290636da3df3119d4040ef91a4a50b29fa5/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6d2404af8db1329f9a3c9b79ff63e0ae7131986446901582067d9304ae8aaf7f", size = 481584, upload-time = "2025-06-15T19:06:22.777Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e2/ca4bb71c68a937d7145aa25709e4f5d68eb7698a25ce266e84b55d591bbd/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e78b6ed8165996013165eeabd875c5dfc19d41b54f94b40e9fff0eb3193e5e8e", size = 596675, upload-time = "2025-06-15T19:06:24.226Z" }, + { url = "https://files.pythonhosted.org/packages/a1/dd/b0e4b7fb5acf783816bc950180a6cd7c6c1d2cf7e9372c0ea634e722712b/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:249590eb75ccc117f488e2fabd1bfa33c580e24b96f00658ad88e38844a040bb", size = 477363, upload-time = "2025-06-15T19:06:25.42Z" }, + { url = "https://files.pythonhosted.org/packages/69/c4/088825b75489cb5b6a761a4542645718893d395d8c530b38734f19da44d2/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d05686b5487cfa2e2c28ff1aa370ea3e6c5accfe6435944ddea1e10d93872147", size = 452240, upload-time = "2025-06-15T19:06:26.552Z" }, + { url = "https://files.pythonhosted.org/packages/10/8c/22b074814970eeef43b7c44df98c3e9667c1f7bf5b83e0ff0201b0bd43f9/watchfiles-1.1.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:d0e10e6f8f6dc5762adee7dece33b722282e1f59aa6a55da5d493a97282fedd8", size = 625607, upload-time = "2025-06-15T19:06:27.606Z" }, + { url = "https://files.pythonhosted.org/packages/32/fa/a4f5c2046385492b2273213ef815bf71a0d4c1943b784fb904e184e30201/watchfiles-1.1.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:af06c863f152005c7592df1d6a7009c836a247c9d8adb78fef8575a5a98699db", size = 623315, upload-time = "2025-06-15T19:06:29.076Z" }, +] + +[[package]] +name = "wcmatch" +version = "10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bracex" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/79/3e/c0bdc27cf06f4e47680bd5803a07cb3dfd17de84cde92dd217dcb9e05253/wcmatch-10.1.tar.gz", hash = "sha256:f11f94208c8c8484a16f4f48638a85d771d9513f4ab3f37595978801cb9465af", size = 117421, upload-time = "2025-06-22T19:14:02.49Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/d8/0d1d2e9d3fabcf5d6840362adcf05f8cf3cd06a73358140c3a97189238ae/wcmatch-10.1-py3-none-any.whl", hash = "sha256:5848ace7dbb0476e5e55ab63c6bbd529745089343427caa5537f230cc01beb8a", size = 39854, upload-time = "2025-06-22T19:14:00.978Z" }, +] + +[[package]] +name = "websockets" +version = "15.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437, upload-time = "2025-03-05T20:02:16.706Z" }, + { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096, upload-time = "2025-03-05T20:02:18.832Z" }, + { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332, upload-time = "2025-03-05T20:02:20.187Z" }, + { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152, upload-time = "2025-03-05T20:02:22.286Z" }, + { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096, upload-time = "2025-03-05T20:02:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523, upload-time = "2025-03-05T20:02:25.669Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790, upload-time = "2025-03-05T20:02:26.99Z" }, + { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165, upload-time = "2025-03-05T20:02:30.291Z" }, + { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160, upload-time = "2025-03-05T20:02:31.634Z" }, + { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395, upload-time = "2025-03-05T20:02:33.017Z" }, + { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841, upload-time = "2025-03-05T20:02:34.498Z" }, + { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440, upload-time = "2025-03-05T20:02:36.695Z" }, + { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098, upload-time = "2025-03-05T20:02:37.985Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329, upload-time = "2025-03-05T20:02:39.298Z" }, + { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111, upload-time = "2025-03-05T20:02:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054, upload-time = "2025-03-05T20:02:41.926Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496, upload-time = "2025-03-05T20:02:43.304Z" }, + { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829, upload-time = "2025-03-05T20:02:48.812Z" }, + { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217, upload-time = "2025-03-05T20:02:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195, upload-time = "2025-03-05T20:02:51.561Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393, upload-time = "2025-03-05T20:02:53.814Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837, upload-time = "2025-03-05T20:02:55.237Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, +]