<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def getDynDnsClientForConfig(config, plugins=None):
 """Instantiate and return a complete and working dyndns client. :param config: a dictionary with configuration keys :param plugins: an object that implements PluginManager """

    initparams = {}
    if "interval" in config:
        initparams["detect_interval"] = config["interval"]

    if plugins is not None:
        initparams["plugins"] = plugins

    if "updater" in config:
        for updater_name, updater_options in config["updater"]:
            initparams["updater"] = get_updater_class(updater_name)(**updater_options)

    # find class and instantiate the detector:
    if "detector" in config:
        detector_name, detector_opts = config["detector"][-1]
        try:
            klass = get_detector_class(detector_name)
        except KeyError as exc:
            LOG.warning("Invalid change detector configuration: '%s'",
                        detector_name, exc_info=exc)
            return None
        thedetector = klass(**detector_opts)
        initparams["detector"] = thedetector

    return DynDnsClient(**initparams)