public abstract class javax.imageio.spi.ImageReaderWriterSpi extends javax.imageio.spi.IIOServiceProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: javax.imageio.spi.ImageReaderWriterSpi
  super_class: javax.imageio.spi.IIOServiceProvider
{
  protected java.lang.String[] names;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] suffixes;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] MIMETypes;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String pluginClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected boolean supportsStandardStreamMetadataFormat;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String nativeStreamMetadataFormatName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String nativeStreamMetadataFormatClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] extraStreamMetadataFormatNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] extraStreamMetadataFormatClassNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected boolean supportsStandardImageMetadataFormat;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String nativeImageMetadataFormatName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String nativeImageMetadataFormatClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] extraImageMetadataFormatNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] extraImageMetadataFormatClassNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  public void <init>(java.lang.String, java.lang.String, java.lang.String[], java.lang.String[], java.lang.String[], java.lang.String, boolean, java.lang.String, java.lang.String, java.lang.String[], java.lang.String[], boolean, java.lang.String, java.lang.String, java.lang.String[], java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=17, args_size=17
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
        start local 1 // java.lang.String vendorName
        start local 2 // java.lang.String version
        start local 3 // java.lang.String[] names
        start local 4 // java.lang.String[] suffixes
        start local 5 // java.lang.String[] MIMETypes
        start local 6 // java.lang.String pluginClassName
        start local 7 // boolean supportsStandardStreamMetadataFormat
        start local 8 // java.lang.String nativeStreamMetadataFormatName
        start local 9 // java.lang.String nativeStreamMetadataFormatClassName
        start local 10 // java.lang.String[] extraStreamMetadataFormatNames
        start local 11 // java.lang.String[] extraStreamMetadataFormatClassNames
        start local 12 // boolean supportsStandardImageMetadataFormat
        start local 13 // java.lang.String nativeImageMetadataFormatName
        start local 14 // java.lang.String nativeImageMetadataFormatClassName
        start local 15 // java.lang.String[] extraImageMetadataFormatNames
        start local 16 // java.lang.String[] extraImageMetadataFormatClassNames
         0: .line 233
            aload 0 /* this */
            aload 1 /* vendorName */
            aload 2 /* version */
            invokespecial javax.imageio.spi.IIOServiceProvider.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 57
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.names:[Ljava/lang/String;
         2: .line 63
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.suffixes:[Ljava/lang/String;
         3: .line 69
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.MIMETypes:[Ljava/lang/String;
         4: .line 75
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.pluginClassName:Ljava/lang/String;
         5: .line 82
            aload 0 /* this */
            iconst_0
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardStreamMetadataFormat:Z
         6: .line 89
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatName:Ljava/lang/String;
         7: .line 96
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatClassName:Ljava/lang/String;
         8: .line 103
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
         9: .line 110
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatClassNames:[Ljava/lang/String;
        10: .line 117
            aload 0 /* this */
            iconst_0
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardImageMetadataFormat:Z
        11: .line 124
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatName:Ljava/lang/String;
        12: .line 131
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatClassName:Ljava/lang/String;
        13: .line 138
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
        14: .line 145
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatClassNames:[Ljava/lang/String;
        15: .line 234
            aload 3 /* names */
            ifnonnull 17
        16: .line 235
            new java.lang.IllegalArgumentException
            dup
            ldc "names == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 237
      StackMap locals: javax.imageio.spi.ImageReaderWriterSpi java.lang.String java.lang.String java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String int java.lang.String java.lang.String java.lang.String[] java.lang.String[] int java.lang.String java.lang.String java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 3 /* names */
            arraylength
            ifne 19
        18: .line 238
            new java.lang.IllegalArgumentException
            dup
            ldc "names.length == 0!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 240
      StackMap locals:
      StackMap stack:
            aload 6 /* pluginClassName */
            ifnonnull 21
        20: .line 241
            new java.lang.IllegalArgumentException
            dup
            ldc "pluginClassName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* names */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield javax.imageio.spi.ImageReaderWriterSpi.names:[Ljava/lang/String;
        22: .line 246
            aload 4 /* suffixes */
            ifnull 24
            aload 4 /* suffixes */
            arraylength
            ifle 24
        23: .line 247
            aload 0 /* this */
            aload 4 /* suffixes */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield javax.imageio.spi.ImageReaderWriterSpi.suffixes:[Ljava/lang/String;
        24: .line 250
      StackMap locals:
      StackMap stack:
            aload 5 /* MIMETypes */
            ifnull 26
            aload 5 /* MIMETypes */
            arraylength
            ifle 26
        25: .line 251
            aload 0 /* this */
            aload 5 /* MIMETypes */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield javax.imageio.spi.ImageReaderWriterSpi.MIMETypes:[Ljava/lang/String;
        26: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* pluginClassName */
            putfield javax.imageio.spi.ImageReaderWriterSpi.pluginClassName:Ljava/lang/String;
        27: .line 255
            aload 0 /* this */
        28: .line 256
            iload 7 /* supportsStandardStreamMetadataFormat */
        29: .line 255
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardStreamMetadataFormat:Z
        30: .line 257
            aload 0 /* this */
            aload 8 /* nativeStreamMetadataFormatName */
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatName:Ljava/lang/String;
        31: .line 258
            aload 0 /* this */
        32: .line 259
            aload 9 /* nativeStreamMetadataFormatClassName */
        33: .line 258
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatClassName:Ljava/lang/String;
        34: .line 261
            aload 10 /* extraStreamMetadataFormatNames */
            ifnull 39
        35: .line 262
            aload 10 /* extraStreamMetadataFormatNames */
            arraylength
            ifle 39
        36: .line 263
            aload 0 /* this */
        37: .line 264
            aload 10 /* extraStreamMetadataFormatNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
        38: .line 263
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
        39: .line 267
      StackMap locals:
      StackMap stack:
            aload 11 /* extraStreamMetadataFormatClassNames */
            ifnull 44
        40: .line 268
            aload 11 /* extraStreamMetadataFormatClassNames */
            arraylength
            ifle 44
        41: .line 269
            aload 0 /* this */
        42: .line 270
            aload 11 /* extraStreamMetadataFormatClassNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
        43: .line 269
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatClassNames:[Ljava/lang/String;
        44: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        45: .line 273
            iload 12 /* supportsStandardImageMetadataFormat */
        46: .line 272
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardImageMetadataFormat:Z
        47: .line 274
            aload 0 /* this */
            aload 13 /* nativeImageMetadataFormatName */
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatName:Ljava/lang/String;
        48: .line 275
            aload 0 /* this */
        49: .line 276
            aload 14 /* nativeImageMetadataFormatClassName */
        50: .line 275
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatClassName:Ljava/lang/String;
        51: .line 278
            aload 15 /* extraImageMetadataFormatNames */
            ifnull 56
        52: .line 279
            aload 15 /* extraImageMetadataFormatNames */
            arraylength
            ifle 56
        53: .line 280
            aload 0 /* this */
        54: .line 281
            aload 15 /* extraImageMetadataFormatNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
        55: .line 280
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
        56: .line 284
      StackMap locals:
      StackMap stack:
            aload 16 /* extraImageMetadataFormatClassNames */
            ifnull 61
        57: .line 285
            aload 16 /* extraImageMetadataFormatClassNames */
            arraylength
            ifle 61
        58: .line 286
            aload 0 /* this */
        59: .line 287
            aload 16 /* extraImageMetadataFormatClassNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
        60: .line 286
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatClassNames:[Ljava/lang/String;
        61: .line 289
      StackMap locals:
      StackMap stack:
            return
        end local 16 // java.lang.String[] extraImageMetadataFormatClassNames
        end local 15 // java.lang.String[] extraImageMetadataFormatNames
        end local 14 // java.lang.String nativeImageMetadataFormatClassName
        end local 13 // java.lang.String nativeImageMetadataFormatName
        end local 12 // boolean supportsStandardImageMetadataFormat
        end local 11 // java.lang.String[] extraStreamMetadataFormatClassNames
        end local 10 // java.lang.String[] extraStreamMetadataFormatNames
        end local 9 // java.lang.String nativeStreamMetadataFormatClassName
        end local 8 // java.lang.String nativeStreamMetadataFormatName
        end local 7 // boolean supportsStandardStreamMetadataFormat
        end local 6 // java.lang.String pluginClassName
        end local 5 // java.lang.String[] MIMETypes
        end local 4 // java.lang.String[] suffixes
        end local 3 // java.lang.String[] names
        end local 2 // java.lang.String version
        end local 1 // java.lang.String vendorName
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot                                  Name  Signature
            0   62     0                                  this  Ljavax/imageio/spi/ImageReaderWriterSpi;
            0   62     1                            vendorName  Ljava/lang/String;
            0   62     2                               version  Ljava/lang/String;
            0   62     3                                 names  [Ljava/lang/String;
            0   62     4                              suffixes  [Ljava/lang/String;
            0   62     5                             MIMETypes  [Ljava/lang/String;
            0   62     6                       pluginClassName  Ljava/lang/String;
            0   62     7  supportsStandardStreamMetadataFormat  Z
            0   62     8        nativeStreamMetadataFormatName  Ljava/lang/String;
            0   62     9   nativeStreamMetadataFormatClassName  Ljava/lang/String;
            0   62    10        extraStreamMetadataFormatNames  [Ljava/lang/String;
            0   62    11   extraStreamMetadataFormatClassNames  [Ljava/lang/String;
            0   62    12   supportsStandardImageMetadataFormat  Z
            0   62    13         nativeImageMetadataFormatName  Ljava/lang/String;
            0   62    14    nativeImageMetadataFormatClassName  Ljava/lang/String;
            0   62    15         extraImageMetadataFormatNames  [Ljava/lang/String;
            0   62    16    extraImageMetadataFormatClassNames  [Ljava/lang/String;
    MethodParameters:
                                      Name  Flags
      vendorName                            
      version                               
      names                                 
      suffixes                              
      MIMETypes                             
      pluginClassName                       
      supportsStandardStreamMetadataFormat  
      nativeStreamMetadataFormatName        
      nativeStreamMetadataFormatClassName   
      extraStreamMetadataFormatNames        
      extraStreamMetadataFormatClassNames   
      supportsStandardImageMetadataFormat   
      nativeImageMetadataFormatName         
      nativeImageMetadataFormatClassName    
      extraImageMetadataFormatNames         
      extraImageMetadataFormatClassNames    

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 297
            aload 0 /* this */
            invokespecial javax.imageio.spi.IIOServiceProvider.<init>:()V
         1: .line 57
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.names:[Ljava/lang/String;
         2: .line 63
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.suffixes:[Ljava/lang/String;
         3: .line 69
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.MIMETypes:[Ljava/lang/String;
         4: .line 75
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.pluginClassName:Ljava/lang/String;
         5: .line 82
            aload 0 /* this */
            iconst_0
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardStreamMetadataFormat:Z
         6: .line 89
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatName:Ljava/lang/String;
         7: .line 96
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatClassName:Ljava/lang/String;
         8: .line 103
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
         9: .line 110
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatClassNames:[Ljava/lang/String;
        10: .line 117
            aload 0 /* this */
            iconst_0
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardImageMetadataFormat:Z
        11: .line 124
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatName:Ljava/lang/String;
        12: .line 131
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatClassName:Ljava/lang/String;
        13: .line 138
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
        14: .line 145
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatClassNames:[Ljava/lang/String;
        15: .line 298
            return
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public java.lang.String[] getFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 313
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.names:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public java.lang.String[] getFileSuffixes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 337
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.suffixes:[Ljava/lang/String;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.suffixes:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
      StackMap locals:
      StackMap stack: java.lang.String[]
         2: areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public java.lang.String[] getMIMETypes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 372
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.MIMETypes:[Ljava/lang/String;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.MIMETypes:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
      StackMap locals:
      StackMap stack: java.lang.String[]
         2: areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public java.lang.String getPluginClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 384
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.pluginClassName:Ljava/lang/String;
            areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public boolean isStandardStreamMetadataFormatSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 398
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardStreamMetadataFormat:Z
            ireturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public java.lang.String getNativeStreamMetadataFormatName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 417
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatName:Ljava/lang/String;
            areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public java.lang.String[] getExtraStreamMetadataFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 447
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
            ifnonnull 2
         1: .line 448
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
         3: .line 447
      StackMap locals:
      StackMap stack: java.lang.String[]
            areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public boolean isStandardImageMetadataFormatSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 462
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardImageMetadataFormat:Z
            ireturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public java.lang.String getNativeImageMetadataFormatName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 482
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatName:Ljava/lang/String;
            areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public java.lang.String[] getExtraImageMetadataFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 511
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
            ifnonnull 2
         1: .line 512
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
         3: .line 511
      StackMap locals:
      StackMap stack: java.lang.String[]
            areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public javax.imageio.metadata.IIOMetadataFormat getStreamMetadataFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
        start local 1 // java.lang.String formatName
         0: .line 531
            aload 0 /* this */
            aload 1 /* formatName */
         1: .line 532
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardStreamMetadataFormat:Z
         2: .line 533
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatName:Ljava/lang/String;
         3: .line 534
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatClassName:Ljava/lang/String;
         4: .line 535
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
         5: .line 536
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatClassNames:[Ljava/lang/String;
         6: .line 531
            invokevirtual javax.imageio.spi.ImageReaderWriterSpi.getMetadataFormat:(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
            areturn
        end local 1 // java.lang.String formatName
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljavax/imageio/spi/ImageReaderWriterSpi;
            0    7     1  formatName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      formatName  

  public javax.imageio.metadata.IIOMetadataFormat getImageMetadataFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
        start local 1 // java.lang.String formatName
         0: .line 555
            aload 0 /* this */
            aload 1 /* formatName */
         1: .line 556
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardImageMetadataFormat:Z
         2: .line 557
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatName:Ljava/lang/String;
         3: .line 558
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatClassName:Ljava/lang/String;
         4: .line 559
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
         5: .line 560
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatClassNames:[Ljava/lang/String;
         6: .line 555
            invokevirtual javax.imageio.spi.ImageReaderWriterSpi.getMetadataFormat:(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
            areturn
        end local 1 // java.lang.String formatName
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljavax/imageio/spi/ImageReaderWriterSpi;
            0    7     1  formatName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      formatName  

  private javax.imageio.metadata.IIOMetadataFormat getMetadataFormat(java.lang.String, boolean, java.lang.String, java.lang.String, java.lang.String[], java.lang.String[]);
    descriptor: (Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=12, args_size=7
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
        start local 1 // java.lang.String formatName
        start local 2 // boolean supportsStandard
        start local 3 // java.lang.String nativeName
        start local 4 // java.lang.String nativeClassName
        start local 5 // java.lang.String[] extraNames
        start local 6 // java.lang.String[] extraClassNames
         0: .line 569
            aload 1 /* formatName */
            ifnonnull 2
         1: .line 570
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 572
      StackMap locals:
      StackMap stack:
            iload 2 /* supportsStandard */
            ifeq 7
            aload 1 /* formatName */
         3: .line 573
            ldc "javax_imageio_1.0"
         4: .line 572
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
         5: .line 573
            ifeq 7
         6: .line 575
            invokestatic javax.imageio.metadata.IIOMetadataFormatImpl.getStandardFormatInstance:()Ljavax/imageio/metadata/IIOMetadataFormat;
            areturn
         7: .line 577
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* formatClassName */
        start local 7 // java.lang.String formatClassName
         8: .line 578
            aload 1 /* formatName */
            aload 3 /* nativeName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 579
            aload 4 /* nativeClassName */
            astore 7 /* formatClassName */
        10: .line 580
            goto 19
      StackMap locals: java.lang.String
      StackMap stack:
        11: aload 5 /* extraNames */
            ifnull 19
        12: .line 581
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        13: goto 18
        14: .line 582
      StackMap locals: int
      StackMap stack:
            aload 1 /* formatName */
            aload 5 /* extraNames */
            iload 8 /* i */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 583
            aload 6 /* extraClassNames */
            iload 8 /* i */
            aaload
            astore 7 /* formatClassName */
        16: .line 584
            goto 19
        17: .line 581
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 8 /* i */
            aload 5 /* extraNames */
            arraylength
            if_icmplt 14
        end local 8 // int i
        19: .line 588
      StackMap locals:
      StackMap stack:
            aload 7 /* formatClassName */
            ifnonnull 21
        20: .line 589
            new java.lang.IllegalArgumentException
            dup
            ldc "Unsupported format name"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 593
      StackMap locals:
      StackMap stack:
            aload 7 /* formatClassName */
            astore 8 /* className */
        start local 8 // java.lang.String className
        22: .line 594
            aload 0 /* this */
            aload 8 /* className */
            invokedynamic run(Ljavax/imageio/spi/ImageReaderWriterSpi;Ljava/lang/String;)Ljava/security/PrivilegedAction;
              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;
                  javax/imageio/spi/ImageReaderWriterSpi.lambda$0(Ljava/lang/String;)Ljava/lang/Class; (7)
                  ()Ljava/lang/Class;
            astore 9 /* pa */
        start local 9 // java.security.PrivilegedAction pa
        23: .line 595
            aload 9 /* pa */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 10 /* cls */
        start local 10 // java.lang.Class cls
        24: .line 596
            aload 10 /* cls */
            ldc "getInstance"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 11 /* meth */
        start local 11 // java.lang.reflect.Method meth
        25: .line 597
            aload 11 /* meth */
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.imageio.metadata.IIOMetadataFormat
        26: areturn
        end local 11 // java.lang.reflect.Method meth
        end local 10 // java.lang.Class cls
        end local 9 // java.security.PrivilegedAction pa
        end local 8 // java.lang.String className
        27: .line 598
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 8 /* e */
        start local 8 // java.lang.Exception e
        28: .line 600
            new java.lang.IllegalStateException
            dup
            ldc "Can't obtain format"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
        29: .line 599
            astore 9 /* ex */
        start local 9 // java.lang.RuntimeException ex
        30: .line 601
            aload 9 /* ex */
            aload 8 /* e */
            invokevirtual java.lang.RuntimeException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        31: .line 602
            aload 9 /* ex */
            athrow
        end local 9 // java.lang.RuntimeException ex
        end local 8 // java.lang.Exception e
        end local 7 // java.lang.String formatClassName
        end local 6 // java.lang.String[] extraClassNames
        end local 5 // java.lang.String[] extraNames
        end local 4 // java.lang.String nativeClassName
        end local 3 // java.lang.String nativeName
        end local 2 // boolean supportsStandard
        end local 1 // java.lang.String formatName
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   32     0              this  Ljavax/imageio/spi/ImageReaderWriterSpi;
            0   32     1        formatName  Ljava/lang/String;
            0   32     2  supportsStandard  Z
            0   32     3        nativeName  Ljava/lang/String;
            0   32     4   nativeClassName  Ljava/lang/String;
            0   32     5        extraNames  [Ljava/lang/String;
            0   32     6   extraClassNames  [Ljava/lang/String;
            8   32     7   formatClassName  Ljava/lang/String;
           13   19     8                 i  I
           22   27     8         className  Ljava/lang/String;
           23   27     9                pa  Ljava/security/PrivilegedAction<Ljava/lang/Class<*>;>;
           24   27    10               cls  Ljava/lang/Class<*>;
           25   27    11              meth  Ljava/lang/reflect/Method;
           28   32     8                 e  Ljava/lang/Exception;
           30   32     9                ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          21    26      27  Class java.lang.Exception
    MethodParameters:
                  Name  Flags
      formatName        
      supportsStandard  
      nativeName        
      nativeClassName   
      extraNames        
      extraClassNames   

  private java.lang.Class<?> getMetadataFormatClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
        start local 1 // java.lang.String formatClassName
         0: .line 608
            ldc Ljavax/imageio/spi/ImageReaderWriterSpi;
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 2 /* thisModule */
        start local 2 // java.lang.Module thisModule
         1: .line 609
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 3 /* targetModule */
        start local 3 // java.lang.Module targetModule
         2: .line 610
            aconst_null
            astore 4 /* c */
        start local 4 // java.lang.Class c
         3: .line 612
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 5 /* cl */
        start local 5 // java.lang.ClassLoader cl
         4: .line 613
            aload 1 /* formatClassName */
            iconst_0
            aload 5 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 4 /* c */
         5: .line 614
            ldc Ljavax/imageio/metadata/IIOMetadataFormat;
            aload 4 /* c */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 8
         6: .line 615
            aconst_null
            areturn
        end local 5 // java.lang.ClassLoader cl
         7: .line 617
      StackMap locals: javax.imageio.spi.ImageReaderWriterSpi java.lang.String java.lang.Module java.lang.Module java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
            pop
         8: .line 619
      StackMap locals:
      StackMap stack:
            aload 2 /* thisModule */
            aload 3 /* targetModule */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 9
            aload 4 /* c */
            ifnonnull 10
         9: .line 620
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            areturn
        10: .line 622
      StackMap locals:
      StackMap stack:
            aload 3 /* targetModule */
            invokevirtual java.lang.Module.isNamed:()Z
            ifeq 19
        11: .line 623
            aload 1 /* formatClassName */
            ldc "."
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 5 /* i */
        start local 5 // int i
        12: .line 624
            iload 5 /* i */
            ifle 13
            aload 1 /* formatClassName */
            iconst_0
            iload 5 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            goto 14
      StackMap locals: int
      StackMap stack:
        13: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
        14: astore 6 /* pn */
        start local 6 // java.lang.String pn
        15: .line 625
            aload 3 /* targetModule */
            aload 6 /* pn */
            aload 2 /* thisModule */
            invokevirtual java.lang.Module.isExported:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifne 19
        16: .line 626
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* formatClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 627
            ldc " in named module must be exported to java.desktop module."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 626
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String pn
        end local 5 // int i
        19: .line 630
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            areturn
        end local 4 // java.lang.Class c
        end local 3 // java.lang.Module targetModule
        end local 2 // java.lang.Module thisModule
        end local 1 // java.lang.String formatClassName
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Ljavax/imageio/spi/ImageReaderWriterSpi;
            0   20     1  formatClassName  Ljava/lang/String;
            1   20     2       thisModule  Ljava/lang/Module;
            2   20     3     targetModule  Ljava/lang/Module;
            3   20     4                c  Ljava/lang/Class<*>;
            4    7     5               cl  Ljava/lang/ClassLoader;
           12   19     5                i  I
           15   19     6               pn  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
                 Name  Flags
      formatClassName  

  private java.lang.Class lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 594
            aload 0 /* this */
            aload 1
            invokevirtual javax.imageio.spi.ImageReaderWriterSpi.getMetadataFormatClass:(Ljava/lang/String;)Ljava/lang/Class;
            areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;
}
SourceFile: "ImageReaderWriterSpi.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles