<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _FindKeys(self, key, names, matches):
 """Searches the plist key hierarchy for keys with matching names. If a match is found a tuple of the key name and value is added to the matches list. Args: key (dict[str, object]):
 plist key. names (list[str]):
 names of the keys to match. matches (list[str]):
 keys with matching names. """

    for name, subkey in iter(key.items()):
      if name in names:
        matches.append((name, subkey))

      if isinstance(subkey, dict):
        self._FindKeys(subkey, names, matches)