def resolve_one_of(tags, at_least_one):
if len(tags) < len(at_least_one):<EOL><INDENT>return None<EOL><DEDENT>for possible_resolution in choose_1_from_each(at_least_one):<EOL><INDENT>resolution = {}<EOL>pr = possible_resolution[:]<EOL>for entity_type in pr:<EOL><INDENT>last_end_index = -<NUM_LIT:1><EOL>if entity_type in resolution:<EOL><INDENT>last_end_index = resolution.get[entity_type][-<NUM_LIT:1>].get('<STR_LIT>')<EOL><DEDENT>tag, value, c = find_first_tag(tags, entity_type, after_index=last_end_index)<EOL>if not tag:<EOL><INDENT>break<EOL><DEDENT>else:<EOL><INDENT>if entity_type not in resolution:<EOL><INDENT>resolution[entity_type] = []<EOL><DEDENT>resolution[entity_type].append(tag)<EOL><DEDENT><DEDENT>if len(resolution) == len(possible_resolution):<EOL><INDENT>return resolution<EOL><DEDENT><DEDENT>return None<EOL>
This searches tags for Entites in at_least_one and returns any match

    Args:
        tags(list): List of tags with Entities to search for Entities
        at_least_one(list): List of Entities to find in tags

    Returns:
        object: returns None if no match is found but returns any match as an object