          data: dict
              The latest raw data dictionary
          """
          for key in list(self._carry_over):
              if key not in data:
                  logger.debug("Carry over found for item %s which does not exist in current "
                               "data: %s. Skipping.", key, list(data))
                  continue
 
</s> remove                     self._config["mask_type"], filename, list(detected_face.mask.keys)))
 </s> add                     self._config["mask_type"], filename, list(detected_face.mask))) </s> remove         if not is_live or (is_live and session_id not in self._data):
 </s> add         if not is_live or (is_live and not self._data.get(session_id, None)): </s> remove         logger.warning("You are using legacy extracted faces but have selected '%s' centering "
                       "which is incompatible. Switching centering to 'legacy'", self._centering)
 </s> add         if set_flag:
            logger.warning("You are using legacy extracted faces but have selected '%s' centering "
                           "which is incompatible. Switching centering to 'legacy'",
                           self._centering)
        logger.debug("Carry over keys: %s, data keys: %s", list(self._carry_over), list(data))
          data: dict
              The latest raw data dictionary
          """
        logger.debug("Carry over keys: %s, data keys: %s", list(self._carry_over), list(data))
          for key in list(self._carry_over):
              if key not in data:
                  logger.debug("Carry over found for item %s which does not exist in current "
                               "data: %s. Skipping.", key, list(data))
                  continue
keep keep add keep keep keep keep keep
 Training bugfixes:
  - lib.training.generator
      - Fix duplicate "legacy faceset" warning
      - Fix missing mask error message
  - gui: Fix bug in live stats when resuming an old session 
lib/gui/analysis/event_reader.py