final class jdk.jfr.internal.MetadataReader
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.internal.MetadataReader
  super_class: java.lang.Object
{
  private final java.io.DataInput input;
    descriptor: Ljava/io/DataInput;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<java.lang.String> pool;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private final jdk.jfr.internal.MetadataDescriptor descriptor;
    descriptor: Ljdk/jfr/internal/MetadataDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.Long, jdk.jfr.internal.Type> types;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Long;Ljdk/jfr/internal/Type;>;

  public void <init>(jdk.jfr.internal.consumer.RecordingInput);
    descriptor: (Ljdk/jfr/internal/consumer/RecordingInput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // jdk.jfr.internal.consumer.RecordingInput input
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield jdk.jfr.internal.MetadataReader.types:Ljava/util/Map;
         2: .line 67
            aload 0 /* this */
            aload 1 /* input */
            putfield jdk.jfr.internal.MetadataReader.input:Ljava/io/DataInput;
         3: .line 68
            aload 1 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.readInt:()I
            istore 2 /* size */
        start local 2 // int size
         4: .line 69
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iload 2 /* size */
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield jdk.jfr.internal.MetadataReader.pool:Ljava/util/List;
         5: .line 70
            new jdk.jfr.internal.consumer.StringParser
            dup
            aconst_null
            iconst_0
            invokespecial jdk.jfr.internal.consumer.StringParser.<init>:(Ljdk/jfr/internal/consumer/ConstantLookup;Z)V
            astore 3 /* p */
        start local 3 // jdk.jfr.internal.consumer.StringParser p
         6: .line 71
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 10
         8: .line 72
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.consumer.RecordingInput int jdk.jfr.internal.consumer.StringParser int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.pool:Ljava/util/List;
            aload 3 /* p */
            aload 1 /* input */
            invokevirtual jdk.jfr.internal.consumer.StringParser.parse:(Ljdk/jfr/internal/consumer/RecordingInput;)Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 71
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            iload 2 /* size */
            if_icmplt 8
        end local 4 // int i
        11: .line 74
            aload 0 /* this */
            new jdk.jfr.internal.MetadataDescriptor
            dup
            invokespecial jdk.jfr.internal.MetadataDescriptor.<init>:()V
            putfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
        12: .line 75
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.createElement:()Ljdk/jfr/internal/MetadataDescriptor$Element;
            astore 4 /* root */
        start local 4 // jdk.jfr.internal.MetadataDescriptor$Element root
        13: .line 76
            aload 4 /* root */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "metadata"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 5 /* metadata */
        start local 5 // jdk.jfr.internal.MetadataDescriptor$Element metadata
        14: .line 77
            aload 0 /* this */
            aload 5 /* metadata */
            invokevirtual jdk.jfr.internal.MetadataReader.declareTypes:(Ljdk/jfr/internal/MetadataDescriptor$Element;)V
        15: .line 78
            aload 0 /* this */
            aload 5 /* metadata */
            invokevirtual jdk.jfr.internal.MetadataReader.defineTypes:(Ljdk/jfr/internal/MetadataDescriptor$Element;)V
        16: .line 79
            aload 0 /* this */
            aload 5 /* metadata */
            invokevirtual jdk.jfr.internal.MetadataReader.annotateTypes:(Ljdk/jfr/internal/MetadataDescriptor$Element;)V
        17: .line 80
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.buildEvenTypes:()V
        18: .line 81
            aload 4 /* root */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "region"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 6 /* time */
        start local 6 // jdk.jfr.internal.MetadataDescriptor$Element time
        19: .line 82
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            aload 6 /* time */
            ldc "gmtOffset"
            lconst_1
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;J)J
            putfield jdk.jfr.internal.MetadataDescriptor.gmtOffset:J
        20: .line 83
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            aload 6 /* time */
            ldc "locale"
            ldc ""
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            putfield jdk.jfr.internal.MetadataDescriptor.locale:Ljava/lang/String;
        21: .line 84
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            aload 4 /* root */
            putfield jdk.jfr.internal.MetadataDescriptor.root:Ljdk/jfr/internal/MetadataDescriptor$Element;
        22: .line 85
            getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_PARSER:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.TRACE:Ljdk/jfr/internal/LogLevel;
            invokestatic jdk.jfr.internal.Logger.shouldLog:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)Z
            ifeq 29
        23: .line 86
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.types:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 7 /* ts */
        start local 7 // java.util.List ts
        24: .line 87
            aload 7 /* ts */
            invokedynamic compare()Ljava/util/Comparator;
              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;)I
                  jdk/jfr/internal/MetadataReader.lambda$0(Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I (6)
                  (Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
        25: .line 88
            aload 7 /* ts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 28
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.consumer.RecordingInput int jdk.jfr.internal.consumer.StringParser jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.List top java.util.Iterator
      StackMap stack:
        26: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 8 /* t */
        start local 8 // jdk.jfr.internal.Type t
        27: .line 89
            aload 8 /* t */
            ldc "Found"
            getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_PARSER:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.TRACE:Ljdk/jfr/internal/LogLevel;
            invokevirtual jdk.jfr.internal.Type.log:(Ljava/lang/String;Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)V
        end local 8 // jdk.jfr.internal.Type t
        28: .line 88
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        end local 7 // java.util.List ts
        29: .line 92
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.consumer.RecordingInput int jdk.jfr.internal.consumer.StringParser jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element
      StackMap stack:
            return
        end local 6 // jdk.jfr.internal.MetadataDescriptor$Element time
        end local 5 // jdk.jfr.internal.MetadataDescriptor$Element metadata
        end local 4 // jdk.jfr.internal.MetadataDescriptor$Element root
        end local 3 // jdk.jfr.internal.consumer.StringParser p
        end local 2 // int size
        end local 1 // jdk.jfr.internal.consumer.RecordingInput input
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   30     0      this  Ljdk/jfr/internal/MetadataReader;
            0   30     1     input  Ljdk/jfr/internal/consumer/RecordingInput;
            4   30     2      size  I
            6   30     3         p  Ljdk/jfr/internal/consumer/StringParser;
            7   11     4         i  I
           13   30     4      root  Ljdk/jfr/internal/MetadataDescriptor$Element;
           14   30     5  metadata  Ljdk/jfr/internal/MetadataDescriptor$Element;
           19   30     6      time  Ljdk/jfr/internal/MetadataDescriptor$Element;
           24   29     7        ts  Ljava/util/List<Ljdk/jfr/internal/Type;>;
           27   28     8         t  Ljdk/jfr/internal/Type;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  private java.lang.String readString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataReader this
         0: .line 95
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.pool:Ljava/util/List;
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readInt:()I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataReader;
    Exceptions:
      throws java.io.IOException

  private int readInt();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataReader this
         0: .line 99
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.input:Ljava/io/DataInput;
            invokeinterface java.io.DataInput.readInt:()I
            ireturn
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataReader;
    Exceptions:
      throws java.io.IOException

  private jdk.jfr.internal.MetadataDescriptor$Element createElement();
    descriptor: ()Ljdk/jfr/internal/MetadataDescriptor$Element;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // jdk.jfr.internal.MetadataReader this
         0: .line 103
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readString:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 104
            new jdk.jfr.internal.MetadataDescriptor$Element
            dup
            aload 1 /* name */
            invokespecial jdk.jfr.internal.MetadataDescriptor$Element.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element e
         2: .line 105
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readInt:()I
            istore 3 /* attributeCount */
        start local 3 // int attributeCount
         3: .line 106
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 107
      StackMap locals: jdk.jfr.internal.MetadataReader java.lang.String jdk.jfr.internal.MetadataDescriptor$Element int int
      StackMap stack:
            aload 2 /* e */
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readString:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readString:()Ljava/lang/String;
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.addAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 106
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 3 /* attributeCount */
            if_icmplt 5
        end local 4 // int i
         8: .line 109
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readInt:()I
            istore 4 /* childrenCount */
        start local 4 // int childrenCount
         9: .line 110
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        10: goto 13
        11: .line 111
      StackMap locals: int
      StackMap stack:
            aload 2 /* e */
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.createElement:()Ljdk/jfr/internal/MetadataDescriptor$Element;
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.add:(Ljdk/jfr/internal/MetadataDescriptor$Element;)V
        12: .line 110
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            iload 4 /* childrenCount */
            if_icmplt 11
        end local 5 // int i
        14: .line 113
            aload 2 /* e */
            areturn
        end local 4 // int childrenCount
        end local 3 // int attributeCount
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element e
        end local 1 // java.lang.String name
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Ljdk/jfr/internal/MetadataReader;
            1   15     1            name  Ljava/lang/String;
            2   15     2               e  Ljdk/jfr/internal/MetadataDescriptor$Element;
            3   15     3  attributeCount  I
            4    8     4               i  I
            9   15     4   childrenCount  I
           10   14     5               i  I
    Exceptions:
      throws java.io.IOException

  private void annotateTypes(jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljdk/jfr/internal/MetadataDescriptor$Element;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=2
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
         0: .line 117
            aload 1 /* metadata */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "class"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 37
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 2 /* typeElement */
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
         2: .line 118
            aload 0 /* this */
            ldc "id"
            aload 2 /* typeElement */
            invokevirtual jdk.jfr.internal.MetadataReader.getType:(Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/internal/Type;
            astore 4 /* type */
        start local 4 // jdk.jfr.internal.Type type
         3: .line 119
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* aes */
        start local 5 // java.util.ArrayList aes
         4: .line 120
            aload 2 /* typeElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "annotation"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 7
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 6 /* annotationElement */
        start local 6 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
         6: .line 121
            aload 5 /* aes */
            aload 0 /* this */
            aload 6 /* annotationElement */
            invokevirtual jdk.jfr.internal.MetadataReader.makeAnnotation:(Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/AnnotationElement;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
         7: .line 120
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 123
            aload 5 /* aes */
            invokevirtual java.util.ArrayList.trimToSize:()V
         9: .line 124
            aload 4 /* type */
            aload 5 /* aes */
            invokevirtual jdk.jfr.internal.Type.setAnnotations:(Ljava/util/List;)V
        10: .line 126
            iconst_0
            istore 6 /* index */
        start local 6 // int index
        11: .line 127
            aload 4 /* type */
            instanceof jdk.jfr.internal.PlatformEventType
            ifeq 24
        12: .line 128
            aload 4 /* type */
            checkcast jdk.jfr.internal.PlatformEventType
            invokevirtual jdk.jfr.internal.PlatformEventType.getAllSettings:()Ljava/util/List;
            astore 7 /* settings */
        start local 7 // java.util.List settings
        13: .line 129
            aload 2 /* typeElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "setting"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 23
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List top java.util.Iterator
      StackMap stack:
        14: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 8 /* settingElement */
        start local 8 // jdk.jfr.internal.MetadataDescriptor$Element settingElement
        15: .line 130
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* annotations */
        start local 10 // java.util.ArrayList annotations
        16: .line 131
            aload 8 /* settingElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "annotation"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 19
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator java.util.ArrayList top java.util.Iterator
      StackMap stack:
        17: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 11 /* annotationElement */
        start local 11 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
        18: .line 132
            aload 10 /* annotations */
            aload 0 /* this */
            aload 11 /* annotationElement */
            invokevirtual jdk.jfr.internal.MetadataReader.makeAnnotation:(Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/AnnotationElement;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
        19: .line 131
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        20: .line 134
            aload 10 /* annotations */
            invokevirtual java.util.ArrayList.trimToSize:()V
        21: .line 135
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 7 /* settings */
            iload 6 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.jfr.SettingDescriptor
            aload 10 /* annotations */
            invokevirtual jdk.jfr.internal.PrivateAccess.setAnnotations:(Ljdk/jfr/SettingDescriptor;Ljava/util/List;)V
        22: .line 136
            iinc 6 /* index */ 1
        end local 10 // java.util.ArrayList annotations
        end local 8 // jdk.jfr.internal.MetadataDescriptor$Element settingElement
        23: .line 129
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 7 // java.util.List settings
        24: .line 139
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int
      StackMap stack:
            iconst_0
            istore 6 /* index */
        25: .line 140
            aload 4 /* type */
            invokevirtual jdk.jfr.internal.Type.getFields:()Ljava/util/List;
            astore 7 /* fields */
        start local 7 // java.util.List fields
        26: .line 141
            aload 2 /* typeElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "field"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 36
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List top java.util.Iterator
      StackMap stack:
        27: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 8 /* fieldElement */
        start local 8 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
        28: .line 142
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* annotations */
        start local 10 // java.util.ArrayList annotations
        29: .line 143
            aload 8 /* fieldElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "annotation"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 32
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator java.util.ArrayList top java.util.Iterator
      StackMap stack:
        30: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 11 /* annotationElement */
        start local 11 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
        31: .line 144
            aload 10 /* annotations */
            aload 0 /* this */
            aload 11 /* annotationElement */
            invokevirtual jdk.jfr.internal.MetadataReader.makeAnnotation:(Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/AnnotationElement;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
        32: .line 143
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        33: .line 146
            aload 10 /* annotations */
            invokevirtual java.util.ArrayList.trimToSize:()V
        34: .line 147
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 7 /* fields */
            iload 6 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.jfr.ValueDescriptor
            aload 10 /* annotations */
            invokevirtual jdk.jfr.internal.PrivateAccess.setAnnotations:(Ljdk/jfr/ValueDescriptor;Ljava/util/List;)V
        35: .line 148
            iinc 6 /* index */ 1
        end local 10 // java.util.ArrayList annotations
        end local 8 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
        36: .line 141
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        end local 7 // java.util.List fields
        end local 6 // int index
        end local 5 // java.util.ArrayList aes
        end local 4 // jdk.jfr.internal.Type type
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
        37: .line 117
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        38: .line 151
            return
        end local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   39     0               this  Ljdk/jfr/internal/MetadataReader;
            0   39     1           metadata  Ljdk/jfr/internal/MetadataDescriptor$Element;
            2   37     2        typeElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
            3   37     4               type  Ljdk/jfr/internal/Type;
            4   37     5                aes  Ljava/util/ArrayList<Ljdk/jfr/AnnotationElement;>;
            6    7     6  annotationElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
           11   37     6              index  I
           13   24     7           settings  Ljava/util/List<Ljdk/jfr/SettingDescriptor;>;
           15   23     8     settingElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
           16   23    10        annotations  Ljava/util/ArrayList<Ljdk/jfr/AnnotationElement;>;
           18   19    11  annotationElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
           26   37     7             fields  Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;
           28   36     8       fieldElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
           29   36    10        annotations  Ljava/util/ArrayList<Ljdk/jfr/AnnotationElement;>;
           31   32    11  annotationElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      metadata  

  private jdk.jfr.AnnotationElement makeAnnotation(jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/AnnotationElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
         0: .line 154
            aload 0 /* this */
            ldc "class"
            aload 1 /* annotationElement */
            invokevirtual jdk.jfr.internal.MetadataReader.getType:(Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/internal/Type;
            astore 2 /* annotationType */
        start local 2 // jdk.jfr.internal.Type annotationType
         1: .line 155
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* values */
        start local 3 // java.util.List values
         2: .line 156
            aload 2 /* annotationType */
            invokevirtual jdk.jfr.internal.Type.getFields:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 20
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.Type java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.ValueDescriptor
            astore 4 /* v */
        start local 4 // jdk.jfr.ValueDescriptor v
         4: .line 157
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.isArray:()Z
            ifeq 18
         5: .line 158
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* list */
        start local 6 // java.util.List list
         6: .line 159
            iconst_0
            istore 7 /* index */
        start local 7 // int index
         7: .line 161
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.Type java.util.List jdk.jfr.ValueDescriptor java.util.Iterator java.util.List int
      StackMap stack:
            aload 1 /* annotationElement */
            new java.lang.StringBuilder
            dup
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getName:()Ljava/lang/String;
            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;
            iload 7 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* text */
        start local 8 // java.lang.String text
         8: .line 162
            aload 8 /* text */
            ifnonnull 10
         9: .line 163
            goto 13
        10: .line 165
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* list */
            aload 0 /* this */
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getTypeName:()Ljava/lang/String;
            aload 8 /* text */
            invokevirtual jdk.jfr.internal.MetadataReader.objectify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 166
            iinc 7 /* index */ 1
        end local 8 // java.lang.String text
        12: .line 160
            goto 7
        13: .line 168
      StackMap locals:
      StackMap stack:
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getTypeName:()Ljava/lang/String;
            aload 6 /* list */
            invokestatic jdk.jfr.internal.Utils.makePrimitiveArray:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/Object;
            astore 8 /* object */
        start local 8 // java.lang.Object object
        14: .line 169
            aload 8 /* object */
            ifnonnull 16
        15: .line 170
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* list */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " in array"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 172
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* values */
            aload 8 /* object */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.Object object
        end local 7 // int index
        end local 6 // java.util.List list
        17: .line 173
            goto 20
        18: .line 174
      StackMap locals:
      StackMap stack:
            aload 1 /* annotationElement */
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getName:()Ljava/lang/String;
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* text */
        start local 6 // java.lang.String text
        19: .line 175
            aload 3 /* values */
            aload 0 /* this */
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getTypeName:()Ljava/lang/String;
            aload 6 /* text */
            invokevirtual jdk.jfr.internal.MetadataReader.objectify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String text
        end local 4 // jdk.jfr.ValueDescriptor v
        20: .line 156
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.Type java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        21: .line 178
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 2 /* annotationType */
            aload 3 /* values */
            iconst_0
            invokevirtual jdk.jfr.internal.PrivateAccess.newAnnotation:(Ljdk/jfr/internal/Type;Ljava/util/List;Z)Ljdk/jfr/AnnotationElement;
            areturn
        end local 3 // java.util.List values
        end local 2 // jdk.jfr.internal.Type annotationType
        end local 1 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   22     0               this  Ljdk/jfr/internal/MetadataReader;
            0   22     1  annotationElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
            1   22     2     annotationType  Ljdk/jfr/internal/Type;
            2   22     3             values  Ljava/util/List<Ljava/lang/Object;>;
            4   20     4                  v  Ljdk/jfr/ValueDescriptor;
            6   17     6               list  Ljava/util/List<Ljava/lang/Object;>;
            7   17     7              index  I
            8   12     8               text  Ljava/lang/String;
           14   17     8             object  Ljava/lang/Object;
           19   20     6               text  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      annotationElement  

  private java.lang.Object objectify(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // java.lang.String typeName
        start local 2 // java.lang.String text
         0: .line 183
            aload 1 /* typeName */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 9
          -1325958191: 1
               104431: 2
              3039496: 3
              3052374: 4
              3327612: 5
             64711720: 6
             97526364: 7
            109413500: 8
           1195259493: 9
              default: 30
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 3
            ldc "double"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
            goto 33
      StackMap locals:
      StackMap stack:
         2: aload 3
            ldc "int"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 33
      StackMap locals:
      StackMap stack:
         3: aload 3
            ldc "byte"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
            goto 33
      StackMap locals:
      StackMap stack:
         4: aload 3
            ldc "char"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
            goto 33
      StackMap locals:
      StackMap stack:
         5: aload 3
            ldc "long"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 33
      StackMap locals:
      StackMap stack:
         6: aload 3
            ldc "boolean"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 26
            goto 33
      StackMap locals:
      StackMap stack:
         7: aload 3
            ldc "float"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 33
      StackMap locals:
      StackMap stack:
         8: aload 3
            ldc "short"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            goto 33
      StackMap locals:
      StackMap stack:
         9: aload 3
            ldc "java.lang.String"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 28
            goto 33
        10: .line 185
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
        11: areturn
        12: .line 187
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Long.valueOf:(Ljava/lang/String;)Ljava/lang/Long;
        13: areturn
        14: .line 189
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Double.valueOf:(Ljava/lang/String;)Ljava/lang/Double;
        15: areturn
        16: .line 191
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Float.valueOf:(Ljava/lang/String;)Ljava/lang/Float;
        17: areturn
        18: .line 193
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Short.valueOf:(Ljava/lang/String;)Ljava/lang/Short;
        19: areturn
        20: .line 195
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpeq 22
        21: .line 196
            new java.io.IOException
            dup
            ldc "Unexpected size of char"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 198
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
        23: areturn
        24: .line 200
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Byte.valueOf:(Ljava/lang/String;)Ljava/lang/Byte;
        25: areturn
        26: .line 202
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
        27: areturn
        28: .line 204
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
        29: areturn
        30: .line 206
      StackMap locals:
      StackMap stack:
            goto 33
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        31: pop
        32: .line 207
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not parse text representation of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        33: .line 209
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported type for annotation "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String text
        end local 1 // java.lang.String typeName
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   34     0      this  Ljdk/jfr/internal/MetadataReader;
            0   34     1  typeName  Ljava/lang/String;
            0   34     2      text  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0    11      31  Class java.lang.IllegalArgumentException
          12    13      31  Class java.lang.IllegalArgumentException
          14    15      31  Class java.lang.IllegalArgumentException
          16    17      31  Class java.lang.IllegalArgumentException
          18    19      31  Class java.lang.IllegalArgumentException
          20    23      31  Class java.lang.IllegalArgumentException
          24    25      31  Class java.lang.IllegalArgumentException
          26    27      31  Class java.lang.IllegalArgumentException
          28    29      31  Class java.lang.IllegalArgumentException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      typeName  
      text      

  private jdk.jfr.internal.Type getType(java.lang.String, jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/internal/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // java.lang.String attribute
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element element
         0: .line 213
            aload 2 /* element */
            aload 1 /* attribute */
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.longValue:(Ljava/lang/String;)J
            lstore 3 /* id */
        start local 3 // long id
         1: .line 214
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.types:Ljava/util/Map;
            lload 3 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 5 /* type */
        start local 5 // jdk.jfr.internal.Type type
         2: .line 215
            aload 5 /* type */
            ifnonnull 5
         3: .line 216
            aload 2 /* element */
            ldc "type"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         4: .line 217
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Type '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* id */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "' is not defined for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String name
         5: .line 219
      StackMap locals: long jdk.jfr.internal.Type
      StackMap stack:
            aload 5 /* type */
            areturn
        end local 5 // jdk.jfr.internal.Type type
        end local 3 // long id
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element element
        end local 1 // java.lang.String attribute
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Ljdk/jfr/internal/MetadataReader;
            0    6     1  attribute  Ljava/lang/String;
            0    6     2    element  Ljdk/jfr/internal/MetadataDescriptor$Element;
            1    6     3         id  J
            2    6     5       type  Ljdk/jfr/internal/Type;
            4    5     6       name  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      attribute  
      element    

  private void buildEvenTypes();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // jdk.jfr.internal.MetadataReader this
         0: .line 223
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            getfield jdk.jfr.internal.MetadataDescriptor.types:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: jdk.jfr.internal.MetadataReader top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 1 /* type */
        start local 1 // jdk.jfr.internal.Type type
         2: .line 224
            aload 1 /* type */
            instanceof jdk.jfr.internal.PlatformEventType
            ifeq 4
         3: .line 225
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            getfield jdk.jfr.internal.MetadataDescriptor.eventTypes:Ljava/util/List;
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 1 /* type */
            checkcast jdk.jfr.internal.PlatformEventType
            invokevirtual jdk.jfr.internal.PrivateAccess.newEventType:(Ljdk/jfr/internal/PlatformEventType;)Ljdk/jfr/EventType;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 1 // jdk.jfr.internal.Type type
         4: .line 223
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 228
            return
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/jfr/internal/MetadataReader;
            2    4     1  type  Ljdk/jfr/internal/Type;

  private void defineTypes(jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljdk/jfr/internal/MetadataDescriptor$Element;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=14, args_size=2
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
         0: .line 231
            aload 1 /* metadata */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "class"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 23
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 2 /* typeElement */
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
         2: .line 232
            aload 2 /* typeElement */
            ldc "id"
            ldc -1
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;J)J
            lstore 4 /* id */
        start local 4 // long id
         3: .line 233
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.types:Ljava/util/Map;
            lload 4 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 6 /* t */
        start local 6 // jdk.jfr.internal.Type t
         4: .line 234
            aload 2 /* typeElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "setting"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 11
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator long jdk.jfr.internal.Type top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 7 /* fieldElement */
        start local 7 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
         6: .line 235
            aload 7 /* fieldElement */
            ldc "name"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* name */
        start local 9 // java.lang.String name
         7: .line 236
            aload 7 /* fieldElement */
            ldc "name"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* defaultValue */
        start local 10 // java.lang.String defaultValue
         8: .line 237
            aload 0 /* this */
            ldc "class"
            aload 7 /* fieldElement */
            invokevirtual jdk.jfr.internal.MetadataReader.getType:(Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/internal/Type;
            astore 11 /* settingType */
        start local 11 // jdk.jfr.internal.Type settingType
         9: .line 238
            aload 6 /* t */
            checkcast jdk.jfr.internal.PlatformEventType
            astore 12 /* eventType */
        start local 12 // jdk.jfr.internal.PlatformEventType eventType
        10: .line 239
            aload 12 /* eventType */
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 11 /* settingType */
            aload 9 /* name */
            aload 10 /* defaultValue */
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            invokevirtual jdk.jfr.internal.PrivateAccess.newSettingDescriptor:(Ljdk/jfr/internal/Type;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ljdk/jfr/SettingDescriptor;
            invokevirtual jdk.jfr.internal.PlatformEventType.add:(Ljdk/jfr/SettingDescriptor;)V
        end local 12 // jdk.jfr.internal.PlatformEventType eventType
        end local 11 // jdk.jfr.internal.Type settingType
        end local 10 // java.lang.String defaultValue
        end local 9 // java.lang.String name
        end local 7 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
        11: .line 234
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        12: .line 241
            aload 2 /* typeElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "field"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 21
      StackMap locals:
      StackMap stack:
        13: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 7 /* fieldElement */
        start local 7 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
        14: .line 242
            aload 7 /* fieldElement */
            ldc "name"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* name */
        start local 9 // java.lang.String name
        15: .line 243
            aload 0 /* this */
            ldc "class"
            aload 7 /* fieldElement */
            invokevirtual jdk.jfr.internal.MetadataReader.getType:(Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/internal/Type;
            astore 10 /* fieldType */
        start local 10 // jdk.jfr.internal.Type fieldType
        16: .line 244
            aload 7 /* fieldElement */
            ldc "dimension"
            lconst_0
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;J)J
            lstore 11 /* dimension */
        start local 11 // long dimension
        17: .line 245
            aload 7 /* fieldElement */
            ldc "constantPool"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 18
            iconst_1
            goto 19
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator long jdk.jfr.internal.Type jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator java.lang.String jdk.jfr.internal.Type long
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 13 /* constantPool */
        start local 13 // boolean constantPool
        20: .line 248
            aload 6 /* t */
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 9 /* name */
            aload 10 /* fieldType */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            lload 11 /* dimension */
            l2i
            iload 13 /* constantPool */
            aconst_null
            invokevirtual jdk.jfr.internal.PrivateAccess.newValueDescriptor:(Ljava/lang/String;Ljdk/jfr/internal/Type;Ljava/util/List;IZLjava/lang/String;)Ljdk/jfr/ValueDescriptor;
            invokevirtual jdk.jfr.internal.Type.add:(Ljdk/jfr/ValueDescriptor;)V
        end local 13 // boolean constantPool
        end local 11 // long dimension
        end local 10 // jdk.jfr.internal.Type fieldType
        end local 9 // java.lang.String name
        end local 7 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
        21: .line 241
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator long jdk.jfr.internal.Type top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        22: .line 250
            aload 6 /* t */
            invokevirtual jdk.jfr.internal.Type.trimFields:()V
        end local 6 // jdk.jfr.internal.Type t
        end local 4 // long id
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
        23: .line 231
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        24: .line 252
            return
        end local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   25     0          this  Ljdk/jfr/internal/MetadataReader;
            0   25     1      metadata  Ljdk/jfr/internal/MetadataDescriptor$Element;
            2   23     2   typeElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
            3   23     4            id  J
            4   23     6             t  Ljdk/jfr/internal/Type;
            6   11     7  fieldElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
            7   11     9          name  Ljava/lang/String;
            8   11    10  defaultValue  Ljava/lang/String;
            9   11    11   settingType  Ljdk/jfr/internal/Type;
           10   11    12     eventType  Ljdk/jfr/internal/PlatformEventType;
           14   21     7  fieldElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
           15   21     9          name  Ljava/lang/String;
           16   21    10     fieldType  Ljdk/jfr/internal/Type;
           17   21    11     dimension  J
           20   21    13  constantPool  Z
    MethodParameters:
          Name  Flags
      metadata  

  private void declareTypes(jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljdk/jfr/internal/MetadataDescriptor$Element;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=2
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
         0: .line 255
            aload 1 /* metadata */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "class"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 14
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 2 /* typeElement */
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
         2: .line 256
            aload 2 /* typeElement */
            ldc "name"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* typeName */
        start local 4 // java.lang.String typeName
         3: .line 257
            aload 2 /* typeElement */
            ldc "superType"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* superType */
        start local 5 // java.lang.String superType
         4: .line 258
            aload 2 /* typeElement */
            ldc "simpleType"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 5
            iconst_1
            goto 6
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator java.lang.String java.lang.String
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* simpleType */
        start local 6 // boolean simpleType
         7: .line 259
            aload 2 /* typeElement */
            ldc "id"
            ldc -1
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;J)J
            lstore 7 /* id */
        start local 7 // long id
         8: .line 261
            getstatic jdk.jfr.internal.Type.SUPER_TYPE_EVENT:Ljava/lang/String;
            aload 5 /* superType */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 262
            new jdk.jfr.internal.PlatformEventType
            dup
            aload 4 /* typeName */
            lload 7 /* id */
            iconst_0
            iconst_0
            invokespecial jdk.jfr.internal.PlatformEventType.<init>:(Ljava/lang/String;JZZ)V
            astore 9 /* t */
        start local 9 // jdk.jfr.internal.Type t
        10: .line 263
            goto 12
        end local 9 // jdk.jfr.internal.Type t
        11: .line 264
      StackMap locals: int long
      StackMap stack:
            new jdk.jfr.internal.Type
            dup
            aload 4 /* typeName */
            aload 5 /* superType */
            lload 7 /* id */
            iload 6 /* simpleType */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokespecial jdk.jfr.internal.Type.<init>:(Ljava/lang/String;Ljava/lang/String;JLjava/lang/Boolean;)V
            astore 9 /* t */
        start local 9 // jdk.jfr.internal.Type t
        12: .line 266
      StackMap locals: jdk.jfr.internal.Type
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.types:Ljava/util/Map;
            lload 7 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 9 /* t */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 267
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            getfield jdk.jfr.internal.MetadataDescriptor.types:Ljava/util/Collection;
            aload 9 /* t */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // jdk.jfr.internal.Type t
        end local 7 // long id
        end local 6 // boolean simpleType
        end local 5 // java.lang.String superType
        end local 4 // java.lang.String typeName
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
        14: .line 255
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        15: .line 269
            return
        end local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Ljdk/jfr/internal/MetadataReader;
            0   16     1     metadata  Ljdk/jfr/internal/MetadataDescriptor$Element;
            2   14     2  typeElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
            3   14     4     typeName  Ljava/lang/String;
            4   14     5    superType  Ljava/lang/String;
            7   14     6   simpleType  Z
            8   14     7           id  J
           10   11     9            t  Ljdk/jfr/internal/Type;
           12   14     9            t  Ljdk/jfr/internal/Type;
    MethodParameters:
          Name  Flags
      metadata  

  public jdk.jfr.internal.MetadataDescriptor getDescriptor();
    descriptor: ()Ljdk/jfr/internal/MetadataDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataReader this
         0: .line 272
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            areturn
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataReader;

  private static int lambda$0(jdk.jfr.internal.Type, jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jfr.internal.Type x
        start local 1 // jdk.jfr.internal.Type y
         0: .line 87
            aload 0 /* x */
            invokevirtual jdk.jfr.internal.Type.getName:()Ljava/lang/String;
            aload 1 /* y */
            invokevirtual jdk.jfr.internal.Type.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 1 // jdk.jfr.internal.Type y
        end local 0 // jdk.jfr.internal.Type x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  Ljdk/jfr/internal/Type;
            0    1     1     y  Ljdk/jfr/internal/Type;
}
SourceFile: "MetadataReader.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  final Element = jdk.jfr.internal.MetadataDescriptor$Element of jdk.jfr.internal.MetadataDescriptor