from typing import Any


def get_nested(the_dict: dict, nested_key: str, default: Any = None) -> Any:
    """
    Returns the value of a nested key in an dictorinary

    Args:
        the_dict (dict): The dictionary to get the nested value from
        nested_key (str): The nested key
        default: The value to be returned if the key is not found

    Returns:

    Examples:
        >>> t = {'a': {'b': {'c':'value_of_c'}}}
        >>> get_nested(t, 'b:c')
        'value_of_c'
        >>> get_nested(t, 'b:c:d', 'not found')
        'not found'

    """

    keys = nested_key.split(':')

    if not hasattr(the_dict, '__iter__'):
        return default

    if len(keys) == 1:
        if keys[0] in the_dict:
            return the_dict[keys[0]]
        else:
            return default
    else:
        if keys[0] in the_dict:
            return get_nested(the_dict[keys[0]], ':'.join(keys[1:]), default)
        else:
            return default