public class org.apache.avro.specific.SpecificData extends org.apache.avro.generic.GenericData
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.avro.specific.SpecificData
  super_class: org.apache.avro.generic.GenericData
{
  private static final org.apache.avro.specific.SpecificData INSTANCE;
    descriptor: Lorg/apache/avro/specific/SpecificData;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Class<?>[] NO_ARG;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  private static final java.lang.Class<?>[] SCHEMA_ARG;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  private static final java.lang.ClassValue<java.lang.reflect.Constructor> CTOR_CACHE;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ClassValue<Ljava/lang/reflect/Constructor;>;

  public static final java.lang.String CLASS_PROP;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java-class"

  public static final java.lang.String KEY_CLASS_PROP;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java-key-class"

  public static final java.lang.String ELEMENT_PROP;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java-element-class"

  public static final java.util.Set<java.lang.String> RESERVED_WORDS;
    descriptor: Ljava/util/Set;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  protected java.util.Set<java.lang.Class> stringableClasses;
    descriptor: Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Set<Ljava/lang/Class;>;

  private boolean useCustomCoderFlag;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, java.lang.Class> classCache;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Class;>;

  private static final java.lang.Class NO_CLASS;
    descriptor: Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.avro.Schema NULL_SCHEMA;
    descriptor: Lorg/apache/avro/Schema;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.ClassValue<org.apache.avro.Schema> schemaClassCache;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/ClassValue<Lorg/apache/avro/Schema;>;

  private final java.util.Map<java.lang.reflect.Type, org.apache.avro.Schema> schemaTypeCache;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/reflect/Type;Lorg/apache/avro/Schema;>;

  private static volatile int[] $SWITCH_TABLE$org$apache$avro$Schema$Type;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 54
            new org.apache.avro.specific.SpecificData
            dup
            invokespecial org.apache.avro.specific.SpecificData.<init>:()V
            putstatic org.apache.avro.specific.SpecificData.INSTANCE:Lorg/apache/avro/specific/SpecificData;
         1: .line 56
            iconst_0
            anewarray java.lang.Class
            putstatic org.apache.avro.specific.SpecificData.NO_ARG:[Ljava/lang/Class;
         2: .line 57
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/apache/avro/Schema;
            aastore
            putstatic org.apache.avro.specific.SpecificData.SCHEMA_ARG:[Ljava/lang/Class;
         3: .line 58
            new org.apache.avro.specific.SpecificData$1
            dup
            invokespecial org.apache.avro.specific.SpecificData$1.<init>:()V
            putstatic org.apache.avro.specific.SpecificData.CTOR_CACHE:Ljava/lang/ClassValue;
         4: .line 83
            new java.util.HashSet
            dup
            bipush 54
            anewarray java.lang.String
            dup
            iconst_0
         5: .line 84
            ldc "abstract"
            aastore
            dup
            iconst_1
            ldc "assert"
            aastore
            dup
            iconst_2
            ldc "boolean"
            aastore
            dup
            iconst_3
            ldc "break"
            aastore
            dup
            iconst_4
            ldc "byte"
            aastore
            dup
            iconst_5
            ldc "case"
            aastore
            dup
            bipush 6
            ldc "catch"
            aastore
            dup
            bipush 7
            ldc "char"
            aastore
            dup
            bipush 8
            ldc "class"
            aastore
            dup
            bipush 9
            ldc "const"
            aastore
            dup
            bipush 10
         6: .line 85
            ldc "continue"
            aastore
            dup
            bipush 11
            ldc "default"
            aastore
            dup
            bipush 12
            ldc "do"
            aastore
            dup
            bipush 13
            ldc "double"
            aastore
            dup
            bipush 14
            ldc "else"
            aastore
            dup
            bipush 15
            ldc "enum"
            aastore
            dup
            bipush 16
            ldc "extends"
            aastore
            dup
            bipush 17
            ldc "false"
            aastore
            dup
            bipush 18
            ldc "final"
            aastore
            dup
            bipush 19
            ldc "finally"
            aastore
            dup
            bipush 20
            ldc "float"
            aastore
            dup
            bipush 21
            ldc "for"
            aastore
            dup
            bipush 22
         7: .line 86
            ldc "goto"
            aastore
            dup
            bipush 23
            ldc "if"
            aastore
            dup
            bipush 24
            ldc "implements"
            aastore
            dup
            bipush 25
            ldc "import"
            aastore
            dup
            bipush 26
            ldc "instanceof"
            aastore
            dup
            bipush 27
            ldc "int"
            aastore
            dup
            bipush 28
            ldc "interface"
            aastore
            dup
            bipush 29
            ldc "long"
            aastore
            dup
            bipush 30
            ldc "native"
            aastore
            dup
            bipush 31
            ldc "new"
            aastore
            dup
            bipush 32
            ldc "null"
            aastore
            dup
            bipush 33
         8: .line 87
            ldc "package"
            aastore
            dup
            bipush 34
            ldc "private"
            aastore
            dup
            bipush 35
            ldc "protected"
            aastore
            dup
            bipush 36
            ldc "public"
            aastore
            dup
            bipush 37
            ldc "return"
            aastore
            dup
            bipush 38
            ldc "short"
            aastore
            dup
            bipush 39
            ldc "static"
            aastore
            dup
            bipush 40
            ldc "strictfp"
            aastore
            dup
            bipush 41
            ldc "super"
            aastore
            dup
            bipush 42
            ldc "switch"
            aastore
            dup
            bipush 43
         9: .line 88
            ldc "synchronized"
            aastore
            dup
            bipush 44
            ldc "this"
            aastore
            dup
            bipush 45
            ldc "throw"
            aastore
            dup
            bipush 46
            ldc "throws"
            aastore
            dup
            bipush 47
            ldc "transient"
            aastore
            dup
            bipush 48
            ldc "true"
            aastore
            dup
            bipush 49
            ldc "try"
            aastore
            dup
            bipush 50
            ldc "void"
            aastore
            dup
            bipush 51
            ldc "volatile"
            aastore
            dup
            bipush 52
            ldc "while"
            aastore
            dup
            bipush 53
        10: .line 90
            ldc "Builder"
            aastore
        11: .line 84
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
        12: .line 83
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            putstatic org.apache.avro.specific.SpecificData.RESERVED_WORDS:Ljava/util/Set;
        13: .line 237
            new org.apache.avro.specific.SpecificData$2
            dup
            invokespecial org.apache.avro.specific.SpecificData$2.<init>:()V
        14: .line 238
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
        15: .line 237
            putstatic org.apache.avro.specific.SpecificData.NO_CLASS:Ljava/lang/Class;
        16: .line 239
            getstatic org.apache.avro.Schema$Type.NULL:Lorg/apache/avro/Schema$Type;
            invokestatic org.apache.avro.Schema.create:(Lorg/apache/avro/Schema$Type;)Lorg/apache/avro/Schema;
            putstatic org.apache.avro.specific.SpecificData.NULL_SCHEMA:Lorg/apache/avro/Schema;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.avro.specific.SpecificData this
         0: .line 110
            aload 0 /* this */
            invokespecial org.apache.avro.generic.GenericData.<init>:()V
         1: .line 100
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
         2: .line 102
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            ldc Ljava/math/BigDecimal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 103
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            ldc Ljava/math/BigInteger;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 104
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            ldc Ljava/net/URI;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 105
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            ldc Ljava/net/URL;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 106
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            ldc Ljava/io/File;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 192
            aload 0 /* this */
         8: .line 193
            ldc "org.apache.avro.specific.use_custom_coders"
            ldc "false"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putfield org.apache.avro.specific.SpecificData.useCustomCoderFlag:Z
         9: .line 235
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.apache.avro.specific.SpecificData.classCache:Ljava/util/Map;
        10: .line 332
            aload 0 /* this */
            new org.apache.avro.specific.SpecificData$3
            dup
            aload 0 /* this */
            invokespecial org.apache.avro.specific.SpecificData$3.<init>:(Lorg/apache/avro/specific/SpecificData;)V
            putfield org.apache.avro.specific.SpecificData.schemaClassCache:Ljava/lang/ClassValue;
        11: .line 340
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield org.apache.avro.specific.SpecificData.schemaTypeCache:Ljava/util/Map;
        12: .line 111
            return
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/apache/avro/specific/SpecificData;

  public void <init>(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 115
            aload 0 /* this */
            aload 1 /* classLoader */
            invokespecial org.apache.avro.generic.GenericData.<init>:(Ljava/lang/ClassLoader;)V
         1: .line 100
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
         2: .line 102
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            ldc Ljava/math/BigDecimal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 103
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            ldc Ljava/math/BigInteger;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 104
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            ldc Ljava/net/URI;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 105
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            ldc Ljava/net/URL;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 106
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            ldc Ljava/io/File;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 192
            aload 0 /* this */
         8: .line 193
            ldc "org.apache.avro.specific.use_custom_coders"
            ldc "false"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putfield org.apache.avro.specific.SpecificData.useCustomCoderFlag:Z
         9: .line 235
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.apache.avro.specific.SpecificData.classCache:Ljava/util/Map;
        10: .line 332
            aload 0 /* this */
            new org.apache.avro.specific.SpecificData$3
            dup
            aload 0 /* this */
            invokespecial org.apache.avro.specific.SpecificData$3.<init>:(Lorg/apache/avro/specific/SpecificData;)V
            putfield org.apache.avro.specific.SpecificData.schemaClassCache:Ljava/lang/ClassValue;
        11: .line 340
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield org.apache.avro.specific.SpecificData.schemaTypeCache:Ljava/util/Map;
        12: .line 116
            return
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lorg/apache/avro/specific/SpecificData;
            0   13     1  classLoader  Ljava/lang/ClassLoader;
    MethodParameters:
             Name  Flags
      classLoader  

  public org.apache.avro.io.DatumReader createDatumReader(org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Schema;)Lorg/apache/avro/io/DatumReader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // org.apache.avro.Schema schema
         0: .line 120
            new org.apache.avro.specific.SpecificDatumReader
            dup
            aload 1 /* schema */
            aload 1 /* schema */
            aload 0 /* this */
            invokespecial org.apache.avro.specific.SpecificDatumReader.<init>:(Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/specific/SpecificData;)V
            areturn
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/avro/specific/SpecificData;
            0    1     1  schema  Lorg/apache/avro/Schema;
    MethodParameters:
        Name  Flags
      schema  

  public org.apache.avro.io.DatumReader createDatumReader(org.apache.avro.Schema, org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)Lorg/apache/avro/io/DatumReader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // org.apache.avro.Schema writer
        start local 2 // org.apache.avro.Schema reader
         0: .line 125
            new org.apache.avro.specific.SpecificDatumReader
            dup
            aload 1 /* writer */
            aload 2 /* reader */
            aload 0 /* this */
            invokespecial org.apache.avro.specific.SpecificDatumReader.<init>:(Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/specific/SpecificData;)V
            areturn
        end local 2 // org.apache.avro.Schema reader
        end local 1 // org.apache.avro.Schema writer
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/avro/specific/SpecificData;
            0    1     1  writer  Lorg/apache/avro/Schema;
            0    1     2  reader  Lorg/apache/avro/Schema;
    MethodParameters:
        Name  Flags
      writer  
      reader  

  public org.apache.avro.io.DatumWriter createDatumWriter(org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Schema;)Lorg/apache/avro/io/DatumWriter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // org.apache.avro.Schema schema
         0: .line 130
            new org.apache.avro.specific.SpecificDatumWriter
            dup
            aload 1 /* schema */
            aload 0 /* this */
            invokespecial org.apache.avro.specific.SpecificDatumWriter.<init>:(Lorg/apache/avro/Schema;Lorg/apache/avro/specific/SpecificData;)V
            areturn
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/avro/specific/SpecificData;
            0    1     1  schema  Lorg/apache/avro/Schema;
    MethodParameters:
        Name  Flags
      schema  

  public static org.apache.avro.specific.SpecificData get();
    descriptor: ()Lorg/apache/avro/specific/SpecificData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 135
            getstatic org.apache.avro.specific.SpecificData.INSTANCE:Lorg/apache/avro/specific/SpecificData;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.apache.avro.specific.SpecificData getForSchema(org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Schema;)Lorg/apache/avro/specific/SpecificData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.apache.avro.Schema reader
         0: .line 148
            aload 0 /* reader */
            invokevirtual org.apache.avro.Schema.getType:()Lorg/apache/avro/Schema$Type;
            getstatic org.apache.avro.Schema$Type.RECORD:Lorg/apache/avro/Schema$Type;
            if_acmpne 8
         1: .line 149
            aload 0 /* reader */
            invokestatic org.apache.avro.specific.SpecificData.getClassName:(Lorg/apache/avro/Schema;)Ljava/lang/String;
            astore 1 /* className */
        start local 1 // java.lang.String className
         2: .line 150
            aload 1 /* className */
            ifnull 8
         3: .line 153
            aload 1 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
         4: .line 154
            aload 2 /* clazz */
            invokestatic org.apache.avro.specific.SpecificData.getForClass:(Ljava/lang/Class;)Lorg/apache/avro/specific/SpecificData;
         5: areturn
        end local 2 // java.lang.Class clazz
         6: .line 155
      StackMap locals: org.apache.avro.Schema java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
            pop
         7: .line 156
            invokestatic org.apache.avro.specific.SpecificData.get:()Lorg/apache/avro/specific/SpecificData;
            areturn
        end local 1 // java.lang.String className
         8: .line 160
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.avro.specific.SpecificData.get:()Lorg/apache/avro/specific/SpecificData;
            areturn
        end local 0 // org.apache.avro.Schema reader
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0     reader  Lorg/apache/avro/Schema;
            2    8     1  className  Ljava/lang/String;
            4    6     2      clazz  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.ClassNotFoundException
    MethodParameters:
        Name  Flags
      reader  

  public static <T> org.apache.avro.specific.SpecificData getForClass(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/apache/avro/specific/SpecificData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Class c
         0: .line 176
            ldc Lorg/apache/avro/specific/SpecificRecordBase;
            aload 0 /* c */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 9
         1: .line 179
            aload 0 /* c */
            ldc "MODEL$"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 1 /* specificDataField */
        start local 1 // java.lang.reflect.Field specificDataField
         2: .line 180
            aload 1 /* specificDataField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         3: .line 181
            aload 1 /* specificDataField */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.avro.specific.SpecificData
         4: areturn
        end local 1 // java.lang.reflect.Field specificDataField
         5: .line 182
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldException
            pop
         6: .line 184
            invokestatic org.apache.avro.specific.SpecificData.get:()Lorg/apache/avro/specific/SpecificData;
            areturn
         7: .line 185
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 2 /* e */
        start local 2 // java.lang.IllegalAccessException e
         8: .line 186
            new org.apache.avro.AvroRuntimeException
            dup
            aload 2 /* e */
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.IllegalAccessException e
         9: .line 189
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.avro.specific.SpecificData.get:()Lorg/apache/avro/specific/SpecificData;
            areturn
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0                  c  Ljava/lang/Class<TT;>;
            2    5     1  specificDataField  Ljava/lang/reflect/Field;
            8    9     2                  e  Ljava/lang/IllegalAccessException;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.NoSuchFieldException
           1     4       7  Class java.lang.IllegalAccessException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lorg/apache/avro/specific/SpecificData;
    MethodParameters:
      Name  Flags
      c     

  public boolean useCustomCoders();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.avro.specific.SpecificData this
         0: .line 204
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.useCustomCoderFlag:Z
            ireturn
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/specific/SpecificData;

  public void setCustomCoders(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // boolean flag
         0: .line 212
            aload 0 /* this */
            iload 1 /* flag */
            putfield org.apache.avro.specific.SpecificData.useCustomCoderFlag:Z
         1: .line 213
            return
        end local 1 // boolean flag
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/avro/specific/SpecificData;
            0    2     1  flag  Z
    MethodParameters:
      Name  Flags
      flag  

  protected boolean isEnum(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.Object datum
         0: .line 217
            aload 1 /* datum */
            instanceof java.lang.Enum
            ifne 1
            aload 0 /* this */
            aload 1 /* datum */
            invokespecial org.apache.avro.generic.GenericData.isEnum:(Ljava/lang/Object;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // java.lang.Object datum
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/avro/specific/SpecificData;
            0    2     1  datum  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      datum  

  public java.lang.Object createEnum(java.lang.String, org.apache.avro.Schema);
    descriptor: (Ljava/lang/String;Lorg/apache/avro/Schema;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.String symbol
        start local 2 // org.apache.avro.Schema schema
         0: .line 222
            aload 0 /* this */
            aload 2 /* schema */
            invokevirtual org.apache.avro.specific.SpecificData.getClass:(Lorg/apache/avro/Schema;)Ljava/lang/Class;
            astore 3 /* c */
        start local 3 // java.lang.Class c
         1: .line 223
            aload 3 /* c */
            ifnonnull 3
         2: .line 224
            aload 0 /* this */
            aload 1 /* symbol */
            aload 2 /* schema */
            invokespecial org.apache.avro.generic.GenericData.createEnum:(Ljava/lang/String;Lorg/apache/avro/Schema;)Ljava/lang/Object;
            areturn
         3: .line 225
      StackMap locals: java.lang.Class
      StackMap stack:
            getstatic org.apache.avro.specific.SpecificData.RESERVED_WORDS:Ljava/util/Set;
            aload 1 /* symbol */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 226
            new java.lang.StringBuilder
            dup
            aload 1 /* symbol */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "$"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* symbol */
         5: .line 227
      StackMap locals:
      StackMap stack:
            aload 3 /* c */
            aload 1 /* symbol */
            invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
            areturn
        end local 3 // java.lang.Class c
        end local 2 // org.apache.avro.Schema schema
        end local 1 // java.lang.String symbol
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/avro/specific/SpecificData;
            0    6     1  symbol  Ljava/lang/String;
            0    6     2  schema  Lorg/apache/avro/Schema;
            1    6     3       c  Ljava/lang/Class;
    MethodParameters:
        Name  Flags
      symbol  
      schema  

  protected org.apache.avro.Schema getEnumSchema(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/apache/avro/Schema;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.Object datum
         0: .line 232
            aload 1 /* datum */
            instanceof java.lang.Enum
            ifeq 1
            aload 0 /* this */
            aload 1 /* datum */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.apache.avro.specific.SpecificData.getSchema:(Ljava/lang/reflect/Type;)Lorg/apache/avro/Schema;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* datum */
            invokespecial org.apache.avro.generic.GenericData.getEnumSchema:(Ljava/lang/Object;)Lorg/apache/avro/Schema;
      StackMap locals:
      StackMap stack: org.apache.avro.Schema
         2: areturn
        end local 1 // java.lang.Object datum
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/avro/specific/SpecificData;
            0    3     1  datum  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      datum  

  public java.lang.Class getClass(org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Schema;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // org.apache.avro.Schema schema
         0: .line 243
            invokestatic org.apache.avro.specific.SpecificData.$SWITCH_TABLE$org$apache$avro$Schema$Type:()[I
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getType:()Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iaload
            tableswitch { // 1 - 14
                    1: 1
                    2: 1
                    3: 17
                    4: 18
                    5: 19
                    6: 1
                    7: 25
                    8: 28
                    9: 29
                   10: 30
                   11: 31
                   12: 32
                   13: 33
                   14: 34
              default: 35
          }
         1: .line 247
      StackMap locals:
      StackMap stack:
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getFullName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         2: .line 248
            aload 2 /* name */
            ifnonnull 4
         3: .line 249
            aconst_null
            areturn
         4: .line 250
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.classCache:Ljava/util/Map;
            aload 2 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 3 /* c */
        start local 3 // java.lang.Class c
         5: .line 251
            aload 3 /* c */
            ifnonnull 14
         6: .line 253
            aload 0 /* this */
            invokevirtual org.apache.avro.specific.SpecificData.getClassLoader:()Ljava/lang/ClassLoader;
            aload 1 /* schema */
            invokestatic org.apache.avro.specific.SpecificData.getClassName:(Lorg/apache/avro/Schema;)Ljava/lang/String;
            invokestatic org.apache.avro.util.ClassUtils.forName:(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* c */
         7: .line 254
            goto 13
      StackMap locals: org.apache.avro.specific.SpecificData org.apache.avro.Schema java.lang.String java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
         8: pop
         9: .line 256
            aload 0 /* this */
            invokevirtual org.apache.avro.specific.SpecificData.getClassLoader:()Ljava/lang/ClassLoader;
            aload 0 /* this */
            aload 1 /* schema */
            invokevirtual org.apache.avro.specific.SpecificData.getNestedClassName:(Lorg/apache/avro/Schema;)Ljava/lang/String;
            invokestatic org.apache.avro.util.ClassUtils.forName:(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* c */
        10: .line 257
            goto 13
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
        11: pop
        12: .line 258
            getstatic org.apache.avro.specific.SpecificData.NO_CLASS:Ljava/lang/Class;
            astore 3 /* c */
        13: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.classCache:Ljava/util/Map;
            aload 2 /* name */
            aload 3 /* c */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 263
      StackMap locals:
      StackMap stack:
            aload 3 /* c */
            getstatic org.apache.avro.specific.SpecificData.NO_CLASS:Ljava/lang/Class;
            if_acmpne 15
            aconst_null
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 3 /* c */
      StackMap locals:
      StackMap stack: java.lang.Class
        16: areturn
        end local 3 // java.lang.Class c
        end local 2 // java.lang.String name
        17: .line 265
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/List;
            areturn
        18: .line 267
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Map;
            areturn
        19: .line 269
      StackMap locals:
      StackMap stack:
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getTypes:()Ljava/util/List;
            astore 4 /* types */
        start local 4 // java.util.List types
        20: .line 270
            aload 4 /* types */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpne 24
            aload 4 /* types */
            getstatic org.apache.avro.specific.SpecificData.NULL_SCHEMA:Lorg/apache/avro/Schema;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 24
        21: .line 271
            aload 0 /* this */
            aload 4 /* types */
            aload 4 /* types */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.avro.Schema
            getstatic org.apache.avro.specific.SpecificData.NULL_SCHEMA:Lorg/apache/avro/Schema;
            invokevirtual org.apache.avro.Schema.equals:(Ljava/lang/Object;)Z
            ifeq 22
            iconst_1
            goto 23
      StackMap locals: org.apache.avro.specific.SpecificData org.apache.avro.Schema top top java.util.List
      StackMap stack: org.apache.avro.specific.SpecificData java.util.List
        22: iconst_0
      StackMap locals: org.apache.avro.specific.SpecificData org.apache.avro.Schema top top java.util.List
      StackMap stack: org.apache.avro.specific.SpecificData java.util.List int
        23: invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.avro.Schema
            invokevirtual org.apache.avro.specific.SpecificData.getWrapper:(Lorg/apache/avro/Schema;)Ljava/lang/Class;
            areturn
        24: .line 272
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Object;
            areturn
        end local 4 // java.util.List types
        25: .line 274
      StackMap locals: org.apache.avro.specific.SpecificData org.apache.avro.Schema
      StackMap stack:
            ldc "String"
            aload 1 /* schema */
            ldc "avro.java.string"
            invokevirtual org.apache.avro.Schema.getProp:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        26: .line 275
            ldc Ljava/lang/String;
            areturn
        27: .line 276
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/CharSequence;
            areturn
        28: .line 278
      StackMap locals:
      StackMap stack:
            ldc Ljava/nio/ByteBuffer;
            areturn
        29: .line 280
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
        30: .line 282
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
        31: .line 284
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            areturn
        32: .line 286
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            areturn
        33: .line 288
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            areturn
        34: .line 290
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            areturn
        35: .line 292
      StackMap locals:
      StackMap stack:
            new org.apache.avro.AvroRuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* schema */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   36     0    this  Lorg/apache/avro/specific/SpecificData;
            0   36     1  schema  Lorg/apache/avro/Schema;
            2   17     2    name  Ljava/lang/String;
            5   17     3       c  Ljava/lang/Class;
           20   25     4   types  Ljava/util/List<Lorg/apache/avro/Schema;>;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.ClassNotFoundException
           9    10      11  Class java.lang.ClassNotFoundException
    MethodParameters:
        Name  Flags
      schema  

  private java.lang.Class getWrapper(org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Schema;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // org.apache.avro.Schema schema
         0: .line 297
            invokestatic org.apache.avro.specific.SpecificData.$SWITCH_TABLE$org$apache$avro$Schema$Type:()[I
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getType:()Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iaload
            tableswitch { // 9 - 13
                    9: 1
                   10: 2
                   11: 3
                   12: 4
                   13: 5
              default: 6
          }
         1: .line 299
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Integer;
            areturn
         2: .line 301
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Long;
            areturn
         3: .line 303
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Float;
            areturn
         4: .line 305
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Double;
            areturn
         5: .line 307
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Boolean;
            areturn
         6: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* schema */
            invokevirtual org.apache.avro.specific.SpecificData.getClass:(Lorg/apache/avro/Schema;)Ljava/lang/Class;
            areturn
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/apache/avro/specific/SpecificData;
            0    7     1  schema  Lorg/apache/avro/Schema;
    MethodParameters:
        Name  Flags
      schema  

  public static java.lang.String getClassName(org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Schema;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.avro.Schema schema
         0: .line 314
            aload 0 /* schema */
            invokevirtual org.apache.avro.Schema.getNamespace:()Ljava/lang/String;
            astore 1 /* namespace */
        start local 1 // java.lang.String namespace
         1: .line 315
            aload 0 /* schema */
            invokevirtual org.apache.avro.Schema.getName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         2: .line 316
            aload 1 /* namespace */
            ifnull 3
            ldc ""
            aload 1 /* namespace */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 317
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* name */
            areturn
         4: .line 318
      StackMap locals:
      StackMap stack:
            aload 1 /* namespace */
            ldc "$"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
            ldc ""
            goto 6
      StackMap locals:
      StackMap stack:
         5: ldc "."
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 3 /* dot */
        start local 3 // java.lang.String dot
         7: .line 319
            new java.lang.StringBuilder
            dup
            aload 1 /* namespace */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* dot */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.String dot
        end local 2 // java.lang.String name
        end local 1 // java.lang.String namespace
        end local 0 // org.apache.avro.Schema schema
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0     schema  Lorg/apache/avro/Schema;
            1    8     1  namespace  Ljava/lang/String;
            2    8     2       name  Ljava/lang/String;
            7    8     3        dot  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      schema  

  private java.lang.String getNestedClassName(org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Schema;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // org.apache.avro.Schema schema
         0: .line 323
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getNamespace:()Ljava/lang/String;
            astore 2 /* namespace */
        start local 2 // java.lang.String namespace
         1: .line 324
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getName:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         2: .line 325
            aload 2 /* namespace */
            ifnull 3
            ldc ""
            aload 2 /* namespace */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 326
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* name */
            areturn
         4: .line 327
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* namespace */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "$"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.String name
        end local 2 // java.lang.String namespace
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/apache/avro/specific/SpecificData;
            0    5     1     schema  Lorg/apache/avro/Schema;
            1    5     2  namespace  Ljava/lang/String;
            2    5     3       name  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      schema  

  public org.apache.avro.Schema getSchema(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Lorg/apache/avro/Schema;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.reflect.Type type
         0: .line 345
            aload 1 /* type */
            instanceof java.lang.Class
            ifeq 3
         1: .line 346
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.schemaClassCache:Ljava/lang/ClassValue;
            aload 1 /* type */
            checkcast java.lang.Class
            invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.apache.avro.Schema
         2: areturn
         3: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.schemaTypeCache:Ljava/util/Map;
            aload 1 /* type */
            aload 0 /* this */
            invokedynamic apply(Lorg/apache/avro/specific/SpecificData;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/avro/specific/SpecificData.lambda$0(Ljava/lang/reflect/Type;)Lorg/apache/avro/Schema; (7)
                  (Ljava/lang/reflect/Type;)Lorg/apache/avro/Schema;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast org.apache.avro.Schema
         4: areturn
         5: .line 349
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         6: .line 350
            aload 2 /* e */
            instanceof org.apache.avro.AvroRuntimeException
            ifeq 7
            aload 2 /* e */
            checkcast org.apache.avro.AvroRuntimeException
            goto 8
      StackMap locals: java.lang.Exception
      StackMap stack:
         7: new org.apache.avro.AvroRuntimeException
            dup
            aload 2 /* e */
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack: org.apache.avro.AvroRuntimeException
         8: athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.reflect.Type type
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/avro/specific/SpecificData;
            0    9     1  type  Ljava/lang/reflect/Type;
            6    9     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     2       5  Class java.lang.Exception
           3     4       5  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      type  

  protected org.apache.avro.Schema createSchema(java.lang.reflect.Type, java.util.Map<java.lang.String, org.apache.avro.Schema>);
    descriptor: (Ljava/lang/reflect/Type;Ljava/util/Map;)Lorg/apache/avro/Schema;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.reflect.Type type
        start local 2 // java.util.Map names
         0: .line 357
            aload 1 /* type */
            instanceof java.lang.Class
            ifeq 2
            ldc Ljava/lang/CharSequence;
            aload 1 /* type */
            checkcast java.lang.Class
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 2
         1: .line 358
            getstatic org.apache.avro.Schema$Type.STRING:Lorg/apache/avro/Schema$Type;
            invokestatic org.apache.avro.Schema.create:(Lorg/apache/avro/Schema$Type;)Lorg/apache/avro/Schema;
            areturn
         2: .line 359
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            ldc Ljava/nio/ByteBuffer;
            if_acmpne 4
         3: .line 360
            getstatic org.apache.avro.Schema$Type.BYTES:Lorg/apache/avro/Schema$Type;
            invokestatic org.apache.avro.Schema.create:(Lorg/apache/avro/Schema$Type;)Lorg/apache/avro/Schema;
            areturn
         4: .line 361
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            ldc Ljava/lang/Integer;
            if_acmpeq 5
            aload 1 /* type */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpne 6
         5: .line 362
      StackMap locals:
      StackMap stack:
            getstatic org.apache.avro.Schema$Type.INT:Lorg/apache/avro/Schema$Type;
            invokestatic org.apache.avro.Schema.create:(Lorg/apache/avro/Schema$Type;)Lorg/apache/avro/Schema;
            areturn
         6: .line 363
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            ldc Ljava/lang/Long;
            if_acmpeq 7
            aload 1 /* type */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 8
         7: .line 364
      StackMap locals:
      StackMap stack:
            getstatic org.apache.avro.Schema$Type.LONG:Lorg/apache/avro/Schema$Type;
            invokestatic org.apache.avro.Schema.create:(Lorg/apache/avro/Schema$Type;)Lorg/apache/avro/Schema;
            areturn
         8: .line 365
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            ldc Ljava/lang/Float;
            if_acmpeq 9
            aload 1 /* type */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpne 10
         9: .line 366
      StackMap locals:
      StackMap stack:
            getstatic org.apache.avro.Schema$Type.FLOAT:Lorg/apache/avro/Schema$Type;
            invokestatic org.apache.avro.Schema.create:(Lorg/apache/avro/Schema$Type;)Lorg/apache/avro/Schema;
            areturn
        10: .line 367
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            ldc Ljava/lang/Double;
            if_acmpeq 11
            aload 1 /* type */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 12
        11: .line 368
      StackMap locals:
      StackMap stack:
            getstatic org.apache.avro.Schema$Type.DOUBLE:Lorg/apache/avro/Schema$Type;
            invokestatic org.apache.avro.Schema.create:(Lorg/apache/avro/Schema$Type;)Lorg/apache/avro/Schema;
            areturn
        12: .line 369
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            ldc Ljava/lang/Boolean;
            if_acmpeq 13
            aload 1 /* type */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 14
        13: .line 370
      StackMap locals:
      StackMap stack:
            getstatic org.apache.avro.Schema$Type.BOOLEAN:Lorg/apache/avro/Schema$Type;
            invokestatic org.apache.avro.Schema.create:(Lorg/apache/avro/Schema$Type;)Lorg/apache/avro/Schema;
            areturn
        14: .line 371
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            ldc Ljava/lang/Void;
            if_acmpeq 15
            aload 1 /* type */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 16
        15: .line 372
      StackMap locals:
      StackMap stack:
            getstatic org.apache.avro.Schema$Type.NULL:Lorg/apache/avro/Schema$Type;
            invokestatic org.apache.avro.Schema.create:(Lorg/apache/avro/Schema$Type;)Lorg/apache/avro/Schema;
            areturn
        16: .line 373
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 31
        17: .line 374
            aload 1 /* type */
            checkcast java.lang.reflect.ParameterizedType
            astore 3 /* ptype */
        start local 3 // java.lang.reflect.ParameterizedType ptype
        18: .line 375
            aload 3 /* ptype */
            invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
            checkcast java.lang.Class
            astore 4 /* raw */
        start local 4 // java.lang.Class raw
        19: .line 376
            aload 3 /* ptype */
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            astore 5 /* params */
        start local 5 // java.lang.reflect.Type[] params
        20: .line 377
            ldc Ljava/util/Collection;
            aload 4 /* raw */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 24
        21: .line 378
            aload 5 /* params */
            arraylength
            iconst_1
            if_icmpeq 23
        22: .line 379
            new org.apache.avro.AvroTypeException
            dup
            ldc "No array type specified."
            invokespecial org.apache.avro.AvroTypeException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 380
      StackMap locals: java.lang.reflect.ParameterizedType java.lang.Class java.lang.reflect.Type[]
      StackMap stack:
            aload 0 /* this */
            aload 5 /* params */
            iconst_0
            aaload
            aload 2 /* names */
            invokevirtual org.apache.avro.specific.SpecificData.createSchema:(Ljava/lang/reflect/Type;Ljava/util/Map;)Lorg/apache/avro/Schema;
            invokestatic org.apache.avro.Schema.createArray:(Lorg/apache/avro/Schema;)Lorg/apache/avro/Schema;
            areturn
        24: .line 381
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Map;
            aload 4 /* raw */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 30
        25: .line 382
            aload 5 /* params */
            iconst_0
            aaload
            astore 6 /* key */
        start local 6 // java.lang.reflect.Type key
        26: .line 383
            aload 5 /* params */
            iconst_1
            aaload
            astore 7 /* value */
        start local 7 // java.lang.reflect.Type value
        27: .line 384
            aload 6 /* key */
            instanceof java.lang.Class
            ifeq 28
            ldc Ljava/lang/CharSequence;
            aload 6 /* key */
            checkcast java.lang.Class
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 29
        28: .line 385
      StackMap locals: java.lang.reflect.Type java.lang.reflect.Type
      StackMap stack:
            new org.apache.avro.AvroTypeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Map key class not CharSequence: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroTypeException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* value */
            aload 2 /* names */
            invokevirtual org.apache.avro.specific.SpecificData.createSchema:(Ljava/lang/reflect/Type;Ljava/util/Map;)Lorg/apache/avro/Schema;
            invokestatic org.apache.avro.Schema.createMap:(Lorg/apache/avro/Schema;)Lorg/apache/avro/Schema;
            areturn
        end local 7 // java.lang.reflect.Type value
        end local 6 // java.lang.reflect.Type key
        30: .line 388
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* raw */
            aload 2 /* names */
            invokevirtual org.apache.avro.specific.SpecificData.createSchema:(Ljava/lang/reflect/Type;Ljava/util/Map;)Lorg/apache/avro/Schema;
            areturn
        end local 5 // java.lang.reflect.Type[] params
        end local 4 // java.lang.Class raw
        end local 3 // java.lang.reflect.ParameterizedType ptype
        31: .line 390
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof java.lang.Class
            ifeq 48
        32: .line 391
            aload 1 /* type */
            checkcast java.lang.Class
            astore 3 /* c */
        start local 3 // java.lang.Class c
        33: .line 392
            aload 3 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 4 /* fullName */
        start local 4 // java.lang.String fullName
        34: .line 393
            aload 2 /* names */
            aload 4 /* fullName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.avro.Schema
            astore 5 /* schema */
        start local 5 // org.apache.avro.Schema schema
        35: .line 394
            aload 5 /* schema */
            ifnonnull 46
        36: .line 396
            aload 3 /* c */
            ldc "SCHEMA$"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.avro.Schema
            astore 5 /* schema */
        37: .line 398
            aload 4 /* fullName */
            aload 5 /* schema */
            invokestatic org.apache.avro.specific.SpecificData.getClassName:(Lorg/apache/avro/Schema;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 46
        38: .line 400
            new org.apache.avro.Schema$Parser
            dup
            invokespecial org.apache.avro.Schema$Parser.<init>:()V
        39: .line 401
            aload 5 /* schema */
            invokevirtual org.apache.avro.Schema.toString:()Ljava/lang/String;
            aload 5 /* schema */
            invokevirtual org.apache.avro.Schema.getNamespace:()Ljava/lang/String;
            aload 3 /* c */
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual org.apache.avro.Schema$Parser.parse:(Ljava/lang/String;)Lorg/apache/avro/Schema;
        40: .line 400
            astore 5 /* schema */
        41: .line 402
            goto 46
      StackMap locals: org.apache.avro.specific.SpecificData java.lang.reflect.Type java.util.Map java.lang.Class java.lang.String org.apache.avro.Schema
      StackMap stack: java.lang.NoSuchFieldException
        42: pop
        43: .line 403
            new org.apache.avro.AvroRuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a Specific class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* c */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        44: .line 404
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 6 /* e */
        start local 6 // java.lang.IllegalAccessException e
        45: .line 405
            new org.apache.avro.AvroRuntimeException
            dup
            aload 6 /* e */
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.IllegalAccessException e
        46: .line 407
      StackMap locals:
      StackMap stack:
            aload 2 /* names */
            aload 4 /* fullName */
            aload 5 /* schema */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        47: .line 408
            aload 5 /* schema */
            areturn
        end local 5 // org.apache.avro.Schema schema
        end local 4 // java.lang.String fullName
        end local 3 // java.lang.Class c
        48: .line 410
      StackMap locals:
      StackMap stack:
            new org.apache.avro.AvroTypeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroTypeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.util.Map names
        end local 1 // java.lang.reflect.Type type
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   49     0      this  Lorg/apache/avro/specific/SpecificData;
            0   49     1      type  Ljava/lang/reflect/Type;
            0   49     2     names  Ljava/util/Map<Ljava/lang/String;Lorg/apache/avro/Schema;>;
           18   31     3     ptype  Ljava/lang/reflect/ParameterizedType;
           19   31     4       raw  Ljava/lang/Class;
           20   31     5    params  [Ljava/lang/reflect/Type;
           26   30     6       key  Ljava/lang/reflect/Type;
           27   30     7     value  Ljava/lang/reflect/Type;
           33   48     3         c  Ljava/lang/Class;
           34   48     4  fullName  Ljava/lang/String;
           35   48     5    schema  Lorg/apache/avro/Schema;
           45   46     6         e  Ljava/lang/IllegalAccessException;
      Exception table:
        from    to  target  type
          36    41      42  Class java.lang.NoSuchFieldException
          36    41      44  Class java.lang.IllegalAccessException
    Signature: (Ljava/lang/reflect/Type;Ljava/util/Map<Ljava/lang/String;Lorg/apache/avro/Schema;>;)Lorg/apache/avro/Schema;
    MethodParameters:
       Name  Flags
      type   
      names  

  protected java.lang.String getSchemaName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.Object datum
         0: .line 415
            aload 1 /* datum */
            ifnull 4
         1: .line 416
            aload 1 /* datum */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 2 /* c */
        start local 2 // java.lang.Class c
         2: .line 417
            aload 0 /* this */
            aload 2 /* c */
            invokevirtual org.apache.avro.specific.SpecificData.isStringable:(Ljava/lang/Class;)Z
            ifeq 4
         3: .line 418
            getstatic org.apache.avro.Schema$Type.STRING:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.getName:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.Class c
         4: .line 420
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* datum */
            invokespecial org.apache.avro.generic.GenericData.getSchemaName:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object datum
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/apache/avro/specific/SpecificData;
            0    5     1  datum  Ljava/lang/Object;
            2    4     2      c  Ljava/lang/Class;
    MethodParameters:
       Name  Flags
      datum  

  protected boolean isStringable(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.Class c
         0: .line 425
            aload 0 /* this */
            getfield org.apache.avro.specific.SpecificData.stringableClasses:Ljava/util/Set;
            aload 1 /* c */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Class c
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/specific/SpecificData;
            0    1     1     c  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      c     

  protected boolean isStringType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.Class c
         0: .line 431
            ldc Ljava/lang/CharSequence;
            aload 1 /* c */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class c
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/specific/SpecificData;
            0    1     1     c  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      c     

  public org.apache.avro.Protocol getProtocol(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/apache/avro/Protocol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.Class iface
         0: .line 437
            aload 1 /* iface */
            ldc "PROTOCOL"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.avro.Protocol
            astore 2 /* p */
        start local 2 // org.apache.avro.Protocol p
         1: .line 438
            aload 2 /* p */
            invokevirtual org.apache.avro.Protocol.getNamespace:()Ljava/lang/String;
            aload 1 /* iface */
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 440
            aload 2 /* p */
            invokevirtual org.apache.avro.Protocol.toString:()Ljava/lang/String;
            aload 2 /* p */
            invokevirtual org.apache.avro.Protocol.getNamespace:()Ljava/lang/String;
            aload 1 /* iface */
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            invokestatic org.apache.avro.Protocol.parse:(Ljava/lang/String;)Lorg/apache/avro/Protocol;
            astore 2 /* p */
         3: .line 441
      StackMap locals: org.apache.avro.Protocol
      StackMap stack:
            aload 2 /* p */
         4: areturn
        end local 2 // org.apache.avro.Protocol p
         5: .line 442
      StackMap locals: org.apache.avro.specific.SpecificData java.lang.Class
      StackMap stack: java.lang.NoSuchFieldException
            pop
         6: .line 443
            new org.apache.avro.AvroRuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a Specific protocol: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* iface */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 444
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 2 /* e */
        start local 2 // java.lang.IllegalAccessException e
         8: .line 445
            new org.apache.avro.AvroRuntimeException
            dup
            aload 2 /* e */
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.IllegalAccessException e
        end local 1 // java.lang.Class iface
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/apache/avro/specific/SpecificData;
            0    9     1  iface  Ljava/lang/Class;
            1    5     2      p  Lorg/apache/avro/Protocol;
            8    9     2      e  Ljava/lang/IllegalAccessException;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.NoSuchFieldException
           0     4       7  Class java.lang.IllegalAccessException
    MethodParameters:
       Name  Flags
      iface  

  protected int compare(java.lang.Object, java.lang.Object, org.apache.avro.Schema, boolean);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/avro/Schema;Z)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.Object o1
        start local 2 // java.lang.Object o2
        start local 3 // org.apache.avro.Schema s
        start local 4 // boolean eq
         0: .line 451
            invokestatic org.apache.avro.specific.SpecificData.$SWITCH_TABLE$org$apache$avro$Schema$Type:()[I
            aload 3 /* s */
            invokevirtual org.apache.avro.Schema.getType:()Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iaload
            tableswitch { // 2 - 2
                    2: 1
              default: 3
          }
         1: .line 453
      StackMap locals:
      StackMap stack:
            aload 1 /* o1 */
            instanceof java.lang.Enum
            ifeq 3
         2: .line 454
            aload 1 /* o1 */
            checkcast java.lang.Enum
            invokevirtual java.lang.Enum.ordinal:()I
            aload 2 /* o2 */
            checkcast java.lang.Enum
            invokevirtual java.lang.Enum.ordinal:()I
            isub
            ireturn
         3: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* o1 */
            aload 2 /* o2 */
            aload 3 /* s */
            iload 4 /* eq */
            invokespecial org.apache.avro.generic.GenericData.compare:(Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/avro/Schema;Z)I
            ireturn
        end local 4 // boolean eq
        end local 3 // org.apache.avro.Schema s
        end local 2 // java.lang.Object o2
        end local 1 // java.lang.Object o1
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/avro/specific/SpecificData;
            0    4     1    o1  Ljava/lang/Object;
            0    4     2    o2  Ljava/lang/Object;
            0    4     3     s  Lorg/apache/avro/Schema;
            0    4     4    eq  Z
    MethodParameters:
      Name  Flags
      o1    
      o2    
      s     
      eq    

  public static java.lang.Object newInstance(java.lang.Class, org.apache.avro.Schema);
    descriptor: (Ljava/lang/Class;Lorg/apache/avro/Schema;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.Class c
        start local 1 // org.apache.avro.Schema s
         0: .line 467
            ldc Lorg/apache/avro/specific/SpecificData$SchemaConstructable;
            aload 0 /* c */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            istore 2 /* useSchema */
        start local 2 // boolean useSchema
         1: .line 470
            getstatic org.apache.avro.specific.SpecificData.CTOR_CACHE:Ljava/lang/ClassValue;
            aload 0 /* c */
            invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.reflect.Constructor
            astore 4 /* meth */
        start local 4 // java.lang.reflect.Constructor meth
         2: .line 471
            aload 4 /* meth */
            iload 2 /* useSchema */
            ifeq 3
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* s */
            aastore
            goto 4
      StackMap locals: java.lang.Class org.apache.avro.Schema int top java.lang.reflect.Constructor
      StackMap stack: java.lang.reflect.Constructor
         3: aconst_null
      StackMap locals: java.lang.Class org.apache.avro.Schema int top java.lang.reflect.Constructor
      StackMap stack: java.lang.reflect.Constructor java.lang.Object[]
         4: invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* result */
        end local 4 // java.lang.reflect.Constructor meth
        start local 3 // java.lang.Object result
         5: .line 472
            goto 8
        end local 3 // java.lang.Object result
      StackMap locals: java.lang.Class org.apache.avro.Schema int
      StackMap stack: java.lang.Exception
         6: astore 4 /* e */
        start local 4 // java.lang.Exception e
         7: .line 473
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        start local 3 // java.lang.Object result
         8: .line 475
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.Object result
        end local 2 // boolean useSchema
        end local 1 // org.apache.avro.Schema s
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0          c  Ljava/lang/Class;
            0    9     1          s  Lorg/apache/avro/Schema;
            1    9     2  useSchema  Z
            5    6     3     result  Ljava/lang/Object;
            8    9     3     result  Ljava/lang/Object;
            2    5     4       meth  Ljava/lang/reflect/Constructor;
            7    8     4          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      c     
      s     

  public java.lang.Object createFixed(java.lang.Object, org.apache.avro.Schema);
    descriptor: (Ljava/lang/Object;Lorg/apache/avro/Schema;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.Object old
        start local 2 // org.apache.avro.Schema schema
         0: .line 480
            aload 0 /* this */
            aload 2 /* schema */
            invokevirtual org.apache.avro.specific.SpecificData.getClass:(Lorg/apache/avro/Schema;)Ljava/lang/Class;
            astore 3 /* c */
        start local 3 // java.lang.Class c
         1: .line 481
            aload 3 /* c */
            ifnonnull 3
         2: .line 482
            aload 0 /* this */
            aload 1 /* old */
            aload 2 /* schema */
            invokespecial org.apache.avro.generic.GenericData.createFixed:(Ljava/lang/Object;Lorg/apache/avro/Schema;)Ljava/lang/Object;
            areturn
         3: .line 483
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 3 /* c */
            aload 1 /* old */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 4
            aload 1 /* old */
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 3 /* c */
            aload 2 /* schema */
            invokestatic org.apache.avro.specific.SpecificData.newInstance:(Ljava/lang/Class;Lorg/apache/avro/Schema;)Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         5: areturn
        end local 3 // java.lang.Class c
        end local 2 // org.apache.avro.Schema schema
        end local 1 // java.lang.Object old
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/avro/specific/SpecificData;
            0    6     1     old  Ljava/lang/Object;
            0    6     2  schema  Lorg/apache/avro/Schema;
            1    6     3       c  Ljava/lang/Class;
    MethodParameters:
        Name  Flags
      old     
      schema  

  public java.lang.Object newRecord(java.lang.Object, org.apache.avro.Schema);
    descriptor: (Ljava/lang/Object;Lorg/apache/avro/Schema;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.Object old
        start local 2 // org.apache.avro.Schema schema
         0: .line 488
            aload 0 /* this */
            aload 2 /* schema */
            invokevirtual org.apache.avro.specific.SpecificData.getClass:(Lorg/apache/avro/Schema;)Ljava/lang/Class;
            astore 3 /* c */
        start local 3 // java.lang.Class c
         1: .line 489
            aload 3 /* c */
            ifnonnull 3
         2: .line 490
            aload 0 /* this */
            aload 1 /* old */
            aload 2 /* schema */
            invokespecial org.apache.avro.generic.GenericData.newRecord:(Ljava/lang/Object;Lorg/apache/avro/Schema;)Ljava/lang/Object;
            areturn
         3: .line 491
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 3 /* c */
            aload 1 /* old */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 4
            aload 1 /* old */
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 3 /* c */
            aload 2 /* schema */
            invokestatic org.apache.avro.specific.SpecificData.newInstance:(Ljava/lang/Class;Lorg/apache/avro/Schema;)Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         5: areturn
        end local 3 // java.lang.Class c
        end local 2 // org.apache.avro.Schema schema
        end local 1 // java.lang.Object old
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/avro/specific/SpecificData;
            0    6     1     old  Ljava/lang/Object;
            0    6     2  schema  Lorg/apache/avro/Schema;
            1    6     3       c  Ljava/lang/Class;
    MethodParameters:
        Name  Flags
      old     
      schema  

  public static org.apache.avro.io.BinaryDecoder getDecoder(java.io.ObjectInput);
    descriptor: (Ljava/io/ObjectInput;)Lorg/apache/avro/io/BinaryDecoder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.io.ObjectInput in
         0: .line 505
            invokestatic org.apache.avro.io.DecoderFactory.get:()Lorg/apache/avro/io/DecoderFactory;
            new org.apache.avro.specific.ExternalizableInput
            dup
            aload 0 /* in */
            invokespecial org.apache.avro.specific.ExternalizableInput.<init>:(Ljava/io/ObjectInput;)V
            aconst_null
            invokevirtual org.apache.avro.io.DecoderFactory.directBinaryDecoder:(Ljava/io/InputStream;Lorg/apache/avro/io/BinaryDecoder;)Lorg/apache/avro/io/BinaryDecoder;
            areturn
        end local 0 // java.io.ObjectInput in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    in  Ljava/io/ObjectInput;
    MethodParameters:
      Name  Flags
      in    

  public static org.apache.avro.io.BinaryEncoder getEncoder(java.io.ObjectOutput);
    descriptor: (Ljava/io/ObjectOutput;)Lorg/apache/avro/io/BinaryEncoder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.io.ObjectOutput out
         0: .line 510
            invokestatic org.apache.avro.io.EncoderFactory.get:()Lorg/apache/avro/io/EncoderFactory;
            new org.apache.avro.specific.ExternalizableOutput
            dup
            aload 0 /* out */
            invokespecial org.apache.avro.specific.ExternalizableOutput.<init>:(Ljava/io/ObjectOutput;)V
            aconst_null
            invokevirtual org.apache.avro.io.EncoderFactory.directBinaryEncoder:(Ljava/io/OutputStream;Lorg/apache/avro/io/BinaryEncoder;)Lorg/apache/avro/io/BinaryEncoder;
            areturn
        end local 0 // java.io.ObjectOutput out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   out  Ljava/io/ObjectOutput;
    MethodParameters:
      Name  Flags
      out   

  static int[] $SWITCH_TABLE$org$apache$avro$Schema$Type();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 52
            getstatic org.apache.avro.specific.SpecificData.$SWITCH_TABLE$org$apache$avro$Schema$Type:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.avro.Schema$Type.values:()[Lorg/apache/avro/Schema$Type;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.avro.Schema$Type.ARRAY:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.avro.Schema$Type.BOOLEAN:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 13
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.avro.Schema$Type.BYTES:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.apache.avro.Schema$Type.DOUBLE:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 12
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.apache.avro.Schema$Type.ENUM:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iconst_2
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.apache.avro.Schema$Type.FIXED:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 6
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.apache.avro.Schema$Type.FLOAT:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 11
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.apache.avro.Schema$Type.INT:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 9
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.apache.avro.Schema$Type.LONG:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 10
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.apache.avro.Schema$Type.MAP:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iconst_4
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.apache.avro.Schema$Type.NULL:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 14
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic org.apache.avro.Schema$Type.RECORD:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iconst_1
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic org.apache.avro.Schema$Type.STRING:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 7
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic org.apache.avro.Schema$Type.UNION:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iconst_5
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            dup
            putstatic org.apache.avro.specific.SpecificData.$SWITCH_TABLE$org$apache$avro$Schema$Type:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError

  private org.apache.avro.Schema lambda$0(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Lorg/apache/avro/Schema;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.avro.specific.SpecificData this
        start local 1 // java.lang.reflect.Type t
         0: .line 348
            aload 0 /* this */
            aload 1 /* t */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            invokevirtual org.apache.avro.specific.SpecificData.createSchema:(Ljava/lang/reflect/Type;Ljava/util/Map;)Lorg/apache/avro/Schema;
            areturn
        end local 1 // java.lang.reflect.Type t
        end local 0 // org.apache.avro.specific.SpecificData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/specific/SpecificData;
            0    1     1     t  Ljava/lang/reflect/Type;
}
SourceFile: "SpecificData.java"
NestMembers:
  org.apache.avro.specific.SpecificData$1  org.apache.avro.specific.SpecificData$2  org.apache.avro.specific.SpecificData$3  org.apache.avro.specific.SpecificData$SchemaConstructable
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Parser = org.apache.avro.Schema$Parser of org.apache.avro.Schema
  public final Type = org.apache.avro.Schema$Type of org.apache.avro.Schema
  org.apache.avro.specific.SpecificData$1
  org.apache.avro.specific.SpecificData$2
  org.apache.avro.specific.SpecificData$3
  public abstract SchemaConstructable = org.apache.avro.specific.SpecificData$SchemaConstructable of org.apache.avro.specific.SpecificData