public class javax.swing.ImageIcon implements javax.swing.Icon, java.io.Serializable, javax.accessibility.Accessible
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.swing.ImageIcon
  super_class: java.lang.Object
{
  private transient java.lang.String filename;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.net.URL location;
    descriptor: Ljava/net/URL;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  transient java.awt.Image image;
    descriptor: Ljava/awt/Image;
    flags: (0x0080) ACC_TRANSIENT

  transient int loadStatus;
    descriptor: I
    flags: (0x0080) ACC_TRANSIENT

  java.awt.image.ImageObserver imageObserver;
    descriptor: Ljava/awt/image/ImageObserver;
    flags: (0x0000) 

  java.lang.String description;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  protected static final java.awt.Component component;
    descriptor: Ljava/awt/Component;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  protected static final java.awt.MediaTracker tracker;
    descriptor: Ljava/awt/MediaTracker;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  private static int mediaTrackerID;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  int width;
    descriptor: I
    flags: (0x0000) 

  int height;
    descriptor: I
    flags: (0x0000) 

  private javax.swing.ImageIcon$AccessibleImageIcon accessibleContext;
    descriptor: Ljavax/swing/ImageIcon$AccessibleImageIcon;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 100
            new javax.swing.ImageIcon$1
            dup
            invokespecial javax.swing.ImageIcon$1.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.awt.Component
            putstatic javax.swing.ImageIcon.component:Ljava/awt/Component;
         1: .line 121
            new java.awt.MediaTracker
            dup
            getstatic javax.swing.ImageIcon.component:Ljava/awt/Component;
            invokespecial java.awt.MediaTracker.<init>:(Ljava/awt/Component;)V
            putstatic javax.swing.ImageIcon.tracker:Ljava/awt/MediaTracker;
         2: .line 145
            new java.lang.StringBuilder
            dup
            ldc "TRACKER_KEY"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            putstatic javax.swing.ImageIcon.TRACKER_KEY:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.awt.Component createNoPermsComponent();
    descriptor: ()Ljava/awt/Component;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=0, args_size=0
         0: .line 128
            new javax.swing.ImageIcon$2
            dup
            invokespecial javax.swing.ImageIcon$2.<init>:()V
         1: .line 134
            new java.security.AccessControlContext
            dup
            iconst_1
            anewarray java.security.ProtectionDomain
            dup
            iconst_0
         2: .line 135
            new java.security.ProtectionDomain
            dup
            aconst_null
            aconst_null
            invokespecial java.security.ProtectionDomain.<init>:(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V
            aastore
         3: .line 134
            invokespecial java.security.AccessControlContext.<init>:([Ljava/security/ProtectionDomain;)V
         4: .line 127
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
            checkcast java.awt.Component
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.lang.String filename
        start local 2 // java.lang.String description
         0: .line 158
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            iconst_0
            putfield javax.swing.ImageIcon.loadStatus:I
         2: .line 81
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
         3: .line 147
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.width:I
         4: .line 148
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.height:I
         5: .line 537
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.accessibleContext:Ljavax/swing/ImageIcon$AccessibleImageIcon;
         6: .line 159
            aload 0 /* this */
            invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
            aload 1 /* filename */
            invokevirtual java.awt.Toolkit.getImage:(Ljava/lang/String;)Ljava/awt/Image;
            putfield javax.swing.ImageIcon.image:Ljava/awt/Image;
         7: .line 160
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            ifnonnull 9
         8: .line 161
            return
         9: .line 163
      StackMap locals: javax.swing.ImageIcon java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* filename */
            putfield javax.swing.ImageIcon.filename:Ljava/lang/String;
        10: .line 164
            aload 0 /* this */
            aload 2 /* description */
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
        11: .line 165
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            invokevirtual javax.swing.ImageIcon.loadImage:(Ljava/awt/Image;)V
        12: .line 166
            return
        end local 2 // java.lang.String description
        end local 1 // java.lang.String filename
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Ljavax/swing/ImageIcon;
            0   13     1     filename  Ljava/lang/String;
            0   13     2  description  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      filename     
      description  

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.lang.String filename
         0: .line 186
            aload 0 /* this */
            aload 1 /* filename */
            aload 1 /* filename */
            invokespecial javax.swing.ImageIcon.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 187
            return
        end local 1 // java.lang.String filename
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljavax/swing/ImageIcon;
            0    2     1  filename  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.beans.ConstructorProperties(value = {"description"})
    MethodParameters:
          Name  Flags
      filename  

  public void <init>(java.net.URL, java.lang.String);
    descriptor: (Ljava/net/URL;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.net.URL location
        start local 2 // java.lang.String description
         0: .line 197
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            iconst_0
            putfield javax.swing.ImageIcon.loadStatus:I
         2: .line 81
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
         3: .line 147
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.width:I
         4: .line 148
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.height:I
         5: .line 537
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.accessibleContext:Ljavax/swing/ImageIcon$AccessibleImageIcon;
         6: .line 198
            aload 0 /* this */
            invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
            aload 1 /* location */
            invokevirtual java.awt.Toolkit.getImage:(Ljava/net/URL;)Ljava/awt/Image;
            putfield javax.swing.ImageIcon.image:Ljava/awt/Image;
         7: .line 199
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            ifnonnull 9
         8: .line 200
            return
         9: .line 202
      StackMap locals: javax.swing.ImageIcon java.net.URL java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* location */
            putfield javax.swing.ImageIcon.location:Ljava/net/URL;
        10: .line 203
            aload 0 /* this */
            aload 2 /* description */
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
        11: .line 204
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            invokevirtual javax.swing.ImageIcon.loadImage:(Ljava/awt/Image;)V
        12: .line 205
            return
        end local 2 // java.lang.String description
        end local 1 // java.net.URL location
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Ljavax/swing/ImageIcon;
            0   13     1     location  Ljava/net/URL;
            0   13     2  description  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      location     
      description  

  public void <init>(java.net.URL);
    descriptor: (Ljava/net/URL;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.net.URL location
         0: .line 217
            aload 0 /* this */
            aload 1 /* location */
            aload 1 /* location */
            invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
            invokespecial javax.swing.ImageIcon.<init>:(Ljava/net/URL;Ljava/lang/String;)V
         1: .line 218
            return
        end local 1 // java.net.URL location
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljavax/swing/ImageIcon;
            0    2     1  location  Ljava/net/URL;
    MethodParameters:
          Name  Flags
      location  

  public void <init>(java.awt.Image, java.lang.String);
    descriptor: (Ljava/awt/Image;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.awt.Image image
        start local 2 // java.lang.String description
         0: .line 226
            aload 0 /* this */
            aload 1 /* image */
            invokespecial javax.swing.ImageIcon.<init>:(Ljava/awt/Image;)V
         1: .line 227
            aload 0 /* this */
            aload 2 /* description */
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
         2: .line 228
            return
        end local 2 // java.lang.String description
        end local 1 // java.awt.Image image
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Ljavax/swing/ImageIcon;
            0    3     1        image  Ljava/awt/Image;
            0    3     2  description  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      image        
      description  

  public void <init>(java.awt.Image);
    descriptor: (Ljava/awt/Image;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.awt.Image image
         0: .line 238
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            iconst_0
            putfield javax.swing.ImageIcon.loadStatus:I
         2: .line 81
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
         3: .line 147
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.width:I
         4: .line 148
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.height:I
         5: .line 537
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.accessibleContext:Ljavax/swing/ImageIcon$AccessibleImageIcon;
         6: .line 239
            aload 0 /* this */
            aload 1 /* image */
            putfield javax.swing.ImageIcon.image:Ljava/awt/Image;
         7: .line 240
            aload 1 /* image */
            ldc "comment"
            aload 0 /* this */
            getfield javax.swing.ImageIcon.imageObserver:Ljava/awt/image/ImageObserver;
            invokevirtual java.awt.Image.getProperty:(Ljava/lang/String;Ljava/awt/image/ImageObserver;)Ljava/lang/Object;
            astore 2 /* o */
        start local 2 // java.lang.Object o
         8: .line 241
            aload 2 /* o */
            instanceof java.lang.String
            ifeq 10
         9: .line 242
            aload 0 /* this */
            aload 2 /* o */
            checkcast java.lang.String
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
        10: .line 244
      StackMap locals: javax.swing.ImageIcon java.awt.Image java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* image */
            invokevirtual javax.swing.ImageIcon.loadImage:(Ljava/awt/Image;)V
        11: .line 245
            return
        end local 2 // java.lang.Object o
        end local 1 // java.awt.Image image
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Ljavax/swing/ImageIcon;
            0   12     1  image  Ljava/awt/Image;
            8   12     2      o  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      image  

  public void <init>(byte[], java.lang.String);
    descriptor: ([BLjava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // javax.swing.ImageIcon this
        start local 1 // byte[] imageData
        start local 2 // java.lang.String description
         0: .line 260
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            iconst_0
            putfield javax.swing.ImageIcon.loadStatus:I
         2: .line 81
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
         3: .line 147
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.width:I
         4: .line 148
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.height:I
         5: .line 537
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.accessibleContext:Ljavax/swing/ImageIcon$AccessibleImageIcon;
         6: .line 261
            aload 0 /* this */
            invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
            aload 1 /* imageData */
            invokevirtual java.awt.Toolkit.createImage:([B)Ljava/awt/Image;
            putfield javax.swing.ImageIcon.image:Ljava/awt/Image;
         7: .line 262
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            ifnonnull 9
         8: .line 263
            return
         9: .line 265
      StackMap locals: javax.swing.ImageIcon byte[] java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* description */
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
        10: .line 266
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            invokevirtual javax.swing.ImageIcon.loadImage:(Ljava/awt/Image;)V
        11: .line 267
            return
        end local 2 // java.lang.String description
        end local 1 // byte[] imageData
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Ljavax/swing/ImageIcon;
            0   12     1    imageData  [B
            0   12     2  description  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      imageData    
      description  

  public void <init>(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.swing.ImageIcon this
        start local 1 // byte[] imageData
         0: .line 285
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            iconst_0
            putfield javax.swing.ImageIcon.loadStatus:I
         2: .line 81
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
         3: .line 147
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.width:I
         4: .line 148
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.height:I
         5: .line 537
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.accessibleContext:Ljavax/swing/ImageIcon$AccessibleImageIcon;
         6: .line 286
            aload 0 /* this */
            invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
            aload 1 /* imageData */
            invokevirtual java.awt.Toolkit.createImage:([B)Ljava/awt/Image;
            putfield javax.swing.ImageIcon.image:Ljava/awt/Image;
         7: .line 287
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            ifnonnull 9
         8: .line 288
            return
         9: .line 290
      StackMap locals: javax.swing.ImageIcon byte[]
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            ldc "comment"
            aload 0 /* this */
            getfield javax.swing.ImageIcon.imageObserver:Ljava/awt/image/ImageObserver;
            invokevirtual java.awt.Image.getProperty:(Ljava/lang/String;Ljava/awt/image/ImageObserver;)Ljava/lang/Object;
            astore 2 /* o */
        start local 2 // java.lang.Object o
        10: .line 291
            aload 2 /* o */
            instanceof java.lang.String
            ifeq 12
        11: .line 292
            aload 0 /* this */
            aload 2 /* o */
            checkcast java.lang.String
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
        12: .line 294
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            invokevirtual javax.swing.ImageIcon.loadImage:(Ljava/awt/Image;)V
        13: .line 295
            return
        end local 2 // java.lang.Object o
        end local 1 // byte[] imageData
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Ljavax/swing/ImageIcon;
            0   14     1  imageData  [B
           10   14     2          o  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      imageData  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 300
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            iconst_0
            putfield javax.swing.ImageIcon.loadStatus:I
         2: .line 81
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
         3: .line 147
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.width:I
         4: .line 148
            aload 0 /* this */
            iconst_m1
            putfield javax.swing.ImageIcon.height:I
         5: .line 537
            aload 0 /* this */
            aconst_null
            putfield javax.swing.ImageIcon.accessibleContext:Ljavax/swing/ImageIcon$AccessibleImageIcon;
         6: .line 301
            return
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljavax/swing/ImageIcon;

  protected void loadImage(java.awt.Image);
    descriptor: (Ljava/awt/Image;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.awt.Image image
         0: .line 308
            aload 0 /* this */
            invokevirtual javax.swing.ImageIcon.getTracker:()Ljava/awt/MediaTracker;
            astore 2 /* mTracker */
        start local 2 // java.awt.MediaTracker mTracker
         1: .line 309
            aload 2 /* mTracker */
            dup
            astore 3
            monitorenter
         2: .line 310
            aload 0 /* this */
            invokevirtual javax.swing.ImageIcon.getNextID:()I
            istore 4 /* id */
        start local 4 // int id
         3: .line 312
            aload 2 /* mTracker */
            aload 1 /* image */
            iload 4 /* id */
            invokevirtual java.awt.MediaTracker.addImage:(Ljava/awt/Image;I)V
         4: .line 314
            aload 2 /* mTracker */
            iload 4 /* id */
            lconst_0
            invokevirtual java.awt.MediaTracker.waitForID:(IJ)Z
            pop
         5: .line 315
            goto 8
      StackMap locals: javax.swing.ImageIcon java.awt.Image java.awt.MediaTracker java.awt.MediaTracker int
      StackMap stack: java.lang.InterruptedException
         6: pop
         7: .line 316
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "INTERRUPTED while loading Image"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* mTracker */
            iload 4 /* id */
            iconst_0
            invokevirtual java.awt.MediaTracker.statusID:(IZ)I
            putfield javax.swing.ImageIcon.loadStatus:I
         9: .line 319
            aload 2 /* mTracker */
            aload 1 /* image */
            iload 4 /* id */
            invokevirtual java.awt.MediaTracker.removeImage:(Ljava/awt/Image;I)V
        10: .line 321
            aload 0 /* this */
            aload 1 /* image */
            aload 0 /* this */
            getfield javax.swing.ImageIcon.imageObserver:Ljava/awt/image/ImageObserver;
            invokevirtual java.awt.Image.getWidth:(Ljava/awt/image/ImageObserver;)I
            putfield javax.swing.ImageIcon.width:I
        11: .line 322
            aload 0 /* this */
            aload 1 /* image */
            aload 0 /* this */
            getfield javax.swing.ImageIcon.imageObserver:Ljava/awt/image/ImageObserver;
            invokevirtual java.awt.Image.getHeight:(Ljava/awt/image/ImageObserver;)I
            putfield javax.swing.ImageIcon.height:I
        end local 4 // int id
        12: .line 309
            aload 3
            monitorexit
        13: goto 16
      StackMap locals: javax.swing.ImageIcon java.awt.Image java.awt.MediaTracker java.awt.MediaTracker
      StackMap stack: java.lang.Throwable
        14: aload 3
            monitorexit
        15: athrow
        16: .line 324
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.awt.MediaTracker mTracker
        end local 1 // java.awt.Image image
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Ljavax/swing/ImageIcon;
            0   17     1     image  Ljava/awt/Image;
            1   17     2  mTracker  Ljava/awt/MediaTracker;
            3   12     4        id  I
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.InterruptedException
           2    13      14  any
          14    15      14  any
    MethodParameters:
       Name  Flags
      image  

  private int getNextID();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 330
            aload 0 /* this */
            invokevirtual javax.swing.ImageIcon.getTracker:()Ljava/awt/MediaTracker;
            dup
            astore 1
            monitorenter
         1: .line 331
            getstatic javax.swing.ImageIcon.mediaTrackerID:I
            iconst_1
            iadd
            dup
            putstatic javax.swing.ImageIcon.mediaTrackerID:I
            aload 1
            monitorexit
         2: ireturn
         3: .line 330
      StackMap locals: javax.swing.ImageIcon java.awt.MediaTracker
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/swing/ImageIcon;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  private java.awt.MediaTracker getTracker();
    descriptor: ()Ljava/awt/MediaTracker;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 341
            invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
            astore 2 /* ac */
        start local 2 // sun.awt.AppContext ac
         1: .line 344
            aload 2 /* ac */
            dup
            astore 3
            monitorenter
         2: .line 345
            aload 2 /* ac */
            getstatic javax.swing.ImageIcon.TRACKER_KEY:Ljava/lang/Object;
            invokevirtual sun.awt.AppContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* trackerObj */
        start local 1 // java.lang.Object trackerObj
         3: .line 346
            aload 1 /* trackerObj */
            ifnonnull 7
         4: .line 347
            new javax.swing.ImageIcon$3
            dup
            aload 0 /* this */
            invokespecial javax.swing.ImageIcon$3.<init>:(Ljavax/swing/ImageIcon;)V
            astore 4 /* comp */
        start local 4 // java.awt.Component comp
         5: .line 348
            new java.awt.MediaTracker
            dup
            aload 4 /* comp */
            invokespecial java.awt.MediaTracker.<init>:(Ljava/awt/Component;)V
            astore 1 /* trackerObj */
         6: .line 349
            aload 2 /* ac */
            getstatic javax.swing.ImageIcon.TRACKER_KEY:Ljava/lang/Object;
            aload 1 /* trackerObj */
            invokevirtual sun.awt.AppContext.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.awt.Component comp
         7: .line 344
      StackMap locals: java.lang.Object sun.awt.AppContext sun.awt.AppContext
      StackMap stack:
            aload 3
            monitorexit
         8: goto 11
        end local 1 // java.lang.Object trackerObj
      StackMap locals: javax.swing.ImageIcon top sun.awt.AppContext sun.awt.AppContext
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        start local 1 // java.lang.Object trackerObj
        11: .line 352
      StackMap locals: javax.swing.ImageIcon java.lang.Object sun.awt.AppContext
      StackMap stack:
            aload 1 /* trackerObj */
            checkcast java.awt.MediaTracker
            areturn
        end local 2 // sun.awt.AppContext ac
        end local 1 // java.lang.Object trackerObj
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Ljavax/swing/ImageIcon;
            3    9     1  trackerObj  Ljava/lang/Object;
           11   12     1  trackerObj  Ljava/lang/Object;
            1   12     2          ac  Lsun/awt/AppContext;
            5    7     4        comp  Ljava/awt/Component;
      Exception table:
        from    to  target  type
           2     8       9  any
           9    10       9  any

  public int getImageLoadStatus();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 363
            aload 0 /* this */
            getfield javax.swing.ImageIcon.loadStatus:I
            ireturn
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/ImageIcon;

  public java.awt.Image getImage();
    descriptor: ()Ljava/awt/Image;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 372
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            areturn
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/ImageIcon;
    RuntimeVisibleAnnotations: 
      java.beans.Transient()

  public void setImage(java.awt.Image);
    descriptor: (Ljava/awt/Image;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.awt.Image image
         0: .line 380
            aload 0 /* this */
            aload 1 /* image */
            putfield javax.swing.ImageIcon.image:Ljava/awt/Image;
         1: .line 381
            aload 0 /* this */
            aload 1 /* image */
            invokevirtual javax.swing.ImageIcon.loadImage:(Ljava/awt/Image;)V
         2: .line 382
            return
        end local 1 // java.awt.Image image
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljavax/swing/ImageIcon;
            0    3     1  image  Ljava/awt/Image;
    MethodParameters:
       Name  Flags
      image  

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 394
            aload 0 /* this */
            getfield javax.swing.ImageIcon.description:Ljava/lang/String;
            areturn
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/ImageIcon;

  public void setDescription(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.lang.String description
         0: .line 405
            aload 0 /* this */
            aload 1 /* description */
            putfield javax.swing.ImageIcon.description:Ljava/lang/String;
         1: .line 406
            return
        end local 1 // java.lang.String description
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/swing/ImageIcon;
            0    2     1  description  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      description  

  public synchronized void paintIcon(java.awt.Component, java.awt.Graphics, int, int);
    descriptor: (Ljava/awt/Component;Ljava/awt/Graphics;II)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.awt.Component c
        start local 2 // java.awt.Graphics g
        start local 3 // int x
        start local 4 // int y
         0: .line 424
            aload 0 /* this */
            getfield javax.swing.ImageIcon.imageObserver:Ljava/awt/image/ImageObserver;
            ifnonnull 3
         1: .line 425
            aload 2 /* g */
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            iload 3 /* x */
            iload 4 /* y */
            aload 1 /* c */
            invokevirtual java.awt.Graphics.drawImage:(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z
            pop
         2: .line 426
            goto 4
         3: .line 427
      StackMap locals:
      StackMap stack:
            aload 2 /* g */
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            iload 3 /* x */
            iload 4 /* y */
            aload 0 /* this */
            getfield javax.swing.ImageIcon.imageObserver:Ljava/awt/image/ImageObserver;
            invokevirtual java.awt.Graphics.drawImage:(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z
            pop
         4: .line 429
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int y
        end local 3 // int x
        end local 2 // java.awt.Graphics g
        end local 1 // java.awt.Component c
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/swing/ImageIcon;
            0    5     1     c  Ljava/awt/Component;
            0    5     2     g  Ljava/awt/Graphics;
            0    5     3     x  I
            0    5     4     y  I
    MethodParameters:
      Name  Flags
      c     
      g     
      x     
      y     

  public int getIconWidth();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 437
            aload 0 /* this */
            getfield javax.swing.ImageIcon.width:I
            ireturn
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/ImageIcon;

  public int getIconHeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 446
            aload 0 /* this */
            getfield javax.swing.ImageIcon.height:I
            ireturn
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/ImageIcon;

  public void setImageObserver(java.awt.image.ImageObserver);
    descriptor: (Ljava/awt/image/ImageObserver;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.awt.image.ImageObserver observer
         0: .line 463
            aload 0 /* this */
            aload 1 /* observer */
            putfield javax.swing.ImageIcon.imageObserver:Ljava/awt/image/ImageObserver;
         1: .line 464
            return
        end local 1 // java.awt.image.ImageObserver observer
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljavax/swing/ImageIcon;
            0    2     1  observer  Ljava/awt/image/ImageObserver;
    MethodParameters:
          Name  Flags
      observer  

  public java.awt.image.ImageObserver getImageObserver();
    descriptor: ()Ljava/awt/image/ImageObserver;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 473
            aload 0 /* this */
            getfield javax.swing.ImageIcon.imageObserver:Ljava/awt/image/ImageObserver;
            areturn
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/ImageIcon;
    RuntimeVisibleAnnotations: 
      java.beans.Transient()

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 482
            aload 0 /* this */
            getfield javax.swing.ImageIcon.description:Ljava/lang/String;
            ifnull 2
         1: .line 483
            aload 0 /* this */
            getfield javax.swing.ImageIcon.description:Ljava/lang/String;
            areturn
         2: .line 485
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/swing/ImageIcon;

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=7, args_size=2
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.io.ObjectInputStream s
         0: .line 491
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 493
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.readInt:()I
            istore 2 /* w */
        start local 2 // int w
         2: .line 494
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.readInt:()I
            istore 3 /* h */
        start local 3 // int h
         3: .line 495
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
            checkcast int[]
            astore 4 /* pixels */
        start local 4 // int[] pixels
         4: .line 497
            aload 4 /* pixels */
            ifnull 9
         5: .line 498
            invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
            astore 5 /* tk */
        start local 5 // java.awt.Toolkit tk
         6: .line 499
            invokestatic java.awt.image.ColorModel.getRGBdefault:()Ljava/awt/image/ColorModel;
            astore 6 /* cm */
        start local 6 // java.awt.image.ColorModel cm
         7: .line 500
            aload 0 /* this */
            aload 5 /* tk */
            new java.awt.image.MemoryImageSource
            dup
            iload 2 /* w */
            iload 3 /* h */
            aload 6 /* cm */
            aload 4 /* pixels */
            iconst_0
            iload 2 /* w */
            invokespecial java.awt.image.MemoryImageSource.<init>:(IILjava/awt/image/ColorModel;[III)V
            invokevirtual java.awt.Toolkit.createImage:(Ljava/awt/image/ImageProducer;)Ljava/awt/Image;
            putfield javax.swing.ImageIcon.image:Ljava/awt/Image;
         8: .line 501
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            invokevirtual javax.swing.ImageIcon.loadImage:(Ljava/awt/Image;)V
        end local 6 // java.awt.image.ColorModel cm
        end local 5 // java.awt.Toolkit tk
         9: .line 503
      StackMap locals: int int int[]
      StackMap stack:
            return
        end local 4 // int[] pixels
        end local 3 // int h
        end local 2 // int w
        end local 1 // java.io.ObjectInputStream s
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Ljavax/swing/ImageIcon;
            0   10     1       s  Ljava/io/ObjectInputStream;
            2   10     2       w  I
            3   10     3       h  I
            4   10     4  pixels  [I
            6    9     5      tk  Ljava/awt/Toolkit;
            7    9     6      cm  Ljava/awt/image/ColorModel;
    Exceptions:
      throws java.lang.ClassNotFoundException, java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=6, args_size=2
        start local 0 // javax.swing.ImageIcon this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 509
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         1: .line 511
            aload 0 /* this */
            invokevirtual javax.swing.ImageIcon.getIconWidth:()I
            istore 2 /* w */
        start local 2 // int w
         2: .line 512
            aload 0 /* this */
            invokevirtual javax.swing.ImageIcon.getIconHeight:()I
            istore 3 /* h */
        start local 3 // int h
         3: .line 513
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            ifnull 4
            iload 2 /* w */
            iload 3 /* h */
            imul
            newarray 10
            goto 5
      StackMap locals: int int
      StackMap stack:
         4: aconst_null
      StackMap locals:
      StackMap stack: int[]
         5: astore 4 /* pixels */
        start local 4 // int[] pixels
         6: .line 515
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            ifnull 13
         7: .line 517
            new java.awt.image.PixelGrabber
            dup
            aload 0 /* this */
            getfield javax.swing.ImageIcon.image:Ljava/awt/Image;
            iconst_0
            iconst_0
            iload 2 /* w */
            iload 3 /* h */
            aload 4 /* pixels */
            iconst_0
            iload 2 /* w */
            invokespecial java.awt.image.PixelGrabber.<init>:(Ljava/awt/Image;IIII[III)V
            astore 5 /* pg */
        start local 5 // java.awt.image.PixelGrabber pg
         8: .line 518
            aload 5 /* pg */
            invokevirtual java.awt.image.PixelGrabber.grabPixels:()Z
            pop
         9: .line 519
            aload 5 /* pg */
            invokevirtual java.awt.image.PixelGrabber.getStatus:()I
            sipush 128
            iand
            ifeq 13
        10: .line 520
            new java.io.IOException
            dup
            ldc "failed to load image contents"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.awt.image.PixelGrabber pg
        11: .line 523
      StackMap locals: javax.swing.ImageIcon java.io.ObjectOutputStream int int int[]
      StackMap stack: java.lang.InterruptedException
            pop
        12: .line 524
            new java.io.IOException
            dup
            ldc "image load interrupted"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 528
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            iload 2 /* w */
            invokevirtual java.io.ObjectOutputStream.writeInt:(I)V
        14: .line 529
            aload 1 /* s */
            iload 3 /* h */
            invokevirtual java.io.ObjectOutputStream.writeInt:(I)V
        15: .line 530
            aload 1 /* s */
            aload 4 /* pixels */
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
        16: .line 531
            return
        end local 4 // int[] pixels
        end local 3 // int h
        end local 2 // int w
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Ljavax/swing/ImageIcon;
            0   17     1       s  Ljava/io/ObjectOutputStream;
            2   17     2       w  I
            3   17     3       h  I
            6   17     4  pixels  [I
            8   11     5      pg  Ljava/awt/image/PixelGrabber;
      Exception table:
        from    to  target  type
           7    11      11  Class java.lang.InterruptedException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  public javax.accessibility.AccessibleContext getAccessibleContext();
    descriptor: ()Ljavax/accessibility/AccessibleContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // javax.swing.ImageIcon this
         0: .line 553
            aload 0 /* this */
            getfield javax.swing.ImageIcon.accessibleContext:Ljavax/swing/ImageIcon$AccessibleImageIcon;
            ifnonnull 2
         1: .line 554
            aload 0 /* this */
            new javax.swing.ImageIcon$AccessibleImageIcon
            dup
            aload 0 /* this */
            invokespecial javax.swing.ImageIcon$AccessibleImageIcon.<init>:(Ljavax/swing/ImageIcon;)V
            putfield javax.swing.ImageIcon.accessibleContext:Ljavax/swing/ImageIcon$AccessibleImageIcon;
         2: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.ImageIcon.accessibleContext:Ljavax/swing/ImageIcon$AccessibleImageIcon;
            areturn
        end local 0 // javax.swing.ImageIcon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/swing/ImageIcon;
}
SourceFile: "ImageIcon.java"
NestMembers:
  javax.swing.ImageIcon$1  javax.swing.ImageIcon$2  javax.swing.ImageIcon$2$1  javax.swing.ImageIcon$3  javax.swing.ImageIcon$AccessibleImageIcon
InnerClasses:
  javax.swing.ImageIcon$1
  javax.swing.ImageIcon$2
  javax.swing.ImageIcon$3
  protected AccessibleImageIcon = javax.swing.ImageIcon$AccessibleImageIcon of javax.swing.ImageIcon