// CHECK:
//   Mangled name: E
//   Public signature: /E|null[0]
abstract class E : Java1 {
  // CHECK:
  //   Mangled name: E#<init>(){}
  //   Public signature: /E.<init>|-5645683436151566731[0]
  //   Public signature debug description: <init>(){}
  constructor() /* primary */

  // CHECK JVM_IR:
  //   Mangled name: E#add(kotlin.Any?){}kotlin.Boolean
  //   Public signature: /E.add|8629542948597441975[0]
  //   Public signature debug description: add(kotlin.Any?){}kotlin.Boolean
  /* fake */ override fun add(p0: Any?): Boolean

  // CHECK:
  //   Mangled name: E#add(kotlin.Int;kotlin.Any?){}
  //   Public signature: /E.add|1404433481179094523[0]
  //   Public signature debug description: add(kotlin.Int;kotlin.Any?){}
  /* fake */ override fun add(p0: Int, p1: Any?): Unit

  // CHECK JVM_IR:
  //   Mangled name: E#addAll(kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  //   Mangled name for the signature by IR:       addAll(kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  //   Mangled name for the signature by Frontend: addAll(kotlin.collections.Collection<kotlin.Any?>{EnhancedNullability}){}kotlin.Boolean
  //   Public signature: /E.addAll|1853624435708785695[0]
  //   Public signature debug description: addAll(kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  /* fake */ override fun addAll(p0: Collection<Any?>): Boolean

  // CHECK JVM_IR:
  //   Mangled name: E#addAll(kotlin.Int;kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  //   Mangled name for the signature by IR:       addAll(kotlin.Int;kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  //   Mangled name for the signature by Frontend: addAll(kotlin.Int;kotlin.collections.Collection<kotlin.Any?>{EnhancedNullability}){}kotlin.Boolean
  //   Public signature: /E.addAll|-92648757594494376[0]
  //   Public signature debug description: addAll(kotlin.Int;kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  /* fake */ override fun addAll(p0: Int, p1: Collection<Any?>): Boolean

  // CHECK:
  //   Mangled name: E#clear(){}
  //   Public signature: /E.clear|-6446868449915108923[0]
  //   Public signature debug description: clear(){}
  /* fake */ override fun clear(): Unit

  // CHECK JVM_IR:
  //   Mangled name: E#clone(){}kotlin.Any{EnhancedNullability}
  //   Public signature: /E.clone|178802004086941196[0]
  //   Public signature debug description: clone(){}kotlin.Any{EnhancedNullability}
  /* fake */ override fun clone(): @EnhancedNullability Any

  // CHECK JVM_IR:
  //   Mangled name: E#contains(kotlin.Any?){}kotlin.Boolean
  //   Public signature: /E.contains|4314304964322748880[0]
  //   Public signature debug description: contains(kotlin.Any?){}kotlin.Boolean
  /* fake */ override operator fun contains(p0: Any?): Boolean

  // CHECK JVM_IR:
  //   Mangled name: E#containsAll(kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  //   Public signature: /E.containsAll|7057326425365175105[0]
  //   Public signature debug description: containsAll(kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  /* fake */ override fun containsAll(p0: Collection<Any?>): Boolean

  // CHECK:
  //   Mangled name: E#ensureCapacity(kotlin.Int){}
  //   Public signature: /E.ensureCapacity|-7913402150632352615[0]
  //   Public signature debug description: ensureCapacity(kotlin.Int){}
  /* fake */ override fun ensureCapacity(p0: Int): Unit

  // CHECK JVM_IR:
  //   Mangled name: E#equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean
  //   Public signature: /E.equals|4126616015386471185[0]
  //   Public signature debug description: equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean
  /* fake */ override operator fun equals(p0: @EnhancedNullability Any?): Boolean

  // CHECK JVM_IR:
  //   Mangled name: E#get(kotlin.Int){}kotlin.Any?
  //   Public signature: /E.get|1795875139119824730[0]
  //   Public signature debug description: get(kotlin.Int){}kotlin.Any?
  /* fake */ override operator fun get(p0: Int): Any?

