import 'generic_override_lib.dart';

abstract class Class1 {
  void method1a<T>();
  void method1b<T>();
  void method1c<T>();
  void method2a<T extends Object?>();
  void method2b<T extends Object?>();
  void method2c<T extends Object?>();
  void method3a<T extends dynamic>();
  void method3b<T extends dynamic>();
  void method3c<T extends dynamic>();
  void method4a<T extends Object>();
  void method4b<T extends Object>();
  void method4c<T extends Object?>();
  void method5a<T extends Class1>();
  void method5b<T extends Class1>();
  void method5c<T extends Class1?>();
}

abstract class Class2 extends Class1 {
  void method1a<T>();
  void method1b<T extends Object?>();
  void method1c<T extends dynamic>();
  void method2a<T>();
  void method2b<T extends Object?>();
  void method2c<T extends dynamic>();
  void method3a<T>();
  void method3b<T extends Object?>();
  void method3c<T extends dynamic>();
  void method4a<T extends Object>();
  void method4b<T extends Object?>();
  void method4c<T extends Object>();
  void method5a<T extends Class1>();
  void method5b<T extends Class1?>();
  void method5c<T extends Class1>();
}

abstract class Class3 extends LegacyClass1 {
  void method1a<T>();
  void method1b<T extends Object?>();
  void method1c<T extends dynamic>();
  void method2a<T>();
  void method2b<T extends Object?>();
  void method2c<T extends dynamic>();
  void method3a<T>();
  void method3b<T extends Object?>();
  void method3c<T extends dynamic>();
  void method4a<T extends Object>();
  void method4b<T extends Object?>();
  void method4c<T extends Object>();
  void method5a<T extends Class1>();
  void method5b<T extends Class1?>();
  void method5c<T extends Class1>();
}

main() {}
