<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def supply(self, issuer):
 """Supplies the `jwks_uri` for the given issuer. Args: issuer: the issuer. Returns: The `jwks_uri` that is either statically configured or retrieved via OpenId discovery. None is returned when the issuer is unknown or the OpenId discovery fails. """

        issuer_uri_config = self._issuer_uri_configs.get(issuer)

        if not issuer_uri_config:
            # The issuer is unknown.
            return

        jwks_uri = issuer_uri_config.jwks_uri
        if jwks_uri:
            # When jwks_uri is set, return it directly.
            return jwks_uri

        # When jwksUri is empty, we try to retrieve it through the OpenID
        # discovery.
        open_id_valid = issuer_uri_config.open_id_valid
        if open_id_valid:
            discovered_jwks_uri = _discover_jwks_uri(issuer)
            self._issuer_uri_configs[issuer] = IssuerUriConfig(False,
                                                               discovered_jwks_uri)
            return discovered_jwks_uri