public final class javax.imageio.ImageIO
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: javax.imageio.ImageIO
  super_class: java.lang.Object
{
  private static final javax.imageio.spi.IIORegistry theRegistry;
    descriptor: Ljavax/imageio/spi/IIORegistry;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.lang.reflect.Method readerFormatNamesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method readerFileSuffixesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method readerMIMETypesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method writerFormatNamesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method writerFileSuffixesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method writerMIMETypesMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 65
            invokestatic javax.imageio.spi.IIORegistry.getDefaultInstance:()Ljavax/imageio/spi/IIORegistry;
         1: .line 64
            putstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
         2: .line 656
            ldc Ljavax/imageio/spi/ImageReaderSpi;
            ldc "getFormatNames"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         3: .line 655
            putstatic javax.imageio.ImageIO.readerFormatNamesMethod:Ljava/lang/reflect/Method;
         4: .line 658
            ldc Ljavax/imageio/spi/ImageReaderSpi;
            ldc "getFileSuffixes"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         5: .line 657
            putstatic javax.imageio.ImageIO.readerFileSuffixesMethod:Ljava/lang/reflect/Method;
         6: .line 660
            ldc Ljavax/imageio/spi/ImageReaderSpi;
            ldc "getMIMETypes"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         7: .line 659
            putstatic javax.imageio.ImageIO.readerMIMETypesMethod:Ljava/lang/reflect/Method;
         8: .line 663
            ldc Ljavax/imageio/spi/ImageWriterSpi;
            ldc "getFormatNames"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         9: .line 662
            putstatic javax.imageio.ImageIO.writerFormatNamesMethod:Ljava/lang/reflect/Method;
        10: .line 665
            ldc Ljavax/imageio/spi/ImageWriterSpi;
            ldc "getFileSuffixes"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        11: .line 664
            putstatic javax.imageio.ImageIO.writerFileSuffixesMethod:Ljava/lang/reflect/Method;
        12: .line 667
            ldc Ljavax/imageio/spi/ImageWriterSpi;
            ldc "getMIMETypes"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        13: .line 666
            putstatic javax.imageio.ImageIO.writerMIMETypesMethod:Ljava/lang/reflect/Method;
        14: .line 668
            goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
        15: astore 0 /* e */
        start local 0 // java.lang.NoSuchMethodException e
        16: .line 669
            aload 0 /* e */
            invokevirtual java.lang.NoSuchMethodException.printStackTrace:()V
        end local 0 // java.lang.NoSuchMethodException e
        17: .line 671
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
           16   17     0     e  Ljava/lang/NoSuchMethodException;
      Exception table:
        from    to  target  type
           2    14      15  Class java.lang.NoSuchMethodException

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.ImageIO this
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // javax.imageio.ImageIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/ImageIO;

  public static void scanForPlugins();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 109
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            invokevirtual javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis:()V
         1: .line 110
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static synchronized javax.imageio.ImageIO$CacheInfo getCacheInfo();
    descriptor: ()Ljavax/imageio/ImageIO$CacheInfo;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=0
         0: .line 156
            invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
            astore 0 /* context */
        start local 0 // sun.awt.AppContext context
         1: .line 157
            aload 0 /* context */
            ldc Ljavax/imageio/ImageIO$CacheInfo;
            invokevirtual sun.awt.AppContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.imageio.ImageIO$CacheInfo
            astore 1 /* info */
        start local 1 // javax.imageio.ImageIO$CacheInfo info
         2: .line 158
            aload 1 /* info */
            ifnonnull 5
         3: .line 159
            new javax.imageio.ImageIO$CacheInfo
            dup
            invokespecial javax.imageio.ImageIO$CacheInfo.<init>:()V
            astore 1 /* info */
         4: .line 160
            aload 0 /* context */
            ldc Ljavax/imageio/ImageIO$CacheInfo;
            aload 1 /* info */
            invokevirtual sun.awt.AppContext.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 162
      StackMap locals: sun.awt.AppContext javax.imageio.ImageIO$CacheInfo
      StackMap stack:
            aload 1 /* info */
            areturn
        end local 1 // javax.imageio.ImageIO$CacheInfo info
        end local 0 // sun.awt.AppContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1    6     0  context  Lsun/awt/AppContext;
            2    6     1     info  Ljavax/imageio/ImageIO$CacheInfo;

  private static java.lang.String getTempDir();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 170
            new sun.security.action.GetPropertyAction
            dup
            ldc "java.io.tmpdir"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
            astore 0 /* a */
        start local 0 // sun.security.action.GetPropertyAction a
         1: .line 171
            aload 0 /* a */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // sun.security.action.GetPropertyAction a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    2     0     a  Lsun/security/action/GetPropertyAction;

  private static boolean hasCachePermission();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=0
         0: .line 182
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            invokevirtual javax.imageio.ImageIO$CacheInfo.getHasPermission:()Ljava/lang/Boolean;
            astore 0 /* hasPermission */
        start local 0 // java.lang.Boolean hasPermission
         1: .line 184
            aload 0 /* hasPermission */
            ifnull 3
         2: .line 185
            aload 0 /* hasPermission */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
         3: .line 188
      StackMap locals: java.lang.Boolean
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* security */
        start local 1 // java.lang.SecurityManager security
         4: .line 189
            aload 1 /* security */
            ifnull 18
         5: .line 190
            invokestatic javax.imageio.ImageIO.getCacheDirectory:()Ljava/io/File;
            astore 2 /* cachedir */
        start local 2 // java.io.File cachedir
         6: .line 193
            aload 2 /* cachedir */
            ifnull 9
         7: .line 194
            aload 2 /* cachedir */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            astore 3 /* cachepath */
        start local 3 // java.lang.String cachepath
         8: .line 195
            goto 13
        end local 3 // java.lang.String cachepath
         9: .line 196
      StackMap locals: java.lang.SecurityManager java.io.File
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getTempDir:()Ljava/lang/String;
            astore 3 /* cachepath */
        start local 3 // java.lang.String cachepath
        10: .line 198
            aload 3 /* cachepath */
            ifnonnull 13
        11: .line 199
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual javax.imageio.ImageIO$CacheInfo.setHasPermission:(Ljava/lang/Boolean;)V
        12: .line 200
            iconst_0
            ireturn
        13: .line 204
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* security */
            aload 3 /* cachepath */
            invokevirtual java.lang.SecurityManager.checkWrite:(Ljava/lang/String;)V
        end local 3 // java.lang.String cachepath
        end local 2 // java.io.File cachedir
        end local 1 // java.lang.SecurityManager security
        14: .line 206
            goto 18
      StackMap locals: java.lang.Boolean
      StackMap stack: java.lang.SecurityException
        15: pop
        16: .line 207
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual javax.imageio.ImageIO$CacheInfo.setHasPermission:(Ljava/lang/Boolean;)V
        17: .line 208
            iconst_0
            ireturn
        18: .line 211
      StackMap locals:
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual javax.imageio.ImageIO$CacheInfo.setHasPermission:(Ljava/lang/Boolean;)V
        19: .line 212
            iconst_1
            ireturn
        end local 0 // java.lang.Boolean hasPermission
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            1   20     0  hasPermission  Ljava/lang/Boolean;
            4   14     1       security  Ljava/lang/SecurityManager;
            6   14     2       cachedir  Ljava/io/File;
            8    9     3      cachepath  Ljava/lang/String;
           10   14     3      cachepath  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3    12      15  Class java.lang.SecurityException
          13    14      15  Class java.lang.SecurityException

  public static void setUseCache(boolean);
    descriptor: (Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // boolean useCache
         0: .line 243
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            iload 0 /* useCache */
            invokevirtual javax.imageio.ImageIO$CacheInfo.setUseCache:(Z)V
         1: .line 244
            return
        end local 0 // boolean useCache
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  useCache  Z
    MethodParameters:
          Name  Flags
      useCache  

  public static boolean getUseCache();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 257
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            invokevirtual javax.imageio.ImageIO$CacheInfo.getUseCache:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void setCacheDirectory(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.io.File cacheDirectory
         0: .line 278
            aload 0 /* cacheDirectory */
            ifnull 2
            aload 0 /* cacheDirectory */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 2
         1: .line 279
            new java.lang.IllegalArgumentException
            dup
            ldc "Not a directory!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 281
      StackMap locals:
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            aload 0 /* cacheDirectory */
            invokevirtual javax.imageio.ImageIO$CacheInfo.setCacheDirectory:(Ljava/io/File;)V
         3: .line 282
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            aconst_null
            invokevirtual javax.imageio.ImageIO$CacheInfo.setHasPermission:(Ljava/lang/Boolean;)V
         4: .line 283
            return
        end local 0 // java.io.File cacheDirectory
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  cacheDirectory  Ljava/io/File;
    MethodParameters:
                Name  Flags
      cacheDirectory  

  public static java.io.File getCacheDirectory();
    descriptor: ()Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 297
            invokestatic javax.imageio.ImageIO.getCacheInfo:()Ljavax/imageio/ImageIO$CacheInfo;
            invokevirtual javax.imageio.ImageIO$CacheInfo.getCacheDirectory:()Ljava/io/File;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static javax.imageio.stream.ImageInputStream createImageInputStream(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljavax/imageio/stream/ImageInputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.Object input
         0: .line 328
            aload 0 /* input */
            ifnonnull 2
         1: .line 329
            new java.lang.IllegalArgumentException
            dup
            ldc "input == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 335
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageInputStreamSpi;
         3: .line 336
            iconst_1
         4: .line 335
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         5: .line 337
            goto 8
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         6: pop
         7: .line 338
            aconst_null
            areturn
        start local 1 // java.util.Iterator iter
         8: .line 341
      StackMap locals: java.util.Iterator
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getUseCache:()Z
            ifeq 9
            invokestatic javax.imageio.ImageIO.hasCachePermission:()Z
            ifeq 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 2 /* usecache */
        start local 2 // boolean usecache
        11: .line 343
            goto 21
        12: .line 344
      StackMap locals: int
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageInputStreamSpi
            astore 3 /* spi */
        start local 3 // javax.imageio.spi.ImageInputStreamSpi spi
        13: .line 345
            aload 3 /* spi */
            invokevirtual javax.imageio.spi.ImageInputStreamSpi.getInputClass:()Ljava/lang/Class;
            aload 0 /* input */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 21
        14: .line 347
            aload 3 /* spi */
            aload 0 /* input */
        15: .line 348
            iload 2 /* usecache */
        16: .line 349
            invokestatic javax.imageio.ImageIO.getCacheDirectory:()Ljava/io/File;
        17: .line 347
            invokevirtual javax.imageio.spi.ImageInputStreamSpi.createInputStreamInstance:(Ljava/lang/Object;ZLjava/io/File;)Ljavax/imageio/stream/ImageInputStream;
        18: areturn
        19: .line 350
      StackMap locals: java.lang.Object java.util.Iterator int javax.imageio.spi.ImageInputStreamSpi
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        20: .line 351
            new javax.imageio.IIOException
            dup
            ldc "Can't create cache file!"
            aload 4 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        end local 3 // javax.imageio.spi.ImageInputStreamSpi spi
        21: .line 343
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        22: .line 356
            aconst_null
            areturn
        end local 2 // boolean usecache
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.Object input
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0     input  Ljava/lang/Object;
            5    6     1      iter  Ljava/util/Iterator;
            8   23     1      iter  Ljava/util/Iterator;
           11   23     2  usecache  Z
           13   21     3       spi  Ljavax/imageio/spi/ImageInputStreamSpi;
           20   21     4         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.IllegalArgumentException
          14    18      19  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static javax.imageio.stream.ImageOutputStream createImageOutputStream(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljavax/imageio/stream/ImageOutputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.Object output
         0: .line 390
            aload 0 /* output */
            ifnonnull 2
         1: .line 391
            new java.lang.IllegalArgumentException
            dup
            ldc "output == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 397
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageOutputStreamSpi;
         3: .line 398
            iconst_1
         4: .line 397
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         5: .line 399
            goto 8
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         6: pop
         7: .line 400
            aconst_null
            areturn
        start local 1 // java.util.Iterator iter
         8: .line 403
      StackMap locals: java.util.Iterator
      StackMap stack:
            invokestatic javax.imageio.ImageIO.getUseCache:()Z
            ifeq 9
            invokestatic javax.imageio.ImageIO.hasCachePermission:()Z
            ifeq 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 2 /* usecache */
        start local 2 // boolean usecache
        11: .line 405
            goto 21
        12: .line 406
      StackMap locals: int
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageOutputStreamSpi
            astore 3 /* spi */
        start local 3 // javax.imageio.spi.ImageOutputStreamSpi spi
        13: .line 407
            aload 3 /* spi */
            invokevirtual javax.imageio.spi.ImageOutputStreamSpi.getOutputClass:()Ljava/lang/Class;
            aload 0 /* output */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 21
        14: .line 409
            aload 3 /* spi */
            aload 0 /* output */
        15: .line 410
            iload 2 /* usecache */
        16: .line 411
            invokestatic javax.imageio.ImageIO.getCacheDirectory:()Ljava/io/File;
        17: .line 409
            invokevirtual javax.imageio.spi.ImageOutputStreamSpi.createOutputStreamInstance:(Ljava/lang/Object;ZLjava/io/File;)Ljavax/imageio/stream/ImageOutputStream;
        18: areturn
        19: .line 412
      StackMap locals: java.lang.Object java.util.Iterator int javax.imageio.spi.ImageOutputStreamSpi
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        20: .line 413
            new javax.imageio.IIOException
            dup
            ldc "Can't create cache file!"
            aload 4 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        end local 3 // javax.imageio.spi.ImageOutputStreamSpi spi
        21: .line 405
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        22: .line 418
            aconst_null
            areturn
        end local 2 // boolean usecache
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.Object output
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0    output  Ljava/lang/Object;
            5    6     1      iter  Ljava/util/Iterator;
            8   23     1      iter  Ljava/util/Iterator;
           11   23     2  usecache  Z
           13   21     3       spi  Ljavax/imageio/spi/ImageOutputStreamSpi;
           20   21     4         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.IllegalArgumentException
          14    18      19  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      output  

  private static <S extends javax.imageio.spi.ImageReaderWriterSpi> java.lang.String[] getReaderWriterInfo(java.lang.Class<S>, javax.imageio.ImageIO$SpiInfo);
    descriptor: (Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.Class spiClass
        start local 1 // javax.imageio.ImageIO$SpiInfo spiInfo
         0: .line 450
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            aload 0 /* spiClass */
            iconst_1
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Z)Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
         1: .line 451
            goto 4
        end local 2 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         2: pop
         3: .line 452
            iconst_0
            anewarray java.lang.String
            areturn
        start local 2 // java.util.Iterator iter
         4: .line 455
      StackMap locals: java.util.Iterator
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* s */
        start local 3 // java.util.HashSet s
         5: .line 456
            goto 8
         6: .line 457
      StackMap locals: java.util.HashSet
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageReaderWriterSpi
            astore 4 /* spi */
        start local 4 // javax.imageio.spi.ImageReaderWriterSpi spi
         7: .line 458
            aload 3 /* s */
            aload 1 /* spiInfo */
            aload 4 /* spi */
            invokevirtual javax.imageio.ImageIO$SpiInfo.info:(Ljavax/imageio/spi/ImageReaderWriterSpi;)[Ljava/lang/String;
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
        end local 4 // javax.imageio.spi.ImageReaderWriterSpi spi
         8: .line 456
      StackMap locals:
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 461
            aload 3 /* s */
            aload 3 /* s */
            invokevirtual java.util.HashSet.size:()I
            anewarray java.lang.String
            invokevirtual java.util.HashSet.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 3 // java.util.HashSet s
        end local 2 // java.util.Iterator iter
        end local 1 // javax.imageio.ImageIO$SpiInfo spiInfo
        end local 0 // java.lang.Class spiClass
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0  spiClass  Ljava/lang/Class<TS;>;
            0   10     1   spiInfo  Ljavax/imageio/ImageIO$SpiInfo;
            1    2     2      iter  Ljava/util/Iterator<TS;>;
            4   10     2      iter  Ljava/util/Iterator<TS;>;
            5   10     3         s  Ljava/util/HashSet<Ljava/lang/String;>;
            7    8     4       spi  Ljavax/imageio/spi/ImageReaderWriterSpi;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    Signature: <S:Ljavax/imageio/spi/ImageReaderWriterSpi;>(Ljava/lang/Class<TS;>;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
    MethodParameters:
          Name  Flags
      spiClass  
      spiInfo   

  public static java.lang.String[] getReaderFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 474
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         1: .line 475
            getstatic javax.imageio.ImageIO$SpiInfo.FORMAT_NAMES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 474
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String[] getReaderMIMETypes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 486
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         1: .line 487
            getstatic javax.imageio.ImageIO$SpiInfo.MIME_TYPES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 486
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String[] getReaderFileSuffixes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 499
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         1: .line 500
            getstatic javax.imageio.ImageIO$SpiInfo.FILE_SUFFIXES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 499
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.util.Iterator<javax.imageio.ImageReader> getImageReaders();
    descriptor: (Ljava/lang/Object;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.Object input
         0: .line 630
            aload 0 /* input */
            ifnonnull 2
         1: .line 631
            new java.lang.IllegalArgumentException
            dup
            ldc "input == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 636
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         3: .line 637
            new javax.imageio.ImageIO$CanDecodeInputFilter
            dup
            aload 0 /* input */
            invokespecial javax.imageio.ImageIO$CanDecodeInputFilter.<init>:(Ljava/lang/Object;)V
         4: .line 638
            iconst_1
         5: .line 636
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         6: .line 639
            goto 9
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         7: pop
         8: .line 640
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
         9: .line 643
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageReaderIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageReaderIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.Object input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0  input  Ljava/lang/Object;
            6    7     1   iter  Ljava/util/Iterator;
            9   10     1   iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Object;)Ljava/util/Iterator<Ljavax/imageio/ImageReader;>;
    MethodParameters:
       Name  Flags
      input  

  public static java.util.Iterator<javax.imageio.ImageReader> getImageReadersByFormatName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String formatName
         0: .line 692
            aload 0 /* formatName */
            ifnonnull 2
         1: .line 693
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 698
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         3: .line 699
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.readerFormatNamesMethod:Ljava/lang/reflect/Method;
         4: .line 700
            aload 0 /* formatName */
         5: .line 699
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 701
            iconst_1
         7: .line 698
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 702
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 703
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 705
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageReaderIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageReaderIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String formatName
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  formatName  Ljava/lang/String;
            8    9     1        iter  Ljava/util/Iterator;
           11   12     1        iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageReader;>;
    MethodParameters:
            Name  Flags
      formatName  

  public static java.util.Iterator<javax.imageio.ImageReader> getImageReadersBySuffix(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String fileSuffix
         0: .line 727
            aload 0 /* fileSuffix */
            ifnonnull 2
         1: .line 728
            new java.lang.IllegalArgumentException
            dup
            ldc "fileSuffix == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 733
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         3: .line 734
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.readerFileSuffixesMethod:Ljava/lang/reflect/Method;
         4: .line 735
            aload 0 /* fileSuffix */
         5: .line 734
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 736
            iconst_1
         7: .line 733
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 737
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 738
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 740
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageReaderIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageReaderIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String fileSuffix
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  fileSuffix  Ljava/lang/String;
            8    9     1        iter  Ljava/util/Iterator;
           11   12     1        iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageReader;>;
    MethodParameters:
            Name  Flags
      fileSuffix  

  public static java.util.Iterator<javax.imageio.ImageReader> getImageReadersByMIMEType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String MIMEType
         0: .line 762
            aload 0 /* MIMEType */
            ifnonnull 2
         1: .line 763
            new java.lang.IllegalArgumentException
            dup
            ldc "MIMEType == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 768
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         3: .line 769
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.readerMIMETypesMethod:Ljava/lang/reflect/Method;
         4: .line 770
            aload 0 /* MIMEType */
         5: .line 769
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 771
            iconst_1
         7: .line 768
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 772
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 773
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 775
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageReaderIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageReaderIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String MIMEType
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0  MIMEType  Ljava/lang/String;
            8    9     1      iter  Ljava/util/Iterator;
           11   12     1      iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageReader;>;
    MethodParameters:
          Name  Flags
      MIMEType  

  public static java.lang.String[] getWriterFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 788
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         1: .line 789
            getstatic javax.imageio.ImageIO$SpiInfo.FORMAT_NAMES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 788
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String[] getWriterMIMETypes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 800
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         1: .line 801
            getstatic javax.imageio.ImageIO$SpiInfo.MIME_TYPES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 800
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String[] getWriterFileSuffixes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 813
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         1: .line 814
            getstatic javax.imageio.ImageIO$SpiInfo.FILE_SUFFIXES:Ljavax/imageio/ImageIO$SpiInfo;
         2: .line 813
            invokestatic javax.imageio.ImageIO.getReaderWriterInfo:(Ljava/lang/Class;Ljavax/imageio/ImageIO$SpiInfo;)[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean contains(java.lang.String[], java.lang.String);
    descriptor: ([Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String[] names
        start local 1 // java.lang.String name
         0: .line 847
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 848
      StackMap locals: int
      StackMap stack:
            aload 1 /* name */
            aload 0 /* names */
            iload 2 /* i */
            aaload
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 849
            iconst_1
            ireturn
         4: .line 847
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* names */
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 853
            iconst_0
            ireturn
        end local 1 // java.lang.String name
        end local 0 // java.lang.String[] names
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  names  [Ljava/lang/String;
            0    7     1   name  Ljava/lang/String;
            1    6     2      i  I
    MethodParameters:
       Name  Flags
      names  
      name   

  public static java.util.Iterator<javax.imageio.ImageWriter> getImageWritersByFormatName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String formatName
         0: .line 875
            aload 0 /* formatName */
            ifnonnull 2
         1: .line 876
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 881
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         3: .line 882
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.writerFormatNamesMethod:Ljava/lang/reflect/Method;
         4: .line 883
            aload 0 /* formatName */
         5: .line 882
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 884
            iconst_1
         7: .line 881
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 885
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 886
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 888
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageWriterIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageWriterIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String formatName
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  formatName  Ljava/lang/String;
            8    9     1        iter  Ljava/util/Iterator;
           11   12     1        iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageWriter;>;
    MethodParameters:
            Name  Flags
      formatName  

  public static java.util.Iterator<javax.imageio.ImageWriter> getImageWritersBySuffix(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String fileSuffix
         0: .line 909
            aload 0 /* fileSuffix */
            ifnonnull 2
         1: .line 910
            new java.lang.IllegalArgumentException
            dup
            ldc "fileSuffix == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 915
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         3: .line 916
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.writerFileSuffixesMethod:Ljava/lang/reflect/Method;
         4: .line 917
            aload 0 /* fileSuffix */
         5: .line 916
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 918
            iconst_1
         7: .line 915
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 919
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 920
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 922
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageWriterIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageWriterIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String fileSuffix
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  fileSuffix  Ljava/lang/String;
            8    9     1        iter  Ljava/util/Iterator;
           11   12     1        iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageWriter;>;
    MethodParameters:
            Name  Flags
      fileSuffix  

  public static java.util.Iterator<javax.imageio.ImageWriter> getImageWritersByMIMEType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String MIMEType
         0: .line 943
            aload 0 /* MIMEType */
            ifnonnull 2
         1: .line 944
            new java.lang.IllegalArgumentException
            dup
            ldc "MIMEType == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 949
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         3: .line 950
            new javax.imageio.ImageIO$ContainsFilter
            dup
            getstatic javax.imageio.ImageIO.writerMIMETypesMethod:Ljava/lang/reflect/Method;
         4: .line 951
            aload 0 /* MIMEType */
         5: .line 950
            invokespecial javax.imageio.ImageIO$ContainsFilter.<init>:(Ljava/lang/reflect/Method;Ljava/lang/String;)V
         6: .line 952
            iconst_1
         7: .line 949
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         8: .line 953
            goto 11
        end local 1 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 954
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        start local 1 // java.util.Iterator iter
        11: .line 956
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageWriterIterator
            dup
            aload 1 /* iter */
            invokespecial javax.imageio.ImageIO$ImageWriterIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.lang.String MIMEType
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0  MIMEType  Ljava/lang/String;
            8    9     1      iter  Ljava/util/Iterator;
           11   12     1      iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageWriter;>;
    MethodParameters:
          Name  Flags
      MIMEType  

  public static javax.imageio.ImageWriter getImageWriter(javax.imageio.ImageReader);
    descriptor: (Ljavax/imageio/ImageReader;)Ljavax/imageio/ImageWriter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // javax.imageio.ImageReader reader
         0: .line 989
            aload 0 /* reader */
            ifnonnull 2
         1: .line 990
            new java.lang.IllegalArgumentException
            dup
            ldc "reader == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 993
      StackMap locals:
      StackMap stack:
            aload 0 /* reader */
            invokevirtual javax.imageio.ImageReader.getOriginatingProvider:()Ljavax/imageio/spi/ImageReaderSpi;
            astore 1 /* readerSpi */
        start local 1 // javax.imageio.spi.ImageReaderSpi readerSpi
         3: .line 994
            aload 1 /* readerSpi */
            ifnonnull 18
         4: .line 999
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageReaderSpi;
         5: .line 1000
            iconst_0
         6: .line 999
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Z)Ljava/util/Iterator;
         7: .line 998
            astore 2 /* readerSpiIter */
        start local 2 // java.util.Iterator readerSpiIter
         8: .line 1001
            goto 15
        end local 2 // java.util.Iterator readerSpiIter
      StackMap locals: javax.imageio.ImageReader javax.imageio.spi.ImageReaderSpi
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 1002
            aconst_null
            areturn
        start local 2 // java.util.Iterator readerSpiIter
        11: .line 1006
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* readerSpiIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageReaderSpi
            astore 3 /* temp */
        start local 3 // javax.imageio.spi.ImageReaderSpi temp
        12: .line 1007
            aload 3 /* temp */
            aload 0 /* reader */
            invokevirtual javax.imageio.spi.ImageReaderSpi.isOwnReader:(Ljavax/imageio/ImageReader;)Z
            ifeq 15
        13: .line 1008
            aload 3 /* temp */
            astore 1 /* readerSpi */
        14: .line 1009
            goto 16
        end local 3 // javax.imageio.spi.ImageReaderSpi temp
        15: .line 1005
      StackMap locals:
      StackMap stack:
            aload 2 /* readerSpiIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 1012
      StackMap locals:
      StackMap stack:
            aload 1 /* readerSpi */
            ifnonnull 18
        17: .line 1013
            aconst_null
            areturn
        end local 2 // java.util.Iterator readerSpiIter
        18: .line 1017
      StackMap locals:
      StackMap stack:
            aload 1 /* readerSpi */
            invokevirtual javax.imageio.spi.ImageReaderSpi.getImageWriterSpiNames:()[Ljava/lang/String;
            astore 2 /* writerNames */
        start local 2 // java.lang.String[] writerNames
        19: .line 1018
            aload 2 /* writerNames */
            ifnonnull 21
        20: .line 1019
            aconst_null
            areturn
        21: .line 1022
      StackMap locals: java.lang.String[]
      StackMap stack:
            aconst_null
            astore 3 /* writerSpiClass */
        start local 3 // java.lang.Class writerSpiClass
        22: .line 1024
            aload 2 /* writerNames */
            iconst_0
            aaload
            iconst_1
        23: .line 1025
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
        24: .line 1024
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 3 /* writerSpiClass */
        25: .line 1026
            goto 28
      StackMap locals: javax.imageio.ImageReader javax.imageio.spi.ImageReaderSpi java.lang.String[] java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
        26: pop
        27: .line 1027
            aconst_null
            areturn
        28: .line 1031
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            aload 3 /* writerSpiClass */
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviderByClass:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageWriterSpi
        29: .line 1030
            astore 4 /* writerSpi */
        start local 4 // javax.imageio.spi.ImageWriterSpi writerSpi
        30: .line 1032
            aload 4 /* writerSpi */
            ifnonnull 32
        31: .line 1033
            aconst_null
            areturn
        32: .line 1037
      StackMap locals: javax.imageio.spi.ImageWriterSpi
      StackMap stack:
            aload 4 /* writerSpi */
            invokevirtual javax.imageio.spi.ImageWriterSpi.createWriterInstance:()Ljavax/imageio/ImageWriter;
        33: areturn
        34: .line 1038
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        35: .line 1040
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            aload 4 /* writerSpi */
        36: .line 1041
            ldc Ljavax/imageio/spi/ImageWriterSpi;
        37: .line 1040
            invokevirtual javax.imageio.spi.IIORegistry.deregisterServiceProvider:(Ljava/lang/Object;Ljava/lang/Class;)Z
            pop
        38: .line 1042
            aconst_null
            areturn
        end local 4 // javax.imageio.spi.ImageWriterSpi writerSpi
        end local 3 // java.lang.Class writerSpiClass
        end local 2 // java.lang.String[] writerNames
        end local 1 // javax.imageio.spi.ImageReaderSpi readerSpi
        end local 0 // javax.imageio.ImageReader reader
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   39     0          reader  Ljavax/imageio/ImageReader;
            3   39     1       readerSpi  Ljavax/imageio/spi/ImageReaderSpi;
            8    9     2   readerSpiIter  Ljava/util/Iterator;
           11   18     2   readerSpiIter  Ljava/util/Iterator;
           12   15     3            temp  Ljavax/imageio/spi/ImageReaderSpi;
           19   39     2     writerNames  [Ljava/lang/String;
           22   39     3  writerSpiClass  Ljava/lang/Class;
           30   39     4       writerSpi  Ljavax/imageio/spi/ImageWriterSpi;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.IllegalArgumentException
          22    25      26  Class java.lang.ClassNotFoundException
          32    33      34  Class java.io.IOException
    MethodParameters:
        Name  Flags
      reader  

  public static javax.imageio.ImageReader getImageReader(javax.imageio.ImageWriter);
    descriptor: (Ljavax/imageio/ImageWriter;)Ljavax/imageio/ImageReader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // javax.imageio.ImageWriter writer
         0: .line 1069
            aload 0 /* writer */
            ifnonnull 2
         1: .line 1070
            new java.lang.IllegalArgumentException
            dup
            ldc "writer == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1073
      StackMap locals:
      StackMap stack:
            aload 0 /* writer */
            invokevirtual javax.imageio.ImageWriter.getOriginatingProvider:()Ljavax/imageio/spi/ImageWriterSpi;
            astore 1 /* writerSpi */
        start local 1 // javax.imageio.spi.ImageWriterSpi writerSpi
         3: .line 1074
            aload 1 /* writerSpi */
            ifnonnull 18
         4: .line 1079
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         5: .line 1080
            iconst_0
         6: .line 1079
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Z)Ljava/util/Iterator;
         7: .line 1078
            astore 2 /* writerSpiIter */
        start local 2 // java.util.Iterator writerSpiIter
         8: .line 1081
            goto 15
        end local 2 // java.util.Iterator writerSpiIter
      StackMap locals: javax.imageio.ImageWriter javax.imageio.spi.ImageWriterSpi
      StackMap stack: java.lang.IllegalArgumentException
         9: pop
        10: .line 1082
            aconst_null
            areturn
        start local 2 // java.util.Iterator writerSpiIter
        11: .line 1086
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* writerSpiIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageWriterSpi
            astore 3 /* temp */
        start local 3 // javax.imageio.spi.ImageWriterSpi temp
        12: .line 1087
            aload 3 /* temp */
            aload 0 /* writer */
            invokevirtual javax.imageio.spi.ImageWriterSpi.isOwnWriter:(Ljavax/imageio/ImageWriter;)Z
            ifeq 15
        13: .line 1088
            aload 3 /* temp */
            astore 1 /* writerSpi */
        14: .line 1089
            goto 16
        end local 3 // javax.imageio.spi.ImageWriterSpi temp
        15: .line 1085
      StackMap locals:
      StackMap stack:
            aload 2 /* writerSpiIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 1092
      StackMap locals:
      StackMap stack:
            aload 1 /* writerSpi */
            ifnonnull 18
        17: .line 1093
            aconst_null
            areturn
        end local 2 // java.util.Iterator writerSpiIter
        18: .line 1097
      StackMap locals:
      StackMap stack:
            aload 1 /* writerSpi */
            invokevirtual javax.imageio.spi.ImageWriterSpi.getImageReaderSpiNames:()[Ljava/lang/String;
            astore 2 /* readerNames */
        start local 2 // java.lang.String[] readerNames
        19: .line 1098
            aload 2 /* readerNames */
            ifnonnull 21
        20: .line 1099
            aconst_null
            areturn
        21: .line 1102
      StackMap locals: java.lang.String[]
      StackMap stack:
            aconst_null
            astore 3 /* readerSpiClass */
        start local 3 // java.lang.Class readerSpiClass
        22: .line 1104
            aload 2 /* readerNames */
            iconst_0
            aaload
            iconst_1
        23: .line 1105
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
        24: .line 1104
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 3 /* readerSpiClass */
        25: .line 1106
            goto 28
      StackMap locals: javax.imageio.ImageWriter javax.imageio.spi.ImageWriterSpi java.lang.String[] java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
        26: pop
        27: .line 1107
            aconst_null
            areturn
        28: .line 1111
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            aload 3 /* readerSpiClass */
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviderByClass:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.imageio.spi.ImageReaderSpi
        29: .line 1110
            astore 4 /* readerSpi */
        start local 4 // javax.imageio.spi.ImageReaderSpi readerSpi
        30: .line 1112
            aload 4 /* readerSpi */
            ifnonnull 32
        31: .line 1113
            aconst_null
            areturn
        32: .line 1117
      StackMap locals: javax.imageio.spi.ImageReaderSpi
      StackMap stack:
            aload 4 /* readerSpi */
            invokevirtual javax.imageio.spi.ImageReaderSpi.createReaderInstance:()Ljavax/imageio/ImageReader;
        33: areturn
        34: .line 1118
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        35: .line 1120
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            aload 4 /* readerSpi */
        36: .line 1121
            ldc Ljavax/imageio/spi/ImageReaderSpi;
        37: .line 1120
            invokevirtual javax.imageio.spi.IIORegistry.deregisterServiceProvider:(Ljava/lang/Object;Ljava/lang/Class;)Z
            pop
        38: .line 1122
            aconst_null
            areturn
        end local 4 // javax.imageio.spi.ImageReaderSpi readerSpi
        end local 3 // java.lang.Class readerSpiClass
        end local 2 // java.lang.String[] readerNames
        end local 1 // javax.imageio.spi.ImageWriterSpi writerSpi
        end local 0 // javax.imageio.ImageWriter writer
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   39     0          writer  Ljavax/imageio/ImageWriter;
            3   39     1       writerSpi  Ljavax/imageio/spi/ImageWriterSpi;
            8    9     2   writerSpiIter  Ljava/util/Iterator;
           11   18     2   writerSpiIter  Ljava/util/Iterator;
           12   15     3            temp  Ljavax/imageio/spi/ImageWriterSpi;
           19   39     2     readerNames  [Ljava/lang/String;
           22   39     3  readerSpiClass  Ljava/lang/Class;
           30   39     4       readerSpi  Ljavax/imageio/spi/ImageReaderSpi;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.IllegalArgumentException
          22    25      26  Class java.lang.ClassNotFoundException
          32    33      34  Class java.io.IOException
    MethodParameters:
        Name  Flags
      writer  

  public static java.util.Iterator<javax.imageio.ImageWriter> getImageWriters(javax.imageio.ImageTypeSpecifier, java.lang.String);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljava/lang/String;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // javax.imageio.ImageTypeSpecifier type
        start local 1 // java.lang.String formatName
         0: .line 1146
            aload 0 /* type */
            ifnonnull 2
         1: .line 1147
            new java.lang.IllegalArgumentException
            dup
            ldc "type == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1149
      StackMap locals:
      StackMap stack:
            aload 1 /* formatName */
            ifnonnull 4
         3: .line 1150
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1156
      StackMap locals:
      StackMap stack:
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageWriterSpi;
         5: .line 1157
            new javax.imageio.ImageIO$CanEncodeImageAndFormatFilter
            dup
            aload 0 /* type */
         6: .line 1158
            aload 1 /* formatName */
         7: .line 1157
            invokespecial javax.imageio.ImageIO$CanEncodeImageAndFormatFilter.<init>:(Ljavax/imageio/ImageTypeSpecifier;Ljava/lang/String;)V
         8: .line 1159
            iconst_1
         9: .line 1156
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
        10: .line 1160
            goto 13
        end local 2 // java.util.Iterator iter
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        11: pop
        12: .line 1161
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        start local 2 // java.util.Iterator iter
        13: .line 1164
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageWriterIterator
            dup
            aload 2 /* iter */
            invokespecial javax.imageio.ImageIO$ImageWriterIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 2 // java.util.Iterator iter
        end local 1 // java.lang.String formatName
        end local 0 // javax.imageio.ImageTypeSpecifier type
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        type  Ljavax/imageio/ImageTypeSpecifier;
            0   14     1  formatName  Ljava/lang/String;
           10   11     2        iter  Ljava/util/Iterator;
           13   14     2        iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           4    10      11  Class java.lang.IllegalArgumentException
    Signature: (Ljavax/imageio/ImageTypeSpecifier;Ljava/lang/String;)Ljava/util/Iterator<Ljavax/imageio/ImageWriter;>;
    MethodParameters:
            Name  Flags
      type        
      formatName  

  public static java.util.Iterator<javax.imageio.ImageTranscoder> getImageTranscoders(javax.imageio.ImageReader, javax.imageio.ImageWriter);
    descriptor: (Ljavax/imageio/ImageReader;Ljavax/imageio/ImageWriter;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // javax.imageio.ImageReader reader
        start local 1 // javax.imageio.ImageWriter writer
         0: .line 1231
            aload 0 /* reader */
            ifnonnull 2
         1: .line 1232
            new java.lang.IllegalArgumentException
            dup
            ldc "reader == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1234
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            ifnonnull 4
         3: .line 1235
            new java.lang.IllegalArgumentException
            dup
            ldc "writer == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1237
      StackMap locals:
      StackMap stack:
            aload 0 /* reader */
            invokevirtual javax.imageio.ImageReader.getOriginatingProvider:()Ljavax/imageio/spi/ImageReaderSpi;
            astore 2 /* readerSpi */
        start local 2 // javax.imageio.spi.ImageReaderSpi readerSpi
         5: .line 1238
            aload 1 /* writer */
            invokevirtual javax.imageio.ImageWriter.getOriginatingProvider:()Ljavax/imageio/spi/ImageWriterSpi;
            astore 3 /* writerSpi */
        start local 3 // javax.imageio.spi.ImageWriterSpi writerSpi
         6: .line 1240
            new javax.imageio.ImageIO$TranscoderFilter
            dup
            aload 2 /* readerSpi */
            aload 3 /* writerSpi */
            invokespecial javax.imageio.ImageIO$TranscoderFilter.<init>:(Ljavax/imageio/spi/ImageReaderSpi;Ljavax/imageio/spi/ImageWriterSpi;)V
         7: .line 1239
            astore 4 /* filter */
        start local 4 // javax.imageio.spi.ServiceRegistry$Filter filter
         8: .line 1245
            getstatic javax.imageio.ImageIO.theRegistry:Ljavax/imageio/spi/IIORegistry;
            ldc Ljavax/imageio/spi/ImageTranscoderSpi;
         9: .line 1246
            aload 4 /* filter */
            iconst_1
        10: .line 1245
            invokevirtual javax.imageio.spi.IIORegistry.getServiceProviders:(Ljava/lang/Class;Ljavax/imageio/spi/ServiceRegistry$Filter;Z)Ljava/util/Iterator;
            astore 5 /* iter */
        start local 5 // java.util.Iterator iter
        11: .line 1247
            goto 14
        end local 5 // java.util.Iterator iter
      StackMap locals: javax.imageio.ImageReader javax.imageio.ImageWriter javax.imageio.spi.ImageReaderSpi javax.imageio.spi.ImageWriterSpi javax.imageio.spi.ServiceRegistry$Filter
      StackMap stack: java.lang.IllegalArgumentException
        12: pop
        13: .line 1248
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        start local 5 // java.util.Iterator iter
        14: .line 1250
      StackMap locals: java.util.Iterator
      StackMap stack:
            new javax.imageio.ImageIO$ImageTranscoderIterator
            dup
            aload 5 /* iter */
            invokespecial javax.imageio.ImageIO$ImageTranscoderIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 5 // java.util.Iterator iter
        end local 4 // javax.imageio.spi.ServiceRegistry$Filter filter
        end local 3 // javax.imageio.spi.ImageWriterSpi writerSpi
        end local 2 // javax.imageio.spi.ImageReaderSpi readerSpi
        end local 1 // javax.imageio.ImageWriter writer
        end local 0 // javax.imageio.ImageReader reader
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0     reader  Ljavax/imageio/ImageReader;
            0   15     1     writer  Ljavax/imageio/ImageWriter;
            5   15     2  readerSpi  Ljavax/imageio/spi/ImageReaderSpi;
            6   15     3  writerSpi  Ljavax/imageio/spi/ImageWriterSpi;
            8   15     4     filter  Ljavax/imageio/spi/ServiceRegistry$Filter;
           11   12     5       iter  Ljava/util/Iterator;
           14   15     5       iter  Ljava/util/Iterator;
      Exception table:
        from    to  target  type
           8    11      12  Class java.lang.IllegalArgumentException
    Signature: (Ljavax/imageio/ImageReader;Ljavax/imageio/ImageWriter;)Ljava/util/Iterator<Ljavax/imageio/ImageTranscoder;>;
    MethodParameters:
        Name  Flags
      reader  
      writer  

  public static java.awt.image.BufferedImage read(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/awt/image/BufferedImage;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.io.File input
         0: .line 1287
            aload 0 /* input */
            ifnonnull 2
         1: .line 1288
            new java.lang.IllegalArgumentException
            dup
            ldc "input == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1290
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            invokevirtual java.io.File.canRead:()Z
            ifne 4
         3: .line 1291
            new javax.imageio.IIOException
            dup
            ldc "Can't read input file!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1294
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            invokestatic javax.imageio.ImageIO.createImageInputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageInputStream;
            astore 1 /* stream */
        start local 1 // javax.imageio.stream.ImageInputStream stream
         5: .line 1295
            aload 1 /* stream */
            ifnonnull 7
         6: .line 1296
            new javax.imageio.IIOException
            dup
            ldc "Can't create an ImageInputStream!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1298
      StackMap locals: javax.imageio.stream.ImageInputStream
      StackMap stack:
            aload 1 /* stream */
            invokestatic javax.imageio.ImageIO.read:(Ljavax/imageio/stream/ImageInputStream;)Ljava/awt/image/BufferedImage;
            astore 2 /* bi */
        start local 2 // java.awt.image.BufferedImage bi
         8: .line 1299
            aload 2 /* bi */
            ifnonnull 10
         9: .line 1300
            aload 1 /* stream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
        10: .line 1302
      StackMap locals: java.awt.image.BufferedImage
      StackMap stack:
            aload 2 /* bi */
            areturn
        end local 2 // java.awt.image.BufferedImage bi
        end local 1 // javax.imageio.stream.ImageInputStream stream
        end local 0 // java.io.File input
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0   input  Ljava/io/File;
            5   11     1  stream  Ljavax/imageio/stream/ImageInputStream;
            8   11     2      bi  Ljava/awt/image/BufferedImage;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static java.awt.image.BufferedImage read(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/awt/image/BufferedImage;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.io.InputStream input
         0: .line 1337
            aload 0 /* input */
            ifnonnull 2
         1: .line 1338
            new java.lang.IllegalArgumentException
            dup
            ldc "input == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1341
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            invokestatic javax.imageio.ImageIO.createImageInputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageInputStream;
            astore 1 /* stream */
        start local 1 // javax.imageio.stream.ImageInputStream stream
         3: .line 1342
            aload 1 /* stream */
            invokestatic javax.imageio.ImageIO.read:(Ljavax/imageio/stream/ImageInputStream;)Ljava/awt/image/BufferedImage;
            astore 2 /* bi */
        start local 2 // java.awt.image.BufferedImage bi
         4: .line 1343
            aload 2 /* bi */
            ifnonnull 6
         5: .line 1344
            aload 1 /* stream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
         6: .line 1346
      StackMap locals: javax.imageio.stream.ImageInputStream java.awt.image.BufferedImage
      StackMap stack:
            aload 2 /* bi */
            areturn
        end local 2 // java.awt.image.BufferedImage bi
        end local 1 // javax.imageio.stream.ImageInputStream stream
        end local 0 // java.io.InputStream input
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0   input  Ljava/io/InputStream;
            3    7     1  stream  Ljavax/imageio/stream/ImageInputStream;
            4    7     2      bi  Ljava/awt/image/BufferedImage;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static java.awt.image.BufferedImage read(java.net.URL);
    descriptor: (Ljava/net/URL;)Ljava/awt/image/BufferedImage;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.net.URL input
         0: .line 1377
            aload 0 /* input */
            ifnonnull 2
         1: .line 1378
            new java.lang.IllegalArgumentException
            dup
            ldc "input == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1381
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* istream */
        start local 1 // java.io.InputStream istream
         3: .line 1383
            aload 0 /* input */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 1 /* istream */
         4: .line 1384
            goto 7
      StackMap locals: java.net.URL java.io.InputStream
      StackMap stack: java.io.IOException
         5: astore 2 /* e */
        start local 2 // java.io.IOException e
         6: .line 1385
            new javax.imageio.IIOException
            dup
            ldc "Can't get input stream from URL!"
            aload 2 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
         7: .line 1387
      StackMap locals:
      StackMap stack:
            aload 1 /* istream */
            invokestatic javax.imageio.ImageIO.createImageInputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageInputStream;
            astore 2 /* stream */
        start local 2 // javax.imageio.stream.ImageInputStream stream
         8: .line 1390
            aload 2 /* stream */
            invokestatic javax.imageio.ImageIO.read:(Ljavax/imageio/stream/ImageInputStream;)Ljava/awt/image/BufferedImage;
            astore 3 /* bi */
        start local 3 // java.awt.image.BufferedImage bi
         9: .line 1391
            aload 3 /* bi */
            ifnonnull 15
        10: .line 1392
            aload 2 /* stream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
        11: .line 1394
            goto 15
        end local 3 // java.awt.image.BufferedImage bi
      StackMap locals: java.net.URL java.io.InputStream javax.imageio.stream.ImageInputStream
      StackMap stack: java.lang.Throwable
        12: astore 4
        13: .line 1395
            aload 1 /* istream */
            invokevirtual java.io.InputStream.close:()V
        14: .line 1396
            aload 4
            athrow
        start local 3 // java.awt.image.BufferedImage bi
        15: .line 1395
      StackMap locals: java.awt.image.BufferedImage
      StackMap stack:
            aload 1 /* istream */
            invokevirtual java.io.InputStream.close:()V
        16: .line 1397
            aload 3 /* bi */
            areturn
        end local 3 // java.awt.image.BufferedImage bi
        end local 2 // javax.imageio.stream.ImageInputStream stream
        end local 1 // java.io.InputStream istream
        end local 0 // java.net.URL input
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0    input  Ljava/net/URL;
            3   17     1  istream  Ljava/io/InputStream;
            6    7     2        e  Ljava/io/IOException;
            8   17     2   stream  Ljavax/imageio/stream/ImageInputStream;
            9   12     3       bi  Ljava/awt/image/BufferedImage;
           15   17     3       bi  Ljava/awt/image/BufferedImage;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
           8    12      12  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static java.awt.image.BufferedImage read(javax.imageio.stream.ImageInputStream);
    descriptor: (Ljavax/imageio/stream/ImageInputStream;)Ljava/awt/image/BufferedImage;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // javax.imageio.stream.ImageInputStream stream
         0: .line 1424
            aload 0 /* stream */
            ifnonnull 2
         1: .line 1425
            new java.lang.IllegalArgumentException
            dup
            ldc "stream == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1428
      StackMap locals:
      StackMap stack:
            aload 0 /* stream */
            invokestatic javax.imageio.ImageIO.getImageReaders:(Ljava/lang/Object;)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         3: .line 1429
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         4: .line 1430
            aconst_null
            areturn
         5: .line 1433
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.ImageReader
            astore 2 /* reader */
        start local 2 // javax.imageio.ImageReader reader
         6: .line 1434
            aload 2 /* reader */
            invokevirtual javax.imageio.ImageReader.getDefaultReadParam:()Ljavax/imageio/ImageReadParam;
            astore 3 /* param */
        start local 3 // javax.imageio.ImageReadParam param
         7: .line 1435
            aload 2 /* reader */
            aload 0 /* stream */
            iconst_1
            iconst_1
            invokevirtual javax.imageio.ImageReader.setInput:(Ljava/lang/Object;ZZ)V
         8: .line 1438
            aload 2 /* reader */
            iconst_0
            aload 3 /* param */
            invokevirtual javax.imageio.ImageReader.read:(ILjavax/imageio/ImageReadParam;)Ljava/awt/image/BufferedImage;
            astore 4 /* bi */
        start local 4 // java.awt.image.BufferedImage bi
         9: .line 1439
            goto 14
        end local 4 // java.awt.image.BufferedImage bi
      StackMap locals: javax.imageio.stream.ImageInputStream java.util.Iterator javax.imageio.ImageReader javax.imageio.ImageReadParam
      StackMap stack: java.lang.Throwable
        10: astore 5
        11: .line 1440
            aload 2 /* reader */
            invokevirtual javax.imageio.ImageReader.dispose:()V
        12: .line 1441
            aload 0 /* stream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
        13: .line 1442
            aload 5
            athrow
        start local 4 // java.awt.image.BufferedImage bi
        14: .line 1440
      StackMap locals: java.awt.image.BufferedImage
      StackMap stack:
            aload 2 /* reader */
            invokevirtual javax.imageio.ImageReader.dispose:()V
        15: .line 1441
            aload 0 /* stream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
        16: .line 1443
            aload 4 /* bi */
            areturn
        end local 4 // java.awt.image.BufferedImage bi
        end local 3 // javax.imageio.ImageReadParam param
        end local 2 // javax.imageio.ImageReader reader
        end local 1 // java.util.Iterator iter
        end local 0 // javax.imageio.stream.ImageInputStream stream
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0  stream  Ljavax/imageio/stream/ImageInputStream;
            3   17     1    iter  Ljava/util/Iterator;
            6   17     2  reader  Ljavax/imageio/ImageReader;
            7   17     3   param  Ljavax/imageio/ImageReadParam;
            9   10     4      bi  Ljava/awt/image/BufferedImage;
           14   17     4      bi  Ljava/awt/image/BufferedImage;
      Exception table:
        from    to  target  type
           8    10      10  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  public static boolean write(java.awt.image.RenderedImage, java.lang.String, javax.imageio.stream.ImageOutputStream);
    descriptor: (Ljava/awt/image/RenderedImage;Ljava/lang/String;Ljavax/imageio/stream/ImageOutputStream;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.awt.image.RenderedImage im
        start local 1 // java.lang.String formatName
        start local 2 // javax.imageio.stream.ImageOutputStream output
         0: .line 1472
            aload 0 /* im */
            ifnonnull 2
         1: .line 1473
            new java.lang.IllegalArgumentException
            dup
            ldc "im == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1475
      StackMap locals:
      StackMap stack:
            aload 1 /* formatName */
            ifnonnull 4
         3: .line 1476
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1478
      StackMap locals:
      StackMap stack:
            aload 2 /* output */
            ifnonnull 6
         5: .line 1479
            new java.lang.IllegalArgumentException
            dup
            ldc "output == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1482
      StackMap locals:
      StackMap stack:
            aload 0 /* im */
            aload 0 /* im */
            aload 1 /* formatName */
            invokestatic javax.imageio.ImageIO.getWriter:(Ljava/awt/image/RenderedImage;Ljava/lang/String;)Ljavax/imageio/ImageWriter;
            aload 2 /* output */
            invokestatic javax.imageio.ImageIO.doWrite:(Ljava/awt/image/RenderedImage;Ljavax/imageio/ImageWriter;Ljavax/imageio/stream/ImageOutputStream;)Z
            ireturn
        end local 2 // javax.imageio.stream.ImageOutputStream output
        end local 1 // java.lang.String formatName
        end local 0 // java.awt.image.RenderedImage im
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0          im  Ljava/awt/image/RenderedImage;
            0    7     1  formatName  Ljava/lang/String;
            0    7     2      output  Ljavax/imageio/stream/ImageOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      im          
      formatName  
      output      

  public static boolean write(java.awt.image.RenderedImage, java.lang.String, java.io.File);
    descriptor: (Ljava/awt/image/RenderedImage;Ljava/lang/String;Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.awt.image.RenderedImage im
        start local 1 // java.lang.String formatName
        start local 2 // java.io.File output
         0: .line 1505
            aload 2 /* output */
            ifnonnull 2
         1: .line 1506
            new java.lang.IllegalArgumentException
            dup
            ldc "output == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1508
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* stream */
        start local 3 // javax.imageio.stream.ImageOutputStream stream
         3: .line 1510
            aload 0 /* im */
            aload 1 /* formatName */
            invokestatic javax.imageio.ImageIO.getWriter:(Ljava/awt/image/RenderedImage;Ljava/lang/String;)Ljavax/imageio/ImageWriter;
            astore 4 /* writer */
        start local 4 // javax.imageio.ImageWriter writer
         4: .line 1511
            aload 4 /* writer */
            ifnonnull 6
         5: .line 1515
            iconst_0
            ireturn
         6: .line 1519
      StackMap locals: javax.imageio.stream.ImageOutputStream javax.imageio.ImageWriter
      StackMap stack:
            aload 2 /* output */
            invokevirtual java.io.File.delete:()Z
            pop
         7: .line 1520
            aload 2 /* output */
            invokestatic javax.imageio.ImageIO.createImageOutputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageOutputStream;
            astore 3 /* stream */
         8: .line 1521
            goto 11
      StackMap locals:
      StackMap stack: java.io.IOException
         9: astore 5 /* e */
        start local 5 // java.io.IOException e
        10: .line 1522
            new javax.imageio.IIOException
            dup
            ldc "Can't create output stream!"
            aload 5 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.io.IOException e
        11: .line 1526
      StackMap locals:
      StackMap stack:
            aload 0 /* im */
            aload 4 /* writer */
            aload 3 /* stream */
            invokestatic javax.imageio.ImageIO.doWrite:(Ljava/awt/image/RenderedImage;Ljavax/imageio/ImageWriter;Ljavax/imageio/stream/ImageOutputStream;)Z
            istore 6
        12: .line 1528
            aload 3 /* stream */
            invokeinterface javax.imageio.stream.ImageOutputStream.close:()V
        13: .line 1526
            iload 6
            ireturn
        14: .line 1527
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        15: .line 1528
            aload 3 /* stream */
            invokeinterface javax.imageio.stream.ImageOutputStream.close:()V
        16: .line 1529
            aload 5
            athrow
        end local 4 // javax.imageio.ImageWriter writer
        end local 3 // javax.imageio.stream.ImageOutputStream stream
        end local 2 // java.io.File output
        end local 1 // java.lang.String formatName
        end local 0 // java.awt.image.RenderedImage im
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0          im  Ljava/awt/image/RenderedImage;
            0   17     1  formatName  Ljava/lang/String;
            0   17     2      output  Ljava/io/File;
            3   17     3      stream  Ljavax/imageio/stream/ImageOutputStream;
            4   17     4      writer  Ljavax/imageio/ImageWriter;
           10   11     5           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6     8       9  Class java.io.IOException
          11    12      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      im          
      formatName  
      output      

  public static boolean write(java.awt.image.RenderedImage, java.lang.String, java.io.OutputStream);
    descriptor: (Ljava/awt/image/RenderedImage;Ljava/lang/String;Ljava/io/OutputStream;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.awt.image.RenderedImage im
        start local 1 // java.lang.String formatName
        start local 2 // java.io.OutputStream output
         0: .line 1557
            aload 2 /* output */
            ifnonnull 2
         1: .line 1558
            new java.lang.IllegalArgumentException
            dup
            ldc "output == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1560
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* stream */
        start local 3 // javax.imageio.stream.ImageOutputStream stream
         3: .line 1562
            aload 2 /* output */
            invokestatic javax.imageio.ImageIO.createImageOutputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageOutputStream;
            astore 3 /* stream */
         4: .line 1563
            goto 7
      StackMap locals: java.awt.image.RenderedImage java.lang.String java.io.OutputStream javax.imageio.stream.ImageOutputStream
      StackMap stack: java.io.IOException
         5: astore 4 /* e */
        start local 4 // java.io.IOException e
         6: .line 1564
            new javax.imageio.IIOException
            dup
            ldc "Can't create output stream!"
            aload 4 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
         7: .line 1568
      StackMap locals:
      StackMap stack:
            aload 0 /* im */
            aload 0 /* im */
            aload 1 /* formatName */
            invokestatic javax.imageio.ImageIO.getWriter:(Ljava/awt/image/RenderedImage;Ljava/lang/String;)Ljavax/imageio/ImageWriter;
            aload 3 /* stream */
            invokestatic javax.imageio.ImageIO.doWrite:(Ljava/awt/image/RenderedImage;Ljavax/imageio/ImageWriter;Ljavax/imageio/stream/ImageOutputStream;)Z
            istore 5
         8: .line 1570
            aload 3 /* stream */
            invokeinterface javax.imageio.stream.ImageOutputStream.close:()V
         9: .line 1568
            iload 5
            ireturn
        10: .line 1569
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        11: .line 1570
            aload 3 /* stream */
            invokeinterface javax.imageio.stream.ImageOutputStream.close:()V
        12: .line 1571
            aload 4
            athrow
        end local 3 // javax.imageio.stream.ImageOutputStream stream
        end local 2 // java.io.OutputStream output
        end local 1 // java.lang.String formatName
        end local 0 // java.awt.image.RenderedImage im
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0          im  Ljava/awt/image/RenderedImage;
            0   13     1  formatName  Ljava/lang/String;
            0   13     2      output  Ljava/io/OutputStream;
            3   13     3      stream  Ljavax/imageio/stream/ImageOutputStream;
            6    7     4           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
           7     8      10  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      im          
      formatName  
      output      

  private static javax.imageio.ImageWriter getWriter(java.awt.image.RenderedImage, java.lang.String);
    descriptor: (Ljava/awt/image/RenderedImage;Ljava/lang/String;)Ljavax/imageio/ImageWriter;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.awt.image.RenderedImage im
        start local 1 // java.lang.String formatName
         0: .line 1582
            aload 0 /* im */
            invokestatic javax.imageio.ImageTypeSpecifier.createFromRenderedImage:(Ljava/awt/image/RenderedImage;)Ljavax/imageio/ImageTypeSpecifier;
         1: .line 1581
            astore 2 /* type */
        start local 2 // javax.imageio.ImageTypeSpecifier type
         2: .line 1583
            aload 2 /* type */
            aload 1 /* formatName */
            invokestatic javax.imageio.ImageIO.getImageWriters:(Ljavax/imageio/ImageTypeSpecifier;Ljava/lang/String;)Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         3: .line 1585
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 5
         4: .line 1586
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.ImageWriter
            areturn
         5: .line 1588
      StackMap locals: javax.imageio.ImageTypeSpecifier java.util.Iterator
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.util.Iterator iter
        end local 2 // javax.imageio.ImageTypeSpecifier type
        end local 1 // java.lang.String formatName
        end local 0 // java.awt.image.RenderedImage im
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0          im  Ljava/awt/image/RenderedImage;
            0    6     1  formatName  Ljava/lang/String;
            2    6     2        type  Ljavax/imageio/ImageTypeSpecifier;
            3    6     3        iter  Ljava/util/Iterator<Ljavax/imageio/ImageWriter;>;
    MethodParameters:
            Name  Flags
      im          
      formatName  

  private static boolean doWrite(java.awt.image.RenderedImage, javax.imageio.ImageWriter, javax.imageio.stream.ImageOutputStream);
    descriptor: (Ljava/awt/image/RenderedImage;Ljavax/imageio/ImageWriter;Ljavax/imageio/stream/ImageOutputStream;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.awt.image.RenderedImage im
        start local 1 // javax.imageio.ImageWriter writer
        start local 2 // javax.imageio.stream.ImageOutputStream output
         0: .line 1597
            aload 1 /* writer */
            ifnonnull 2
         1: .line 1598
            iconst_0
            ireturn
         2: .line 1600
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            aload 2 /* output */
            invokevirtual javax.imageio.ImageWriter.setOutput:(Ljava/lang/Object;)V
         3: .line 1602
            aload 1 /* writer */
            aload 0 /* im */
            invokevirtual javax.imageio.ImageWriter.write:(Ljava/awt/image/RenderedImage;)V
         4: .line 1603
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 3
         6: .line 1604
            aload 1 /* writer */
            invokevirtual javax.imageio.ImageWriter.dispose:()V
         7: .line 1605
            aload 2 /* output */
            invokeinterface javax.imageio.stream.ImageOutputStream.flush:()V
         8: .line 1606
            aload 3
            athrow
         9: .line 1604
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            invokevirtual javax.imageio.ImageWriter.dispose:()V
        10: .line 1605
            aload 2 /* output */
            invokeinterface javax.imageio.stream.ImageOutputStream.flush:()V
        11: .line 1607
            iconst_1
            ireturn
        end local 2 // javax.imageio.stream.ImageOutputStream output
        end local 1 // javax.imageio.ImageWriter writer
        end local 0 // java.awt.image.RenderedImage im
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0      im  Ljava/awt/image/RenderedImage;
            0   12     1  writer  Ljavax/imageio/ImageWriter;
            0   12     2  output  Ljavax/imageio/stream/ImageOutputStream;
      Exception table:
        from    to  target  type
           3     5       5  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      im      
      writer  
      output  
}
SourceFile: "ImageIO.java"
NestMembers:
  javax.imageio.ImageIO$CacheInfo  javax.imageio.ImageIO$CanDecodeInputFilter  javax.imageio.ImageIO$CanEncodeImageAndFormatFilter  javax.imageio.ImageIO$ContainsFilter  javax.imageio.ImageIO$ImageReaderIterator  javax.imageio.ImageIO$ImageTranscoderIterator  javax.imageio.ImageIO$ImageWriterIterator  javax.imageio.ImageIO$SpiInfo  javax.imageio.ImageIO$SpiInfo$1  javax.imageio.ImageIO$SpiInfo$2  javax.imageio.ImageIO$SpiInfo$3  javax.imageio.ImageIO$TranscoderFilter
InnerClasses:
  CacheInfo = javax.imageio.ImageIO$CacheInfo of javax.imageio.ImageIO
  CanDecodeInputFilter = javax.imageio.ImageIO$CanDecodeInputFilter of javax.imageio.ImageIO
  CanEncodeImageAndFormatFilter = javax.imageio.ImageIO$CanEncodeImageAndFormatFilter of javax.imageio.ImageIO
  ContainsFilter = javax.imageio.ImageIO$ContainsFilter of javax.imageio.ImageIO
  ImageReaderIterator = javax.imageio.ImageIO$ImageReaderIterator of javax.imageio.ImageIO
  ImageTranscoderIterator = javax.imageio.ImageIO$ImageTranscoderIterator of javax.imageio.ImageIO
  ImageWriterIterator = javax.imageio.ImageIO$ImageWriterIterator of javax.imageio.ImageIO
  private abstract SpiInfo = javax.imageio.ImageIO$SpiInfo of javax.imageio.ImageIO
  TranscoderFilter = javax.imageio.ImageIO$TranscoderFilter of javax.imageio.ImageIO
  public abstract Filter = javax.imageio.spi.ServiceRegistry$Filter of javax.imageio.spi.ServiceRegistry