# Path: fastavro/const.py
# INT_MIN_VALUE = -(1 << 31)
# 
# INT_MAX_VALUE = (1 << 31) - 1
# 
# LONG_MIN_VALUE = -(1 << 63)
# 
# LONG_MAX_VALUE = (1 << 63) - 1
# 
# Path: fastavro/schema.py
# FINGERPRINT_ALGORITHMS = _schema.FINGERPRINT_ALGORITHMS
# 
# Path: fastavro/types.py

# 
# Path: fastavro/_schema_common.py
# PRIMITIVES = {
#     "boolean",
#     "bytes",
#     "double",
#     "float",
#     "int",
#     "long",
#     "null",
#     "string",
# }


from hashlib import md5
from string import ascii_letters
from typing import Any, Iterator, Dict, List, cast
from .const import INT_MIN_VALUE, INT_MAX_VALUE, LONG_MIN_VALUE, LONG_MAX_VALUE
from .schema import extract_record_type, parse_schema
from .types import Schema, NamedSchemas
from ._schema_common import PRIMITIVES
import random
        # Remaining valid schemas must be dict types
        schema_type = schema["type"]

        parsed_schema = {}
        parsed_schema["type"] = schema_type

        if "doc" in schema:
            parsed_schema["doc"] = _md5(schema["doc"])

        if schema_type == "array":
            parsed_schema["items"] = _anonymize_schema(schema["items"], named_schemas)

        elif schema_type == "map":
            parsed_schema["values"] = _anonymize_schema(schema["values"], named_schemas)

        elif schema_type == "enum":
            parsed_schema["name"] = _md5(schema["name"])
            parsed_schema["symbols"] = [_md5(symbol) for symbol in schema["symbols"]]

        elif schema_type == "fixed":
            parsed_schema["name"] = _md5(schema["name"])
            parsed_schema["size"] = schema["size"]

        elif schema_type == "record" or schema_type == "error":
            # records
            parsed_schema["name"] = _md5(schema["name"])
            parsed_schema["fields"] = [
                anonymize_field(field, named_schemas) for field in schema["fields"]
            ]


# Path: fastavro/const.py
# INT_MIN_VALUE = -(1 << 31)
# 
# INT_MAX_VALUE = (1 << 31) - 1
# 
# LONG_MIN_VALUE = -(1 << 63)
# 
# LONG_MAX_VALUE = (1 << 63) - 1
# 
# Path: fastavro/schema.py
# FINGERPRINT_ALGORITHMS = _schema.FINGERPRINT_ALGORITHMS
# 
# Path: fastavro/types.py

# 
# Path: fastavro/_schema_common.py
# PRIMITIVES = {
#     "boolean",
#     "bytes",
#     "double",
#     "float",
#     "int",
#     "long",
#     "null",
#     "string",
# }


# Path: fastavro/utils.py
from hashlib import md5
from string import ascii_letters
from typing import Any, Iterator, Dict, List, cast
from .const import INT_MIN_VALUE, INT_MAX_VALUE, LONG_MIN_VALUE, LONG_MAX_VALUE
from .schema import extract_record_type, parse_schema
from .types import Schema, NamedSchemas
from ._schema_common import PRIMITIVES
import random

        # Remaining valid schemas must be dict types
        schema_type = schema["type"]

        parsed_schema = {}
        parsed_schema["type"] = schema_type

        if "doc" in schema:
            parsed_schema["doc"] = _md5(schema["doc"])

        if schema_type == "array":
            parsed_schema["items"] = _anonymize_schema(schema["items"], named_schemas)

        elif schema_type == "map":
            parsed_schema["values"] = _anonymize_schema(schema["values"], named_schemas)

        elif schema_type == "enum":
            parsed_schema["name"] = _md5(schema["name"])
            parsed_schema["symbols"] = [_md5(symbol) for symbol in schema["symbols"]]

        elif schema_type == "fixed":
            parsed_schema["name"] = _md5(schema["name"])
            parsed_schema["size"] = schema["size"]

        elif schema_type == "record" or schema_type == "error":
            # records
            parsed_schema["name"] = _md5(schema["name"])
            parsed_schema["fields"] = [
                anonymize_field(field, named_schemas) for field in schema["fields"]
            ]


        elif schema_type in PRIMITIVES: