'Takes the dict of `kwargs` and loads all keys that are *valid*
(i.e., are included in the `valid_keys` list) into the dictionary`
instance variable.
Any keys that aren\'t recognized are added to the `unrecognized_keys`
attribute.
Args:
**kwargs: Attributes associated with this protocol unit.'

def __init__(self, **kwargs):

    for required_key in self.required_keys:
        if (required_key not in kwargs):
            raise RuntimeError(('Key    %s    is    required' % required_key))
    self.unrecognized_keys = {}
    for (k, v) in kwargs.items():
        if ((k in self.valid_keys) or (k in self.internal_keys)):
            self.__dict__[k] = v
        else:
            self.unrecognized_keys[k] = v