  // CHECK JVM_IR:
  //   Mangled name: E#hashCode(){}kotlin.Int
  //   Public signature: /E.hashCode|-8048879360829830756[0]
  //   Public signature debug description: hashCode(){}kotlin.Int
  /* fake */ override fun hashCode(): Int

  // CHECK JVM_IR:
  //   Mangled name: E#indexOf(kotlin.Any?){}kotlin.Int
  //   Public signature: /E.indexOf|-168313163175862320[0]
  //   Public signature debug description: indexOf(kotlin.Any?){}kotlin.Int
  /* fake */ override fun indexOf(p0: Any?): Int

  // CHECK JVM_IR:
  //   Mangled name: E#isEmpty(){}kotlin.Boolean
  //   Public signature: /E.isEmpty|-626562167393617703[0]
  //   Public signature debug description: isEmpty(){}kotlin.Boolean
  /* fake */ override fun isEmpty(): Boolean

  // CHECK JVM_IR:
  //   Mangled name: E#iterator(){}kotlin.collections.MutableIterator<kotlin.Any?>
  //   Mangled name for the signature by IR:       iterator(){}kotlin.collections.MutableIterator<kotlin.Any?>
  //   Mangled name for the signature by Frontend: iterator(){}kotlin.collections.MutableIterator<kotlin.Any?>{EnhancedNullability}
  //   Public signature: /E.iterator|5172039261324384933[0]
  //   Public signature debug description: iterator(){}kotlin.collections.MutableIterator<kotlin.Any?>
  /* fake */ override operator fun iterator(): MutableIterator<Any?>

  // CHECK JVM_IR:
  //   Mangled name: E#lastIndexOf(kotlin.Any?){}kotlin.Int
  //   Public signature: /E.lastIndexOf|3021938800095386716[0]
  //   Public signature debug description: lastIndexOf(kotlin.Any?){}kotlin.Int
  /* fake */ override fun lastIndexOf(p0: Any?): Int

  // CHECK JVM_IR:
  //   Mangled name: E#listIterator(){}kotlin.collections.MutableListIterator<kotlin.Any?>
  //   Mangled name for the signature by IR:       listIterator(){}kotlin.collections.MutableListIterator<kotlin.Any?>
  //   Mangled name for the signature by Frontend: listIterator(){}kotlin.collections.MutableListIterator<kotlin.Any?>{EnhancedNullability}
  //   Public signature: /E.listIterator|-1621664620524293242[0]
  //   Public signature debug description: listIterator(){}kotlin.collections.MutableListIterator<kotlin.Any?>
  /* fake */ override fun listIterator(): MutableListIterator<Any?>

  // CHECK JVM_IR:
  //   Mangled name: E#listIterator(kotlin.Int){}kotlin.collections.MutableListIterator<kotlin.Any?>
  //   Mangled name for the signature by IR:       listIterator(kotlin.Int){}kotlin.collections.MutableListIterator<kotlin.Any?>
  //   Mangled name for the signature by Frontend: listIterator(kotlin.Int){}kotlin.collections.MutableListIterator<kotlin.Any?>{EnhancedNullability}
  //   Public signature: /E.listIterator|2617555913478172101[0]
  //   Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.MutableListIterator<kotlin.Any?>
  /* fake */ override fun listIterator(p0: Int): MutableListIterator<Any?>

  // CHECK JVM_IR:
  //   Mangled name: E#remove(kotlin.Any?){}kotlin.Boolean
  //   Public signature: /E.remove|-4847290102784382063[0]
  //   Public signature debug description: remove(kotlin.Any?){}kotlin.Boolean
  /* fake */ override fun remove(p0: Any?): Boolean

  // CHECK JVM_IR:
  //   Mangled name: E#removeAll(kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  //   Public signature: /E.removeAll|2083414713666946876[0]
  //   Public signature debug description: removeAll(kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  /* fake */ override fun removeAll(p0: Collection<Any?>): Boolean

