abstract class com.sun.imageio.plugins.gif.GIFMetadata extends javax.imageio.metadata.IIOMetadata
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.imageio.plugins.gif.GIFMetadata
  super_class: javax.imageio.metadata.IIOMetadata
{
  static final int UNDEFINED_INTEGER_VALUE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  protected static void fatal(org.w3c.dom.Node, java.lang.String);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String reason
         0: .line 52
            new javax.imageio.metadata.IIOInvalidTreeException
            dup
            aload 1 /* reason */
            aload 0 /* node */
            invokespecial javax.imageio.metadata.IIOInvalidTreeException.<init>:(Ljava/lang/String;Lorg/w3c/dom/Node;)V
            athrow
        end local 1 // java.lang.String reason
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    node  Lorg/w3c/dom/Node;
            0    1     1  reason  Ljava/lang/String;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
        Name  Flags
      node    
      reason  

  protected static java.lang.String getStringAttribute(org.w3c.dom.Node, java.lang.String, java.lang.String, boolean, java.lang.String[]);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
        start local 2 // java.lang.String defaultValue
        start local 3 // boolean required
        start local 4 // java.lang.String[] range
         0: .line 61
            aload 0 /* node */
            invokeinterface org.w3c.dom.Node.getAttributes:()Lorg/w3c/dom/NamedNodeMap;
            aload 1 /* name */
            invokeinterface org.w3c.dom.NamedNodeMap.getNamedItem:(Ljava/lang/String;)Lorg/w3c/dom/Node;
            astore 5 /* attr */
        start local 5 // org.w3c.dom.Node attr
         1: .line 62
            aload 5 /* attr */
            ifnonnull 5
         2: .line 63
            iload 3 /* required */
            ifne 4
         3: .line 64
            aload 2 /* defaultValue */
            areturn
         4: .line 66
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            aload 0 /* node */
            new java.lang.StringBuilder
            dup
            ldc "Required attribute "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not present!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
         5: .line 69
      StackMap locals:
      StackMap stack:
            aload 5 /* attr */
            invokeinterface org.w3c.dom.Node.getNodeValue:()Ljava/lang/String;
            astore 6 /* value */
        start local 6 // java.lang.String value
         6: .line 71
            aload 4 /* range */
            ifnull 28
         7: .line 72
            aload 6 /* value */
            ifnonnull 13
         8: .line 73
            aload 0 /* node */
         9: .line 74
            new java.lang.StringBuilder
            dup
            ldc "Null value for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* node */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 75
            ldc " attribute "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 74
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 73
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
        13: .line 77
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            istore 7 /* validValue */
        start local 7 // boolean validValue
        14: .line 78
            aload 4 /* range */
            arraylength
            istore 8 /* len */
        start local 8 // int len
        15: .line 79
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        16: goto 21
        17: .line 80
      StackMap locals: int int int
      StackMap stack:
            aload 6 /* value */
            aload 4 /* range */
            iload 9 /* i */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 81
            iconst_1
            istore 7 /* validValue */
        19: .line 82
            goto 22
        20: .line 79
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 9 /* i */
            iload 8 /* len */
            if_icmplt 17
        end local 9 // int i
        22: .line 85
      StackMap locals:
      StackMap stack:
            iload 7 /* validValue */
            ifne 28
        23: .line 86
            aload 0 /* node */
        24: .line 87
            new java.lang.StringBuilder
            dup
            ldc "Bad value for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* node */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 88
            ldc " attribute "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        26: .line 87
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 86
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
        end local 8 // int len
        end local 7 // boolean validValue
        28: .line 92
      StackMap locals:
      StackMap stack:
            aload 6 /* value */
            areturn
        end local 6 // java.lang.String value
        end local 5 // org.w3c.dom.Node attr
        end local 4 // java.lang.String[] range
        end local 3 // boolean required
        end local 2 // java.lang.String defaultValue
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   29     0          node  Lorg/w3c/dom/Node;
            0   29     1          name  Ljava/lang/String;
            0   29     2  defaultValue  Ljava/lang/String;
            0   29     3      required  Z
            0   29     4         range  [Ljava/lang/String;
            1   29     5          attr  Lorg/w3c/dom/Node;
            6   29     6         value  Ljava/lang/String;
           14   28     7    validValue  Z
           15   28     8           len  I
           16   22     9             i  I
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
              Name  Flags
      node          
      name          
      defaultValue  
      required      
      range         

  protected static int getIntAttribute(org.w3c.dom.Node, java.lang.String, int, boolean, boolean, int, int);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;IZZII)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=7
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
        start local 2 // int defaultValue
        start local 3 // boolean required
        start local 4 // boolean bounded
        start local 5 // int min
        start local 6 // int max
         0: .line 101
            aload 0 /* node */
            aload 1 /* name */
            aconst_null
            iload 3 /* required */
            aconst_null
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getStringAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* value */
        start local 7 // java.lang.String value
         1: .line 102
            aload 7 /* value */
            ifnull 2
            aload 7 /* value */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 3
         2: .line 103
      StackMap locals: java.lang.String
      StackMap stack:
            iload 2 /* defaultValue */
            ireturn
         3: .line 106
      StackMap locals:
      StackMap stack:
            iload 2 /* defaultValue */
            istore 8 /* intValue */
        start local 8 // int intValue
         4: .line 108
            aload 7 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 8 /* intValue */
         5: .line 109
            goto 12
      StackMap locals: org.w3c.dom.Node java.lang.String int int int int int java.lang.String int
      StackMap stack: java.lang.NumberFormatException
         6: pop
         7: .line 110
            aload 0 /* node */
         8: .line 111
            new java.lang.StringBuilder
            dup
            ldc "Bad value for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* node */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 112
            ldc " attribute "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 111
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 110
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
        12: .line 114
      StackMap locals:
      StackMap stack:
            iload 4 /* bounded */
            ifeq 18
            iload 8 /* intValue */
            iload 5 /* min */
            if_icmplt 13
            iload 8 /* intValue */
            iload 6 /* max */
            if_icmple 18
        13: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
        14: .line 116
            new java.lang.StringBuilder
            dup
            ldc "Bad value for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* node */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 117
            ldc " attribute "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 116
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 115
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
        18: .line 119
      StackMap locals:
      StackMap stack:
            iload 8 /* intValue */
            ireturn
        end local 8 // int intValue
        end local 7 // java.lang.String value
        end local 6 // int max
        end local 5 // int min
        end local 4 // boolean bounded
        end local 3 // boolean required
        end local 2 // int defaultValue
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          node  Lorg/w3c/dom/Node;
            0   19     1          name  Ljava/lang/String;
            0   19     2  defaultValue  I
            0   19     3      required  Z
            0   19     4       bounded  Z
            0   19     5           min  I
            0   19     6           max  I
            1   19     7         value  Ljava/lang/String;
            4   19     8      intValue  I
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.NumberFormatException
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
              Name  Flags
      node          
      name          
      defaultValue  
      required      
      bounded       
      min           
      max           

  protected static float getFloatAttribute(org.w3c.dom.Node, java.lang.String, float, boolean);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;FZ)F
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
        start local 2 // float defaultValue
        start local 3 // boolean required
         0: .line 127
            aload 0 /* node */
            aload 1 /* name */
            aconst_null
            iload 3 /* required */
            aconst_null
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getStringAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* value */
        start local 4 // java.lang.String value
         1: .line 128
            aload 4 /* value */
            ifnonnull 3
         2: .line 129
            fload 2 /* defaultValue */
            freturn
         3: .line 131
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* value */
            invokestatic java.lang.Float.parseFloat:(Ljava/lang/String;)F
            freturn
        end local 4 // java.lang.String value
        end local 3 // boolean required
        end local 2 // float defaultValue
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          node  Lorg/w3c/dom/Node;
            0    4     1          name  Ljava/lang/String;
            0    4     2  defaultValue  F
            0    4     3      required  Z
            1    4     4         value  Ljava/lang/String;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
              Name  Flags
      node          
      name          
      defaultValue  
      required      

  protected static int getIntAttribute(org.w3c.dom.Node, java.lang.String, boolean, int, int);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;ZII)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
        start local 2 // boolean bounded
        start local 3 // int min
        start local 4 // int max
         0: .line 138
            aload 0 /* node */
            aload 1 /* name */
            iconst_m1
            iconst_1
            iload 2 /* bounded */
            iload 3 /* min */
            iload 4 /* max */
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getIntAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;IZZII)I
            ireturn
        end local 4 // int max
        end local 3 // int min
        end local 2 // boolean bounded
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     node  Lorg/w3c/dom/Node;
            0    1     1     name  Ljava/lang/String;
            0    1     2  bounded  Z
            0    1     3      min  I
            0    1     4      max  I
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
         Name  Flags
      node     
      name     
      bounded  
      min      
      max      

  protected static float getFloatAttribute(org.w3c.dom.Node, java.lang.String);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;)F
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
         0: .line 144
            aload 0 /* node */
            aload 1 /* name */
            ldc -1.0
            iconst_1
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getFloatAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;FZ)F
            freturn
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  node  Lorg/w3c/dom/Node;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
      Name  Flags
      node  
      name  

  protected static boolean getBooleanAttribute(org.w3c.dom.Node, java.lang.String, boolean, boolean);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;ZZ)Z
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
        start local 2 // boolean defaultValue
        start local 3 // boolean required
         0: .line 152
            aload 0 /* node */
            invokeinterface org.w3c.dom.Node.getAttributes:()Lorg/w3c/dom/NamedNodeMap;
            aload 1 /* name */
            invokeinterface org.w3c.dom.NamedNodeMap.getNamedItem:(Ljava/lang/String;)Lorg/w3c/dom/Node;
            astore 4 /* attr */
        start local 4 // org.w3c.dom.Node attr
         1: .line 153
            aload 4 /* attr */
            ifnonnull 5
         2: .line 154
            iload 3 /* required */
            ifne 4
         3: .line 155
            iload 2 /* defaultValue */
            ireturn
         4: .line 157
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            aload 0 /* node */
            new java.lang.StringBuilder
            dup
            ldc "Required attribute "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not present!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
         5: .line 160
      StackMap locals:
      StackMap stack:
            aload 4 /* attr */
            invokeinterface org.w3c.dom.Node.getNodeValue:()Ljava/lang/String;
            astore 5 /* value */
        start local 5 // java.lang.String value
         6: .line 162
            aload 5 /* value */
            ldc "TRUE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            aload 5 /* value */
            ldc "true"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 163
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_1
            ireturn
         8: .line 164
      StackMap locals:
      StackMap stack:
            aload 5 /* value */
            ldc "FALSE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            aload 5 /* value */
            ldc "false"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 165
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            new java.lang.StringBuilder
            dup
            ldc "Attribute "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " must be 'TRUE' or 'FALSE'!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
        11: .line 168
            iconst_0
            ireturn
        end local 5 // java.lang.String value
        end local 4 // org.w3c.dom.Node attr
        end local 3 // boolean required
        end local 2 // boolean defaultValue
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          node  Lorg/w3c/dom/Node;
            0   12     1          name  Ljava/lang/String;
            0   12     2  defaultValue  Z
            0   12     3      required  Z
            1   12     4          attr  Lorg/w3c/dom/Node;
            6   12     5         value  Ljava/lang/String;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
              Name  Flags
      node          
      name          
      defaultValue  
      required      

  protected static boolean getBooleanAttribute(org.w3c.dom.Node, java.lang.String);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;)Z
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
         0: .line 175
            aload 0 /* node */
            aload 1 /* name */
            iconst_0
            iconst_1
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getBooleanAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;ZZ)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  node  Lorg/w3c/dom/Node;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
      Name  Flags
      node  
      name  

  protected static int getEnumeratedAttribute(org.w3c.dom.Node, java.lang.String, java.lang.String[], int, boolean);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;[Ljava/lang/String;IZ)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
        start local 2 // java.lang.String[] legalNames
        start local 3 // int defaultValue
        start local 4 // boolean required
         0: .line 185
            aload 0 /* node */
            invokeinterface org.w3c.dom.Node.getAttributes:()Lorg/w3c/dom/NamedNodeMap;
            aload 1 /* name */
            invokeinterface org.w3c.dom.NamedNodeMap.getNamedItem:(Ljava/lang/String;)Lorg/w3c/dom/Node;
            astore 5 /* attr */
        start local 5 // org.w3c.dom.Node attr
         1: .line 186
            aload 5 /* attr */
            ifnonnull 5
         2: .line 187
            iload 4 /* required */
            ifne 4
         3: .line 188
            iload 3 /* defaultValue */
            ireturn
         4: .line 190
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            aload 0 /* node */
            new java.lang.StringBuilder
            dup
            ldc "Required attribute "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not present!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
         5: .line 193
      StackMap locals:
      StackMap stack:
            aload 5 /* attr */
            invokeinterface org.w3c.dom.Node.getNodeValue:()Ljava/lang/String;
            astore 6 /* value */
        start local 6 // java.lang.String value
         6: .line 194
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 11
         8: .line 195
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 6 /* value */
            aload 2 /* legalNames */
            iload 7 /* i */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 196
            iload 7 /* i */
            ireturn
        10: .line 194
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 7 /* i */
            aload 2 /* legalNames */
            arraylength
            if_icmplt 8
        end local 7 // int i
        12: .line 200
            aload 0 /* node */
            new java.lang.StringBuilder
            dup
            ldc "Illegal value for attribute "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
        13: .line 201
            iconst_m1
            ireturn
        end local 6 // java.lang.String value
        end local 5 // org.w3c.dom.Node attr
        end local 4 // boolean required
        end local 3 // int defaultValue
        end local 2 // java.lang.String[] legalNames
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          node  Lorg/w3c/dom/Node;
            0   14     1          name  Ljava/lang/String;
            0   14     2    legalNames  [Ljava/lang/String;
            0   14     3  defaultValue  I
            0   14     4      required  Z
            1   14     5          attr  Lorg/w3c/dom/Node;
            6   14     6         value  Ljava/lang/String;
            7   12     7             i  I
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
              Name  Flags
      node          
      name          
      legalNames    
      defaultValue  
      required      

  protected static int getEnumeratedAttribute(org.w3c.dom.Node, java.lang.String, java.lang.String[]);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;[Ljava/lang/String;)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
        start local 2 // java.lang.String[] legalNames
         0: .line 209
            aload 0 /* node */
            aload 1 /* name */
            aload 2 /* legalNames */
            iconst_m1
            iconst_1
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getEnumeratedAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;[Ljava/lang/String;IZ)I
            ireturn
        end local 2 // java.lang.String[] legalNames
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        node  Lorg/w3c/dom/Node;
            0    1     1        name  Ljava/lang/String;
            0    1     2  legalNames  [Ljava/lang/String;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
            Name  Flags
      node        
      name        
      legalNames  

  protected static java.lang.String getAttribute(org.w3c.dom.Node, java.lang.String, java.lang.String, boolean);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
        start local 2 // java.lang.String defaultValue
        start local 3 // boolean required
         0: .line 216
            aload 0 /* node */
            invokeinterface org.w3c.dom.Node.getAttributes:()Lorg/w3c/dom/NamedNodeMap;
            aload 1 /* name */
            invokeinterface org.w3c.dom.NamedNodeMap.getNamedItem:(Ljava/lang/String;)Lorg/w3c/dom/Node;
            astore 4 /* attr */
        start local 4 // org.w3c.dom.Node attr
         1: .line 217
            aload 4 /* attr */
            ifnonnull 5
         2: .line 218
            iload 3 /* required */
            ifne 4
         3: .line 219
            aload 2 /* defaultValue */
            areturn
         4: .line 221
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            aload 0 /* node */
            new java.lang.StringBuilder
            dup
            ldc "Required attribute "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not present!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
         5: .line 224
      StackMap locals:
      StackMap stack:
            aload 4 /* attr */
            invokeinterface org.w3c.dom.Node.getNodeValue:()Ljava/lang/String;
            areturn
        end local 4 // org.w3c.dom.Node attr
        end local 3 // boolean required
        end local 2 // java.lang.String defaultValue
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          node  Lorg/w3c/dom/Node;
            0    6     1          name  Ljava/lang/String;
            0    6     2  defaultValue  Ljava/lang/String;
            0    6     3      required  Z
            1    6     4          attr  Lorg/w3c/dom/Node;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
              Name  Flags
      node          
      name          
      defaultValue  
      required      

  protected static java.lang.String getAttribute(org.w3c.dom.Node, java.lang.String);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.w3c.dom.Node node
        start local 1 // java.lang.String name
         0: .line 230
            aload 0 /* node */
            aload 1 /* name */
            aconst_null
            iconst_1
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.w3c.dom.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  node  Lorg/w3c/dom/Node;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
      Name  Flags
      node  
      name  

  protected void <init>(boolean, java.lang.String, java.lang.String, java.lang.String[], java.lang.String[]);
    descriptor: (ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.sun.imageio.plugins.gif.GIFMetadata this
        start local 1 // boolean standardMetadataFormatSupported
        start local 2 // java.lang.String nativeMetadataFormatName
        start local 3 // java.lang.String nativeMetadataFormatClassName
        start local 4 // java.lang.String[] extraMetadataFormatNames
        start local 5 // java.lang.String[] extraMetadataFormatClassNames
         0: .line 238
            aload 0 /* this */
            iload 1 /* standardMetadataFormatSupported */
         1: .line 239
            aload 2 /* nativeMetadataFormatName */
         2: .line 240
            aload 3 /* nativeMetadataFormatClassName */
         3: .line 241
            aload 4 /* extraMetadataFormatNames */
         4: .line 242
            aload 5 /* extraMetadataFormatClassNames */
            invokespecial javax.imageio.metadata.IIOMetadata.<init>:(ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
         5: .line 243
            return
        end local 5 // java.lang.String[] extraMetadataFormatClassNames
        end local 4 // java.lang.String[] extraMetadataFormatNames
        end local 3 // java.lang.String nativeMetadataFormatClassName
        end local 2 // java.lang.String nativeMetadataFormatName
        end local 1 // boolean standardMetadataFormatSupported
        end local 0 // com.sun.imageio.plugins.gif.GIFMetadata this
      LocalVariableTable:
        Start  End  Slot                             Name  Signature
            0    6     0                             this  Lcom/sun/imageio/plugins/gif/GIFMetadata;
            0    6     1  standardMetadataFormatSupported  Z
            0    6     2         nativeMetadataFormatName  Ljava/lang/String;
            0    6     3    nativeMetadataFormatClassName  Ljava/lang/String;
            0    6     4         extraMetadataFormatNames  [Ljava/lang/String;
            0    6     5    extraMetadataFormatClassNames  [Ljava/lang/String;
    MethodParameters:
                                 Name  Flags
      standardMetadataFormatSupported  
      nativeMetadataFormatName         
      nativeMetadataFormatClassName    
      extraMetadataFormatNames         
      extraMetadataFormatClassNames    

  public void mergeTree(java.lang.String, org.w3c.dom.Node);
    descriptor: (Ljava/lang/String;Lorg/w3c/dom/Node;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.imageio.plugins.gif.GIFMetadata this
        start local 1 // java.lang.String formatName
        start local 2 // org.w3c.dom.Node root
         0: .line 247
            aload 1 /* formatName */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFMetadata.nativeMetadataFormatName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         1: .line 248
            aload 2 /* root */
            ifnonnull 3
         2: .line 249
            new java.lang.IllegalArgumentException
            dup
            ldc "root == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* root */
            invokevirtual com.sun.imageio.plugins.gif.GIFMetadata.mergeNativeTree:(Lorg/w3c/dom/Node;)V
         4: .line 252
            goto 14
      StackMap locals:
      StackMap stack:
         5: aload 1 /* formatName */
         6: .line 253
            ldc "javax_imageio_1.0"
         7: .line 252
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
         8: .line 253
            ifeq 13
         9: .line 254
            aload 2 /* root */
            ifnonnull 11
        10: .line 255
            new java.lang.IllegalArgumentException
            dup
            ldc "root == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* root */
            invokevirtual com.sun.imageio.plugins.gif.GIFMetadata.mergeStandardTree:(Lorg/w3c/dom/Node;)V
        12: .line 258
            goto 14
        13: .line 259
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Not a recognized format!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 261
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.w3c.dom.Node root
        end local 1 // java.lang.String formatName
        end local 0 // com.sun.imageio.plugins.gif.GIFMetadata this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lcom/sun/imageio/plugins/gif/GIFMetadata;
            0   15     1  formatName  Ljava/lang/String;
            0   15     2        root  Lorg/w3c/dom/Node;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
            Name  Flags
      formatName  
      root        

  protected byte[] getColorTable(org.w3c.dom.Node, java.lang.String, boolean, int);
    descriptor: (Lorg/w3c/dom/Node;Ljava/lang/String;ZI)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=14, args_size=5
        start local 0 // com.sun.imageio.plugins.gif.GIFMetadata this
        start local 1 // org.w3c.dom.Node colorTableNode
        start local 2 // java.lang.String entryNodeName
        start local 3 // boolean lengthExpected
        start local 4 // int expectedLength
         0: .line 268
            sipush 256
            newarray 8
            astore 5 /* red */
        start local 5 // byte[] red
         1: .line 269
            sipush 256
            newarray 8
            astore 6 /* green */
        start local 6 // byte[] green
         2: .line 270
            sipush 256
            newarray 8
            astore 7 /* blue */
        start local 7 // byte[] blue
         3: .line 271
            iconst_m1
            istore 8 /* maxIndex */
        start local 8 // int maxIndex
         4: .line 273
            aload 1 /* colorTableNode */
            invokeinterface org.w3c.dom.Node.getFirstChild:()Lorg/w3c/dom/Node;
            astore 9 /* entry */
        start local 9 // org.w3c.dom.Node entry
         5: .line 274
            aload 9 /* entry */
            ifnonnull 21
         6: .line 275
            aload 1 /* colorTableNode */
            ldc "Palette has no entries!"
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
         7: .line 278
            goto 21
         8: .line 279
      StackMap locals: com.sun.imageio.plugins.gif.GIFMetadata org.w3c.dom.Node java.lang.String int int byte[] byte[] byte[] int org.w3c.dom.Node
      StackMap stack:
            aload 9 /* entry */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            aload 2 /* entryNodeName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
         9: .line 280
            aload 1 /* colorTableNode */
        10: .line 281
            new java.lang.StringBuilder
            dup
            ldc "Only a "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* entryNodeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " may be a child of a "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 282
            aload 9 /* entry */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 281
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 280
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
        14: .line 285
      StackMap locals:
      StackMap stack:
            aload 9 /* entry */
            ldc "index"
            iconst_1
            iconst_0
            sipush 255
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getIntAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;ZII)I
            istore 10 /* index */
        start local 10 // int index
        15: .line 286
            iload 10 /* index */
            iload 8 /* maxIndex */
            if_icmple 17
        16: .line 287
            iload 10 /* index */
            istore 8 /* maxIndex */
        17: .line 289
      StackMap locals: int
      StackMap stack:
            aload 5 /* red */
            iload 10 /* index */
            aload 9 /* entry */
            ldc "red"
            iconst_1
            iconst_0
            sipush 255
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getIntAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;ZII)I
            i2b
            bastore
        18: .line 290
            aload 6 /* green */
            iload 10 /* index */
            aload 9 /* entry */
            ldc "green"
            iconst_1
            iconst_0
            sipush 255
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getIntAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;ZII)I
            i2b
            bastore
        19: .line 291
            aload 7 /* blue */
            iload 10 /* index */
            aload 9 /* entry */
            ldc "blue"
            iconst_1
            iconst_0
            sipush 255
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.getIntAttribute:(Lorg/w3c/dom/Node;Ljava/lang/String;ZII)I
            i2b
            bastore
        20: .line 293
            aload 9 /* entry */
            invokeinterface org.w3c.dom.Node.getNextSibling:()Lorg/w3c/dom/Node;
            astore 9 /* entry */
        end local 10 // int index
        21: .line 278
      StackMap locals:
      StackMap stack:
            aload 9 /* entry */
            ifnonnull 8
        22: .line 296
            iload 8 /* maxIndex */
            iconst_1
            iadd
            istore 10 /* numEntries */
        start local 10 // int numEntries
        23: .line 298
            iload 3 /* lengthExpected */
            ifeq 25
            iload 10 /* numEntries */
            iload 4 /* expectedLength */
            if_icmpeq 25
        24: .line 299
            aload 1 /* colorTableNode */
            ldc "Unexpected length for palette!"
            invokestatic com.sun.imageio.plugins.gif.GIFMetadata.fatal:(Lorg/w3c/dom/Node;Ljava/lang/String;)V
        25: .line 302
      StackMap locals: int
      StackMap stack:
            iconst_3
            iload 10 /* numEntries */
            imul
            newarray 8
            astore 11 /* colorTable */
        start local 11 // byte[] colorTable
        26: .line 303
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        27: iconst_0
            istore 13 /* j */
        start local 13 // int j
        28: goto 33
        29: .line 304
      StackMap locals: byte[] int int
      StackMap stack:
            aload 11 /* colorTable */
            iload 13 /* j */
            iinc 13 /* j */ 1
            aload 5 /* red */
            iload 12 /* i */
            baload
            bastore
        30: .line 305
            aload 11 /* colorTable */
            iload 13 /* j */
            iinc 13 /* j */ 1
            aload 6 /* green */
            iload 12 /* i */
            baload
            bastore
        31: .line 306
            aload 11 /* colorTable */
            iload 13 /* j */
            iinc 13 /* j */ 1
            aload 7 /* blue */
            iload 12 /* i */
            baload
            bastore
        32: .line 303
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 12 /* i */
            iload 10 /* numEntries */
            if_icmplt 29
        end local 13 // int j
        end local 12 // int i
        34: .line 309
            aload 11 /* colorTable */
            areturn
        end local 11 // byte[] colorTable
        end local 10 // int numEntries
        end local 9 // org.w3c.dom.Node entry
        end local 8 // int maxIndex
        end local 7 // byte[] blue
        end local 6 // byte[] green
        end local 5 // byte[] red
        end local 4 // int expectedLength
        end local 3 // boolean lengthExpected
        end local 2 // java.lang.String entryNodeName
        end local 1 // org.w3c.dom.Node colorTableNode
        end local 0 // com.sun.imageio.plugins.gif.GIFMetadata this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Lcom/sun/imageio/plugins/gif/GIFMetadata;
            0   35     1  colorTableNode  Lorg/w3c/dom/Node;
            0   35     2   entryNodeName  Ljava/lang/String;
            0   35     3  lengthExpected  Z
            0   35     4  expectedLength  I
            1   35     5             red  [B
            2   35     6           green  [B
            3   35     7            blue  [B
            4   35     8        maxIndex  I
            5   35     9           entry  Lorg/w3c/dom/Node;
           15   21    10           index  I
           23   35    10      numEntries  I
           26   35    11      colorTable  [B
           27   34    12               i  I
           28   34    13               j  I
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
                Name  Flags
      colorTableNode  
      entryNodeName   
      lengthExpected  
      expectedLength  

  protected abstract void mergeNativeTree(org.w3c.dom.Node);
    descriptor: (Lorg/w3c/dom/Node;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
      Name  Flags
      root  

  protected abstract void mergeStandardTree(org.w3c.dom.Node);
    descriptor: (Lorg/w3c/dom/Node;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
      Name  Flags
      root  
}
SourceFile: "GIFMetadata.java"