def dflt_interval(self, cd_id: str) -> (int, int):
LOGGER.debug('<STR_LIT>')<EOL>fro = None<EOL>to = None<EOL>for rr_id in self:<EOL><INDENT>if cd_id != rev_reg_id2cred_def_id(rr_id):<EOL><INDENT>continue<EOL><DEDENT>entry = self[rr_id]<EOL>if entry.rr_delta_frames:<EOL><INDENT>to = max(entry.rr_delta_frames, key=lambda f: f.to).to<EOL>fro = min(fro or to, to)<EOL><DEDENT><DEDENT>if not (fro and to):<EOL><INDENT>LOGGER.debug(<EOL>'<STR_LIT>',<EOL>cd_id)<EOL>raise CacheIndex('<STR_LIT>'.format(cd_id))<EOL><DEDENT>rv = (fro, to)<EOL>LOGGER.debug('<STR_LIT>', rv)<EOL>return rv<EOL>
Return default non-revocation interval from latest 'to' times on delta frames
of revocation cache entries on indices stemming from input cred def id.

Compute the 'from'/'to' values as the earliest/latest 'to' values of all
cached delta frames on all rev reg ids stemming from the input cred def id.

E.g., on frames for
    rev-reg-0: -[xx]---[xxxx]-[x]---[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]--> time
    rev-reg-1: ----------------------[xxxx]----[xxx]---[xxxxxxxxxxxxxxxxxxxx]---------> time
    rev-reg-2: -------------------------------------------[xx]-----[xxxx]-----[xxxxx]-> time
    rev-reg-3: -----------------------------------------------------------[xxxxxxxx]--> time

return the most recent interval covering all matching revocation registries in the cache; i.e.,:
    interval:  -------------------------------------------------------------[*******]-> time

Raise CacheIndex if there are no matching entries.

:param cd_id: cred def identifier to match
:return: default non-revocation interval as 2-tuple (fro, to)