code: def ParseRow(self, parser_mediator, row_offset, row):
      
      timestamp = self._ParseTimestamp(parser_mediator, row)
      if timestamp is None:
        return
  
      event_data = TrendMicroUrlEventData()
      event_data.offset = row_offset
  
      # Convert and store integer values.
      for field in (
          'credibility_rating', 'credibility_score', 'policy_identifier',
          'threshold', 'block_mode'):
        try:
          value = int(row[field], 10)
        except (ValueError, TypeError):
          value = None
        setattr(event_data, field, value)
  
      # Store string values.
      for field in ('url', 'group_name', 'group_code', 'application_name', 'ip'):
        setattr(event_data, field, row[field])
  
      event = time_events.DateTimeValuesEvent(
          timestamp, definitions.TIME_DESCRIPTION_WRITTEN)
      parser_mediator.ProduceEventWithEventData(event, event_data)
docs: Parses a line of the log file and produces events.
  
      Args:
        parser_mediator (ParserMediator): mediates interactions between parsers
            and other components, such as storage and dfvfs.
        row_offset (int): line number of the row.
        row (dict[str, str]): fields of a single row, as specified in COLUMNS.