public class sun.awt.image.MultiResolutionCachedImage extends java.awt.image.AbstractMultiResolutionImage
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.awt.image.MultiResolutionCachedImage
  super_class: java.awt.image.AbstractMultiResolutionImage
{
  private final int baseImageWidth;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int baseImageHeight;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.awt.geom.Dimension2D[] sizes;
    descriptor: [Ljava/awt/geom/Dimension2D;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.function.BiFunction<java.lang.Integer, java.lang.Integer, java.awt.Image> mapper;
    descriptor: Ljava/util/function/BiFunction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/function/BiFunction<Ljava/lang/Integer;Ljava/lang/Integer;Ljava/awt/Image;>;

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

  public void <init>(int, int, java.util.function.BiFunction<java.lang.Integer, java.lang.Integer, java.awt.Image>);
    descriptor: (IILjava/util/function/BiFunction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=4, args_size=4
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // int baseImageWidth
        start local 2 // int baseImageHeight
        start local 3 // java.util.function.BiFunction mapper
         0: .line 50
            aload 0 /* this */
            iload 1 /* baseImageWidth */
            iload 2 /* baseImageHeight */
         1: .line 51
            iconst_1
            anewarray java.awt.Dimension
            dup
            iconst_0
            new java.awt.Dimension
            dup
            iload 1 /* baseImageWidth */
            iload 2 /* baseImageHeight */
            invokespecial java.awt.Dimension.<init>:(II)V
            aastore
         2: .line 52
            aload 3 /* mapper */
            invokespecial sun.awt.image.MultiResolutionCachedImage.<init>:(II[Ljava/awt/geom/Dimension2D;Ljava/util/function/BiFunction;)V
         3: .line 53
            return
        end local 3 // java.util.function.BiFunction mapper
        end local 2 // int baseImageHeight
        end local 1 // int baseImageWidth
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lsun/awt/image/MultiResolutionCachedImage;
            0    4     1   baseImageWidth  I
            0    4     2  baseImageHeight  I
            0    4     3           mapper  Ljava/util/function/BiFunction<Ljava/lang/Integer;Ljava/lang/Integer;Ljava/awt/Image;>;
    Signature: (IILjava/util/function/BiFunction<Ljava/lang/Integer;Ljava/lang/Integer;Ljava/awt/Image;>;)V
    MethodParameters:
                 Name  Flags
      baseImageWidth   
      baseImageHeight  
      mapper           

  public void <init>(int, int, java.awt.geom.Dimension2D[], java.util.function.BiFunction<java.lang.Integer, java.lang.Integer, java.awt.Image>);
    descriptor: (II[Ljava/awt/geom/Dimension2D;Ljava/util/function/BiFunction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // int baseImageWidth
        start local 2 // int baseImageHeight
        start local 3 // java.awt.geom.Dimension2D[] sizes
        start local 4 // java.util.function.BiFunction mapper
         0: .line 59
            aload 0 /* this */
            iload 1 /* baseImageWidth */
            iload 2 /* baseImageHeight */
            aload 3 /* sizes */
            aload 4 /* mapper */
            iconst_1
            invokespecial sun.awt.image.MultiResolutionCachedImage.<init>:(II[Ljava/awt/geom/Dimension2D;Ljava/util/function/BiFunction;Z)V
         1: .line 60
            return
        end local 4 // java.util.function.BiFunction mapper
        end local 3 // java.awt.geom.Dimension2D[] sizes
        end local 2 // int baseImageHeight
        end local 1 // int baseImageWidth
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lsun/awt/image/MultiResolutionCachedImage;
            0    2     1   baseImageWidth  I
            0    2     2  baseImageHeight  I
            0    2     3            sizes  [Ljava/awt/geom/Dimension2D;
            0    2     4           mapper  Ljava/util/function/BiFunction<Ljava/lang/Integer;Ljava/lang/Integer;Ljava/awt/Image;>;
    Signature: (II[Ljava/awt/geom/Dimension2D;Ljava/util/function/BiFunction<Ljava/lang/Integer;Ljava/lang/Integer;Ljava/awt/Image;>;)V
    MethodParameters:
                 Name  Flags
      baseImageWidth   
      baseImageHeight  
      sizes            
      mapper           

  private void <init>(int, int, java.awt.geom.Dimension2D[], java.util.function.BiFunction<java.lang.Integer, java.lang.Integer, java.awt.Image>, );
    descriptor: (II[Ljava/awt/geom/Dimension2D;Ljava/util/function/BiFunction;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // int baseImageWidth
        start local 2 // int baseImageHeight
        start local 3 // java.awt.geom.Dimension2D[] sizes
        start local 4 // java.util.function.BiFunction mapper
        start local 5 // boolean copySizes
         0: .line 62
            aload 0 /* this */
            invokespecial java.awt.image.AbstractMultiResolutionImage.<init>:()V
         1: .line 67
            aload 0 /* this */
            iload 1 /* baseImageWidth */
            putfield sun.awt.image.MultiResolutionCachedImage.baseImageWidth:I
         2: .line 68
            aload 0 /* this */
            iload 2 /* baseImageHeight */
            putfield sun.awt.image.MultiResolutionCachedImage.baseImageHeight:I
         3: .line 69
            aload 0 /* this */
            iload 5 /* copySizes */
            ifeq 5
            aload 3 /* sizes */
            ifnull 5
         4: .line 70
            aload 3 /* sizes */
            aload 3 /* sizes */
            arraylength
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast java.awt.geom.Dimension2D[]
            goto 6
         5: .line 71
      StackMap locals: sun.awt.image.MultiResolutionCachedImage int int java.awt.geom.Dimension2D[] java.util.function.BiFunction int
      StackMap stack: sun.awt.image.MultiResolutionCachedImage
            aload 3 /* sizes */
         6: .line 69
      StackMap locals: sun.awt.image.MultiResolutionCachedImage int int java.awt.geom.Dimension2D[] java.util.function.BiFunction int
      StackMap stack: sun.awt.image.MultiResolutionCachedImage java.awt.geom.Dimension2D[]
            putfield sun.awt.image.MultiResolutionCachedImage.sizes:[Ljava/awt/geom/Dimension2D;
         7: .line 72
            aload 0 /* this */
            aload 4 /* mapper */
            putfield sun.awt.image.MultiResolutionCachedImage.mapper:Ljava/util/function/BiFunction;
         8: .line 73
            return
        end local 5 // boolean copySizes
        end local 4 // java.util.function.BiFunction mapper
        end local 3 // java.awt.geom.Dimension2D[] sizes
        end local 2 // int baseImageHeight
        end local 1 // int baseImageWidth
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lsun/awt/image/MultiResolutionCachedImage;
            0    9     1   baseImageWidth  I
            0    9     2  baseImageHeight  I
            0    9     3            sizes  [Ljava/awt/geom/Dimension2D;
            0    9     4           mapper  Ljava/util/function/BiFunction<Ljava/lang/Integer;Ljava/lang/Integer;Ljava/awt/Image;>;
            0    9     5        copySizes  Z
    Signature: (II[Ljava/awt/geom/Dimension2D;Ljava/util/function/BiFunction<Ljava/lang/Integer;Ljava/lang/Integer;Ljava/awt/Image;>;Z)V
    MethodParameters:
                 Name  Flags
      baseImageWidth   
      baseImageHeight  
      sizes            
      mapper           
      copySizes        

  public java.awt.Image getResolutionVariant(double, double);
    descriptor: (DD)Ljava/awt/Image;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // double destWidth
        start local 3 // double destHeight
         0: .line 77
            dload 1 /* destWidth */
            dload 3 /* destHeight */
            invokestatic sun.awt.image.MultiResolutionCachedImage.checkSize:(DD)V
         1: .line 78
            dload 1 /* destWidth */
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 5 /* width */
        start local 5 // int width
         2: .line 79
            dload 3 /* destHeight */
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 6 /* height */
        start local 6 // int height
         3: .line 80
            invokestatic sun.awt.image.ImageCache.getInstance:()Lsun/awt/image/ImageCache;
            astore 7 /* cache */
        start local 7 // sun.awt.image.ImageCache cache
         4: .line 81
            new sun.awt.image.MultiResolutionCachedImage$ImageCacheKey
            dup
            aload 0 /* this */
            iload 5 /* width */
            iload 6 /* height */
            invokespecial sun.awt.image.MultiResolutionCachedImage$ImageCacheKey.<init>:(Ljava/awt/Image;II)V
            astore 8 /* key */
        start local 8 // sun.awt.image.MultiResolutionCachedImage$ImageCacheKey key
         5: .line 82
            aload 7 /* cache */
            aload 8 /* key */
            invokevirtual sun.awt.image.ImageCache.getImage:(Lsun/awt/image/ImageCache$PixelsKey;)Ljava/awt/Image;
            astore 9 /* resolutionVariant */
        start local 9 // java.awt.Image resolutionVariant
         6: .line 83
            aload 9 /* resolutionVariant */
            ifnonnull 9
         7: .line 84
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionCachedImage.mapper:Ljava/util/function/BiFunction;
            iload 5 /* width */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 6 /* height */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.Image
            astore 9 /* resolutionVariant */
         8: .line 85
            aload 7 /* cache */
            aload 8 /* key */
            aload 9 /* resolutionVariant */
            invokevirtual sun.awt.image.ImageCache.setImage:(Lsun/awt/image/ImageCache$PixelsKey;Ljava/awt/Image;)V
         9: .line 87
      StackMap locals: sun.awt.image.MultiResolutionCachedImage double double int int sun.awt.image.ImageCache sun.awt.image.MultiResolutionCachedImage$ImageCacheKey java.awt.Image
      StackMap stack:
            aload 9 /* resolutionVariant */
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionCachedImage.availableInfo:I
            invokestatic sun.awt.image.MultiResolutionCachedImage.preload:(Ljava/awt/Image;I)V
        10: .line 88
            aload 9 /* resolutionVariant */
            areturn
        end local 9 // java.awt.Image resolutionVariant
        end local 8 // sun.awt.image.MultiResolutionCachedImage$ImageCacheKey key
        end local 7 // sun.awt.image.ImageCache cache
        end local 6 // int height
        end local 5 // int width
        end local 3 // double destHeight
        end local 1 // double destWidth
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0               this  Lsun/awt/image/MultiResolutionCachedImage;
            0   11     1          destWidth  D
            0   11     3         destHeight  D
            2   11     5              width  I
            3   11     6             height  I
            4   11     7              cache  Lsun/awt/image/ImageCache;
            5   11     8                key  Lsun/awt/image/MultiResolutionCachedImage$ImageCacheKey;
            6   11     9  resolutionVariant  Ljava/awt/Image;
    MethodParameters:
            Name  Flags
      destWidth   
      destHeight  

  private static void checkSize(double, double);
    descriptor: (DD)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // double width
        start local 2 // double height
         0: .line 92
            dload 0 /* width */
            dconst_0
            dcmpg
            ifle 1
            dload 2 /* height */
            dconst_0
            dcmpg
            ifgt 4
         1: .line 93
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         2: .line 94
            ldc "Width (%s) or height (%s) cannot be <= 0"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            dload 0 /* width */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 2 /* height */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
         3: .line 93
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 97
      StackMap locals:
      StackMap stack:
            dload 0 /* width */
            invokestatic java.lang.Double.isFinite:(D)Z
            ifeq 5
            dload 2 /* height */
            invokestatic java.lang.Double.isFinite:(D)Z
            ifne 8
         5: .line 98
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         6: .line 99
            ldc "Width (%s) or height (%s) is not finite"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            dload 0 /* width */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 2 /* height */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
         7: .line 98
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 101
      StackMap locals:
      StackMap stack:
            return
        end local 2 // double height
        end local 0 // double width
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0   width  D
            0    9     2  height  D
    MethodParameters:
        Name  Flags
      width   
      height  

  public java.util.List<java.awt.Image> getResolutionVariants();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
         0: .line 105
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionCachedImage.sizes:[Ljava/awt/geom/Dimension2D;
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic apply(Lsun/awt/image/MultiResolutionCachedImage;)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;
                  sun/awt/image/MultiResolutionCachedImage.lambda$0(Ljava/awt/geom/Dimension2D;)Ljava/awt/Image; (7)
                  (Ljava/awt/geom/Dimension2D;)Ljava/awt/Image;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 107
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         2: .line 105
            areturn
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/awt/image/MultiResolutionCachedImage;
    Signature: ()Ljava/util/List<Ljava/awt/Image;>;

  public sun.awt.image.MultiResolutionCachedImage map(java.util.function.Function<java.awt.Image, java.awt.Image>);
    descriptor: (Ljava/util/function/Function;)Lsun/awt/image/MultiResolutionCachedImage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // java.util.function.Function mapper
         0: .line 111
            new sun.awt.image.MultiResolutionCachedImage
            dup
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionCachedImage.baseImageWidth:I
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionCachedImage.baseImageHeight:I
         1: .line 112
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionCachedImage.sizes:[Ljava/awt/geom/Dimension2D;
            aload 0 /* this */
            aload 1 /* mapper */
            invokedynamic apply(Lsun/awt/image/MultiResolutionCachedImage;Ljava/util/function/Function;)Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  sun/awt/image/MultiResolutionCachedImage.lambda$1(Ljava/util/function/Function;Ljava/lang/Integer;Ljava/lang/Integer;)Ljava/awt/Image; (7)
                  (Ljava/lang/Integer;Ljava/lang/Integer;)Ljava/awt/Image;
         2: .line 111
            invokespecial sun.awt.image.MultiResolutionCachedImage.<init>:(II[Ljava/awt/geom/Dimension2D;Ljava/util/function/BiFunction;)V
            areturn
        end local 1 // java.util.function.Function mapper
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/awt/image/MultiResolutionCachedImage;
            0    3     1  mapper  Ljava/util/function/Function<Ljava/awt/Image;Ljava/awt/Image;>;
    Signature: (Ljava/util/function/Function<Ljava/awt/Image;Ljava/awt/Image;>;)Lsun/awt/image/MultiResolutionCachedImage;
    MethodParameters:
        Name  Flags
      mapper  

  public static java.awt.Image map(java.awt.image.MultiResolutionImage, java.util.function.Function<java.awt.Image, java.awt.Image>);
    descriptor: (Ljava/awt/image/MultiResolutionImage;Ljava/util/function/Function;)Ljava/awt/Image;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // java.awt.image.MultiResolutionImage mrImage
        start local 1 // java.util.function.Function mapper
         0: .line 119
            aload 0 /* mrImage */
            instanceof sun.awt.image.MultiResolutionToolkitImage
            ifeq 4
         1: .line 121
            aload 0 /* mrImage */
            checkcast sun.awt.image.MultiResolutionToolkitImage
         2: .line 120
            astore 2 /* mrtImage */
        start local 2 // sun.awt.image.MultiResolutionToolkitImage mrtImage
         3: .line 122
            aload 2 /* mrtImage */
            aload 1 /* mapper */
            invokestatic sun.awt.image.MultiResolutionToolkitImage.map:(Lsun/awt/image/MultiResolutionToolkitImage;Ljava/util/function/Function;)Ljava/awt/Image;
            areturn
        end local 2 // sun.awt.image.MultiResolutionToolkitImage mrtImage
         4: .line 126
      StackMap locals:
      StackMap stack:
            aload 1 /* mapper */
            aload 0 /* mrImage */
            invokedynamic apply(Ljava/util/function/Function;Ljava/awt/image/MultiResolutionImage;)Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  sun/awt/image/MultiResolutionCachedImage.lambda$2(Ljava/util/function/Function;Ljava/awt/image/MultiResolutionImage;Ljava/lang/Integer;Ljava/lang/Integer;)Ljava/awt/Image; (6)
                  (Ljava/lang/Integer;Ljava/lang/Integer;)Ljava/awt/Image;
         5: .line 125
            astore 2 /* sizeMapper */
        start local 2 // java.util.function.BiFunction sizeMapper
         6: .line 128
            aload 0 /* mrImage */
            instanceof sun.awt.image.MultiResolutionCachedImage
            ifeq 15
         7: .line 130
            aload 0 /* mrImage */
            checkcast sun.awt.image.MultiResolutionCachedImage
         8: .line 129
            astore 3 /* mrcImage */
        start local 3 // sun.awt.image.MultiResolutionCachedImage mrcImage
         9: .line 132
            new sun.awt.image.MultiResolutionCachedImage
            dup
            aload 3 /* mrcImage */
            getfield sun.awt.image.MultiResolutionCachedImage.baseImageWidth:I
        10: .line 133
            aload 3 /* mrcImage */
            getfield sun.awt.image.MultiResolutionCachedImage.baseImageHeight:I
        11: .line 134
            aload 3 /* mrcImage */
            getfield sun.awt.image.MultiResolutionCachedImage.sizes:[Ljava/awt/geom/Dimension2D;
        12: .line 135
            aload 2 /* sizeMapper */
        13: .line 136
            iconst_0
        14: .line 132
            invokespecial sun.awt.image.MultiResolutionCachedImage.<init>:(II[Ljava/awt/geom/Dimension2D;Ljava/util/function/BiFunction;Z)V
            areturn
        end local 3 // sun.awt.image.MultiResolutionCachedImage mrcImage
        15: .line 139
      StackMap locals: java.util.function.BiFunction
      StackMap stack:
            aload 0 /* mrImage */
            checkcast java.awt.Image
            astore 3 /* image */
        start local 3 // java.awt.Image image
        16: .line 140
            aload 3 /* image */
            aconst_null
            invokevirtual java.awt.Image.getWidth:(Ljava/awt/image/ImageObserver;)I
            istore 4 /* width */
        start local 4 // int width
        17: .line 141
            aload 3 /* image */
            aconst_null
            invokevirtual java.awt.Image.getHeight:(Ljava/awt/image/ImageObserver;)I
            istore 5 /* height */
        start local 5 // int height
        18: .line 142
            new sun.awt.image.MultiResolutionCachedImage
            dup
            iload 4 /* width */
            iload 5 /* height */
            aload 2 /* sizeMapper */
            invokespecial sun.awt.image.MultiResolutionCachedImage.<init>:(IILjava/util/function/BiFunction;)V
            areturn
        end local 5 // int height
        end local 4 // int width
        end local 3 // java.awt.Image image
        end local 2 // java.util.function.BiFunction sizeMapper
        end local 1 // java.util.function.Function mapper
        end local 0 // java.awt.image.MultiResolutionImage mrImage
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0     mrImage  Ljava/awt/image/MultiResolutionImage;
            0   19     1      mapper  Ljava/util/function/Function<Ljava/awt/Image;Ljava/awt/Image;>;
            3    4     2    mrtImage  Lsun/awt/image/MultiResolutionToolkitImage;
            6   19     2  sizeMapper  Ljava/util/function/BiFunction<Ljava/lang/Integer;Ljava/lang/Integer;Ljava/awt/Image;>;
            9   15     3    mrcImage  Lsun/awt/image/MultiResolutionCachedImage;
           16   19     3       image  Ljava/awt/Image;
           17   19     4       width  I
           18   19     5      height  I
    Signature: (Ljava/awt/image/MultiResolutionImage;Ljava/util/function/Function<Ljava/awt/Image;Ljava/awt/Image;>;)Ljava/awt/Image;
    MethodParameters:
         Name  Flags
      mrImage  
      mapper   

  public int getWidth(java.awt.image.ImageObserver);
    descriptor: (Ljava/awt/image/ImageObserver;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // java.awt.image.ImageObserver observer
         0: .line 147
            aload 0 /* this */
            aload 1 /* observer */
            iconst_1
            invokevirtual sun.awt.image.MultiResolutionCachedImage.updateInfo:(Ljava/awt/image/ImageObserver;I)V
         1: .line 148
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionCachedImage.baseImageWidth:I
            ireturn
        end local 1 // java.awt.image.ImageObserver observer
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/awt/image/MultiResolutionCachedImage;
            0    2     1  observer  Ljava/awt/image/ImageObserver;
    MethodParameters:
          Name  Flags
      observer  

  public int getHeight(java.awt.image.ImageObserver);
    descriptor: (Ljava/awt/image/ImageObserver;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // java.awt.image.ImageObserver observer
         0: .line 153
            aload 0 /* this */
            aload 1 /* observer */
            iconst_2
            invokevirtual sun.awt.image.MultiResolutionCachedImage.updateInfo:(Ljava/awt/image/ImageObserver;I)V
         1: .line 154
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionCachedImage.baseImageHeight:I
            ireturn
        end local 1 // java.awt.image.ImageObserver observer
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/awt/image/MultiResolutionCachedImage;
            0    2     1  observer  Ljava/awt/image/ImageObserver;
    MethodParameters:
          Name  Flags
      observer  

  public java.lang.Object getProperty(java.lang.String, java.awt.image.ImageObserver);
    descriptor: (Ljava/lang/String;Ljava/awt/image/ImageObserver;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // java.lang.String name
        start local 2 // java.awt.image.ImageObserver observer
         0: .line 159
            aload 0 /* this */
            aload 2 /* observer */
            iconst_4
            invokevirtual sun.awt.image.MultiResolutionCachedImage.updateInfo:(Ljava/awt/image/ImageObserver;I)V
         1: .line 160
            getstatic java.awt.Image.UndefinedProperty:Ljava/lang/Object;
            areturn
        end local 2 // java.awt.image.ImageObserver observer
        end local 1 // java.lang.String name
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/awt/image/MultiResolutionCachedImage;
            0    2     1      name  Ljava/lang/String;
            0    2     2  observer  Ljava/awt/image/ImageObserver;
    MethodParameters:
          Name  Flags
      name      
      observer  

  public java.awt.Image getScaledInstance(int, int, int);
    descriptor: (III)Ljava/awt/Image;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // int width
        start local 2 // int height
        start local 3 // int hints
         0: .line 165
            aload 0 /* this */
            iload 1 /* width */
            i2d
            iload 2 /* height */
            i2d
            invokevirtual sun.awt.image.MultiResolutionCachedImage.getResolutionVariant:(DD)Ljava/awt/Image;
            areturn
        end local 3 // int hints
        end local 2 // int height
        end local 1 // int width
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/awt/image/MultiResolutionCachedImage;
            0    1     1   width  I
            0    1     2  height  I
            0    1     3   hints  I
    MethodParameters:
        Name  Flags
      width   
      height  
      hints   

  protected java.awt.Image getBaseImage();
    descriptor: ()Ljava/awt/Image;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
         0: .line 170
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionCachedImage.baseImageWidth:I
            i2d
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionCachedImage.baseImageHeight:I
            i2d
            invokevirtual sun.awt.image.MultiResolutionCachedImage.getResolutionVariant:(DD)Ljava/awt/Image;
            areturn
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/image/MultiResolutionCachedImage;

  private void updateInfo(java.awt.image.ImageObserver, int);
    descriptor: (Ljava/awt/image/ImageObserver;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // java.awt.image.ImageObserver observer
        start local 2 // int info
         0: .line 174
            aload 0 /* this */
            dup
            getfield sun.awt.image.MultiResolutionCachedImage.availableInfo:I
            aload 1 /* observer */
            ifnonnull 1
            bipush 32
            goto 2
      StackMap locals: sun.awt.image.MultiResolutionCachedImage java.awt.image.ImageObserver int
      StackMap stack: sun.awt.image.MultiResolutionCachedImage int
         1: iload 2 /* info */
      StackMap locals: sun.awt.image.MultiResolutionCachedImage java.awt.image.ImageObserver int
      StackMap stack: sun.awt.image.MultiResolutionCachedImage int int
         2: ior
            putfield sun.awt.image.MultiResolutionCachedImage.availableInfo:I
         3: .line 175
            return
        end local 2 // int info
        end local 1 // java.awt.image.ImageObserver observer
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lsun/awt/image/MultiResolutionCachedImage;
            0    4     1  observer  Ljava/awt/image/ImageObserver;
            0    4     2      info  I
    MethodParameters:
          Name  Flags
      observer  
      info      

  private static int getInfo(java.awt.Image);
    descriptor: (Ljava/awt/Image;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.awt.Image image
         0: .line 178
            aload 0 /* image */
            instanceof sun.awt.image.ToolkitImage
            ifeq 4
         1: .line 179
            aload 0 /* image */
            checkcast sun.awt.image.ToolkitImage
            invokevirtual sun.awt.image.ToolkitImage.getImageRep:()Lsun/awt/image/ImageRepresentation;
         2: .line 180
            invokedynamic imageUpdate()Ljava/awt/image/ImageObserver;
              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/awt/Image;IIIII)Z
                  sun/awt/image/MultiResolutionCachedImage.lambda$3(Ljava/awt/Image;IIIII)Z (6)
                  (Ljava/awt/Image;IIIII)Z
         3: .line 179
            invokevirtual sun.awt.image.ImageRepresentation.check:(Ljava/awt/image/ImageObserver;)I
            ireturn
         4: .line 182
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.awt.Image image
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  image  Ljava/awt/Image;
    MethodParameters:
       Name  Flags
      image  

  private static void preload(java.awt.Image, int);
    descriptor: (Ljava/awt/Image;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.awt.Image image
        start local 1 // int availableInfo
         0: .line 186
            iload 1 /* availableInfo */
            ifeq 2
            aload 0 /* image */
            instanceof sun.awt.image.ToolkitImage
            ifeq 2
         1: .line 187
            aload 0 /* image */
            checkcast sun.awt.image.ToolkitImage
            new sun.awt.image.MultiResolutionCachedImage$1
            dup
            iload 1 /* availableInfo */
            invokespecial sun.awt.image.MultiResolutionCachedImage$1.<init>:(I)V
            invokevirtual sun.awt.image.ToolkitImage.preload:(Ljava/awt/image/ImageObserver;)V
         2: .line 199
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int availableInfo
        end local 0 // java.awt.Image image
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0          image  Ljava/awt/Image;
            0    3     1  availableInfo  I
    MethodParameters:
               Name  Flags
      image          
      availableInfo  

  private java.awt.Image lambda$0(java.awt.geom.Dimension2D);
    descriptor: (Ljava/awt/geom/Dimension2D;)Ljava/awt/Image;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 1 // java.awt.geom.Dimension2D size
         0: .line 106
            aload 0 /* this */
            aload 1 /* size */
            invokevirtual java.awt.geom.Dimension2D.getWidth:()D
            aload 1 /* size */
            invokevirtual java.awt.geom.Dimension2D.getHeight:()D
            invokevirtual sun.awt.image.MultiResolutionCachedImage.getResolutionVariant:(DD)Ljava/awt/Image;
            areturn
        end local 1 // java.awt.geom.Dimension2D size
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/image/MultiResolutionCachedImage;
            0    1     1  size  Ljava/awt/geom/Dimension2D;

  private java.awt.Image lambda$1(java.util.function.Function, java.lang.Integer, java.lang.Integer);
    descriptor: (Ljava/util/function/Function;Ljava/lang/Integer;Ljava/lang/Integer;)Ljava/awt/Image;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // sun.awt.image.MultiResolutionCachedImage this
        start local 2 // java.lang.Integer width
        start local 3 // java.lang.Integer height
         0: .line 113
            aload 1
            aload 0 /* this */
            aload 2 /* width */
            invokevirtual java.lang.Integer.intValue:()I
            i2d
            aload 3 /* height */
            invokevirtual java.lang.Integer.intValue:()I
            i2d
            invokevirtual sun.awt.image.MultiResolutionCachedImage.getResolutionVariant:(DD)Ljava/awt/Image;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.Image
            areturn
        end local 3 // java.lang.Integer height
        end local 2 // java.lang.Integer width
        end local 0 // sun.awt.image.MultiResolutionCachedImage this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/awt/image/MultiResolutionCachedImage;
            0    1     2   width  Ljava/lang/Integer;
            0    1     3  height  Ljava/lang/Integer;

  private static java.awt.Image lambda$2(java.util.function.Function, java.awt.image.MultiResolutionImage, java.lang.Integer, java.lang.Integer);
    descriptor: (Ljava/util/function/Function;Ljava/awt/image/MultiResolutionImage;Ljava/lang/Integer;Ljava/lang/Integer;)Ljava/awt/Image;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=4, args_size=4
        start local 2 // java.lang.Integer w
        start local 3 // java.lang.Integer h
         0: .line 126
            aload 0
            aload 1
            aload 2 /* w */
            invokevirtual java.lang.Integer.intValue:()I
            i2d
            aload 3 /* h */
            invokevirtual java.lang.Integer.intValue:()I
            i2d
            invokeinterface java.awt.image.MultiResolutionImage.getResolutionVariant:(DD)Ljava/awt/Image;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.Image
            areturn
        end local 3 // java.lang.Integer h
        end local 2 // java.lang.Integer w
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2     w  Ljava/lang/Integer;
            0    1     3     h  Ljava/lang/Integer;

  private static boolean lambda$3(java.awt.Image, int, int, int, int, int);
    descriptor: (Ljava/awt/Image;IIIII)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=6, args_size=6
        start local 0 // java.awt.Image img
        start local 1 // int infoflags
        start local 2 // int x
        start local 3 // int y
        start local 4 // int w
        start local 5 // int h
         0: .line 180
            iconst_0
            ireturn
        end local 5 // int h
        end local 4 // int w
        end local 3 // int y
        end local 2 // int x
        end local 1 // int infoflags
        end local 0 // java.awt.Image img
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0        img  Ljava/awt/Image;
            0    1     1  infoflags  I
            0    1     2          x  I
            0    1     3          y  I
            0    1     4          w  I
            0    1     5          h  I
}
SourceFile: "MultiResolutionCachedImage.java"
NestMembers:
  sun.awt.image.MultiResolutionCachedImage$1  sun.awt.image.MultiResolutionCachedImage$ImageCacheKey
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract PixelsKey = sun.awt.image.ImageCache$PixelsKey of sun.awt.image.ImageCache
  sun.awt.image.MultiResolutionCachedImage$1
  private ImageCacheKey = sun.awt.image.MultiResolutionCachedImage$ImageCacheKey of sun.awt.image.MultiResolutionCachedImage