diff --git a/pyproject.toml b/pyproject.toml
index 6e5a25d..91f3cd7 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
[project]
name = "socketsecurity"
-version = "2.0.56"
+version = "2.1.0"
requires-python = ">= 3.10"
license = {"file" = "LICENSE"}
dependencies = [
@@ -16,7 +16,7 @@ dependencies = [
'GitPython',
'packaging',
'python-dotenv',
- 'socket-sdk-python>=2.0.21'
+ 'socket-sdk-python>=2.1.2,<3'
]
readme = "README.md"
description = "Socket Security CLI for CI/CD"
@@ -63,10 +63,6 @@ include = [
"socketsecurity/**/*.py",
"socketsecurity/**/__init__.py"
]
-omit = [
- "socketsecurity/core/issues.py", # Large data file
- "socketsecurity/core/licenses.py" # Large data file
-]
[tool.coverage.report]
exclude_lines = [
diff --git a/socketsecurity/__init__.py b/socketsecurity/__init__.py
index 0dadd91..3e2a726 100644
--- a/socketsecurity/__init__.py
+++ b/socketsecurity/__init__.py
@@ -1,2 +1,2 @@
__author__ = 'socket.dev'
-__version__ = '2.0.56'
+__version__ = '2.1.0'
diff --git a/socketsecurity/core/__init__.py b/socketsecurity/core/__init__.py
index 178650e..fd84d4e 100644
--- a/socketsecurity/core/__init__.py
+++ b/socketsecurity/core/__init__.py
@@ -2,10 +2,12 @@
import os
import sys
import time
+import io
from dataclasses import asdict
from glob import glob
+from io import BytesIO
from pathlib import PurePath
-from typing import BinaryIO, Dict, List, Tuple, Set
+from typing import BinaryIO, Dict, List, Tuple, Set, Union
import re
from socketdev import socketdev
from socketdev.exceptions import APIFailure
@@ -24,7 +26,6 @@
Purl
)
from socketsecurity.core.exceptions import APIResourceNotFound
-from socketsecurity.core.licenses import Licenses
from .socket_config import SocketConfig
from .utils import socket_globs
import importlib
@@ -278,6 +279,14 @@ def to_case_insensitive_regex(input_string: str) -> str:
"""
return ''.join(f'[{char.lower()}{char.upper()}]' if char.isalpha() else char for char in input_string)
+ @staticmethod
+ def empty_head_scan_file() -> list[tuple[str, tuple[str, Union[BinaryIO, BytesIO]]]]:
+ # Create an empty file for when no head full scan so that the diff endpoint can always be used
+ empty_file_obj = io.BytesIO(b"")
+ empty_filename = "initial_head_scan"
+ empty_full_scan_file = [(empty_filename, (empty_filename, empty_file_obj))]
+ return empty_full_scan_file
+
@staticmethod
def load_files_for_sending(files: List[str], workspace: str) -> List[Tuple[str, Tuple[str, BinaryIO]]]:
"""
@@ -311,7 +320,7 @@ def load_files_for_sending(files: List[str], workspace: str) -> List[Tuple[str,
return send_files
- def create_full_scan(self, files: List[str], params: FullScanParams, has_head_scan: bool = False) -> FullScan:
+ def create_full_scan(self, files: list[tuple[str, tuple[str, BytesIO]]], params: FullScanParams) -> FullScan:
"""
Creates a new full scan via the Socket API.
@@ -331,16 +340,60 @@ def create_full_scan(self, files: List[str], params: FullScanParams, has_head_sc
raise Exception(f"Error creating full scan: {res.message}, status: {res.status}")
full_scan = FullScan(**asdict(res.data))
- if not has_head_scan:
- full_scan.sbom_artifacts = self.get_sbom_data(full_scan.id)
- full_scan.packages = self.create_packages_dict(full_scan.sbom_artifacts)
-
create_full_end = time.time()
total_time = create_full_end - create_full_start
log.debug(f"New Full Scan created in {total_time:.2f} seconds")
return full_scan
+ def check_full_scans_status(self, head_full_scan_id: str, new_full_scan_id: str) -> bool:
+ is_ready = False
+ current_timeout = self.config.timeout
+ self.sdk.set_timeout(0.5)
+ try:
+ self.sdk.fullscans.stream(self.config.org_slug, head_full_scan_id)
+ except Exception:
+ log.debug(f"Queued up full scan for processing ({head_full_scan_id})")
+
+ try:
+ self.sdk.fullscans.stream(self.config.org_slug, new_full_scan_id)
+ except Exception:
+ log.debug(f"Queued up full scan for processing ({new_full_scan_id})")
+ self.sdk.set_timeout(current_timeout)
+ start_check = time.time()
+ head_is_ready = False
+ new_is_ready = False
+ while not is_ready:
+ head_full_scan_metadata = self.sdk.fullscans.metadata(self.config.org_slug, head_full_scan_id)
+ if head_full_scan_metadata:
+ head_state = head_full_scan_metadata.get("scan_state")
+ else:
+ head_state = None
+ new_full_scan_metadata = self.sdk.fullscans.metadata(self.config.org_slug, new_full_scan_id)
+ if new_full_scan_metadata:
+ new_state = new_full_scan_metadata.get("scan_state")
+ else:
+ new_state = None
+ if head_state and head_state == "resolve":
+ head_is_ready = True
+ if new_state and new_state == "resolve":
+ new_is_ready = True
+ if head_is_ready and new_is_ready:
+ is_ready = True
+ current_time = time.time()
+ if current_time - start_check >= self.config.timeout:
+ log.debug(
+ f"Timeout reached while waiting for full scans to be ready "
+ f"({head_full_scan_id}, {new_full_scan_id})"
+ )
+ break
+ total_time = time.time() - start_check
+ if is_ready:
+ log.info(f"Full scans are ready in {total_time:.2f} seconds")
+ else:
+ log.warning(f"Full scans are not ready yet ({head_full_scan_id}, {new_full_scan_id})")
+ return is_ready
+
def get_full_scan(self, full_scan_id: str) -> FullScan:
"""
Get a FullScan object for an existing full scan including sbom_artifacts and packages.
@@ -403,14 +456,9 @@ def get_package_license_text(self, package: Package) -> str:
return ""
license_raw = package.license
- all_licenses = Licenses()
- license_str = Licenses.make_python_safe(license_raw)
-
- if license_str is not None and hasattr(all_licenses, license_str):
- license_obj = getattr(all_licenses, license_str)
- return license_obj.licenseText
-
- return ""
+ data = self.sdk.licensemetadata.post([license_raw], {'includetext': 'true'})
+ license_str = data.data[0].license if data and len(data) == 1 else ""
+ return license_str
def get_repo_info(self, repo_slug: str, default_branch: str = "socket-default-branch") -> RepositoryInfo:
"""
@@ -485,7 +533,7 @@ def update_package_values(pkg: Package) -> Package:
pkg.url += f"/{pkg.name}/overview/{pkg.version}"
return pkg
- def get_added_and_removed_packages(self, head_full_scan_id: str, new_full_scan: FullScan) -> Tuple[Dict[str, Package], Dict[str, Package]]:
+ def get_added_and_removed_packages(self, head_full_scan_id: str, new_full_scan_id: str) -> Tuple[Dict[str, Package], Dict[str, Package]]:
"""
Get packages that were added and removed between scans.
@@ -496,14 +544,11 @@ def get_added_and_removed_packages(self, head_full_scan_id: str, new_full_scan:
Returns:
Tuple of (added_packages, removed_packages) dictionaries
"""
- if head_full_scan_id is None:
- log.info(f"No head scan found. New scan ID: {new_full_scan.id}")
- return new_full_scan.packages, {}
- log.info(f"Comparing scans - Head scan ID: {head_full_scan_id}, New scan ID: {new_full_scan.id}")
+ log.info(f"Comparing scans - Head scan ID: {head_full_scan_id}, New scan ID: {new_full_scan_id}")
diff_start = time.time()
try:
- diff_report = self.sdk.fullscans.stream_diff(self.config.org_slug, head_full_scan_id, new_full_scan.id, use_types=True).data
+ diff_report = self.sdk.fullscans.stream_diff(self.config.org_slug, head_full_scan_id, new_full_scan_id, use_types=True).data
except APIFailure as e:
log.error(f"API Error: {e}")
sys.exit(1)
@@ -572,22 +617,27 @@ def create_new_diff(
# Find manifest files
files = self.find_files(path)
files_for_sending = self.load_files_for_sending(files, path)
- has_head_scan = False
if not files:
return Diff(id="no_diff_id")
try:
# Get head scan ID
head_full_scan_id = self.get_head_scan_for_repo(params.repo)
- if head_full_scan_id is not None:
- has_head_scan = True
except APIResourceNotFound:
head_full_scan_id = None
+ if head_full_scan_id is None:
+ tmp_params = params
+ tmp_params.tmp = True
+ tmp_params.set_as_pending_head = False
+ tmp_params.make_default_branch = False
+ head_full_scan = self.create_full_scan(Core.empty_head_scan_file(), params)
+ head_full_scan_id = head_full_scan.id
+
# Create new scan
try:
new_scan_start = time.time()
- new_full_scan = self.create_full_scan(files_for_sending, params, has_head_scan)
+ new_full_scan = self.create_full_scan(files_for_sending, params)
new_full_scan.sbom_artifacts = self.get_sbom_data(new_full_scan.id)
new_scan_end = time.time()
log.info(f"Total time to create new full scan: {new_scan_end - new_scan_start:.2f}")
@@ -600,7 +650,10 @@ def create_new_diff(
log.error(f"Stack trace:\n{traceback.format_exc()}")
raise
- added_packages, removed_packages = self.get_added_and_removed_packages(head_full_scan_id, new_full_scan)
+ scans_ready = self.check_full_scans_status(head_full_scan_id, new_full_scan.id)
+ if scans_ready is False:
+ log.error(f"Full scans did not complete within {self.config.timeout} seconds")
+ added_packages, removed_packages = self.get_added_and_removed_packages(head_full_scan_id, new_full_scan.id)
diff = self.create_diff_report(added_packages, removed_packages)
diff --git a/socketsecurity/core/issues.py b/socketsecurity/core/issues.py
deleted file mode 100644
index d712056..0000000
--- a/socketsecurity/core/issues.py
+++ /dev/null
@@ -1,2101 +0,0 @@
-import json
-
-
-__all__ = [
- "AllIssues",
- "badEncoding",
- "badSemver",
- "badSemverDependency",
- "bidi",
- "binScriptConfusion",
- "chronoAnomaly",
- "criticalCVE",
- "cve",
- "debugAccess",
- "deprecated",
- "deprecatedException",
- "explicitlyUnlicensedItem",
- "unidentifiedLicense",
- "noLicenseFound",
- "copyleftLicense",
- "nonpermissiveLicense",
- "miscLicenseIssues",
- "deprecatedLicense",
- "didYouMean",
- "dynamicRequire",
- "emptyPackage",
- "envVars",
- "extraneousDependency",
- "fileDependency",
- "filesystemAccess",
- "gitDependency",
- "gitHubDependency",
- "hasNativeCode",
- "highEntropyStrings",
- "homoglyphs",
- "httpDependency",
- "installScripts",
- "gptSecurity",
- "gptAnomaly",
- "gptMalware",
- "potentialVulnerability",
- "invalidPackageJSON",
- "invisibleChars",
- "licenseChange",
- "licenseException",
- "longStrings",
- "missingTarball",
- "majorRefactor",
- "malware",
- "manifestConfusion",
- "mediumCVE",
- "mildCVE",
- "minifiedFile",
- "missingAuthor",
- "missingDependency",
- "missingLicense",
- "mixedLicense",
- "ambiguousClassifier",
- "modifiedException",
- "modifiedLicense",
- "networkAccess",
- "newAuthor",
- "noAuthorData",
- "noBugTracker",
- "noREADME",
- "noRepository",
- "noTests",
- "noV1",
- "noWebsite",
- "nonFSFLicense",
- "nonOSILicense",
- "nonSPDXLicense",
- "notice",
- "obfuscatedFile",
- "obfuscatedRequire",
- "peerDependency",
- "semverAnomaly",
- "shellAccess",
- "shellScriptOverride",
- "suspiciousString",
- "telemetry",
- "trivialPackage",
- "troll",
- "typeModuleCompatibility",
- "uncaughtOptionalDependency",
- "unclearLicense",
- "shrinkwrap",
- "unmaintained",
- "unpublished",
- "unresolvedRequire",
- "unsafeCopyright",
- "unstableOwnership",
- "unusedDependency",
- "urlStrings",
- "usesEval",
- "zeroWidth",
- "floatingDependency",
- "unpopularPackage",
-]
-class badEncoding:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Source files are encoded using a non-standard text encoding."
- self.props = {"encoding": "Encoding"}
- self.suggestion = "Ensure all published files are encoded using a standard encoding such as UTF8, UTF16, UTF32, SHIFT-JIS, etc."
- self.title = "Bad text encoding"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is bad text encoding?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class badSemver:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package version is not a valid semantic version (semver)."
- self.suggestion = "All versions of all packages on npm should use use a valid semantic version. Publish a new version of the package with a valid semantic version. Semantic version ranges do not work with invalid semantic versions."
- self.title = "Bad semver"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is bad semver?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class badSemverDependency:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package has dependencies with an invalid semantic version. This could be a sign of beta, low quality, or unmaintained dependencies."
- self.props = {"packageName": "Package name", "packageVersion": "Package version"}
- self.suggestion = "Switch to a version of the dependency with valid semver or override the dependency version if it is determined to be problematic."
- self.title = "Bad dependency semver"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is bad dependency semver?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class bidi:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Source files contain bidirectional unicode control characters. This could indicate a Trojan source supply chain attack. See: trojansource.codes for more information."
- self.suggestion = "Remove bidirectional unicode control characters, or clearly document what they are used for."
- self.title = "Bidirectional unicode control characters"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are bidirectional unicode control characters?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class binScriptConfusion:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This package has multiple bin scripts with the same name. This can cause non-deterministic behavior when installing or could be a sign of a supply chain attack"
- self.props = {"binScript": "Bin script"}
- self.suggestion = "Consider removing one of the conflicting packages. Packages should only export bin scripts with their name"
- self.title = "Bin script confusion"
- self.emoji = "\ud83d\ude35\u200d\ud83d\udcab"
- self.nextStepTitle = "What is bin script confusion?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class chronoAnomaly:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Semantic versions published out of chronological order."
- self.props = {"prevChronoDate": "Previous chronological date", "prevChronoVersion": "Previous chronological version", "prevSemverDate": "Previous semver date", "prevSemverVersion": "Previous semver version"}
- self.suggestion = "This could either indicate dependency confusion or a patched vulnerability."
- self.title = "Chronological version anomaly"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a chronological version anomaly?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class criticalCVE:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains a Critical Common Vulnerability and Exposure (CVE)."
- self.props = {"cveId": "CVE ID", "cwes": "CWEs", "cvss": "CVSS", "description": "Description", "firstPatchedVersionIdentifier": "Patched version", "ghsaId": "GHSA ID", "id": "Id", "severity": "Severity", "title": "Title", "url": "URL", "vulnerableVersionRange": "Vulnerable versions"}
- self.suggestion = "Remove or replace dependencies that include known critical CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies."
- self.title = "Critical CVE"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a critical CVE?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class cve:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains a high severity Common Vulnerability and Exposure (CVE)."
- self.props = {"cveId": "CVE ID", "cwes": "CWEs", "cvss": "CVSS", "description": "Description", "firstPatchedVersionIdentifier": "Patched version", "ghsaId": "GHSA ID", "id": "Id", "severity": "Severity", "title": "Title", "url": "URL", "vulnerableVersionRange": "Vulnerable versions"}
- self.suggestion = "Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies."
- self.title = "High CVE"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a CVE?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class debugAccess:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Uses debug, reflection and dynamic code execution features."
- self.props = {"module": "Module"}
- self.suggestion = "Removing the use of debug will reduce the risk of any reflection and dynamic code execution."
- self.title = "Debug access"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is debug access?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class deprecated:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "The maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed."
- self.props = {"reason": "Reason"}
- self.suggestion = "Research the state of the package and determine if there are non-deprecated versions that can be used, or if it should be replaced with a new, supported solution."
- self.title = "Deprecated"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a deprecated package?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class deprecatedException:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Contains a known deprecated SPDX license exception."
- self.props = {"comments": "Comments", "exceptionId": "Exception id"}
- self.suggestion = "Fix the license so that it no longer contains deprecated SPDX license exceptions."
- self.title = "Deprecated SPDX exception"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a deprecated SPDX exception?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class explicitlyUnlicensedItem:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Something was found which is explicitly marked as unlicensed"
- self.props = {"location": "Location"}
- self.suggestion = "Manually review your policy on such materials"
- self.title = "Explicitly Unlicensed Item"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What do I need to know about license files?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class unidentifiedLicense:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license"
- self.props = {"comments": "Comments", "exceptionId": "Exception id", "location": "Location"}
- self.suggestion = "Manually review the license contents."
- self.title = "Unidentified License"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What do I need to know about license files?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class noLicenseFound:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) License information could not be found"
- self.props = {"comments": "Comments", "exceptionId": "Exception id"}
- self.suggestion = "Manually review the licensing"
- self.title = "No License Found"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What do I need to know about license files?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class copyleftLicense:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Copyleft license information was found"
- self.props = {"comments": "Comments", "licenseId": "License Identifiers"}
- self.suggestion = "Determine whether use of copyleft material works for you"
- self.title = "Copyleft License"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What do I need to know about license files?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class nonpermissiveLicense:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) A license not known to be considered permissive was found"
- self.props = {"comments": "Comments", "licenseId": "License Identifier"}
- self.suggestion = "Determine whether use of material not offered under a known permissive license works for you"
- self.title = "Non-permissive License"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What do I need to know about license files?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class miscLicenseIssues:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) A package's licensing information has fine-grained problems"
- self.props = {"description": "Description", "location": "The location where the issue originates from"}
- self.suggestion = "Determine whether use of material not offered under a known permissive license works for you"
- self.title = "Nonpermissive License"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What do I need to know about license files?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class deprecatedLicense:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) License is deprecated which may have legal implications regarding the package's use."
- self.props = {"licenseId": "License id"}
- self.suggestion = "Update or change the license to a well-known or updated license."
- self.title = "Deprecated license"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a deprecated license?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class didYouMean:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package name is similar to other popular packages and may not be the package you want."
- self.props = {"alternatePackage": "Alternate package", "downloads": "Downloads", "downloadsRatio": "Download ratio", "editDistance": "Edit distance"}
- self.suggestion = "Use care when consuming similarly named packages and ensure that you did not intend to consume a different package. Malicious packages often publish using similar names as existing popular packages."
- self.title = "Possible typosquat attack"
- self.emoji = "\ud83e\uddd0"
- self.nextStepTitle = "What is a typosquat?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class dynamicRequire:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Dynamic require can indicate the package is performing dangerous or unsafe dynamic code execution."
- self.suggestion = "Packages should avoid dynamic imports when possible. Audit the use of dynamic require to ensure it is not executing malicious or vulnerable code."
- self.title = "Dynamic require"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is dynamic require?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class emptyPackage:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish."
- self.props = {"linesOfCode": "Lines of code"}
- self.suggestion = "Remove dependencies that do not export any code or functionality and ensure the package version includes all of the files it is supposed to."
- self.title = "Empty package"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is an empty package?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class envVars:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- capabilityName: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package accesses environment variables, which may be a sign of credential stuffing or data theft."
- self.props = {"envVars": "Environment variables"}
- self.suggestion = "Packages should be clear about which environment variables they access, and care should be taken to ensure they only access environment variables they claim to."
- self.title = "Environment variable access"
- self.emoji = "\u26a0\ufe0f"
- self.capabilityName = "environment"
- self.nextStepTitle = "What is environment variable access?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class extraneousDependency:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package optionally loads a dependency which is not specified within any of the package.json dependency fields. It may inadvertently be importing dependencies specified by other packages."
- self.props = {"name": "Name"}
- self.suggestion = "Specify all optionally loaded dependencies in optionalDependencies within package.json."
- self.title = "Extraneous dependency"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are extraneous dependencies?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class fileDependency:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains a dependency which resolves to a file. This can obfuscate analysis and serves no useful purpose."
- self.props = {"filePath": "File path", "packageName": "Package name"}
- self.suggestion = "Remove the dependency specified by a file resolution string from package.json and update any bare name imports that referenced it before to use relative path strings."
- self.title = "File dependency"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are file dependencies?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class filesystemAccess:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- capabilityName: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Accesses the file system, and could potentially read sensitive data."
- self.props = {"module": "Module"}
- self.suggestion = "If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead."
- self.title = "Filesystem access"
- self.emoji = "\u26a0\ufe0f"
- self.capabilityName = "filesystem"
- self.nextStepTitle = "What is filesystem access?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class gitDependency:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains a dependency which resolves to a remote git URL. Dependencies fetched from git URLs are not immutable can be used to inject untrusted code or reduce the likelihood of a reproducible install."
- self.props = {"packageName": "Package name", "url": "URL"}
- self.suggestion = "Publish the git dependency to npm or a private package repository and consume it from there."
- self.title = "Git dependency"
- self.emoji = "\ud83c\udf63"
- self.nextStepTitle = "What are git dependencies?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class gitHubDependency:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains a dependency which resolves to a GitHub URL. Dependencies fetched from GitHub specifiers are not immutable can be used to inject untrusted code or reduce the likelihood of a reproducible install."
- self.props = {"commitsh": "Commit-ish (commit, branch, tag or version)", "githubRepo": "GitHub repo", "githubUser": "GitHub user", "packageName": "Package name"}
- self.suggestion = "Publish the GitHub dependency to npm or a private package repository and consume it from there."
- self.title = "GitHub dependency"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are GitHub dependencies?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class hasNativeCode:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains native code which could be a vector to obscure malicious code, and generally decrease the likelihood of reproducible or reliable installs."
- self.suggestion = "Ensure that native code bindings are expected. Consumers may consider pure JS and functionally similar alternatives to avoid the challenges and risks associated with native code bindings."
- self.title = "Native code"
- self.emoji = "\ud83e\udee3"
- self.nextStepTitle = "What's wrong with native code?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class highEntropyStrings:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains high entropy strings. This could be a sign of encrypted data, leaked secrets or obfuscated code."
- self.suggestion = "Please inspect these strings to check if these strings are benign. Maintainers should clarify the purpose and existence of high entropy strings if there is a legitimate purpose."
- self.title = "High entropy strings"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are high entropy strings?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class homoglyphs:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains unicode homoglyphs which can be used in supply chain confusion attacks."
- self.suggestion = "Remove unicode homoglyphs if they are unnecessary, and audit their presence to confirm legitimate use."
- self.title = "Unicode homoglyphs"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are unicode homoglyphs?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class httpDependency:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains a dependency which resolves to a remote HTTP URL which could be used to inject untrusted code and reduce overall package reliability."
- self.props = {"packageName": "Package name", "url": "URL"}
- self.suggestion = "Publish the HTTP URL dependency to npm or a private package repository and consume it from there."
- self.title = "HTTP dependency"
- self.emoji = "\ud83e\udd69"
- self.nextStepTitle = "What are http dependencies?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class installScripts:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Install scripts are run when the package is installed. The majority of malware in npm is hidden in install scripts."
- self.props = {"script": "Script", "source": "Source"}
- self.suggestion = "Packages should not be running non-essential scripts during install and there are often solutions to problems people solve with install scripts that can be run at publish time instead."
- self.title = "Install scripts"
- self.emoji = "\ud83d\udcdc"
- self.nextStepTitle = "What is an install script?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class gptSecurity:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "AI has determined that this package may contain potential security issues or vulnerabilities."
- self.props = {"notes": "AI-based analysis of the package's code and behavior", "confidence": "Confidence of this analysis", "severity": "Impact of this threat"}
- self.suggestion = "An AI system identified potential security problems in this package. It is advised to review the package thoroughly and assess the potential risks before installation. You may also consider reporting the issue to the package maintainer or seeking alternative solutions with a stronger security posture."
- self.title = "AI detected security risk"
- self.emoji = "\ud83e\udd16"
- self.nextStepTitle = "What are AI detected security risks?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class gptAnomaly:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "AI has identified unusual behaviors that may pose a security risk."
- self.props = {"notes": "AI-based analysis of the package's code and behavior", "confidence": "Confidence of this analysis", "severity": "Impact of this threat", "risk": "Risk level"}
- self.suggestion = "An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding."
- self.title = "AI detected anomaly"
- self.emoji = "\ud83e\udd14"
- self.nextStepTitle = "What is an AI detected anomaly?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class gptMalware:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "AI has identified this package as malware. This is a strong signal that the package may be malicious."
- self.props = {"notes": "AI-based analysis of the package's code and behavior", "confidence": "Confidence of this analysis", "severity": "Impact of this behavior"}
- self.suggestion = "Given the AI system's identification of this package as malware, extreme caution is advised. It is recommended to avoid downloading or installing this package until the threat is confirmed or flagged as a false positive."
- self.title = "AI detected potential malware"
- self.emoji = "\ud83e\udd16"
- self.nextStepTitle = "What is AI detected malware?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class potentialVulnerability:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Initial human review suggests the presence of a vulnerability in this package. It is pending further analysis and confirmation."
- self.props = {"note": "AI detection + human review", "risk": "Risk level"}
- self.suggestion = "It is advisable to proceed with caution. Engage in a review of the package's security aspects and consider reaching out to the package maintainer for the latest information or patches."
- self.title = "Potential vulnerability"
- self.emoji = "\ud83d\udea7"
- self.nextStepTitle = "Navigating potential vulnerabilities"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class invalidPackageJSON:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package has an invalid manifest file and can cause installation problems if you try to use it."
- self.suggestion = "Fix syntax errors in the manifest file and publish a new version. Consumers can use npm overrides to force a version that does not have this problem if one exists."
- self.title = "Invalid manifest file"
- self.emoji = "\ud83e\udd12"
- self.nextStepTitle = "What is an invalid manifest file?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class invisibleChars:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Source files contain invisible characters. This could indicate source obfuscation or a supply chain attack."
- self.suggestion = "Remove invisible characters. If their use is justified, use their visible escaped counterparts."
- self.title = "Invisible chars"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are invisible characters?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class licenseChange:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Package license has recently changed."
- self.props = {"newLicenseId": "New license id", "prevLicenseId": "Previous license id"}
- self.suggestion = "License changes should be reviewed carefully to inform ongoing use. Packages should avoid making major changes to their license type."
- self.title = "License change"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a license change?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class licenseException:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Contains an SPDX license exception."
- self.props = {"comments": "Comments", "exceptionId": "Exception id"}
- self.suggestion = "License exceptions should be carefully reviewed."
- self.title = "License exception"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a license exception?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class longStrings:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains long string literals, which may be a sign of obfuscated or packed code."
- self.suggestion = "Avoid publishing or consuming obfuscated or bundled code. It makes dependencies difficult to audit and undermines the module resolution system."
- self.title = "Long strings"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What's wrong with long strings?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class missingTarball:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This package is missing it's tarball. It could be removed from the npm registry or there may have been an error when publishing."
- self.suggestion = "This package cannot be analyzed or installed due to missing data."
- self.title = "Missing package tarball"
- self.emoji = "\u2754"
- self.nextStepTitle = "What is a missing tarball?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class majorRefactor:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes."
- self.props = {"changedPercent": "Change percentage", "curSize": "Current amount of lines", "linesChanged": "Lines changed", "prevSize": "Previous amount of lines"}
- self.suggestion = "Consider waiting before upgrading to see if any issues are discovered, or be prepared to scrutinize any bugs or subtle changes the major refactor may bring. Publishers my consider publishing beta versions of major refactors to limit disruption to parties interested in the new changes."
- self.title = "Major refactor"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a major refactor?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class malware:
- description: str
- props: dict
- title: str
- suggestion: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This package is malware. We have asked the package registry to remove it."
- self.props = {"id": "Id", "note": "Note"}
- self.title = "Known malware"
- self.suggestion = "It is strongly recommended that malware is removed from your codebase."
- self.emoji = "\u2620\ufe0f"
- self.nextStepTitle = "What is known malware?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class manifestConfusion:
- description: str
- props: dict
- title: str
- suggestion: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This package has inconsistent metadata. This could be malicious or caused by an error when publishing the package."
- self.props = {"key": "Key", "description": "Description"}
- self.title = "Manifest confusion"
- self.suggestion = "Packages with inconsistent metadata may be corrupted or malicious."
- self.emoji = "\ud83e\udd78"
- self.nextStepTitle = "What is manifest confusion?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class mediumCVE:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains a medium severity Common Vulnerability and Exposure (CVE)."
- self.props = {"cveId": "CVE ID", "cwes": "CWEs", "cvss": "CVSS", "description": "Description", "firstPatchedVersionIdentifier": "Patched version", "ghsaId": "GHSA ID", "id": "Id", "severity": "Severity", "title": "Title", "url": "URL", "vulnerableVersionRange": "Vulnerable versions"}
- self.suggestion = "Remove or replace dependencies that include known medium severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies."
- self.title = "Medium CVE"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a medium CVE?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class mildCVE:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Contains a low severity Common Vulnerability and Exposure (CVE)."
- self.props = {"cveId": "CVE ID", "cwes": "CWEs", "cvss": "CVSS", "description": "Description", "firstPatchedVersionIdentifier": "Patched version", "ghsaId": "GHSA ID", "id": "Id", "severity": "Severity", "title": "Title", "url": "URL", "vulnerableVersionRange": "Vulnerable versions"}
- self.suggestion = "Remove or replace dependencies that include known low severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies."
- self.title = "Low CVE"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a mild CVE?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class minifiedFile:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code."
- self.props = {"confidence": "Confidence"}
- self.suggestion = "In many cases minified code is harmless, however minified code can be used to hide a supply chain attack. Consider not shipping minified code on npm."
- self.title = "Minified code"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What's wrong with minified code?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class missingAuthor:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "The package was published by an npm account that no longer exists."
- self.suggestion = "Packages should have active and identified authors."
- self.title = "Non-existent author"
- self.emoji = "\ud83e\udee5"
- self.nextStepTitle = "What is a non-existent author?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class missingDependency:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "A required dependency is not declared in package.json and may prevent the package from working."
- self.props = {"name": "Name"}
- self.suggestion = "The package should define the missing dependency inside of package.json and publish a new version. Consumers may have to install the missing dependency themselves as long as the dependency remains missing. If the dependency is optional, add it to optionalDependencies and handle the missing case."
- self.title = "Missing dependency"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a missing dependency?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class missingLicense:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Package does not have a license and consumption legal status is unknown."
- self.suggestion = "A new version of the package should be published that includes a valid SPDX license in a license file, package.json license field or mentioned in the README."
- self.title = "Missing license"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a missing license?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class mixedLicense:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Package contains multiple licenses."
- self.props = {"licenseId": "License Ids"}
- self.suggestion = "A new version of the package should be published that includes a single license. Consumers may seek clarification from the package author. Ensure that the license details are consistent across the LICENSE file, package.json license field and license details mentioned in the README."
- self.title = "Mixed license"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a mixed license?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class ambiguousClassifier:
- props: dict
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.props = {"classifier": "The classifier"}
- self.description = "(Experimental) An ambiguous license classifier was found."
- self.suggestion = "A specific license or licenses should be identified"
- self.title = "Ambiguous License Classifier"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is an ambiguous license classifier?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class modifiedException:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Package contains a modified version of an SPDX license exception. Please read carefully before using this code."
- self.props = {"comments": "Comments", "exceptionId": "Exception id", "similarity": "Similarity"}
- self.suggestion = "Packages should avoid making modifications to standard license exceptions."
- self.title = "Modified license exception"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a modified license exception?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class modifiedLicense:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Package contains a modified version of an SPDX license. Please read carefully before using this code."
- self.props = {"licenseId": "License id", "similarity": "Similarity"}
- self.suggestion = "Packages should avoid making modifications to standard licenses."
- self.title = "Modified license"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a modified license?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class networkAccess:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- capabilityName: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This module accesses the network."
- self.props = {"module": "Module"}
- self.suggestion = "Packages should remove all network access that is functionally unnecessary. Consumers should audit network access to ensure legitimate use."
- self.title = "Network access"
- self.emoji = "\u26a0\ufe0f"
- self.capabilityName = "network"
- self.nextStepTitle = "What is network access?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class newAuthor:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "A new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package."
- self.props = {"newAuthor": "New author", "prevAuthor": "Previous author"}
- self.suggestion = "Scrutinize new collaborator additions to packages because they now have the ability to publish code into your dependency tree. Packages should avoid frequent or unnecessary additions or changes to publishing rights."
- self.title = "New author"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is new author?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class noAuthorData:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package does not specify a list of contributors or an author in package.json."
- self.suggestion = "Add a author field or contributors array to package.json."
- self.title = "No contributors or author data"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "Why is contributor and author data important?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class noBugTracker:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package does not have a linked bug tracker in package.json."
- self.suggestion = "Add a bugs field to package.json. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#bugs"
- self.title = "No bug tracker"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "Why are bug trackers important?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class noREADME:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package does not have a README. This may indicate a failed publish or a low quality package."
- self.suggestion = "Add a README to to the package and publish a new version."
- self.title = "No README"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "Why are READMEs important?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class noRepository:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package."
- self.suggestion = "Add a repository field to package.json. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#repository"
- self.title = "No repository"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "Why are missing repositories important?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class noTests:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package does not have any tests. This is a strong signal of a poorly maintained or low quality package."
- self.suggestion = "Add tests and publish a new version of the package. Consumers may look for an alternative package with better testing."
- self.title = "No tests"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What does no tests mean?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class noV1:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package is not semver >=1. This means it is not stable and does not support ^ ranges."
- self.suggestion = "If the package sees any general use, it should begin releasing at version 1.0.0 or later to benefit from semver."
- self.title = "No v1"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is wrong with semver < v1?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class noWebsite:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package does not have a website."
- self.suggestion = "Add a homepage field to package.json. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#homepage"
- self.title = "No website"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a missing website?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class nonFSFLicense:
- description: str
- props: dict
- title: str
- suggestion: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Package has a non-FSF-approved license."
- self.props = {"licenseId": "License id"}
- self.title = "Non FSF license"
- self.suggestion = "Consider the terms of the license for your given use case."
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a non FSF license?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class nonOSILicense:
- description: str
- props: dict
- title: str
- suggestion: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Package has a non-OSI-approved license."
- self.props = {"licenseId": "License id"}
- self.title = "Non OSI license"
- self.suggestion = "Consider the terms of the license for your given use case."
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a non OSI license?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class nonSPDXLicense:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Package contains a non-standard license somewhere. Please read carefully before using."
- self.suggestion = "Package should adopt a standard SPDX license consistently across all license locations (LICENSE files, package.json license fields, and READMEs)."
- self.title = "Non SPDX license"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a non SPDX license?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class notice:
- description: str
- title: str
- suggestion: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Package contains a legal notice. This could increase your exposure to legal risk when using this project."
- self.title = "Legal notice"
- self.suggestion = "Consider the implications of the legal notice for your given use case."
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is a legal notice?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class obfuscatedFile:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Obfuscated files are intentionally packed to hide their behavior. This could be a sign of malware"
- self.props = {"confidence": "Confidence"}
- self.suggestion = "Packages should not obfuscate their code. Consider not using packages with obfuscated code"
- self.title = "Obfuscated code"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is obfuscated code?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class obfuscatedRequire:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package accesses dynamic properties of require and may be obfuscating code execution."
- self.suggestion = "The package should not access dynamic properties of module. Instead use import or require directly."
- self.title = "Obfuscated require"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is obfuscated require?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class peerDependency:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package specifies peer dependencies in package.json."
- self.props = {"name": "Name"}
- self.suggestion = "Peer dependencies are fragile and can cause major problems across version changes. Be careful when updating this dependency and its peers."
- self.title = "Peer dependency"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are peer dependencies?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class semverAnomaly:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package semver skipped several versions, this could indicate a dependency confusion attack or indicate the intention of disruptive breaking changes or major priority shifts for the project."
- self.props = {"newVersion": "New version", "prevVersion": "Previous version"}
- self.suggestion = "Packages should follow semantic versions conventions by not skipping subsequent version numbers. Consumers should research the purpose of the skipped version number."
- self.title = "Semver anomaly"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are semver anomalies?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class shellAccess:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- capabilityName: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code."
- self.props = {"module": "Module"}
- self.suggestion = "Packages should avoid accessing the shell which can reduce portability, and make it easier for malicious shell access to be introduced."
- self.title = "Shell access"
- self.emoji = "\u26a0\ufe0f"
- self.capabilityName = "shell"
- self.nextStepTitle = "What is shell access?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class shellScriptOverride:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This package re-exports a well known shell command via an npm bin script. This is possibly a supply chain attack"
- self.props = {"binScript": "Bin script"}
- self.suggestion = "Packages should not export bin scripts which conflict with well known shell commands"
- self.title = "Bin script shell injection"
- self.emoji = "\ud83e\udd80"
- self.nextStepTitle = "What is bin script shell injection?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class suspiciousString:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This package contains suspicious text patterns which are commonly associated with bad behavior"
- self.props = {"explanation": "Explanation", "pattern": "Pattern"}
- self.suggestion = "The package code should be reviewed before installing"
- self.title = "Suspicious strings"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are suspicious strings?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class telemetry:
- description: str
- props: dict
- title: str
- suggestion: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This package contains telemetry which tracks how it is used."
- self.props = {"id": "Id", "note": "Note"}
- self.title = "Telemetry"
- self.suggestion = "Most telemetry comes with settings to disable it. Consider disabling telemetry if you do not want to be tracked."
- self.emoji = "\ud83d\udcde"
- self.nextStepTitle = "What is telemetry?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class trivialPackage:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Packages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency."
- self.props = {"linesOfCode": "Lines of code"}
- self.suggestion = "Removing this package as a dependency and implementing its logic will reduce supply chain risk."
- self.title = "Trivial Package"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are trivial packages?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class troll:
- description: str
- props: dict
- title: str
- suggestion: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This package is a joke, parody, or includes undocumented or hidden behavior unrelated to its primary function."
- self.props = {"id": "Id", "note": "Note"}
- self.title = "Protestware or potentially unwanted behavior"
- self.suggestion = "Consider that consuming this package my come along with functionality unrelated to its primary purpose."
- self.emoji = "\ud83e\uddcc"
- self.nextStepTitle = "What is protestware?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class typeModuleCompatibility:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package is CommonJS, but has a dependency which is type: \"module\". The two are likely incompatible."
- self.suggestion = "The package needs to switch to dynamic import on the esmodule dependency, or convert to esm itself. Consumers may experience errors resulting from this incompatibility."
- self.title = "CommonJS depending on ESModule"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "Why can't CJS depend on ESM?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class uncaughtOptionalDependency:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package uses an optional dependency without handling a missing dependency exception. If you install it without the optional dependencies then it could cause runtime errors."
- self.props = {"name": "Name"}
- self.suggestion = "Package should handle the loading of the dependency when it is not present, or convert the optional dependency into a regular dependency."
- self.title = "Uncaught optional dependency"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "Why are uncaught optional dependencies?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class unclearLicense:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package contains a reference to a license without a matching LICENSE file."
- self.props = {"possibleLicenseId": "Possible license id"}
- self.suggestion = "Add a LICENSE file that matches the license field in package.json. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#license"
- self.title = "Unclear license"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are unclear licenses?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class shrinkwrap:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package contains a shrinkwrap file. This may allow the package to bypass normal install procedures."
- self.suggestion = "Packages should never use npm shrinkwrap files due to the dangers they pose."
- self.title = "NPM Shrinkwrap"
- self.emoji = "\ud83e\uddca"
- self.nextStepTitle = "What is a shrinkwrap file?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class unmaintained:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package has not been updated in more than 5 years and may be unmaintained. Problems with the package may go unaddressed."
- self.props = {"lastPublish": "Last publish"}
- self.suggestion = "Package should publish periodic maintenance releases if they are maintained, or deprecate if they have no intention in further maintenance."
- self.title = "Unmaintained"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are unmaintained packages?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class unpublished:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package version was not found on the registry. It may exist on a different registry and need to be configured to pull from that registry."
- self.props = {"version": "The version that was not found"}
- self.suggestion = "Packages can be removed from the registry by manually un-publishing, a security issue removal, or may simply never have been published to the registry. Reliance on these packages will cause problem when they are not found."
- self.title = "Unpublished package"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are unpublished packages?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class unresolvedRequire:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package imports a file which does not exist and may not work as is. It could also be importing a file that will be created at runtime which could be a vector for running malicious code."
- self.suggestion = "Fix imports so that they require declared dependencies or existing files."
- self.title = "Unresolved require"
- self.emoji = "\ud83d\udd75\ufe0f"
- self.nextStepTitle = "What is unresolved require?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class unsafeCopyright:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "(Experimental) Package contains a copyright but no license. Using this package may expose you to legal risk."
- self.suggestion = "Clarify the license type by adding a license field to package.json and a LICENSE file."
- self.title = "Unsafe copyright"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is unsafe copyright?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class unstableOwnership:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "A new collaborator has begun publishing package versions. Package stability and security risk may be elevated."
- self.props = {"author": "Author"}
- self.suggestion = "Try to reduce the amount of authors you depend on to reduce the risk to malicious actors gaining access to your supply chain. Packages should remove inactive collaborators with publishing rights from packages on npm."
- self.title = "Unstable ownership"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What is unstable ownership?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class unusedDependency:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package has unused dependencies. This package depends on code that it does not use. This can increase the attack surface for malware and slow down installation."
- self.props = {"name": "Name", "version": "Version"}
- self.suggestion = "Packages should only specify dependencies that they use directly."
- self.title = "Unused dependency"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are unused dependencies?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class urlStrings:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package contains fragments of external URLs or IP addresses, which may indicate that it covertly exfiltrates data."
- self.props = {"urlFragment": "URL Fragment"}
- self.suggestion = "Avoid using packages that make connections to the network, since this helps to leak data."
- self.title = "URL strings"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are URL strings?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class usesEval:
- description: str
- props: dict
- suggestion: str
- title: str
- emoji: str
- capabilityName: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package uses eval() which is a dangerous function. This prevents the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior."
- self.props = {"evalType": "Eval type"}
- self.suggestion = "Avoid packages that use eval, since this could potentially execute any code."
- self.title = "Uses eval"
- self.emoji = "\u26a0\ufe0f"
- self.capabilityName = "eval"
- self.nextStepTitle = "What is eval?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class zeroWidth:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "Package files contain zero width unicode characters. This could indicate a supply chain attack."
- self.suggestion = "Packages should remove unnecessary zero width unicode characters and use their visible counterparts."
- self.title = "Zero width unicode chars"
- self.emoji = "\u26a0\ufe0f"
- self.nextStepTitle = "What are zero width unicode characters?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class floatingDependency:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
- props: dict
-
- def __init__(self):
- self.description = "Package has a dependency with a floating version range. This can cause issues if the dependency publishes a new major version."
- self.suggestion = "Packages should specify properly semver ranges to avoid version conflicts."
- self.title = "Floating dependency"
- self.emoji = "\ud83c\udf88"
- self.nextStepTitle = "What are floating dependencies?"
- self.props = {"dependency": "Dependency"}
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class unpopularPackage:
- description: str
- suggestion: str
- title: str
- emoji: str
- nextStepTitle: str
-
- def __init__(self):
- self.description = "This package is not very popular."
- self.suggestion = "Unpopular packages may have less maintenance and contain other problems."
- self.title = "Unpopular package"
- self.emoji = "\ud83c\udfda\ufe0f"
- self.nextStepTitle = "What are unpopular packages?"
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class AllIssues:
- badEncoding: badEncoding
- badSemver: badSemver
- badSemverDependency: badSemverDependency
- bidi: bidi
- binScriptConfusion: binScriptConfusion
- chronoAnomaly: chronoAnomaly
- criticalCVE: criticalCVE
- cve: cve
- debugAccess: debugAccess
- deprecated: deprecated
- deprecatedException: deprecatedException
- explicitlyUnlicensedItem: explicitlyUnlicensedItem
- unidentifiedLicense: unidentifiedLicense
- noLicenseFound: noLicenseFound
- copyleftLicense: copyleftLicense
- nonpermissiveLicense: nonpermissiveLicense
- miscLicenseIssues: miscLicenseIssues
- deprecatedLicense: deprecatedLicense
- didYouMean: didYouMean
- dynamicRequire: dynamicRequire
- emptyPackage: emptyPackage
- envVars: envVars
- extraneousDependency: extraneousDependency
- fileDependency: fileDependency
- filesystemAccess: filesystemAccess
- gitDependency: gitDependency
- gitHubDependency: gitHubDependency
- hasNativeCode: hasNativeCode
- highEntropyStrings: highEntropyStrings
- homoglyphs: homoglyphs
- httpDependency: httpDependency
- installScripts: installScripts
- gptSecurity: gptSecurity
- gptAnomaly: gptAnomaly
- gptMalware: gptMalware
- potentialVulnerability: potentialVulnerability
- invalidPackageJSON: invalidPackageJSON
- invisibleChars: invisibleChars
- licenseChange: licenseChange
- licenseException: licenseException
- longStrings: longStrings
- missingTarball: missingTarball
- majorRefactor: majorRefactor
- malware: malware
- manifestConfusion: manifestConfusion
- mediumCVE: mediumCVE
- mildCVE: mildCVE
- minifiedFile: minifiedFile
- missingAuthor: missingAuthor
- missingDependency: missingDependency
- missingLicense: missingLicense
- mixedLicense: mixedLicense
- ambiguousClassifier: ambiguousClassifier
- modifiedException: modifiedException
- modifiedLicense: modifiedLicense
- networkAccess: networkAccess
- newAuthor: newAuthor
- noAuthorData: noAuthorData
- noBugTracker: noBugTracker
- noREADME: noREADME
- noRepository: noRepository
- noTests: noTests
- noV1: noV1
- noWebsite: noWebsite
- nonFSFLicense: nonFSFLicense
- nonOSILicense: nonOSILicense
- nonSPDXLicense: nonSPDXLicense
- notice: notice
- obfuscatedFile: obfuscatedFile
- obfuscatedRequire: obfuscatedRequire
- peerDependency: peerDependency
- semverAnomaly: semverAnomaly
- shellAccess: shellAccess
- shellScriptOverride: shellScriptOverride
- suspiciousString: suspiciousString
- telemetry: telemetry
- trivialPackage: trivialPackage
- troll: troll
- typeModuleCompatibility: typeModuleCompatibility
- uncaughtOptionalDependency: uncaughtOptionalDependency
- unclearLicense: unclearLicense
- shrinkwrap: shrinkwrap
- unmaintained: unmaintained
- unpublished: unpublished
- unresolvedRequire: unresolvedRequire
- unsafeCopyright: unsafeCopyright
- unstableOwnership: unstableOwnership
- unusedDependency: unusedDependency
- urlStrings: urlStrings
- usesEval: usesEval
- zeroWidth: zeroWidth
- floatingDependency: floatingDependency
- unpopularPackage: unpopularPackage
- def __init__(self):
- self.badEncoding = badEncoding()
- self.badSemver = badSemver()
- self.badSemverDependency = badSemverDependency()
- self.bidi = bidi()
- self.binScriptConfusion = binScriptConfusion()
- self.chronoAnomaly = chronoAnomaly()
- self.criticalCVE = criticalCVE()
- self.cve = cve()
- self.debugAccess = debugAccess()
- self.deprecated = deprecated()
- self.deprecatedException = deprecatedException()
- self.explicitlyUnlicensedItem = explicitlyUnlicensedItem()
- self.unidentifiedLicense = unidentifiedLicense()
- self.noLicenseFound = noLicenseFound()
- self.copyleftLicense = copyleftLicense()
- self.nonpermissiveLicense = nonpermissiveLicense()
- self.miscLicenseIssues = miscLicenseIssues()
- self.deprecatedLicense = deprecatedLicense()
- self.didYouMean = didYouMean()
- self.dynamicRequire = dynamicRequire()
- self.emptyPackage = emptyPackage()
- self.envVars = envVars()
- self.extraneousDependency = extraneousDependency()
- self.fileDependency = fileDependency()
- self.filesystemAccess = filesystemAccess()
- self.gitDependency = gitDependency()
- self.gitHubDependency = gitHubDependency()
- self.hasNativeCode = hasNativeCode()
- self.highEntropyStrings = highEntropyStrings()
- self.homoglyphs = homoglyphs()
- self.httpDependency = httpDependency()
- self.installScripts = installScripts()
- self.gptSecurity = gptSecurity()
- self.gptAnomaly = gptAnomaly()
- self.gptMalware = gptMalware()
- self.potentialVulnerability = potentialVulnerability()
- self.invalidPackageJSON = invalidPackageJSON()
- self.invisibleChars = invisibleChars()
- self.licenseChange = licenseChange()
- self.licenseException = licenseException()
- self.longStrings = longStrings()
- self.missingTarball = missingTarball()
- self.majorRefactor = majorRefactor()
- self.malware = malware()
- self.manifestConfusion = manifestConfusion()
- self.mediumCVE = mediumCVE()
- self.mildCVE = mildCVE()
- self.minifiedFile = minifiedFile()
- self.missingAuthor = missingAuthor()
- self.missingDependency = missingDependency()
- self.missingLicense = missingLicense()
- self.mixedLicense = mixedLicense()
- self.ambiguousClassifier = ambiguousClassifier()
- self.modifiedException = modifiedException()
- self.modifiedLicense = modifiedLicense()
- self.networkAccess = networkAccess()
- self.newAuthor = newAuthor()
- self.noAuthorData = noAuthorData()
- self.noBugTracker = noBugTracker()
- self.noREADME = noREADME()
- self.noRepository = noRepository()
- self.noTests = noTests()
- self.noV1 = noV1()
- self.noWebsite = noWebsite()
- self.nonFSFLicense = nonFSFLicense()
- self.nonOSILicense = nonOSILicense()
- self.nonSPDXLicense = nonSPDXLicense()
- self.notice = notice()
- self.obfuscatedFile = obfuscatedFile()
- self.obfuscatedRequire = obfuscatedRequire()
- self.peerDependency = peerDependency()
- self.semverAnomaly = semverAnomaly()
- self.shellAccess = shellAccess()
- self.shellScriptOverride = shellScriptOverride()
- self.suspiciousString = suspiciousString()
- self.telemetry = telemetry()
- self.trivialPackage = trivialPackage()
- self.troll = troll()
- self.typeModuleCompatibility = typeModuleCompatibility()
- self.uncaughtOptionalDependency = uncaughtOptionalDependency()
- self.unclearLicense = unclearLicense()
- self.shrinkwrap = shrinkwrap()
- self.unmaintained = unmaintained()
- self.unpublished = unpublished()
- self.unresolvedRequire = unresolvedRequire()
- self.unsafeCopyright = unsafeCopyright()
- self.unstableOwnership = unstableOwnership()
- self.unusedDependency = unusedDependency()
- self.urlStrings = urlStrings()
- self.usesEval = usesEval()
- self.zeroWidth = zeroWidth()
- self.floatingDependency = floatingDependency()
- self.unpopularPackage = unpopularPackage()
diff --git a/socketsecurity/core/licenses.py b/socketsecurity/core/licenses.py
deleted file mode 100644
index 25ad0d8..0000000
--- a/socketsecurity/core/licenses.py
+++ /dev/null
@@ -1,21574 +0,0 @@
-import json
-
-
-__all__ = [
- "Licenses",
- "GPL10only",
- "libpng20",
- "AdobeUtopia",
- "Pixar",
- "GCRdocs",
- "OLDAP28",
- "CCBYNC30",
- "SSHshort",
- "LOOP",
- "GPL10plus",
- "pythonldap",
- "xzoom",
- "BSD4ClauseShortened",
- "APAFML",
- "OSL21",
- "RSCPL",
- "NetSNMP",
- "BSD3ClauseNoNuclearLicense",
- "EUPL10",
- "LGPL20",
- "ZPL21",
- "MITCMU",
- "MirOS",
- "Unicode30",
- "HPNDdoc",
- "OGDLTaiwan10",
- "CPOL102",
- "Baekmuk",
- "CECILL11",
- "BUSL11",
- "psfrag",
- "Watcom10",
- "IBMpibs",
- "SCEA",
- "Condor11",
- "AGPL30",
- "Vim",
- "URTRLE",
- "LiLiQP11",
- "GFDL11invariantsonly",
- "BSD3ClauseAttribution",
- "BoehmGC",
- "TCPwrappers",
- "SGIOpenGL",
- "SL",
- "MPL10",
- "dtoa",
- "TOSL",
- "OAR",
- "LPPL11",
- "Apache11",
- "HPNDFennebergLivingston",
- "QPL10INRIA2004",
- "Libpng",
- "OLDAP24",
- "ECL10",
- "BSDProtection",
- "HTMLTIDY",
- "PADL",
- "CNRIJython",
- "SugarCRM113",
- "BSD3ClauseLBNL",
- "ulem",
- "RPL15",
- "Spencer94",
- "SunPPP",
- "Artistic10cl8",
- "Imlib2",
- "Unlicense",
- "EPICS",
- "BSD3ClauseClear",
- "BSDAdvertisingAcknowledgement",
- "BSD3ClauseModification",
- "curl",
- "Multics",
- "SPL10",
- "GFDL12only",
- "BitstreamVera",
- "GPL20orlater",
- "DRL10",
- "OLDAP11",
- "Artistic20",
- "OGC10",
- "HPNDsellregexpr",
- "OLFL13",
- "WidgetWorkshop",
- "iMatix",
- "pnmstitch",
- "DRL11",
- "bzip2106",
- "OUDA10",
- "Cube",
- "TPDL",
- "W3C",
- "BitstreamCharter",
- "CornellLosslessJPEG",
- "Frameworx10",
- "X11",
- "Zimbra14",
- "Crossword",
- "FSFAPnowarrantydisclaimer",
- "CERNOHL12",
- "Xfig",
- "HPNDPbmplus",
- "MartinBirgmeier",
- "checkmk",
- "BSD3Clause",
- "GPL30withGCCexception",
- "CCBYNCND30DE",
- "Latex2etranslatednotice",
- "OLDAP25",
- "CCBYSA20UK",
- "Calderanopreamble",
- "Parity700",
- "UnicodeDFS2015",
- "LGPL21only",
- "Apache10",
- "Parity600",
- "GFDL12noinvariantsorlater",
- "EUDatagrid",
- "AdobeDisplayPostScript",
- "CCBY25AU",
- "LPPL10",
- "GFDL13noinvariantsonly",
- "MPL11",
- "OGLUK20",
- "OFFIS",
- "HPNDKevlinHenney",
- "AMDnewlib",
- "CCBYNC10",
- "HaskellReport",
- "EPL10",
- "BSD3ClauseOpenMPI",
- "GD",
- "MPL20nocopyleftexception",
- "NAIST2003",
- "CERNOHLW20",
- "CECILL10",
- "ZPL20",
- "Glide",
- "Spencer99",
- "EUPL11",
- "LPPL13c",
- "LGPL21",
- "CCBY40",
- "MITopengroup",
- "ICU",
- "OSL20",
- "CCBY30NL",
- "AGPL10",
- "psutils",
- "GPL20withbisonexception",
- "SGIB20",
- "zeroBSD",
- "NRL",
- "SHL05",
- "FreeBSDDOC",
- "HPNDsellMITdisclaimerxserver",
- "OPLUK30",
- "DLDEZERO20",
- "BSDAttributionHPNDdisclaimer",
- "LGPLLR",
- "CCBYNC25",
- "Zeeff",
- "GFDL11invariantsorlater",
- "PHP301",
- "Motosoto",
- "BSD43RENO",
- "OPUBL10",
- "APSL11",
- "TUBerlin20",
- "BSD2ClauseDarwin",
- "OLDAP22",
- "CAL10",
- "CCBYNCSA30",
- "InnerNet20",
- "threeparttable",
- "MSPL",
- "Zed",
- "HPNDsellvariant",
- "GraphicsGems",
- "pkgconf",
- "HPNDsellvariantMITdisclaimer",
- "YPL11",
- "NLPL",
- "CDLAPermissive10",
- "CCBYSA30",
- "CFITSIO",
- "Zimbra13",
- "ISC",
- "Kastrup",
- "PolyFormNoncommercial100",
- "MITenna",
- "GPL30",
- "mpich2",
- "AGPL30orlater",
- "gSOAP13b",
- "ClArtistic",
- "NISTPD",
- "CCBYND10",
- "ODbL10",
- "XFree8611",
- "SAXPD",
- "Linuxmanpages1para",
- "Ruby",
- "IECCodeComponentsEULA",
- "RPSL10",
- "CCBY30DE",
- "GPL20plus",
- "OpenSSLstandalone",
- "MIT0",
- "copyleftnext030",
- "OpenSSL",
- "AAL",
- "AFL30",
- "KnuthCTAN",
- "PolyFormSmallBusiness100",
- "Xdebug103",
- "gnuplot",
- "QPL10",
- "GFDL12",
- "PHP30",
- "OGTSL",
- "Bahyph",
- "blessing",
- "NBPL10",
- "Barr",
- "CCBYNCND25",
- "CERNOHLP20",
- "Borceux",
- "GFDL13only",
- "MSRL",
- "OPL10",
- "CCBYNC30DE",
- "EFL20",
- "AFL11",
- "CCBYNCND10",
- "OLDAP221",
- "Cronyx",
- "Mup",
- "zlibacknowledgement",
- "SGP4",
- "CCBYND25",
- "DLDEBY20",
- "CDDL10",
- "Adobe2006",
- "AGPL30only",
- "AMPAS",
- "GPL30plus",
- "MTLL",
- "TPL10",
- "CDDL11",
- "HP1989",
- "LiLiQRplus11",
- "CCBY20",
- "OFL11noRFN",
- "CC010",
- "SISSL12",
- "CommunitySpec10",
- "Catharon",
- "HPND",
- "CCBYND30",
- "CMUMachnodoc",
- "Elastic20",
- "LGPL20only",
- "JPNIC",
- "GPL20withfontexception",
- "GFDL13",
- "TGPPL10",
- "NPOSL30",
- "CDLASharing10",
- "OLDAP201",
- "CCBYNCND30",
- "W3C19980720",
- "CAL10CombinedWorkException",
- "SNIA",
- "copyleftnext031",
- "MakeIndex",
- "LPDdocument",
- "LucidaBitmapFonts",
- "BSD2ClausePatent",
- "fwlw",
- "libselinux10",
- "CCBYSA30DE",
- "CUDA10",
- "GFDL13orlater",
- "FTL",
- "Linuxmanpagescopyleft",
- "TORQUE11",
- "CCBYSA25",
- "InfoZIP",
- "PDDL10",
- "MulanPSL20",
- "Qhull",
- "CCBYNCSA10",
- "Arphic1999",
- "CNRIPythonGPLCompatible",
- "checkcvs",
- "TAPROHL10",
- "LGPL21orlater",
- "CCBYNCSA20FR",
- "YPL10",
- "CCBY30US",
- "CCBYNCSA25",
- "BSDInfernoNettverk",
- "sshkeyscan",
- "GPL30orlater",
- "BSD2ClauseViews",
- "ANTLRPD",
- "GPL10",
- "GFDL13noinvariantsorlater",
- "APSL10",
- "OLDAP23",
- "Abstyles",
- "GPL20only",
- "BrianGladman2Clause",
- "LZMASDK911to920",
- "NLOD10",
- "metamail",
- "CCBYSA10",
- "mailprio",
- "HP1986",
- "XSkat",
- "COIL10",
- "bcryptSolarDesigner",
- "Nunit",
- "Apache20",
- "Spencer86",
- "LGPL21plus",
- "IPL10",
- "OGLUK10",
- "Linuxmanpagescopyleftvar",
- "CCBYNCSA40",
- "AMLglslang",
- "GLWTPL",
- "BSL10",
- "ASWFDigitalAssets11",
- "ANTLRPDfallback",
- "xinetd",
- "Latex2e",
- "JPLimage",
- "MSLPL",
- "CCBYNCND30IGO",
- "NCSA",
- "AGPL10orlater",
- "gtkbook",
- "BSD3ClauseNoNuclearWarranty",
- "RPL11",
- "PSF20",
- "swrule",
- "CNRIPython",
- "GPL20withclasspathexception",
- "AMDPLPA",
- "CCBYSA40",
- "ImageMagick",
- "OpenVision",
- "TTWL",
- "Intel",
- "Newsletr",
- "FergusonTwofish",
- "GPL30withautoconfexception",
- "OLDAP20",
- "SchemeReport",
- "Sendmail",
- "CCPDDC",
- "NGPL",
- "GFDL12noinvariantsonly",
- "Rdisc",
- "CCBYSA30AT",
- "MITKhronosold",
- "BSD2Clause",
- "SSLeaystandalone",
- "HPNDMITdisclaimer",
- "eGenix",
- "CCBY30AU",
- "NetCDF",
- "Symlinks",
- "LGPL30",
- "hdparm",
- "Python201",
- "RSAMD",
- "GL2PS",
- "OSL10",
- "SISSL",
- "SGIB10",
- "Minpack",
- "BSD4ClauseUC",
- "Eurosym",
- "CECILL20",
- "OCLC20",
- "Linuxmanpagescopyleft2para",
- "W3C20150513",
- "UnicodeTOU",
- "lsof",
- "LGPL20orlater",
- "UnixCrypt",
- "Naumen",
- "TermReadKey",
- "LZMASDK922",
- "GFDL13invariantsorlater",
- "Glulxe",
- "Leptonica",
- "DFSL10",
- "EPL20",
- "StandardMLNJ",
- "CCBYNC20",
- "Fair",
- "OML",
- "OFL10",
- "OSETPL21",
- "GFDL12orlater",
- "GFDL13invariantsonly",
- "HPNDUC",
- "OFL11",
- "VOSTROM",
- "xpp",
- "BSD2clausefirstlines",
- "APL10",
- "FSFULLR",
- "NISTPDfallback",
- "Soundex",
- "OSL30",
- "CDL10",
- "ZPL11",
- "libtiff",
- "GFDL11",
- "DOC",
- "AGPL10only",
- "libutilDavidNugent",
- "CCBYND40",
- "Mackerras3Clauseacknowledgment",
- "CECILL21",
- "HPNDINRIAIMAG",
- "NTP",
- "HPNDMarkusKuhn",
- "SAXPD20",
- "Noweb",
- "CCBYND30DE",
- "CCBYNCSA20DE",
- "CCBY30IGO",
- "SGIB11",
- "Jam",
- "OSL11",
- "SWL",
- "AFL12",
- "OLDAP222",
- "Entessa",
- "X11distributemodificationsvariant",
- "CCBY30AT",
- "GFDL11orlater",
- "CCBYNCND40",
- "MITadvertising",
- "Clips",
- "TTYP0",
- "NTP0",
- "TMate",
- "CCBYNCSA20UK",
- "NOSL",
- "AML",
- "HPNDdocsell",
- "MIT",
- "Kazlib",
- "IntelACPI",
- "BlueOak100",
- "FSFUL",
- "Artistic10",
- "OLDAP21",
- "GPL10orlater",
- "APSL12",
- "Xerox",
- "OGLUK30",
- "LPL10",
- "JasPer20",
- "diffmark",
- "RHeCos11",
- "CrystalStacker",
- "ISCVeillard",
- "BSD2ClauseFreeBSD",
- "LinuxOpenIB",
- "BSDSystemicsW3Works",
- "CUAOPL10",
- "HPNDexportUS",
- "NICTA10",
- "SMPPL",
- "AdobeGlyph",
- "JSON",
- "MITFestival",
- "MITfeh",
- "FSFAP",
- "ASWFDigitalAssets10",
- "xkeyboardconfigZinoviev",
- "softSurfer",
- "HPNDUCexportUS",
- "Aladdin",
- "MPL20",
- "WTFPL",
- "SHL051",
- "BSD43TAHOE",
- "ECL20",
- "OLDAP14",
- "Zlib",
- "LiLiQR11",
- "Plexus",
- "GPL20withautoconfexception",
- "OFL10RFN",
- "OFL11RFN",
- "CCBY25",
- "NPL11",
- "BSD3ClauseNoMilitaryLicense",
- "wxWindows",
- "CCBYNC40",
- "MITNFA",
- "UPL10",
- "UCAR",
- "Nokia",
- "BSD2ClauseNetBSD",
- "GPL30only",
- "BrianGladman3Clause",
- "eCos20",
- "SimPL20",
- "EUPL12",
- "MITWu",
- "SunPPP2000",
- "AFL20",
- "BSD3ClauseNoNuclearLicense2014",
- "CATOSL11",
- "IJG",
- "SSPL10",
- "etalab20",
- "MITtestregex",
- "CECILLB",
- "OGLCanada20",
- "dvipdfm",
- "LPL102",
- "Zend20",
- "CCBY10",
- "Beerware",
- "IPA",
- "DEC3Clause",
- "DSDP",
- "Hippocratic21",
- "GFDL11only",
- "bzip2105",
- "OLDAP13",
- "APSL20",
- "Sendmail823",
- "LGPL30only",
- "CCBYSA20",
- "LAL12",
- "NLOD20",
- "ADSL",
- "AdaCoredoc",
- "GPL20withGCCexception",
- "HPNDDEC",
- "ErlPL11",
- "NISTSoftware",
- "HPNDexportUSmodify",
- "BitTorrent10",
- "CERNOHL11",
- "GPL20",
- "FreeImage",
- "LGPL20plus",
- "Afmparse",
- "ODCBy10",
- "Dotseqn",
- "CCBYNCSA20",
- "FDKAAC",
- "MulanPSL10",
- "BSD4Clause",
- "BSD3Clauseflex",
- "OLDAP26",
- "UnicodeDFS2016",
- "MITModernVariant",
- "TCL",
- "CPAL10",
- "CCBYNCSA30IGO",
- "GFDL11noinvariantsorlater",
- "OFL10noRFN",
- "CCBYSA30IGO",
- "BSDSourceCode",
- "LPPL12",
- "mplus",
- "UMichMerit",
- "OLDAP27",
- "GFDL11noinvariantsonly",
- "VSL10",
- "Giftware",
- "CDLAPermissive20",
- "UCL10",
- "NCL",
- "LGPL30plus",
- "SMLNJ",
- "CERNOHLS20",
- "FBM",
- "Wsuipa",
- "Sleepycat",
- "BSDSourcebeginningfile",
- "OpenPBS23",
- "Caldera",
- "BitTorrent11",
- "snprintf",
- "IJGshort",
- "CPL10",
- "CMUMach",
- "Xnet",
- "BSD1Clause",
- "CCBYNCSA30DE",
- "SSHOpenSSH",
- "LAL13",
- "OLDAP12",
- "TUBerlin10",
- "Artistic10Perl",
- "magaz",
- "NASA13",
- "Interbase10",
- "GFDL12invariantsorlater",
- "PostgreSQL",
- "CECILLC",
- "mpipermissive",
- "Mackerras3Clause",
- "BSD3Clauseacpica",
- "CCBYSA21JP",
- "Python20",
- "EFL10",
- "MMIXware",
- "radvd",
- "FSFULLRWD",
- "Apps2p",
- "GFDL12invariantsonly",
- "AFL21",
- "CCBYNCND20",
- "LPPL13a",
- "BSDSystemics",
- "OCCTPL",
- "CCBY30",
- "McPheeslideshow",
- "Furuseth",
- "xlock",
- "BSD3ClauseSun",
- "NPL10",
- "CCBYND20",
- "NCGLUK20",
- "Saxpath",
- "LGPL30orlater",
- "w3m",
- "BSD3ClauseHP",
- "MPEGSSG",
- "SunPro",
-]
-
-class NoLicenseFound:
- isDeprecatedLicenseId: bool
- licenseText: str
- standardLicenseHeaderTemplate: str
- standardLicenseTemplate: str
- name: str
- licenseComments: str
- licenseId: str
- standardLicenseHeader: str
- crossRef: list
- seeAlso: list
- isOsiApproved: bool
- licenseTextHtml: str
- standardLicenseHeaderHtml: str
- python_name: str
-
- def __init__(self):
- self.isDeprecatedLicenseId = False
- self.licenseText = ""
- self.standardLicenseHeaderTemplate = ""
- self.standardLicenseTemplate = ""
- self.name = "No License Found"
- self.licenseComments = ""
- self.licenseId = "NoLicenseFound"
- self.standardLicenseHeader = ""
- self.crossRef = []
- self.seeAlso = []
- self.isOsiApproved = False
- self.licenseTextHtml = ""
- self.standardLicenseHeaderHtml = ""
- self.python_name = ""
-
- def __str__(self):
- return json.dumps(self.__dict__)
-
-
-class GPL10only:
- isDeprecatedLicenseId: bool
- licenseText: str
- standardLicenseHeaderTemplate: str
- standardLicenseTemplate: str
- name: str
- licenseComments: str
- licenseId: str
- standardLicenseHeader: str
- crossRef: list
- seeAlso: list
- isOsiApproved: bool
- licenseTextHtml: str
- standardLicenseHeaderHtml: str
- python_name: str
-
- def __init__(self):
- self.isDeprecatedLicenseId = False
- self.licenseText = "GNU GENERAL PUBLIC LICENSE\nVersion 1, February 1989\n\nCopyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n\nEveryone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.\n\nPreamble\n\nThe license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too.\n\nWhen we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.\n\nTo protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.\n\nFor example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights.\n\nWe protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.\n\nAlso, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.\n\nThe precise terms and conditions for copying, distribution and modification follow.\n\nGNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The \"Program\", below, refers to any such program or work, and a \"work based on the Program\" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as \"you\".\n\n1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy.\n\n2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following:\n\n a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and\n\n b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option).\n\n c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License.\n\n d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.\n\nMere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms.\n\n3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following:\n\n a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or,\n\n b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or,\n\n c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.)\n\nSource code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system.\n\n4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance.\n\n5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions.\n\n6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein.\n\n7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\n\nEach version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and \"any later version\", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation.\n\n8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.\n\nNO WARRANTY\n\n9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n\nEND OF TERMS AND CONDITIONS\n\nAppendix: How to Apply These Terms to Your New Programs\n\nIf you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.\n\nTo do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the \"copyright\" line and a pointer to where the full notice is found.\n\n \n GNU GENERAL PUBLIC LICENSE \n Copyright (C) 1989 Free Software Foundation, Inc. 51\n Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n \n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n \n Preamble\n \n The license agreements of most software companies try to keep\n users at the mercy of those companies. By contrast, our General\n Public License is intended to guarantee your freedom to share\n and change free software--to make sure the software is free for\n all its users. The General Public License applies to the Free\n Software Foundation's software and to any other program whose\n authors commit to using it. You can use it for your programs, too.\n \n When we speak of free software, we are referring to freedom, not\n price. Specifically, the General Public License is designed to\n make sure that you have the freedom to give away or sell copies\n of free software, that you receive source code or can get it if\n you want it, that you can change the software or use pieces of it\n in new free programs; and that you know you can do these things.\n \n To protect your rights, we need to make restrictions that forbid\n anyone to deny you these rights or to ask you to surrender the\n rights. These restrictions translate to certain responsibilities for\n you if you distribute copies of the software, or if you modify it.\n \n For example, if you distribute copies of a such a program, whether\n gratis or for a fee, you must give the recipients all the rights\n that you have. You must make sure that they, too, receive or\n can get the source code. And you must tell them their rights.\n \n We protect your rights with two steps: (1) copyright the\n software, and (2) offer you this license which gives you legal\n permission to copy, distribute and/or modify the software.\n \n Also, for each author's protection and ours, we want to make\n certain that everyone understands that there is no warranty for\n this free software. If the software is modified by someone else\n and passed on, we want its recipients to know that what they\n have is not the original, so that any problems introduced by\n others will not reflect on the original authors' reputations.\n \n The precise terms and conditions for copying,\n distribution and modification follow.\n \n GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS\n FOR COPYING, DISTRIBUTION AND MODIFICATION\n 0.\n This License Agreement applies to any program or other work which\n contains a notice placed by the copyright holder saying it may\n be distributed under the terms of this General Public License.\n The "Program", below, refers to any such program or work, and\n a "work based on the Program" means either the Program or any\n work containing the Program or a portion of it, either verbatim\n or with modifications. Each licensee is addressed as "you". 1.\n You may copy and distribute verbatim copies of the Program's\n source code as you receive it, in any medium, provided that you\n conspicuously and appropriately publish on each copy an appropriate\n copyright notice and disclaimer of warranty; keep intact all the\n notices that refer to this General Public License and to the absence\n of any warranty; and give any other recipients of the Program a\n copy of this General Public License along with the Program. You\n may charge a fee for the physical act of transferring a copy. 2.\n You may modify your copy or copies of the Program or any portion\n of it, and copy and distribute such modifications under the terms\n of Paragraph 1 above, provided that you also do the following: \n Mere aggregation of another independent work with the Program (or\n its derivative) on a volume of a storage or distribution medium\n does not bring the other work under the scope of these terms.\n 3.\n You may copy and distribute the Program (or a portion\n or derivative of it, under Paragraph 2) in object code\n or executable form under the terms of Paragraphs 1 and\n 2 above provided that you also do one of the following: \n Source code for a work means the preferred form of the work for\n making modifications to it. For an executable file, complete\n source code means all the source code for all modules it contains;\n but, as a special exception, it need not include source code for\n modules which are standard libraries that accompany the operating\n system on which the executable file runs, or for standard header\n files or definitions files that accompany that operating system.\n 4.\n You may not copy, modify, sublicense, distribute or transfer the\n Program except as expressly provided under this General Public\n License. Any attempt otherwise to copy, modify, sublicense,\n distribute or transfer the Program is void, and will automatically\n terminate your rights to use the Program under this License. However,\n parties who have received copies, or rights to use copies, from\n you under this General Public License will not have their licenses\n terminated so long as such parties remain in full compliance. 5.\n By copying, distributing or modifying the Program (or any\n work based on the Program) you indicate your acceptance of\n this license to do so, and all its terms and conditions. 6.\n Each time you redistribute the Program (or any work based on the\n Program), the recipient automatically receives a license from the\n original licensor to copy, distribute or modify the Program subject\n to these terms and conditions. You may not impose any further\n restrictions on the recipients' exercise of the rights granted herein. 7.\n The Free Software Foundation may publish revised and/or new\n versions of the General Public License from time to time. Such\n new versions will be similar in spirit to the present version,\n but may differ in detail to address new problems or concerns. \n Each version is given a distinguishing version number. If the\n Program specifies a version number of the license which applies\n to it and "any later version", you have the option of following\n the terms and conditions either of that version or of any later\n version published by the Free Software Foundation. If the Program\n does not specify a version number of the license, you may choose\n any version ever published by the Free Software Foundation.\n 8.\n If you wish to incorporate parts of the Program into other free\n programs whose distribution conditions are different, write to the\n author to ask for permission. For software which is copyrighted by the\n Free Software Foundation, write to the Free Software Foundation; we\n sometimes make exceptions for this. Our decision will be guided by the\n two goals of preserving the free status of all derivatives of our free\n software and of promoting the sharing and reuse of software generally. \n NO WARRANTY\n 9.\n BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT\n WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER\n PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,\n EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF\n THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU\n ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n 10.\n IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR\n DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL\n DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM\n (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED\n INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF\n THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER\n OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. \n END OF TERMS AND CONDITIONS\n \n Appendix: How to Apply These Terms to Your New Programs\n \n If you develop a new program, and you want it to be\n of the greatest possible use to humanity, the best\n way to achieve this is to make it free software which\n everyone can redistribute and change under these terms.\n \n To do so, attach the following notices to the program. It is safest\n to attach them to the start of each source file to most effectively\n convey the exclusion of warranty; and each file should have at least\n the "copyright" line and a pointer to where the full notice is found.\n \n <one line to give the program's name and a brief idea\n of what it does.> Copyright (C) 19yy <name of author>\n \n This program is free software; you can redistribute it\n and/or modify it under the terms of the GNU General Public\n License as published by the Free Software Foundation;\n either version 1, or (at your option) any later version.\n \n This program is distributed in the hope that it will be\n useful, but WITHOUT ANY WARRANTY; without even the implied\n warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program; if not, write to the Free Software\n Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n \n Also add information on how to contact you by electronic and paper mail.\n \n If the program is interactive, make it output a short\n notice like this when it starts in an interactive mode:\n \n Gnomovision version 69, Copyright (C) 19xx name of author\n Gnomovision comes with ABSOLUTELY NO WARRANTY; for details\n type `show w'. This is free software, and you are welcome to\n redistribute it under certain conditions; type `show c' for details.\n \n The hypothetical commands `show w' and `show c' should show the\n appropriate parts of the General Public License. Of course, the commands\n you use may be called something other than `show w' and `show c'; they\n could even be mouse-clicks or menu items--whatever suits your program.\n \n You should also get your employer (if you work as a programmer)\n or your school, if any, to sign a "copyright disclaimer" for\n the program, if necessary. Here a sample; alter the names:\n \n Yoyodyne, Inc., hereby disclaims all copyright interest in\n the program `Gnomovision' (a program to direct compilers\n to make passes at assemblers) written by James Hacker.\n \n <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice\n \n That's all there is to it!\n \n This program is free software; you can redistribute it and/or\n modify it under the terms of the GNU General Public License\n as published by the Free Software Foundation; version 1.\n \n This program is distributed in the hope that it will be\n useful, but WITHOUT ANY WARRANTY; without even the implied\n warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program; if not, write to the Free Software\n Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n PNG Reference Library License version 2 The software is supplied "as is", without warranty of any kind,\n express or implied, including, without limitation, the warranties\n of merchantability, fitness for a particular purpose, title, and\n non-infringement. In no event shall the Copyright owners, or\n anyone distributing the software, be liable for any damages or\n other liability, whether in contract, tort or otherwise, arising\n from, out of, or in connection with the software, or the use or\n other dealings in the software, even if advised of the possibility\n of such damage. Permission is hereby granted to use, copy, modify, and distribute\n this software, or portions hereof, for any purpose, without fee,\n subject to the following restrictions:\n \n
\n\n Version 1, February 1989\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n
\n Permission to use, reproduce, display and distribute the\n listed typefaces is hereby granted, provided that the Adobe\n Copyright notice appears in all whole and partial copies\n of the software and that the following trademark symbol and\n attribution appear in all unmodified copies of the software:\n
\n\n\n The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font Metric\n files) donated are:
\n\n
\n\n Utopia Regular
\n\n Utopia Italic
\n\n Utopia Bold
\n\n Utopia Bold Italic
\n\n
\n Modified Apache 2.0 License\n
\n\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n
\n\n\n Definitions.\n
\n\n\n "License" shall mean the terms and conditions\n for use, reproduction, and distribution as\n defined by Sections 1 through 9 of this document.\n
\n\n\n "Licensor" shall mean the copyright owner or entity authorized\n by the copyright owner that is granting the License.\n
\n\n\n "Legal Entity" shall mean the union of the acting entity\n and all other entities that control, are controlled by,\n or are under common control with that entity. For the\n purposes of this definition, "control" means (i) the power,\n direct or indirect, to cause the direction or management\n of such entity, whether by contract or otherwise, or (ii)\n ownership of fifty percent (50%) or more of the outstanding\n shares, or (iii) beneficial ownership of such entity.\n
\n\n\n "You" (or "Your") shall mean an individual or Legal\n Entity exercising permissions granted by this License.\n
\n\n\n "Source" form shall mean the preferred form for making\n modifications, including but not limited to software\n source code, documentation source, and configuration files.\n
\n\n\n "Object" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including\n but not limited to compiled object code, generated\n documentation, and conversions to other media types.\n
\n\n\n "Work" shall mean the work of authorship, whether in Source\n or Object form, made available under the License, as indicated\n by a copyright notice that is included in or attached to\n the work (an example is provided in the Appendix below).\n
\n\n\n "Derivative Works" shall mean any work, whether in Source\n or Object form, that is based on (or derived from) the\n Work and for which the editorial revisions, annotations,\n elaborations, or other modifications represent, as a whole,\n an original work of authorship. For the purposes of this\n License, Derivative Works shall not include works that\n remain separable from, or merely link (or bind by name) to\n the interfaces of, the Work and Derivative Works thereof.\n
\n\n\n "Contribution" shall mean any work of authorship, including\n the original version of the Work and any modifications or\n additions to that Work or Derivative Works thereof, that\n is intentionally submitted to Licensor for inclusion in the\n Work by the copyright owner or by an individual or Legal\n Entity authorized to submit on behalf of the copyright owner.\n For the purposes of this definition, "submitted" means any\n form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not\n limited to communication on electronic mailing lists, source\n code control systems, and issue tracking systems that are\n managed by, or on behalf of, the Licensor for the purpose of\n discussing and improving the Work, but excluding communication\n that is conspicuously marked or otherwise designated in\n writing by the copyright owner as "Not a Contribution."\n
\n\n\n "Contributor" shall mean Licensor and any individual or Legal\n Entity on behalf of whom a Contribution has been received\n by Licensor and subsequently incorporated within the Work.\n
\n\n\n Grant of Copyright License. Subject to the terms and\n conditions of this License, each Contributor hereby\n grants to You a perpetual, worldwide, non-exclusive,\n no-charge, royalty-free, irrevocable copyright license\n to reproduce, prepare Derivative Works of, publicly\n display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n
\n\n\n Grant of Patent License. Subject to the terms and conditions\n of this License, each Contributor hereby grants to You a\n perpetual, worldwide, non-exclusive, no-charge, royalty-free,\n irrevocable (except as stated in this section) patent license\n to make, have made, use, offer to sell, sell, import, and\n otherwise transfer the Work, where such license applies only\n to those patent claims licensable by such Contributor that\n are necessarily infringed by their Contribution(s) alone\n or by combination of their Contribution(s) with the Work to\n which such Contribution(s) was submitted. If You institute\n patent litigation against any entity (including a cross-claim\n or counterclaim in a lawsuit) alleging that the Work or\n a Contribution incorporated within the Work constitutes\n direct or contributory patent infringement, then any patent\n licenses granted to You under this License for that Work\n shall terminate as of the date such litigation is filed.\n
\n\n\n Redistribution. You may reproduce and distribute copies\n of the Work or Derivative Works thereof in any medium,\n with or without modifications, and in Source or Object\n form, provided that You meet the following conditions:\n
\n\n\n You must give any other recipients of the Work\n or Derivative Works a copy of this License; and\n
\n\n\n You must cause any modified files to carry prominent\n notices stating that You changed the files; and\n
\n\n\n You must retain, in the Source form of any Derivative\n Works that You distribute, all copyright, patent,\n trademark, and attribution notices from the Source\n form of the Work, excluding those notices that do\n not pertain to any part of the Derivative Works; and\n
\n\n\n If the Work includes a "NOTICE" text file as part\n of its distribution, then any Derivative Works that\n You distribute must include a readable copy of the\n attribution notices contained within such NOTICE file,\n excluding those notices that do not pertain to any\n part of the Derivative Works, in at least one of the\n following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source\n form or documentation, if provided along with the\n Derivative Works; or, within a display generated by\n the Derivative Works, if and wherever such third-party\n notices normally appear. The contents of the NOTICE\n file are for informational purposes only and do not\n modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute,\n alongside or as an addendum to the NOTICE text from\n the Work, provided that such additional attribution\n notices cannot be consTrued as modifying the License.\n
\n\n\n You may add Your own copyright statement to Your\n modifications and may provide additional or different\n license terms and conditions for use, reproduction,\n or distribution of Your modifications, or for any\n such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise\n complies with the conditions stated in this License.\n
\n\n\n Submission of Contributions. Unless You explicitly state\n otherwise, any Contribution intentionally submitted for\n inclusion in the Work by You to the Licensor shall be\n under the terms and conditions of this License, without\n any additional terms or conditions. Notwithstanding\n the above, nothing herein shall supersede or modify the\n terms of any separate license agreement you may have\n executed with Licensor regarding such Contributions.\n
\n\n\n Trademarks. This License does not grant permission\n to use the trade names, trademarks, service marks,\n or product names of the Licensor and its affiliates,\n except as required to comply with Section 4(c) of the\n License and to reproduce the content of the NOTICE file.\n
\n\n\n Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an "AS IS" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\n or implied, including, without limitation, any warranties\n or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY,\n or FITNESS FOR A PARTICULAR PURPOSE. You are solely\n responsible for determining the appropriateness of using\n or redistributing the Work and assume any risks associated\n with Your exercise of permissions under this License.\n
\n\n\n Limitation of Liability. In no event and under no legal\n theory, whether in tort (including negligence), contract,\n or otherwise, unless required by applicable law (such as\n deliberate and grossly negligent acts) or agreed to in\n writing, shall any Contributor be liable to You for damages,\n including any direct, indirect, special, incidental, or\n consequential damages of any character arising as a result of\n this License or out of the use or inability to use the Work\n (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n
\n\n\n Accepting Warranty or Additional Liability. While\n redistributing the Work or Derivative Works thereof, You may\n choose to offer, and charge a fee for, acceptance of support,\n warranty, indemnity, or other liability obligations and/or\n rights consistent with this License. However, in accepting\n such obligations, You may act only on Your own behalf and\n on Your sole responsibility, not on behalf of any other\n Contributor, and only if You agree to indemnify, defend, and\n hold each Contributor harmless for any liability incurred\n by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n
\n\n\n Licensed under the Apache License, Version 2.0 (the "Apache License")\n with the following modification; you may not use this file except in\n compliance with the Apache License and the following modification to it:\n Section 6. Trademarks. is deleted and replaced with:\n
\n\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor\n and its affiliates, except as required to comply with Section 4(c) of\n the License and to reproduce the content of the NOTICE file.\n
\n\n\n You may obtain a copy of the Apache License at\n
\n\n\n http://www.apache.org/licenses/LICENSE-2.0\n
\n\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the Apache License with the above modification is\n distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n KIND, either express or implied. See the Apache License for the specific\n language governing permissions and limitations under the Apache License.\n
\n\n " - self.python_name = "Pixar" - - def __str__(self): - return json.dumps(self.__dict__) - - -class GCRdocs: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "This work may be reproduced and distributed in whole or in part, in\nany medium, physical or electronic, so as long as this copyright\nnotice remains intact and unchanged on all copies. Commercial\nredistribution is permitted and encouraged, but you may not\nredistribute, in whole or in part, under terms more restrictive than\nthose under which you received it. If you redistribute a modified or\ntranslated version of this work, you must also make the source code to\nthe modified or translated version available in electronic form\nwithout charge. However, mere aggregation as part of a larger work\nshall not count as a modification for this purpose.\n\nAll code examples in this work are placed into the public domain,\nand may be used, modified and redistributed without restriction.\n\nBECAUSE THIS WORK IS LICENSED FREE OF CHARGE, THERE IS NO\nWARRANTY FOR THE WORK, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\nEXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\nOTHER PARTIES PROVIDE THE WORK \"AS IS\" WITHOUT WARRANTY OF ANY\nKIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE. SHOULD THE WORK PROVE DEFECTIVE, YOU ASSUME\nTHE COST OF ALL NECESSARY REPAIR OR CORRECTION.\n\nIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\nWRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\nAND/OR REDISTRIBUTE THE WORK AS PERMITTED ABOVE, BE LIABLE TO YOU\nFOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\nCONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\nWORK, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGES.\n" - self.standardLicenseTemplate = "This work may be reproduced and distributed in whole or in part, in any medium, physical or electronic, so as long as this copyright notice remains intact and unchanged on all copies. Commercial redistribution is permitted and encouraged, but you may not redistribute, in whole or in part, under terms more restrictive than those under which you received it. If you redistribute a modified or translated version of this work, you must also make the source code to the modified or translated version available in electronic form without charge. However, mere aggregation as part of a larger work shall not count as a modification for this purpose.\n\nAll code examples in this work are placed into the public domain, and may be used, modified and redistributed without restriction.\n\nBECAUSE THIS WORK IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE WORK, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE WORK \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. SHOULD THE WORK PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY REPAIR OR CORRECTION.\n\nIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE WORK AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE WORK, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n\n" - self.name = "Gnome GCR Documentation License" - self.licenseId = "GCR-docs" - self.crossRef = [{"match": "False", "url": "https://github.com/GNOME/gcr/blob/master/docs/COPYING", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:12:28Z", "isWayBackLink": False, "order": 0}] - self.seeAlso = ["https://github.com/GNOME/gcr/blob/master/docs/COPYING"] - self.isOsiApproved = False - self.licenseTextHtml = "\n\n This work may be reproduced and distributed in whole or in part,\n in any medium, physical or electronic, so as long as this\n copyright notice remains intact and unchanged on all\n copies. Commercial redistribution is permitted and\n encouraged, but you may not redistribute, in whole\n or in part, under terms more restrictive than those\n under which you received it. If you redistribute a modified\n or translated version of this work, you must also make the\n source code to the modified or translated version\n available in electronic form without charge.\n However, mere aggregation as part of a larger work\n shall not count as a modification for this purpose.\n
\n\n\n All code examples in this work are placed into the\n public domain, and may be used, modified and\n redistributed without restriction.\n
\n\n\n BECAUSE THIS WORK IS LICENSED FREE OF CHARGE, THERE\n IS NO WARRANTY FOR THE WORK, TO THE EXTENT PERMITTED\n BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN\n WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n PROVIDE THE WORK "AS IS" WITHOUT WARRANTY OF ANY KIND,\n EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n PARTICULAR PURPOSE. SHOULD THE WORK PROVE DEFECTIVE,\n YOU ASSUME THE COST OF ALL NECESSARY REPAIR OR\n CORRECTION.\n
\n\n\n IN NO EVENT UNLESS REQUIRED BY\n APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT\n HOLDER,\n OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE WORK\n AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\n GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n OUT\n OF THE USE OR INABILITY TO USE THE WORK, EVEN IF SUCH HOLDER OR\n OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n
\n\n " - self.python_name = "GCRdocs" - - def __str__(self): - return json.dumps(self.__dict__) - - -class OLDAP28: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "The OpenLDAP Public License\nVersion 2.8, 17 August 2003\n\nRedistribution and use of this software and associated documentation (\"Software\"), with or without modification, are permitted provided that the following conditions are met:\n\n1. Redistributions in source form must retain copyright statements and notices,\n\n2. Redistributions in binary form must reproduce applicable copyright statements and notices, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution, and\n\n3. Redistributions must contain a verbatim copy of this document.\n\nThe OpenLDAP Foundation may revise this license from time to time. Each revision is distinguished by a version number. You may use this Software under terms of this license revision or under the terms of any subsequent revision of the license.\n\nTHIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S) OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nThe names of the authors and copyright holders must not be used in advertising or otherwise to promote the sale, use or other dealing in this Software without specific, written prior permission. Title to copyright in this Software shall at all times remain with copyright holders.\n\nOpenLDAP is a registered trademark of the OpenLDAP Foundation.\n\nCopyright 1999-2003 The OpenLDAP Foundation, Redwood City, California, USA. All Rights Reserved. Permission to copy and distribute verbatim copies of this document is granted.\n" - self.standardLicenseTemplate = "<The OpenLDAP Public License\n
\n\nVersion 2.8, 17 August 2003\n
Redistribution and use of this software and associated documentation ("Software"), with or without\n modification, are permitted provided that the following conditions are met:
\n\nThe OpenLDAP Foundation may revise this license from time to time. Each revision is distinguished by a\n version number. You may use this Software under terms of this license revision or under the terms of\n any subsequent revision of the license.
\n\nTHIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR\n IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENLDAP FOUNDATION, ITS\n CONTRIBUTORS, OR THE AUTHOR(S) OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.
\n\nThe names of the authors and copyright holders must not be used in advertising or otherwise to promote\n the sale, use or other dealing in this Software without specific, written prior permission. Title to\n copyright in this Software shall at all times remain with copyright holders.
\n\nOpenLDAP is a registered trademark of the OpenLDAP Foundation.
\n\n\n Copyright 1999-2003 The OpenLDAP Foundation, Redwood City, California, USA. All Rights Reserved.\n Permission to copy and distribute verbatim copies of this document is granted.\n
\n\n " - self.python_name = "OLDAP28" - - def __str__(self): - return json.dumps(self.__dict__) - - -class CCBYNC30: - isDeprecatedLicenseId: bool - isFsfLibre: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.isFsfLibre = False - self.licenseText = "Creative Commons Attribution-NonCommercial 3.0 Unported\n\n CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.\n\nLicense\n\nTHE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE (\"CCPL\" OR \"LICENSE\"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.\n\nBY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.\n\n1. Definitions\n\n a. \"Adaptation\" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image (\"synching\") will be considered an Adaptation for the purpose of this License.\n\n b. \"Collection\" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.\n\n c. \"Distribute\" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.\n\n d. \"Licensor\" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.\n\n e. \"Original Author\" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.\n\n f. \"Work\" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.\n\n g. \"You\" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.\n\n h. \"Publicly Perform\" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.\n\n i. \"Reproduce\" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.\n\n2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.\n\n3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:\n\n a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;\n\n b. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked \"The original work was translated from English to Spanish,\" or a modification could indicate \"The original work has been modified.\";\n\n c. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,\n\n d. to Distribute and Publicly Perform Adaptations.\n\nThe above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d).\n\n4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:\n\n a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested.\n\n b. You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works.\n\n c. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution (\"Attribution Parties\") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and, (iv) consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., \"French translation of the Work by Original Author,\" or \"Screenplay based on original Work by Original Author\"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.\n\n d. For the avoidance of doubt:\n\n i. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;\n\n ii. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and,\n\n iii. Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(c).\n\n e. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.\n\n5. Representations, Warranties and Disclaimer\n\nUNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.\n\n6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n\n7. Termination\n\n a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.\n\n b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.\n\n8. Miscellaneous\n\n a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.\n\n b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.\n\n c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.\n\n d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.\n\n e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.\n\n f. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.\n\nCreative Commons Notice\n\nCreative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor.\n\nExcept for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark \"Creative Commons\" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of the License.\n\nCreative Commons may be contacted at http://creativecommons.org/.\n" - self.standardLicenseTemplate = "<Creative Commons Attribution-NonCommercial 3.0 Unported
\n\nCREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS\n LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON\n AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED,\n AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
\n\nLicense
\n\nTHE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE\n ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE\n LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS\n PROHIBITED.
\n\nBY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS\n LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE\n RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
\n\nThe above rights may be exercised in all media and formats whether now known or hereafter\n devised. The above rights include the right to make such modifications as are technically\n necessary to exercise the rights in other media and formats. Subject to Section 8(f), all\n rights not expressly granted by Licensor are hereby reserved, including but not limited to\n the rights set forth in Section 4(d).
\n\nUNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND\n MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED,\n STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,\n FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS,\n ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME\n JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT\n APPLY TO YOU.
\n\nCreative Commons Notice
\n\nCreative Commons is not a party to this License, and makes no warranty whatsoever in connection with the\n Work. Creative Commons will not be liable to You or any party on any legal theory for any damages\n whatsoever, including without limitation any general, special, incidental or consequential damages\n arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative\n Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and\n obligations of Licensor.
\n\nExcept for the limited purpose of indicating to the public that the Work is licensed under the CCPL,\n Creative Commons does not authorize the use by either party of the trademark "Creative\n Commons" or any related trademark or logo of Creative Commons without the prior written consent\n of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current\n trademark usage guidelines, as may be published on its website or otherwise made available upon\n request from time to time. For the avoidance of doubt, this trademark restriction does not form part\n of the License.
\n\nCreative Commons may be contacted at http://creativecommons.org/.
\n\n " - self.python_name = "CCBYNC30" - - def __str__(self): - return json.dumps(self.__dict__) - - -class SSHshort: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseComments: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "As far as I am concerned, the code I have written for this software\ncan be used freely for any purpose. Any derived versions of this\nsoftware must be clearly marked as such, and if the derived work is\nincompatible with the protocol description in the RFC file, it must be\ncalled by a name other than \"ssh\" or \"Secure Shell\".\n" - self.standardLicenseTemplate = "As far as I am concerned, the code I have written for this software can be used freely for any purpose. Any derived versions of this software must be clearly marked as such, and if the derived work is incompatible with the protocol description in the RFC file, it must be called by a name other than \"ssh\" or \"Secure Shell\".\n\n" - self.name = "SSH short notice" - self.licenseComments = "This is short version of SSH-OpenSSH that appears in some files associated with the original SSH implementation." - self.licenseId = "SSH-short" - self.crossRef = [{"match": "N/A", "url": "https://joinup.ec.europa.eu/svn/lesoll/trunk/italc/lib/src/dsa_key.cpp", "isValid": True, "isLive": False, "timestamp": "2024-04-24T11:21:01Z", "isWayBackLink": False, "order": 2}, {"match": "N/A", "url": "http://web.mit.edu/kolya/.f/root/athena.mit.edu/sipb.mit.edu/project/openssh/OldFiles/src/openssh-2.9.9p2/ssh-add.1", "isValid": True, "isLive": False, "timestamp": "2024-04-24T11:21:01Z", "isWayBackLink": False, "order": 1}, {"match": "False", "url": "https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/pathnames.h", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:21:02Z", "isWayBackLink": False, "order": 0}] - self.seeAlso = ["https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/pathnames.h", "http://web.mit.edu/kolya/.f/root/athena.mit.edu/sipb.mit.edu/project/openssh/OldFiles/src/openssh-2.9.9p2/ssh-add.1", "https://joinup.ec.europa.eu/svn/lesoll/trunk/italc/lib/src/dsa_key.cpp"] - self.isOsiApproved = False - self.licenseTextHtml = "\nAs far as I am concerned, the code I have written for this software\n can be used freely for any purpose. Any derived versions of this\n software must be clearly marked as such, and if the derived work is\n incompatible with the protocol description in the RFC file, it must be\n called by a name other than "ssh" or "Secure Shell".\n
\n\n " - self.python_name = "SSHshort" - - def __str__(self): - return json.dumps(self.__dict__) - - -class LOOP: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "Portions of LOOP are Copyright (c) 1986 by the Massachusetts Institute of Technology.\nAll Rights Reserved.\n\nPermission to use, copy, modify and distribute this software and its\ndocumentation for any purpose and without fee is hereby granted,\nprovided that the M.I.T. copyright notice appear in all copies and that\nboth that copyright notice and this permission notice appear in\nsupporting documentation. The names \"M.I.T.\" and \"Massachusetts\nInstitute of Technology\" may not be used in advertising or publicity\npertaining to distribution of the software without specific, written\nprior permission. Notice must be given in supporting documentation that\ncopying distribution is by permission of M.I.T. M.I.T. makes no\nrepresentations about the suitability of this software for any purpose.\nIt is provided \"as is\" without express or implied warranty.\n\nMassachusetts Institute of Technology\n77 Massachusetts Avenue\nCambridge, Massachusetts 02139\nUnited States of America\n+1-617-253-1000\n\nPortions of LOOP are Copyright (c) 1989, 1990, 1991, 1992 by Symbolics, Inc.\nAll Rights Reserved.\n\nPermission to use, copy, modify and distribute this software and its\ndocumentation for any purpose and without fee is hereby granted,\nprovided that the Symbolics copyright notice appear in all copies and\nthat both that copyright notice and this permission notice appear in\nsupporting documentation. The name \"Symbolics\" may not be used in\nadvertising or publicity pertaining to distribution of the software\nwithout specific, written prior permission. Notice must be given in\nsupporting documentation that copying distribution is by permission of\nSymbolics. Symbolics makes no representations about the suitability of\nthis software for any purpose. It is provided \"as is\" without express\nor implied warranty.\n\nSymbolics, CLOE Runtime, and Minima are trademarks, and CLOE, Genera,\nand Zetalisp are registered trademarks of Symbolics, Inc.\n\nSymbolics, Inc.\n8 New England Executive Park, East\nBurlington, Massachusetts 01803\nUnited States of America\n+1-617-221-1000\n" - self.standardLicenseTemplate = "Portions of LOOP are Copyright (c) 1986 by the Massachusetts Institute of Technology. All Rights Reserved.\n\nPermission to use, copy, modify and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the M.I.T. copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. The names \"M.I.T.\" and \"Massachusetts Institute of Technology\" may not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Notice must be given in supporting documentation that copying distribution is by permission of M.I.T. M.I.T. makes no representations about the suitability of this software for any purpose. It is provided \"as is\" without express or implied warranty.\n\nMassachusetts Institute of Technology\n\n77 Massachusetts Avenue\n\nCambridge, Massachusetts 02139\n\nUnited States of America\n\n+1-617-253-1000\n\nPortions of LOOP are Copyright (c) 1989, 1990, 1991, 1992 by Symbolics, Inc. All Rights Reserved.\n\nPermission to use, copy, modify and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the Symbolics copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. The name \"Symbolics\" may not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Notice must be given in supporting documentation that copying distribution is by permission of Symbolics. Symbolics makes no representations about the suitability of this software for any purpose. It is provided \"as is\" without express or implied warranty.\n\nSymbolics, CLOE Runtime, and Minima are trademarks, and CLOE, Genera, and Zetalisp are registered trademarks of Symbolics, Inc.\n\nSymbolics, Inc.\n\n8 New England Executive Park, East\n\nBurlington, Massachusetts 01803\n\nUnited States of America\n\n+1-617-221-1000\n\n" - self.name = "Common Lisp LOOP License" - self.licenseId = "LOOP" - self.crossRef = [{"match": "False", "url": "https://github.com/blakemcbride/eclipse-lisp/blob/master/lisp/loop.lisp", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:09:36Z", "isWayBackLink": False, "order": 4}, {"match": "False", "url": "https://github.com/cl-adams/adams/blob/master/LICENSE.md", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:09:37Z", "isWayBackLink": False, "order": 3}, {"match": "False", "url": "https://gitlab.common-lisp.net/cmucl/cmucl/-/blob/master/src/code/loop.lisp", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:09:37Z", "isWayBackLink": False, "order": 5}, {"match": "False", "url": "https://sourceforge.net/p/sbcl/sbcl/ci/master/tree/src/code/loop.lisp", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:09:39Z", "isWayBackLink": False, "order": 2}, {"match": "False", "url": "http://git.savannah.gnu.org/cgit/gcl.git/tree/gcl/lsp/gcl_loop.lsp?h=Version_2_6_13pre", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:09:40Z", "isWayBackLink": False, "order": 1}, {"match": "False", "url": "https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/src/lsp/loop.lsp", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:09:42Z", "isWayBackLink": False, "order": 0}] - self.seeAlso = ["https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/src/lsp/loop.lsp", "http://git.savannah.gnu.org/cgit/gcl.git/tree/gcl/lsp/gcl_loop.lsp?h=Version_2_6_13pre", "https://sourceforge.net/p/sbcl/sbcl/ci/master/tree/src/code/loop.lisp", "https://github.com/cl-adams/adams/blob/master/LICENSE.md", "https://github.com/blakemcbride/eclipse-lisp/blob/master/lisp/loop.lisp", "https://gitlab.common-lisp.net/cmucl/cmucl/-/blob/master/src/code/loop.lisp"] - self.isOsiApproved = False - self.licenseTextHtml = "\n\n Portions of LOOP are Copyright (c) 1986 by the Massachusetts Institute of Technology.\n\tAll Rights Reserved.\n
\n\n\n Permission to use, copy, modify and distribute this software and its\n documentation for any purpose and without fee is hereby granted,\n provided that the M.I.T. copyright notice appear in all copies and that\n both that copyright notice and this permission notice appear in\n supporting documentation. The names "M.I.T." and "Massachusetts\n Institute of Technology" may not be used in advertising or publicity\n pertaining to distribution of the software without specific, written\n prior permission. Notice must be given in supporting documentation that\n copying distribution is by permission of M.I.T. M.I.T. makes no\n representations about the suitability of this software for any purpose.\n It is provided "as is" without express or implied warranty.\n
\n\n\n Massachusetts Institute of Technology
\n\n 77 Massachusetts Avenue
\n\n Cambridge, Massachusetts 02139
\n\n United States of America
\n\n +1-617-253-1000\n
\n Portions of LOOP are Copyright (c) 1989, 1990, 1991, 1992 by Symbolics, Inc.\n All Rights Reserved.\n
\n\n\n Permission to use, copy, modify and distribute this software and its\n documentation for any purpose and without fee is hereby granted,\n provided that the Symbolics copyright notice appear in all copies and\n that both that copyright notice and this permission notice appear in\n supporting documentation. The name "Symbolics" may not be used in\n advertising or publicity pertaining to distribution of the software\n without specific, written prior permission. Notice must be given in\n supporting documentation that copying distribution is by permission of\n Symbolics. Symbolics makes no representations about the suitability of\n this software for any purpose. It is provided "as is" without express\n or implied warranty.\n
\n\n\n Symbolics, CLOE Runtime, and Minima are trademarks, and CLOE, Genera,\n and Zetalisp are registered trademarks of Symbolics, Inc.\n
\n\n\n Symbolics, Inc.
\n\n 8 New England Executive Park, East
\n\n Burlington, Massachusetts 01803
\n\n United States of America
\n\n +1-617-221-1000\n
GNU GENERAL PUBLIC LICENSE\n
\n\nVersion 1, February 1989\n
Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\n\nEveryone is permitted to copy and distribute verbatim copies of this license document, but changing it is\n not allowed.
\n\nPreamble
\n\nThe license agreements of most software companies try to keep users at the mercy of those companies. By\n contrast, our General Public License is intended to guarantee your freedom to share and change free\n software--to make sure the software is free for all its users. The General Public License applies to\n the Free Software Foundation's software and to any other program whose authors commit to using\n it. You can use it for your programs, too.
\n\nWhen we speak of free software, we are referring to freedom, not price. Specifically, the General Public\n License is designed to make sure that you have the freedom to give away or sell copies of free\n software, that you receive source code or can get it if you want it, that you can change the software\n or use pieces of it in new free programs; and that you know you can do these things.
\n\nTo protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to\n ask you to surrender the rights. These restrictions translate to certain responsibilities for you if\n you distribute copies of the software, or if you modify it.
\n\nFor example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the\n recipients all the rights that you have. You must make sure that they, too, receive or can get the\n source code. And you must tell them their rights.
\n\nWe protect your rights with two steps: (1) copyright the software, and (2) offer you this license which\n gives you legal permission to copy, distribute and/or modify the software.
\n\nAlso, for each author's protection and ours, we want to make certain that everyone understands that\n there is no warranty for this free software. If the software is modified by someone else and passed\n on, we want its recipients to know that what they have is not the original, so that any problems\n introduced by others will not reflect on the original authors' reputations.
\n\nThe precise terms and conditions for copying, distribution and modification follow.
\n\nGNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
\n\nMere aggregation of another independent work with the Program (or its derivative) on a volume\n of a storage or distribution medium does not bring the other work under the scope of these\n terms.
\n\nSource code for a work means the preferred form of the work for making modifications to it.\n For an executable file, complete source code means all the source code for all modules it\n contains; but, as a special exception, it need not include source code for modules which\n are standard libraries that accompany the operating system on which the executable file\n runs, or for standard header files or definitions files that accompany that operating\n system.
\n\nEach version is given a distinguishing version number. If the Program specifies a version number\n of the license which applies to it and "any later version", you have the option of\n following the terms and conditions either of that version or of any later version published by\n the Free Software Foundation. If the Program does not specify a version number of the license,\n you may choose any version ever published by the Free Software Foundation.
\n\nNO WARRANTY
\n\n 9.\nBECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE\n EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\n HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY\n KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND\n PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE\n COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
\n\nEND OF TERMS AND CONDITIONS
\n\nAppendix: How to Apply These Terms to Your New Programs
\n\nIf you develop a new program, and you want it to be of the greatest possible use to humanity, the best\n way to achieve this is to make it free software which everyone can redistribute and change under these\n terms.
\n\nTo do so, attach the following notices to the program. It is safest to attach them to the start of each\n source file to most effectively convey the exclusion of warranty; and each file should have at least\n the "copyright" line and a pointer to where the full notice is found.
\n\n <one line to give the program's name and a brief idea of what it does.>
\n\n Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU\n General Public License as published by the Free Software Foundation; either version 1, or (at your\n option) any later version.
\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\n Public License for more details.
\n\nYou should have received a copy of the GNU General Public License along with this program; if not, write\n to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
\n\nAlso add information on how to contact you by electronic and paper mail.
\n\nIf the program is interactive, make it output a short notice like this when it starts in an interactive\n mode:
\n\nGnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY;\n for details type `show w'. This is free software, and you are welcome to redistribute it under\n certain conditions; type `show c' for details.
\n\nThe hypothetical commands `show w' and `show c' should show the appropriate parts of the\n General Public License. Of course, the commands you use may be called something other than `show\n w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your\n program.
\n\nYou should also get your employer (if you work as a programmer) or your school, if any, to sign a\n "copyright disclaimer" for the program, if necessary. Here a sample; alter the names:
\n\nYoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to\n direct compilers to make passes at assemblers) written by James Hacker.
\n\n<signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice
\n\nThat's all there is to it!
\n\n <one line to give the program's name and a brief idea of what it does.>
\n\n Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU\n General Public License as published by the Free Software Foundation; either version 1, or (at your\n option) any later version.
\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\n Public License for more details.
\n\nYou should have received a copy of the GNU General Public License along with this program; if not, write\n to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
\n\n " - self.deprecatedVersion = "2.0rc2" - self.python_name = "GPL10plus" - - def __str__(self): - return json.dumps(self.__dict__) - - -class pythonldap: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "The python-ldap package is distributed under Python-style license.\n\nStandard disclaimer:\n This software is made available by the author(s) to the public for free\n and \"as is\". All users of this free software are solely and entirely\n responsible for their own choice and use of this software for their\n own purposes. By using this software, each user agrees that the\n author(s) shall not be liable for damages of any kind in relation to\n its use or performance. The author(s) do not warrant that this software\n is fit for any purpose.\n" - self.standardLicenseTemplate = "The python-ldap package is distributed under Python-style license.\n\nStandard disclaimer:\n\nThis software is made available by the author(s) to the public for free and \"as is\". All users of this free software are solely and entirely responsible for their own choice and use of this software for their own purposes. By using this software, each user agrees that the author(s) shall not be liable for damages of any kind in relation to its use or performance. The author(s) do not warrant that this software is fit for any purpose.\n\n" - self.name = "Python ldap License" - self.licenseId = "python-ldap" - self.crossRef = [{"match": "False", "url": "https://github.com/python-ldap/python-ldap/blob/main/LICENCE", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:09:54Z", "isWayBackLink": False, "order": 0}] - self.seeAlso = ["https://github.com/python-ldap/python-ldap/blob/main/LICENCE"] - self.isOsiApproved = False - self.licenseTextHtml = "\n\n The python-ldap package is distributed under Python-style license.\n
\n\n\n Standard disclaimer:\n
\n\n\n This software is made available by the\n author(s) to the public for free and "as is". All users of this free\n software are solely and entirely responsible for their own choice\n and use of this software for their own purposes. By using this\n software, each user agrees that the author(s) shall not be liable\n for damages of any kind in relation to its use or performance. The\n author(s) do not warrant that this software is fit for any purpose.\n
\n\n " - self.python_name = "pythonldap" - - def __str__(self): - return json.dumps(self.__dict__) - - -class xzoom: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "Copyright Itai Nahshon 1995, 1996.\nThis program is distributed with no warranty.\n\nSource files for this program may be distributed freely.\nModifications to this file are okay as long as:\n a. This copyright notice and comment are preserved and\n left at the top of the file.\n b. The man page is fixed to reflect the change.\n c. The author of this change adds his name and change\n description to the list of changes below.\nExecutable files may be distributed with sources, or with\nexact location where the source code can be obtained.\n" - self.standardLicenseTemplate = "<\n Copyright: <year> <owner>\n
\n\n\n This program is distributed with no warranty.\n
\n\n\n Source files for this program may be distributed\n freely. Modifications to this file are okay as long as:\n
\n\n\n Executable files may be distributed with sources, or with\n exact location where the source code can be obtained.\n
\n\n " - self.python_name = "xzoom" - - def __str__(self): - return json.dumps(self.__dict__) - - -class BSD4ClauseShortened: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "License: BSD-4-Clause-Shortened\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that:\n\n(1) source code distributions retain the above copyright notice and this paragraph in its entirety,\n(2) distributions including binary code include the above copyright notice and this paragraph in its entirety in the documentation or other materials provided with the distribution, and\n(3) all advertising materials mentioning features or use of this software display the following acknowledgement:\n\n\"This product includes software developed by the University of California, Lawrence Berkeley Laboratory and its contributors.''\n\nNeither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED \"AS IS\" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\n" - self.standardLicenseTemplate = "<License: BSD-4-Clause-Shortened
\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that:
\n\n"This product includes software developed by the University of California, Lawrence Berkeley Laboratory and its contributors.''
\n\nNeither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
\n\nTHIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
\n\n " - self.python_name = "BSD4ClauseShortened" - - def __str__(self): - return json.dumps(self.__dict__) - - -class APAFML: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n\nThis file and the 14 PostScript(R) AFM files it accompanies may be used, copied, and distributed for any purpose and without charge, with or without modification, provided that all copyright notices are retained; that the AFM files are not distributed without this file; that all modifications to this file or any of the AFM files are prominently noted in the modified file(s); and that this paragraph is not modified. Adobe Systems has no responsibility or obligation to support the use of the AFM files.\n" - self.standardLicenseTemplate = "<>\n\nThis file and the 14 PostScript(R) AFM files it accompanies may be used, copied, and distributed for any purpose and without charge, with or without modification, provided that all copyright notices are retained; that the AFM files are not distributed without this file; that all modifications to this file or any of the AFM files are prominently noted in the modified file(s); and that this paragraph is not modified. Adobe Systems has no responsibility or obligation to support the use of the AFM files.\n\n" - self.name = "Adobe Postscript AFM License" - self.licenseId = "APAFML" - self.crossRef = [{"match": "False", "url": "https://fedoraproject.org/wiki/Licensing/AdobePostscriptAFM", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:09:41Z", "isWayBackLink": False, "order": 0}] - self.seeAlso = ["https://fedoraproject.org/wiki/Licensing/AdobePostscriptAFM"] - self.isOsiApproved = False - self.licenseTextHtml = "\nCopyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights\n Reserved.
\n\nThis file and the 14 PostScript(R) AFM files it accompanies may be used, copied, and distributed for any\n purpose and without charge, with or without modification, provided that all copyright notices are\n retained; that the AFM files are not distributed without this file; that all modifications to this\n file or any of the AFM files are prominently noted in the modified file(s); and that this paragraph is\n not modified. Adobe Systems has no responsibility or obligation to support the use of the AFM\n files.
\n\n " - self.python_name = "APAFML" - - def __str__(self): - return json.dumps(self.__dict__) - - -class OSL21: - isDeprecatedLicenseId: bool - isFsfLibre: bool - licenseText: str - standardLicenseHeaderTemplate: str - standardLicenseTemplate: str - name: str - licenseComments: str - licenseId: str - standardLicenseHeader: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - standardLicenseHeaderHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.isFsfLibre = True - self.licenseText = "The Open Software Licensev. 2.1\n\nThis Open Software License (the \"License\") applies to any original work of authorship (the \"Original Work\") whose owner (the \"Licensor\") has placed the following notice immediately following the copyright notice for the Original Work:\n\n Licensed under the Open Software License version 2.1\n\n1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license to do the following:\n\n a) to reproduce the Original Work in copies;\n\n b) to prepare derivative works (\"Derivative Works\") based upon the Original Work;\n\n c) to distribute copies of the Original Work and Derivative Works to the public, with the proviso that copies of Original Work or Derivative Works that You distribute shall be licensed under the Open Software License;\n\n d) to perform the Original Work publicly; and\n\n e) to display the Original Work publicly.\n\n2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the Original Work and Derivative Works.\n\n3) Grant of Source Code License. The term \"Source Code\" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work, and by publishing the address of that information repository in a notice immediately following the copyright notice that applies to the Original Work.\n\n4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior written permission of the Licensor. Nothing in this License shall be deemed to grant any rights to trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor except as expressly stated herein. No patent license is granted to make, use, sell or offer to sell embodiments of any patent claims other than the licensed claims defined in Section 2. No right is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under different terms from this License any Original Work that Licensor otherwise would have a right to license.\n\n5) External Deployment. The term \"External Deployment\" means the use or distribution of the Original Work or Derivative Works in any way such that the Original Work or Derivative Works may be used by anyone other than You, whether the Original Work or Derivative Works are distributed to those persons or made available as an application intended for use over a computer network. As an express condition for the grants of license hereunder, You agree that any External Deployment by You of a Derivative Work shall be deemed a distribution and shall be licensed to all under the terms of this License, as prescribed in section 1(c) herein.\n\n6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an \"Attribution Notice.\" You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work.\n\n7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately proceeding sentence, the Original Work is provided under this License on an \"AS IS\" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to Original Work is granted hereunder except under this disclaimer.\n\n8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to liability for death or personal injury resulting from Licensor's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.\n\n9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. Nothing else but this License (or another written agreement between Licensor and You) grants You permission to create Derivative Works based upon the Original Work or to exercise any of the rights granted in Section 1 herein, and any attempt to do so except under the terms of this License (or another written agreement between Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent laws of other countries, and by international treaty. Therefore, by exercising any of the rights granted to You in Section 1 herein, You indicate Your acceptance of this License and all of its terms and conditions. This License shall terminate immediately and you may no longer exercise any of the rights granted to You by this License upon Your failure to honor the proviso in Section 1(c) herein.\n\n10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware.\n\n11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of the U.S. Copyright Act, 17 U.S.C. \u00a7 101 et seq., the equivalent laws of other countries, and international treaty. This section shall survive the termination of this License.\n\n12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License.\n\n13) Miscellaneous. This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable.\n\n14) Definition of \"You\" in This License. \"You\" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, \"You\" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, \"control\" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.\n\n15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You.\n\nThis license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is hereby granted to copy and distribute this license without modification. This license may not be modified without the express written permission of its copyright owner.\n" - self.standardLicenseHeaderTemplate = "Licensed under the Open Software License version 2.1\n\n" - self.standardLicenseTemplate = "<The Open Software Licensev. 2.1
\n\nThis Open Software License (the "License") applies to any original work of authorship (the\n "Original Work") whose owner (the "Licensor") has placed the following notice\n immediately following the copyright notice for the Original Work:
\n\nLicensed under the Open Software License version 2.1
\n\nThis license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is hereby\n granted to copy and distribute this license without modification. This license may not be modified\n without the express written permission of its copyright owner.
\n\n " - self.standardLicenseHeaderHtml = "\nLicensed under the Open Software License version 2.1
\n\n " - self.python_name = "OSL21" - - def __str__(self): - return json.dumps(self.__dict__) - - -class RSCPL: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "Ricoh Source Code Public License\nVersion 1.0\n\n1. Definitions.\n\n 1.1. \"Contributor\" means each entity that creates or contributes to the creation of Modifications.\n\n 1.2. \"Contributor Version\" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.\n\n 1.3. \"Electronic Distribution Mechanism\" means a website or any other mechanism generally accepted in the software development community for the electronic transfer of data.\n\n 1.4. \"Executable Code\" means Governed Code in any form other than Source Code.\n\n 1.5. \"Governed Code\" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof.\n\n 1.6. \"Larger Work\" means a work which combines Governed Code or portions thereof with code not governed by the terms of this License.\n\n 1.7. \"Licensable\" means the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.\n\n 1.8. \"License\" means this document.\n\n 1.9. \"Modifications\" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Governed Code is released as a series of files, a Modification is:\n\n (a) Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.\n\n (b) Any new file that contains any part of the Original Code or previous Modifications.\n\n 1.10. \"Original Code\" means the \"Platform for Information Applications\" Source Code as released under this License by RSV.\n\n 1.11 \"Patent Claims\" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by the grantor of a license thereto.\n\n 1.12. \"RSV\" means Ricoh Silicon Valley, Inc., a California corporation with offices at 2882 Sand Hill Road, Suite 115, Menlo Park, CA 94025-7022.\n\n 1.13. \"Source Code\" means the preferred form of the Governed Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of Executable Code, or a list of source code differential comparisons against either the Original Code or another well known, available Governed Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.\n\n 1.14. \"You\" means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, \"You\" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, \"control\" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity.\n\n2. Source Code License.\n\n 2.1. Grant from RSV. RSV hereby grants You a worldwide, royalty-free, non-exclusive license, subject to third party intellectual property claims:\n\n (a) to use, reproduce, modify, create derivative works of, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, or as part of a Larger Work; and\n\n (b) under Patent Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof).\n\n 2.2. Contributor Grant. Each Contributor hereby grants You a worldwide, royalty-free, non-exclusive license, subject to third party intellectual property claims:\n\n (a) to use, reproduce, modify, create derivative works of, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Governed Code or as part of a Larger Work; and\n\n (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (i) Modifications made by that Contributor (or portions thereof); and (ii) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).\n\n3. Distribution Obligations.\n\n 3.1. Application of License. The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Governed Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5.\n\n 3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable Code version or via an Electronic Distribution Mechanism to anyone to whom you made an Executable Code version available; and if made available via an Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party.\n\n 3.3. Description of Modifications. You must cause all Governed Code to which you contribute to contain a file documenting the changes You made to create that Governed Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by RSV and including the name of RSV in (a) the Source Code, and (b) in any notice in an Executable Code version or related documentation in which You describe the origin or ownership of the Governed Code.\n\n 3.4. Intellectual Property Matters.\n\n 3.4.1. Third Party Claims. If You have knowledge that a party claims an intellectual property right in particular functionality or code (or its utilization under this License), you must include a text file with the source code distribution titled \"LEGAL\" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If you obtain such knowledge after You make Your Modification available as described in Section 3.2, You shall promptly modify the LEGAL file in all copies You make available thereafter and shall take other steps (such as notifying RSV and appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Governed Code that new knowledge has been obtained. In the event that You are a Contributor, You represent that, except as disclosed in the LEGAL file, your Modifications are your original creations and, to the best of your knowledge, no third party has any claim (including but not limited to intellectual property claims) relating to your Modifications. You represent that the LEGAL file includes complete details of any license or other restriction associated with any part of your Modifications.\n\n 3.4.2. Contributor APIs. If Your Modification is an application programming interface and You own or control patents which are reasonably necessary to implement that API, you must also include this information in the LEGAL file.\n\n 3.5. Required Notices. You must duplicate the notice in Exhibit A in each file of the Source Code, and this License in any documentation for the Source Code, where You describe recipients' rights relating to Governed Code. If You created one or more Modification(s), You may add your name as a Contributor to the notice described in Exhibit A. If it is not possible to put such notice in a particular Source Code file due to its structure, then you must include such notice in a location (such as a relevant directory file) where a user would be likely to look for such a notice. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Governed Code. However, You may do so only on Your own behalf, and not on behalf of RSV or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify RSV and every Contributor for any liability incurred by RSV or such Contributor as a result of warranty, support, indemnity or liability terms You offer.\n\n 3.6. Distribution of Executable Code Versions. You may distribute Governed Code in Executable Code form only if the requirements of Section 3.1-3.5 have been met for that Governed Code, and if You include a prominent notice stating that the Source Code version of the Governed Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable Code version, related documentation or collateral in which You describe recipients' rights relating to the Governed Code. You may distribute the Executable Code version of Governed Code under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable Code version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable Code version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by RSV or any Contributor. You hereby agree to indemnify RSV and every Contributor for any liability incurred by RSV or such Contributor as a result of any such terms You offer.\n\n 3.7. Larger Works. You may create a Larger Work by combining Governed Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Governed Code.\n\n4. Inability to Comply Due to Statute or Regulation.\nIf it is impossible for You to comply with any of theterms of this License with respect to some or all of the Governed Code due to statute or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.\n\n5. Trademark Usage.\n\n 5.1. Advertising Materials. All advertising materials mentioning features or use of the Governed Code must display the following acknowledgement: \"This product includes software developed by Ricoh Silicon Valley, Inc.\"\n\n 5.2. Endorsements. The names \"Ricoh,\" \"Ricoh Silicon Valley,\" and \"RSV\" must not be used to endorse or promote Contributor Versions or Larger Works without the prior written permission of RSV.\n\n 5.3. Product Names. Contributor Versions and Larger Works may not be called \"Ricoh\" nor may the word \"Ricoh\" appear in their names without the prior written permission of RSV.\n\n6. Versions of the License.\n\n 6.1. New Versions. RSV may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.\n\n 6.2. Effect of New Versions. Once Governed Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Governed Code under the terms of any subsequent version of the License published by RSV. No one other than RSV has the right to modify the terms applicable to Governed Code created under this License.\n\n7. Disclaimer of Warranty.\nGOVERNED CODE IS PROVIDED UNDER THIS LICENSE ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE GOVERNED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE GOVERNED CODE IS WITH YOU. SHOULD ANY GOVERNED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT RSV OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY GOVERNED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.\n\n8. Termination.\n\n 8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Governed Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.\n\n 8.2. If You initiate patent infringement litigation against RSV or a Contributor (RSV or the Contributor against whom You file such action is referred to as \"Participant\") alleging that:\n\n (a) such Participant's Original Code or Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of the Original Code or the Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Original Code or the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above.\n\n (b) any software, hardware, or device provided to You by the Participant, other than such Participant's Original Code or Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Original Code or the Modifications made by that Participant.\n\n 8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Original Code or Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license.\n\n 8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination.\n\n9. Limitation of Liability.\nUNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL RSV, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF GOVERNED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. TO THE EXTENT THAT ANY EXCLUSION OF DAMAGES ABOVE IS NOT VALID, YOU AGREE THAT IN NO EVENT WILL RSVS LIABILITY UNDER OR RELATED TO THIS AGREEMENT EXCEED FIVE THOUSAND DOLLARS ($5,000). THE GOVERNED CODE IS NOT INTENDED FOR USE IN CONNECTION WITH ANY NUCLER, AVIATION, MASS TRANSIT OR MEDICAL APPLICATION OR ANY OTHER INHERENTLY DANGEROUS APPLICATION THAT COULD RESULT IN DEATH, PERSONAL INJURY, CATASTROPHIC DAMAGE OR MASS DESTRUCTION, AND YOU AGREE THAT NEITHER RSV NOR ANY CONTRIBUTOR SHALL HAVE ANY LIABILITY OF ANY NATURE AS A RESULT OF ANY SUCH USE OF THE GOVERNED CODE.\n\n\n10. U.S. Government End Users.\nThe Governed Code is a \"commercial item,\" as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of \"commercial computer software\" and \"commercial computer software documentation,\" as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Governed Code with only those rights set forth herein.\n\n11. Miscellaneous.\nThis License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. The parties submit to personal jurisdiction in California and further agree that any cause of action arising under or related to this Agreement shall be brought in the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California. The losing party shall be responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. Notwithstanding anything to the contrary herein, RSV may seek injunctive relief related to a breach of this Agreement in any court of competent jurisdiction. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be consTrued against the drafter shall not apply to this License.\n\n12. Responsibility for Claims.\nExcept in cases where another Contributor has failed to comply with Section 3.4, You are responsible for damages arising, directly or indirectly, out of Your utilization of rights under this License, based on the number of copies of Governed Code you made available, the revenues you received from utilizing such rights, and other relevant factors. You agree to work with affected parties to distribute responsibility on an equitable basis.\n\n\nEXHIBIT A\n\n\"The contents of this file are subject to the Ricoh Source Code Public License Version 1.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.risource.org/RPL\n\nSoftware distributed under the License is distributed on an \"AS IS\" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.\n\nThis code was initially developed by Ricoh Silicon Valley, Inc. Portions created by Ricoh Silicon Valley, Inc. are Copyright (C) 1995-1999. All Rights Reserved.\n\nContributor(s): ______________________________________.\"\n" - self.standardLicenseTemplate = "<Ricoh Source Code Public License\n
\n\nVersion 1.0\n
Except in cases where another Contributor has failed to comply with Section 3.4, You are responsible for\n damages arising, directly or indirectly, out of Your utilization of rights under this License, based\n on the number of copies of Governed Code you made available, the revenues you received from utilizing\n such rights, and other relevant factors. You agree to work with affected parties to distribute\n responsibility on an equitable basis.
\n\nEXHIBIT A
\n\n"The contents of this file are subject to the Ricoh Source Code Public License Version 1.0 (the\n "License"); you may not use this file except in compliance with the License. You may obtain a copy of\n the License at http://www.risource.org/RPL
\n\nSoftware distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,\n either express or implied. See the License for the specific language governing rights and limitations\n under the License.
\n\nThis code was initially developed by Ricoh Silicon Valley, Inc. Portions created by Ricoh Silicon Valley,\n Inc. are Copyright (C) 1995-1999. All Rights Reserved.
\n\nContributor(s): ______________________________________."
\n\n---- Part 1: CMU/UCD copyright notice: (BSD like) -----
\n\nCopyright 1989, 1991, 1992 by Carnegie Mellon University
\n\nDerivative Work - 1996, 1998-2000 Copyright 1996, 1998-2000 The\n Regents of the University of California
\n\nAll Rights Reserved
\n\nPermission to use, copy, modify and distribute this software and\n its documentation for any purpose and without fee is hereby\n granted, provided that the above copyright notice appears in\n all copies and that both that copyright notice and this\n permission notice appear in supporting documentation, and that\n the name of CMU and The Regents of the University of\n California not be used in advertising or publicity pertaining\n to distribution of the software without specific written\n permission.
\n\nCMU AND THE REGENTS OF THE UNIVERSITY OF CALIFORNIA DISCLAIM ALL\n WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL\n CMU OR THE REGENTS OF THE UNIVERSITY OF CALIFORNIA BE LIABLE\n FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY\n DAMAGES WHATSOEVER RESULTING FROM THE LOSS OF USE, DATA OR\n PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE\n OR PERFORMANCE OF THIS SOFTWARE.
\n\n---- Part 2: Networks Associates Technology, Inc copyright notice\n (BSD) -----
\n\nCopyright (c) 2001-2003, Networks Associates Technology, Inc All\n rights reserved. Redistribution and use in source and binary\n forms, with or without modification, are permitted provided\n that the following conditions are met:
\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND\n CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED\n WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR\n ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\n TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS\n OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\n IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE\n USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.
\n\n---- Part 3: Cambridge Broadband Ltd. copyright notice\n (BSD) -----
\n\nPortions of this code are copyright (c) 2001-2003,\n Cambridge Broadband Ltd. All rights reserved.\n Redistribution and use in source and binary forms,\n with or without modification, are permitted provided\n that the following conditions are met:
\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND\n ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\n TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\n DAMAGE.
\n\n---- Part 4: Sun Microsystems, Inc. copyright notice (BSD) -----
\n\nCopyright \u00a9 2003 Sun Microsystems, Inc., 4150 Network Circle,\n Santa Clara, California 95054, U.S.A. All rights reserved.
\n\nUse is subject to license terms below.
\n\nThis distribution may include materials developed by third parties.
\n\nSun, Sun Microsystems, the Sun logo and Solaris are trademarks or\n registered trademarks of Sun Microsystems, Inc. in the U.S.\n and other countries.
\n\nRedistribution and use in source and binary forms, with or\n without modification, are permitted provided that the\n following conditions are met:
\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND\n CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED\n WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR\n ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\n TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS\n OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\n IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE\n USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.
\n\n---- Part 5: Sparta, Inc copyright notice (BSD) -----
\n\nCopyright (c) 2003-2009, Sparta, Inc All rights reserved.\n Redistribution and use in source and binary forms,\n with or without modification, are permitted provided\n that the following conditions are met:
\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND\n CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED\n WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR\n ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\n TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS\n OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\n IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE\n USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.
\n\n---- Part 6: Cisco/BUPTNIC copyright notice (BSD) -----
\n\nCopyright (c) 2004, Cisco, Inc and Information Network\n Center of Beijing University of Posts and\n Telecommunications. All rights reserved.\n Redistribution and use in source and binary forms,\n with or without modification, are permitted provided\n that the following conditions are met:
\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND\n CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR\n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\n OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\n\n---- Part 7: Fabasoft R&D Software GmbH & Co KG copyright\n notice (BSD) -----
\n\nCopyright (c) Fabasoft R&D Software GmbH & Co KG, 2003\n oss@fabasoft.com Author: Bernhard Penz
\n\nRedistribution and use in source and binary forms, with or\n without modification, are permitted provided that the\n following conditions are met:
\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND\n ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\n TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\n DAMAGE.
\n\n---- Part 8: Apple Inc. copyright notice (BSD) -----
\n\nCopyright (c) 2007 Apple Inc. All rights reserved.
\n\nRedistribution and use in source and binary forms, with or\n without modification, are permitted provided that the\n following conditions are met:
\n\nTHIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS\n "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS\n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\n OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\n DAMAGE.
\n\n---- Part 9: ScienceLogic, LLC copyright notice (BSD) -----
\n\nCopyright (c) 2009, ScienceLogic, LLC All rights\n reserved. Redistribution and use in source and binary\n forms, with or without modification, are permitted\n provided that the following conditions are met:
\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND\n CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR\n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\n OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\n\n " - self.python_name = "NetSNMP" - - def __str__(self): - return json.dumps(self.__dict__) - - -class BSD3ClauseNoNuclearLicense: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseComments: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "\nCopyright 1994-2009 Sun Microsystems, Inc. All Rights Reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n * Redistribution of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\n * Redistribution in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n * Neither the name of Sun Microsystems, Inc. or the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nThis software is provided \"AS IS,\" without a warranty of any kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. (\"SUN\") AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n\nYou acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.\n" - self.standardLicenseTemplate = "<>\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n <> Redistribution of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\n <> Redistribution in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n <> Neither the name of Sun Microsystems, Inc. or the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nThis software is provided \"AS IS,\" without a warranty of any kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. (\"SUN\") AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n\nYou acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.\n\n" - self.name = "BSD 3-Clause No Nuclear License" - self.licenseComments = "This license has an older Sun copyright notice and is the same license as BSD-3-Clause-No-Nuclear-Warranty, except it specifies that that software is \"not licensed\" for use in a nuclear facility, as opposed to a disclaimer for such use." - self.licenseId = "BSD-3-Clause-No-Nuclear-License" - self.crossRef = [{"match": "False", "url": "http://download.oracle.com/otn-pub/java/licenses/bsd.txt", "isValid": True, "isLive": True, "timestamp": "2024-04-24T11:12:22Z", "isWayBackLink": False, "order": 0}] - self.seeAlso = ["http://download.oracle.com/otn-pub/java/licenses/bsd.txt"] - self.isOsiApproved = False - self.licenseTextHtml = "\nCopyright 1994-2009 Sun Microsystems, Inc. All Rights Reserved.
\n\nRedistribution and use in source and binary forms, with or\n without modification, are permitted provided that the\n following conditions are met:
\n\nThis software is provided "AS IS," without a warranty of any\n kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND\n WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE\n HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS\n LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY\n LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS\n SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS\n LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR\n FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR\n PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY\n OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE\n THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY\n OF SUCH DAMAGES.
\n\nYou acknowledge that this software is not designed, licensed or\n intended for use in the design, construction, operation or\n maintenance of any nuclear facility.
\n\n " - self.python_name = "BSD3ClauseNoNuclearLicense" - - def __str__(self): - return json.dumps(self.__dict__) - - -class EUPL10: - isDeprecatedLicenseId: bool - licenseText: str - standardLicenseTemplate: str - name: str - licenseComments: str - licenseId: str - crossRef: list - seeAlso: list - isOsiApproved: bool - licenseTextHtml: str - python_name: str - - def __init__(self): - self.isDeprecatedLicenseId = False - self.licenseText = "European Union Public Licence V.1.0\n\nEUPL (c) the European Community 2007\n\nThis European Union Public Licence (the \u201cEUPL\u201d) applies to the Work or Software (as defined below) which is provided under the terms of this Licence. Any use of the Work, other than as authorised under this Licence is prohibited (to the extent such use is covered by a right of the copyright holder of the Work).\n\nThe Original Work is provided under the terms of this Licence when the Licensor (as defined below) has placed the following notice immediately following the copyright notice for the Original Work:\n\n Licensed under the EUPL V.1.0\n\nor has expressed by any other mean his willingness to license under the EUPL.\n\n1. Definitions\n\nIn this Licence, the following terms have the following meaning:\n\n \u2212 The Licence: this Licence.\n\n \u2212 The Original Work or the Software: the software distributed and/or communicated by the Licensor under this Licence, available as Source Code and also as Executable Code as the case may be.\n\n \u2212 Derivative Works: the works or software that could be created by the Licensee, based upon the Original Work or modifications thereof. This Licence does not define the extent of modification or dependence on the Original Work required in order to classify a work as a Derivative Work; this extent is determined by copyright law applicable in the country mentioned in Article 15.\n\n \u2212 The Work: the Original Work and/or its Derivative Works.\n\n \u2212 The Source Code: the human-readable form of the Work which is the most convenient for people to study and modify.\n\n \u2212 The Executable Code: any code which has generally been compiled and which is meant to be interpreted by a computer as a program.\n\n \u2212 The Licensor: the natural or legal person that distributes and/or communicates the Work under the Licence.\n\n \u2212 Contributor(s): any natural or legal person who modifies the Work under the Licence, or otherwise contributes to the creation of a Derivative Work.\n\n \u2212 The Licensee or \u201cYou\u201d: any natural or legal person who makes any usage of the Software under the terms of the Licence. \u2212 Distribution and/or Communication: any act of selling, giving, lending, renting, distributing, communicating, transmitting, or otherwise making available, on-line or off-line, copies of the Work at the disposal of any other natural or legal person.\n\n2. Scope of the rights granted by the Licence\n\nThe Licensor hereby grants You a world-wide, royalty-free, non-exclusive, sub-licensable licence to do the following, for the duration of copyright vested in the Original Work:\n\n \u2212 use the Work in any circumstance and for all usage,\n\n \u2212 reproduce the Work,\n\n \u2212 modify the Original Work, and make Derivative Works based upon the Work,\n\n \u2212 communicate to the public, including the right to make available or display the Work or copies thereof to the public and perform publicly, as the case may be, the Work,\n\n \u2212 distribute the Work or copies thereof,\n\n \u2212 lend and rent the Work or copies thereof,\n\n \u2212 sub-license rights in the Work or copies thereof.\n\nThose rights can be exercised on any media, supports and formats, whether now known or later invented, as far as the applicable law permits so.\n\nIn the countries where moral rights apply, the Licensor waives his right to exercise his moral right to the extent allowed by law in order to make effective the licence of the economic rights here above listed.\n\nThe Licensor grants to the Licensee royalty-free, non exclusive usage rights to any patents held by the Licensor, to the extent necessary to make use of the rights granted on the Work under this Licence.\n\n3. Communication of the Source Code\n\nThe Licensor may provide the Work either in its Source Code form, or as Executable Code. If the Work is provided as Executable Code, the Licensor provides in addition a machinereadable copy of the Source Code of the Work along with each copy of the Work that the Licensor distributes or indicates, in a notice following the copyright notice attached to the Work, a repository where the Source Code is easily and freely accessible for as long as the Licensor continues to distribute and/or communicate the Work.\n\n4. Limitations on copyright\n\nNothing in this Licence is intended to deprive the Licensee of the benefits from any exception or limitation to the exclusive rights of the rights owners in the Original Work or Software, of the exhaustion of those rights or of other applicable limitations thereto.\n\n5. Obligations of the Licensee\n\nThe grant of the rights mentioned above is subject to some restrictions and obligations imposed on the Licensee. Those obligations are the following:\n\nAttribution right: the Licensee shall keep intact all copyright, patent or trademarks notices and all notices that refer to the Licence and to the disclaimer of warranties. The Licensee must include a copy of such notices and a copy of the Licence with every copy of the Work he/she distributes and/or communicates. The Licensee must cause any Derivative Work to carry prominent notices stating that the Work has been modified and the date of modification.\n\nCopyleft clause: If the Licensee distributes and/or communicates copies of the Original Works or Derivative Works based upon the Original Work, this Distribution and/or Communication will be done under the terms of this Licence. The Licensee (becoming Licensor) cannot offer or impose any additional terms or conditions on the Work or Derivative Work that alter or restrict the terms of the Licence.\n\nCompatibility clause: If the Licensee Distributes and/or Communicates Derivative Works or copies thereof based upon both the Original Work and another work licensed under a Compatible Licence, this Distribution and/or Communication can be done under the terms of this Compatible Licence. For the sake of this clause, \u201cCompatible Licence\u201d refers to the licences listed in the appendix attached to this Licence. Should the Licensee\u2019s obligations under the Compatible Licence conflict with his/her obligations under this Licence, the obligations of the Compatible Licence shall prevail.\n\nProvision of Source Code: When distributing and/or communicating copies of the Work, the Licensee will provide a machine-readable copy of the Source Code or indicate a repository where this Source will be easily and freely available for as long as the Licensee continues to distribute and/or communicate the Work.\n\nLegal Protection: This Licence does not grant permission to use the trade names, trademarks, service marks, or names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the copyright notice.\n\n6. Chain of Authorship\n\nThe original Licensor warrants that the copyright in the Original Work granted hereunder is owned by him/her or licensed to him/her and that he/she has the power and authority to grant the Licence.\n\nEach Contributor warrants that the copyright in the modifications he/she brings to the Work are owned by him/her or licensed to him/her and that he/she has the power and authority to grant the Licence.\n\nEach time You, as a Licensee, receive the Work, the original Licensor and subsequent Contributors grant You a licence to their contributions to the Work, under the terms of this Licence.\n\n7. Disclaimer of Warranty\n\nThe Work is a work in progress, which is continuously improved by numerous contributors. It is not a finished work and may therefore contain defects or \u201cbugs\u201d inherent to this type of software development.\n\nFor the above reason, the Work is provided under the Licence on an \u201cas is\u201d basis and without warranties of any kind concerning the Work, including without limitation merchantability, fitness for a particular purpose, absence of defects or errors, accuracy, non-infringement of intellectual property rights other than copyright as stated in Article 6 of this Licence.\n\nThis disclaimer of warranty is an essential part of the Licence and a condition for the grant of any rights to the Work.\n\n8. Disclaimer of Liability\n\nExcept in the cases of wilful misconduct or damages directly caused to natural persons, the Licensor will in no event be liable for any direct or indirect, material or moral, damages of any kind, arising out of the Licence or of the use of the Work, including without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, loss of data or any commercial damage, even if the Licensor has been advised of the possibility of such damage. However, the Licensor will be liable under statutory product liability laws as far such laws apply to the Work.\n\n9. Additional agreements\n\nWhile distributing the Original Work or Derivative Works, You may choose to conclude an additional agreement to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or services consistent with this Licence. However, in accepting such obligations, You may act only on your own behalf and on your sole responsibility, not on behalf of the original Licensor or any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against such Contributor by the fact You have accepted any such warranty or additional liability.\n\n10. Acceptance of the Licence\n\nThe provisions of this Licence can be accepted by clicking on an icon \u201cI agree\u201d placed under the bottom of a window displaying the text of this Licence or by affirming consent in any other similar way, in accordance with the rules of applicable law. Clicking on that icon indicates your clear and irrevocable acceptance of this Licence and all of its terms and conditions.\n\nSimilarly, you irrevocably accept this Licence and all of its terms and conditions by exercising any rights granted to You by Article 2 of this Licence, such as the use of the Work, the creation by You of a Derivative Work or the Distribution and/or Communication by You of the Work or copies thereof.\n\n11. Information to the public\n\nIn case of any Distribution and/or Communication of the Work by means of electronic communication by You (for example, by offering to download the Work from a remote location) the distribution channel or media (for example, a website) must at least provide to the public the information requested by the applicable law regarding the identification and address of the Licensor, the Licence and the way it may be accessible, concluded, stored and reproduced by the Licensee.\n\n12. Termination of the Licence\n\nThe Licence and the rights granted hereunder will terminate automatically upon any breach by the Licensee of the terms of the Licence.\n\nSuch a termination will not terminate the licences of any person who has received the Work from the Licensee under the Licence, provided such persons remain in full compliance with the Licence.\n\n13. Miscellaneous\n\nWithout prejudice of Article 9 above, the Licence represents the complete agreement between the Parties as to the Work licensed hereunder.\n\nIf any provision of the Licence is invalid or unenforceable under applicable law, this will not affect the validity or enforceability of the Licence as a whole. Such provision will be consTrued and/or reformed so as necessary to make it valid and enforceable.\n\nThe European Commission may put into force translations and/or binding new versions of this Licence, so far this is required and reasonable. New versions of the Licence will be published with a unique version number. The new version of the Licence becomes binding for You as soon as You become aware of its publication.\n\n14. Jurisdiction\n\nAny litigation resulting from the interpretation of this License, arising between the European Commission, as a Licensor, and any Licensee, will be subject to the jurisdiction of the Court of Justice of the European Communities, as laid down in article 238 of the Treaty establishing the European Community.\n\nAny litigation arising between Parties, other than the European Commission, and resulting from the interpretation of this License, will be subject to the exclusive jurisdiction of the competent court where the Licensor resides or conducts its primary business.\n\n15. Applicable Law\n\nThis Licence shall be governed by the law of the European Union country where the Licensor resides or has his registered office.\n\nThis licence shall be governed by the Belgian law if:\n\n \u2212 a litigation arises between the European Commission, as a Licensor, and any Licensee;\n\n \u2212 the Licensor, other than the European Commission, has no residence or registered office inside a European Union country.\n\n\nAppendix\n\n\u201cCompatible Licences\u201d according to article 5 EUPL are:\n\n\u2212 General Public License (GPL) v. 2\n\u2212 Open Software License (OSL) v. 2.1, v. 3.0\n\u2212 Common Public License v. 1.0\n\u2212 Eclipse Public License v. 1.0\n\u2212 Cecill v. 2.0\n" - self.standardLicenseTemplate = "<