text: # This file is dual licensed under the terms of the Apache License, Version
  # 2.0, and the BSD License. See the LICENSE file in the root of this repository
  # for complete details.
  
  
  class InfinityType:
      def __repr__(self) -> str:
          return "Infinity"
  
      def __hash__(self) -> int:
          return hash(repr(self))
  
      def __lt__(self, other: object) -> bool:
          return False
  
      def __le__(self, other: object) -> bool:
          return False
  
      def __eq__(self, other: object) -> bool:
          return isinstance(other, self.__class__)
  
      def __ne__(self, other: object) -> bool:
          return not isinstance(other, self.__class__)
  
      def __gt__(self, other: object) -> bool:
          return True
  
      def __ge__(self, other: object) -> bool:
          return True
  
      def __neg__(self: object) -> "NegativeInfinityType":
          return NegativeInfinity
  
  
  Infinity = InfinityType()
  
  
  class NegativeInfinityType:
      def __repr__(self) -> str:
          return "-Infinity"
  
      def __hash__(self) -> int:
          return hash(repr(self))
  
      def __lt__(self, other: object) -> bool:
          return True
  
      def __le__(self, other: object) -> bool:
          return True
  
      def __eq__(self, other: object) -> bool:
          return isinstance(other, self.__class__)
  
      def __ne__(self, other: object) -> bool:
          return not isinstance(other, self.__class__)
  
      def __gt__(self, other: object) -> bool:
          return False
  
      def __ge__(self, other: object) -> bool:
          return False
  
      def __neg__(self: object) -> InfinityType:
          return Infinity
  
  
  NegativeInfinity = NegativeInfinityType()
  