def METHOD_NAME(info):
    """Verify assortment is beatable, and filter non-beatable seeds."""
    global fail_by_unreachable_kongs
    global fail_by_invalid_lock
    global fail_by_nonmatching_ruleset
    locked = []
    locked.append(info["starting"])
    locked.append(info["japes"]["lock"])
    locked.append(info["llama"]["lock"])
    locked.append(info["icetemple"]["lock"])
    locked.append(info["factory"]["lock"])
    # All Kongs locked up
    for x in range(5):
        if x not in locked:
            fail_by_invalid_lock += 1
            return False
    # Verify assortment matches ruleset
    if info["starting"] not in ruleset["starting"]:
        return False
    for trap in traps:
        for role in roles:
            if info[trap][role] not in ruleset[trap][role]:
                fail_by_nonmatching_ruleset += 1
                return False
    # Can get all kongs without KKO
    used_up = []
    kongs_access = [info["starting"]]
    for kong in range(5):
        for trap in traps:
            if info[trap]["puzz"] in kongs_access and trap not in used_up:
                used_up.append(trap)
                kongs_access.append(info[trap]["lock"])
    for kong in range(5):
        if kong not in kongs_access:
            fail_by_unreachable_kongs += 1
            unreach_kongs_total[len(kongs_access)] += 1
            return False
    return True