public class javax.swing.GrayFilter extends java.awt.image.RGBImageFilter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.swing.GrayFilter
  super_class: java.awt.image.RGBImageFilter
{
  private boolean brighter;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int percent;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public static java.awt.Image createDisabledImage(java.awt.Image);
    descriptor: (Ljava/awt/Image;)Ljava/awt/Image;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.awt.Image i
         0: .line 53
            aload 0 /* i */
            instanceof java.awt.image.MultiResolutionImage
            ifeq 5
         1: .line 55
            aload 0 /* i */
            checkcast java.awt.image.MultiResolutionImage
         2: .line 56
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  javax/swing/GrayFilter.lambda$0(Ljava/awt/Image;)Ljava/awt/Image; (6)
                  (Ljava/awt/Image;)Ljava/awt/Image;
         3: .line 55
            invokestatic sun.awt.image.MultiResolutionCachedImage.map:(Ljava/awt/image/MultiResolutionImage;Ljava/util/function/Function;)Ljava/awt/Image;
         4: .line 54
            areturn
         5: .line 58
      StackMap locals:
      StackMap stack:
            aload 0 /* i */
            invokestatic javax.swing.GrayFilter.createDisabledImageImpl:(Ljava/awt/Image;)Ljava/awt/Image;
            areturn
        end local 0 // java.awt.Image i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     i  Ljava/awt/Image;
    MethodParameters:
      Name  Flags
      i     

  private static java.awt.Image createDisabledImageImpl(java.awt.Image);
    descriptor: (Ljava/awt/Image;)Ljava/awt/Image;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.awt.Image i
         0: .line 62
            new javax.swing.GrayFilter
            dup
            iconst_1
            bipush 50
            invokespecial javax.swing.GrayFilter.<init>:(ZI)V
            astore 1 /* filter */
        start local 1 // javax.swing.GrayFilter filter
         1: .line 63
            new java.awt.image.FilteredImageSource
            dup
            aload 0 /* i */
            invokevirtual java.awt.Image.getSource:()Ljava/awt/image/ImageProducer;
            aload 1 /* filter */
            invokespecial java.awt.image.FilteredImageSource.<init>:(Ljava/awt/image/ImageProducer;Ljava/awt/image/ImageFilter;)V
            astore 2 /* prod */
        start local 2 // java.awt.image.ImageProducer prod
         2: .line 64
            invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
            aload 2 /* prod */
            invokevirtual java.awt.Toolkit.createImage:(Ljava/awt/image/ImageProducer;)Ljava/awt/Image;
            astore 3 /* grayImage */
        start local 3 // java.awt.Image grayImage
         3: .line 65
            aload 3 /* grayImage */
            areturn
        end local 3 // java.awt.Image grayImage
        end local 2 // java.awt.image.ImageProducer prod
        end local 1 // javax.swing.GrayFilter filter
        end local 0 // java.awt.Image i
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0          i  Ljava/awt/Image;
            1    4     1     filter  Ljavax/swing/GrayFilter;
            2    4     2       prod  Ljava/awt/image/ImageProducer;
            3    4     3  grayImage  Ljava/awt/Image;
    MethodParameters:
      Name  Flags
      i     

  public void <init>(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javax.swing.GrayFilter this
        start local 1 // boolean b
        start local 2 // int p
         0: .line 77
            aload 0 /* this */
            invokespecial java.awt.image.RGBImageFilter.<init>:()V
         1: .line 78
            aload 0 /* this */
            iload 1 /* b */
            putfield javax.swing.GrayFilter.brighter:Z
         2: .line 79
            aload 0 /* this */
            iload 2 /* p */
            putfield javax.swing.GrayFilter.percent:I
         3: .line 85
            aload 0 /* this */
            iconst_1
            putfield javax.swing.GrayFilter.canFilterIndexColorModel:Z
         4: .line 86
            return
        end local 2 // int p
        end local 1 // boolean b
        end local 0 // javax.swing.GrayFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/swing/GrayFilter;
            0    5     1     b  Z
            0    5     2     p  I
    MethodParameters:
      Name  Flags
      b     
      p     

  public int filterRGB(int, int, int);
    descriptor: (III)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // javax.swing.GrayFilter this
        start local 1 // int x
        start local 2 // int y
        start local 3 // int rgb
         0: .line 93
            ldc 0.3
            iload 3 /* rgb */
            bipush 16
            ishr
            sipush 255
            iand
            i2d
            dmul
         1: .line 94
            ldc 0.59
            iload 3 /* rgb */
            bipush 8
            ishr
            sipush 255
            iand
            i2d
            dmul
         2: .line 93
            dadd
         3: .line 95
            ldc 0.11
            iload 3 /* rgb */
            sipush 255
            iand
            i2d
            dmul
         4: .line 93
            dadd
         5: .line 95
            ldc 3.0
         6: .line 93
            ddiv
            d2i
            istore 4 /* gray */
        start local 4 // int gray
         7: .line 97
            aload 0 /* this */
            getfield javax.swing.GrayFilter.brighter:Z
            ifeq 10
         8: .line 98
            sipush 255
            sipush 255
            iload 4 /* gray */
            isub
            bipush 100
            aload 0 /* this */
            getfield javax.swing.GrayFilter.percent:I
            isub
            imul
            bipush 100
            idiv
            isub
            istore 4 /* gray */
         9: .line 99
            goto 11
        10: .line 100
      StackMap locals: int
      StackMap stack:
            iload 4 /* gray */
            bipush 100
            aload 0 /* this */
            getfield javax.swing.GrayFilter.percent:I
            isub
            imul
            bipush 100
            idiv
            istore 4 /* gray */
        11: .line 103
      StackMap locals:
      StackMap stack:
            iload 4 /* gray */
            ifge 12
            iconst_0
            istore 4 /* gray */
        12: .line 104
      StackMap locals:
      StackMap stack:
            iload 4 /* gray */
            sipush 255
            if_icmple 13
            sipush 255
            istore 4 /* gray */
        13: .line 105
      StackMap locals:
      StackMap stack:
            iload 3 /* rgb */
            ldc -16777216
            iand
            iload 4 /* gray */
            bipush 16
            ishl
            ior
            iload 4 /* gray */
            bipush 8
            ishl
            ior
            iload 4 /* gray */
            iconst_0
            ishl
            ior
            ireturn
        end local 4 // int gray
        end local 3 // int rgb
        end local 2 // int y
        end local 1 // int x
        end local 0 // javax.swing.GrayFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Ljavax/swing/GrayFilter;
            0   14     1     x  I
            0   14     2     y  I
            0   14     3   rgb  I
            7   14     4  gray  I
    MethodParameters:
      Name  Flags
      x     
      y     
      rgb   

  private static java.awt.Image lambda$0(java.awt.Image);
    descriptor: (Ljava/awt/Image;)Ljava/awt/Image;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.Image img
         0: .line 56
            aload 0 /* img */
            invokestatic javax.swing.GrayFilter.createDisabledImageImpl:(Ljava/awt/Image;)Ljava/awt/Image;
            areturn
        end local 0 // java.awt.Image img
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   img  Ljava/awt/Image;
}
SourceFile: "GrayFilter.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles