old_contents: # --------------------------------------------------------------------------
  # Error handlers.
  # --------------------------------------------------------------------------
  
  
  class TemplateError(Exception):
      """ Base class for all exceptions raised by the template engine. """
      pass
  
  
  class LoadError(TemplateError):
      """ Error attempting to load a template file. """
      pass
  
  
  class NestingError(TemplateError):
      """ Improperly nested template tags. """
      pass
  
  
  class InvalidTag(TemplateError):
      """ Unrecognised template tag. """
      pass
  
  
  class InvalidFilter(TemplateError):
      """ Unrecognised filter name. """
      pass
  
  
  class TemplateSyntaxError(TemplateError):
      """ Invalid template syntax. """
      pass
  
  
  class CallError(TemplateError):
      """ Raised if a callable variable throws an exception. """
      pass
  
  
  class FilterError(TemplateError):
      """ Raised if a filter function throws an exception. """
      pass
  
  
  class UnpackingError(TemplateError):
      """ Raised if an attempt to unpack a for-loop variable fails. """
      pass
  
  
  class TemplateNotFound(TemplateError):
      """ Raised if a loader cannot locate a template. """
      pass
  
  
  class Undefined:
  
      """ Null type returned when a context lookup fails. """
  
      def __str__(self):
          return ''
  
      def __bool__(self):
          return False
  
      def __len__(self):
          return 0
  
      def __contains__(self, key):
          return False
  
      def __iter__(self):
          return self
  
      def __next__(self):
          raise StopIteration
  
      def __eq__(self, other):
          return False
  
      def __ne__(self, other):
          return True
  
  
  # Deprecated. The following aliases will be removed in a future version.
  InvalidTagError = InvalidTag
  InvalidFilterError = InvalidFilter
  
new_contents: # --------------------------------------------------------------------------
  # Error handlers.
  # --------------------------------------------------------------------------
  
  
  class TemplateError(Exception):
      """ Base class for all exceptions raised by the template engine. """
      pass
  
  
  class LoadError(TemplateError):
      """ Error attempting to load a template file. """
      pass
  
  
  class NestingError(TemplateError):
      """ Improperly nested template tags. """
      pass
  
  
  class InvalidTag(TemplateError):
      """ Unrecognised template tag. """
      pass
  
  
  class InvalidFilter(TemplateError):
      """ Unrecognised filter name. """
      pass
  
  
  class TemplateSyntaxError(TemplateError):
      """ Invalid template syntax. """
      pass
  
  
  class CallError(TemplateError):
      """ Raised if a callable variable throws an exception. """
      pass
  
  
  class FilterError(TemplateError):
      """ Raised if a filter function throws an exception. """
      pass
  
  
  class UnpackingError(TemplateError):
      """ Raised if an attempt to unpack a for-loop variable fails. """
      pass
  
  
  class TemplateNotFound(TemplateError):
      """ Raised if a loader cannot locate a template. """
      pass
  
  
  class Undefined:
  
      """ Null type returned when a context lookup fails. """
  
      def __str__(self):
          return ''
  
      def __bool__(self):
          return False
  
      def __len__(self):
          return 0
  
      def __contains__(self, key):
          return False
  
      def __iter__(self):
          return self
  
      def __next__(self):
          raise StopIteration
  
      def __eq__(self, other):
          return False
  
      def __ne__(self, other):
          return True
  
subject: Remove deprecated error aliases