Return all paths to tails files, in specified tails base directory (recursively),
        without symbolic links associating revocation registry identifiers.

        At an Issuer, tails files should not persist long without revocation registry identifier
        association via symbolic link. At a HolderProver, a newly downloaded tails file stays
        unlinked until the agent stores a credential or creates a proof needing it, or else the
        agent restarts.

        :param base_dir: base directory for tails files, thereafter split by cred def id
        :return: set of paths to tails files with no local symbolic links to them

def unlinked(base_dir: str) -> set:
        """
        Return all paths to tails files, in specified tails base directory (recursively),
        without symbolic links associating revocation registry identifiers.

        At an Issuer, tails files should not persist long without revocation registry identifier
        association via symbolic link. At a HolderProver, a newly downloaded tails file stays
        unlinked until the agent stores a credential or creates a proof needing it, or else the
        agent restarts.

        :param base_dir: base directory for tails files, thereafter split by cred def id
        :return: set of paths to tails files with no local symbolic links to them
        """

        return {join(dp, f) for dp, dn, fn in walk(base_dir)
            for f in fn if isfile(join(dp, f)) and not islink(join(dp, f))} - {
                join(dirname(path_link), readlink(path_link)) for path_link in Tails.links(base_dir)}