content: 
  # Abstract classes.
  
  class Event(object):
      def __init__(self, start_mark=None, end_mark=None):
          self.start_mark = start_mark
          self.end_mark = end_mark
      def __repr__(self):
          attributes = [key for key in ['anchor', 'tag', 'implicit', 'value']
                  if hasattr(self, key)]
          arguments = ', '.join(['%s=%r' % (key, getattr(self, key))
                  for key in attributes])
          return '%s(%s)' % (self.__class__.__name__, arguments)
  
  class NodeEvent(Event):
      def __init__(self, anchor, start_mark=None, end_mark=None):
          self.anchor = anchor
          self.start_mark = start_mark
          self.end_mark = end_mark
  
  class CollectionStartEvent(NodeEvent):
      def __init__(self, anchor, tag, implicit, start_mark=None, end_mark=None,
              flow_style=None):
          self.anchor = anchor
          self.tag = tag
          self.implicit = implicit
          self.start_mark = start_mark
          self.end_mark = end_mark
          self.flow_style = flow_style
  
  class CollectionEndEvent(Event):
      pass
  
  # Implementations.
  
  class StreamStartEvent(Event):
      def __init__(self, start_mark=None, end_mark=None, encoding=None):
          self.start_mark = start_mark
          self.end_mark = end_mark
          self.encoding = encoding
  
  class StreamEndEvent(Event):
      pass
  
  class DocumentStartEvent(Event):
      def __init__(self, start_mark=None, end_mark=None,
              explicit=None, version=None, tags=None):
          self.start_mark = start_mark
          self.end_mark = end_mark
          self.explicit = explicit
          self.version = version
          self.tags = tags
  
  class DocumentEndEvent(Event):
      def __init__(self, start_mark=None, end_mark=None,
              explicit=None):
          self.start_mark = start_mark
          self.end_mark = end_mark
          self.explicit = explicit
  
  class AliasEvent(NodeEvent):
      pass
  
  class ScalarEvent(NodeEvent):
      def __init__(self, anchor, tag, implicit, value,
              start_mark=None, end_mark=None, style=None):
          self.anchor = anchor
          self.tag = tag
          self.implicit = implicit
          self.value = value
          self.start_mark = start_mark
          self.end_mark = end_mark
          self.style = style
  
  class SequenceStartEvent(CollectionStartEvent):
      pass
  
  class SequenceEndEvent(CollectionEndEvent):
      pass
  
  class MappingStartEvent(CollectionStartEvent):
      pass
  
  class MappingEndEvent(CollectionEndEvent):
      pass
  
  