  // CHECK JVM_IR:
  //   Mangled name: E#removeAt(kotlin.Int){}kotlin.Any?
  //   Public signature: /E.removeAt|-8980852212530989044[0]
  //   Public signature debug description: removeAt(kotlin.Int){}kotlin.Any?
  /* fake */ override operator fun removeAt(p0: Int): Any?

  // CHECK:
  //   Mangled name: E#removeRange(kotlin.Int;kotlin.Int){}
  //   Public signature: /E.removeRange|7632320944993890593[0]
  //   Public signature debug description: removeRange(kotlin.Int;kotlin.Int){}
  protected_and_package /* fake */ override fun removeRange(p0: Int, p1: Int): Unit

  // CHECK JVM_IR:
  //   Mangled name: E#retainAll(kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  //   Public signature: /E.retainAll|-4369081002402657372[0]
  //   Public signature debug description: retainAll(kotlin.collections.Collection<kotlin.Any?>){}kotlin.Boolean
  /* fake */ override fun retainAll(p0: Collection<Any?>): Boolean

  // CHECK JVM_IR:
  //   Mangled name: E#set(kotlin.Int;kotlin.Any?){}kotlin.Any?
  //   Public signature: /E.set|8583092022568728310[0]
  //   Public signature debug description: set(kotlin.Int;kotlin.Any?){}kotlin.Any?
  /* fake */ override operator fun set(p0: Int, p1: Any?): Any?

  // CHECK JVM_IR:
  //   Mangled name: E#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList<kotlin.Any?>
  //   Mangled name for the signature by IR:       subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList<kotlin.Any?>
  //   Mangled name for the signature by Frontend: subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList<kotlin.Any?>{EnhancedNullability}
  //   Public signature: /E.subList|5649745263147539891[0]
  //   Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList<kotlin.Any?>
  /* fake */ override fun subList(p0: Int, p1: Int): MutableList<Any?>

  // CHECK JVM_IR:
  //   Mangled name: E#toArray(){}kotlin.Array<out|kotlin.Any?>?
  //   Public signature: /E.toArray|-8468800257910341540[0]
  //   Public signature debug description: toArray(){}kotlin.Array<out|kotlin.Any?>?
  /* fake */ override fun toArray(): Array<out Any?>?

  // CHECK JVM_IR:
  //   Mangled name: E#toArray(kotlin.Array<out|kotlin.Any?>?){0§<kotlin.Any?>}kotlin.Array<out|kotlin.Any?>?
  //   Public signature: /E.toArray|5867798891017880795[0]
  //   Public signature debug description: toArray(kotlin.Array<out|kotlin.Any?>?){0§<kotlin.Any?>}kotlin.Array<out|kotlin.Any?>?
  /* fake */ override fun <T : Any?> toArray(p0: Array<out Any?>?): Array<out Any?>?

  // CHECK JVM_IR:
  //   Mangled name: E#toString(){}kotlin.String{EnhancedNullability}
  //   Public signature: /E.toString|7581629773206850948[0]
  //   Public signature debug description: toString(){}kotlin.String{EnhancedNullability}
  /* fake */ override fun toString(): @EnhancedNullability String

  // CHECK:
  //   Mangled name: E#trimToSize(){}
  //   Public signature: /E.trimToSize|-5937642362792008740[0]
  //   Public signature debug description: trimToSize(){}
  /* fake */ override fun trimToSize(): Unit

  // CHECK:
  //   Mangled name: E{}size
  //   Public signature: /E.size|-6253659984320132064[0]
  //   Public signature debug description: {}size
  /* fake */ override val size: Int
    // CHECK JVM_IR:
    //   Mangled name: E#<get-size>(){}kotlin.Int
    //   Public signature: /E.size.<get-size>|-3941649985161900780[0]
    //   Public signature debug description: <get-size>(){}kotlin.Int
    /* fake */ override get(): Int

}

