class com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette extends com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbUncompressed
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette
  super_class: com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbUncompressed
{
  private static final int PALETTE_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 768

  final com.sun.imageio.plugins.jpeg.JFIFMarkerSegment this$0;
    descriptor: Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.sun.imageio.plugins.jpeg.JFIFMarkerSegment, com.sun.imageio.plugins.jpeg.JPEGBuffer, int, int);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;Lcom/sun/imageio/plugins/jpeg/JPEGBuffer;II)V
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
        start local 2 // com.sun.imageio.plugins.jpeg.JPEGBuffer buffer
        start local 3 // int width
        start local 4 // int height
         0: .line 1031
            aload 0 /* this */
            aload 1
            putfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.this$0:Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
         1: .line 1032
            aload 0 /* this */
            aload 1
            aload 2 /* buffer */
         2: .line 1033
            iload 3 /* width */
         3: .line 1034
            iload 4 /* height */
         4: .line 1035
            sipush 768
            iload 3 /* width */
            iload 4 /* height */
            imul
            iadd
         5: .line 1036
            ldc "JFIFThumbPalette"
            invokespecial com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbUncompressed.<init>:(Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;Lcom/sun/imageio/plugins/jpeg/JPEGBuffer;IIILjava/lang/String;)V
         6: .line 1037
            return
        end local 4 // int height
        end local 3 // int width
        end local 2 // com.sun.imageio.plugins.jpeg.JPEGBuffer buffer
        end local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment$JFIFThumbPalette;
            0    7     2  buffer  Lcom/sun/imageio/plugins/jpeg/JPEGBuffer;
            0    7     3   width  I
            0    7     4  height  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      this$0  final
      buffer  
      width   
      height  

  void <init>(com.sun.imageio.plugins.jpeg.JFIFMarkerSegment, org.w3c.dom.Node);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;Lorg/w3c/dom/Node;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
        start local 2 // org.w3c.dom.Node node
         0: .line 1039
            aload 0 /* this */
            aload 1
            putfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.this$0:Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
         1: .line 1040
            aload 0 /* this */
            aload 1
            aload 2 /* node */
            ldc "JFIFThumbPalette"
            invokespecial com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbUncompressed.<init>:(Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;Lorg/w3c/dom/Node;Ljava/lang/String;)V
         2: .line 1041
            return
        end local 2 // org.w3c.dom.Node node
        end local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment$JFIFThumbPalette;
            0    3     2  node  Lorg/w3c/dom/Node;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
        Name  Flags
      this$0  final
      node    

  void <init>(com.sun.imageio.plugins.jpeg.JFIFMarkerSegment, java.awt.image.BufferedImage);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;Ljava/awt/image/BufferedImage;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
        start local 2 // java.awt.image.BufferedImage thumb
         0: .line 1043
            aload 0 /* this */
            aload 1
            putfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.this$0:Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
         1: .line 1044
            aload 0 /* this */
            aload 1
            aload 2 /* thumb */
            invokespecial com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbUncompressed.<init>:(Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;Ljava/awt/image/BufferedImage;)V
         2: .line 1045
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.thumbnail:Ljava/awt/image/BufferedImage;
            invokevirtual java.awt.image.BufferedImage.getColorModel:()Ljava/awt/image/ColorModel;
            checkcast java.awt.image.IndexColorModel
            astore 3 /* icm */
        start local 3 // java.awt.image.IndexColorModel icm
         3: .line 1046
            aload 3 /* icm */
            invokevirtual java.awt.image.IndexColorModel.getMapSize:()I
            sipush 256
            if_icmple 5
         4: .line 1047
            new com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$IllegalThumbException
            dup
            aload 1
            invokespecial com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$IllegalThumbException.<init>:(Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;)V
            athrow
         5: .line 1049
      StackMap locals: com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette com.sun.imageio.plugins.jpeg.JFIFMarkerSegment java.awt.image.BufferedImage java.awt.image.IndexColorModel
      StackMap stack:
            return
        end local 3 // java.awt.image.IndexColorModel icm
        end local 2 // java.awt.image.BufferedImage thumb
        end local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment$JFIFThumbPalette;
            0    6     2  thumb  Ljava/awt/image/BufferedImage;
            3    6     3    icm  Ljava/awt/image/IndexColorModel;
    Exceptions:
      throws com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$IllegalThumbException
    MethodParameters:
        Name  Flags
      this$0  final
      thumb   

  int getLength();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
         0: .line 1052
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.thumbWidth:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.thumbHeight:I
            imul
            sipush 768
            iadd
            ireturn
        end local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment$JFIFThumbPalette;

  java.awt.image.BufferedImage getThumbnail(javax.imageio.stream.ImageInputStream, com.sun.imageio.plugins.jpeg.JPEGImageReader);
    descriptor: (Ljavax/imageio/stream/ImageInputStream;Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;)Ljava/awt/image/BufferedImage;
    flags: (0x0000) 
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
        start local 1 // javax.imageio.stream.ImageInputStream iis
        start local 2 // com.sun.imageio.plugins.jpeg.JPEGImageReader reader
         0: .line 1058
            aload 1 /* iis */
            invokeinterface javax.imageio.stream.ImageInputStream.mark:()V
         1: .line 1059
            aload 1 /* iis */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.streamPos:J
            invokeinterface javax.imageio.stream.ImageInputStream.seek:(J)V
         2: .line 1061
            sipush 768
            newarray 8
            astore 3 /* palette */
        start local 3 // byte[] palette
         3: .line 1062
            ldc 768.0
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.getLength:()I
            i2f
            fdiv
            fstore 4 /* palettePart */
        start local 4 // float palettePart
         4: .line 1063
            aload 0 /* this */
            aload 1 /* iis */
         5: .line 1064
            aload 3 /* palette */
         6: .line 1065
            aload 2 /* reader */
         7: .line 1066
            fload 4 /* palettePart */
         8: .line 1067
            fconst_0
         9: .line 1063
            invokevirtual com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.readByteBuffer:(Ljavax/imageio/stream/ImageInputStream;[BLcom/sun/imageio/plugins/jpeg/JPEGImageReader;FF)V
        10: .line 1068
            new java.awt.image.DataBufferByte
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.thumbWidth:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.thumbHeight:I
            imul
            invokespecial java.awt.image.DataBufferByte.<init>:(I)V
            astore 5 /* buffer */
        start local 5 // java.awt.image.DataBufferByte buffer
        11: .line 1069
            aload 0 /* this */
            aload 1 /* iis */
        12: .line 1070
            aload 5 /* buffer */
            invokevirtual java.awt.image.DataBufferByte.getData:()[B
        13: .line 1071
            aload 2 /* reader */
        14: .line 1072
            fconst_1
            fload 4 /* palettePart */
            fsub
        15: .line 1073
            fload 4 /* palettePart */
        16: .line 1069
            invokevirtual com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.readByteBuffer:(Ljavax/imageio/stream/ImageInputStream;[BLcom/sun/imageio/plugins/jpeg/JPEGImageReader;FF)V
        17: .line 1074
            aload 1 /* iis */
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            pop
        18: .line 1075
            aload 1 /* iis */
            invokeinterface javax.imageio.stream.ImageInputStream.reset:()V
        19: .line 1077
            new java.awt.image.IndexColorModel
            dup
            bipush 8
        20: .line 1078
            sipush 256
        21: .line 1079
            aload 3 /* palette */
        22: .line 1080
            iconst_0
        23: .line 1081
            iconst_0
        24: .line 1077
            invokespecial java.awt.image.IndexColorModel.<init>:(II[BIZ)V
            astore 6 /* cm */
        start local 6 // java.awt.image.IndexColorModel cm
        25: .line 1082
            aload 6 /* cm */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.thumbWidth:I
        26: .line 1083
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.thumbHeight:I
        27: .line 1082
            invokevirtual java.awt.image.IndexColorModel.createCompatibleSampleModel:(II)Ljava/awt/image/SampleModel;
            astore 7 /* sm */
        start local 7 // java.awt.image.SampleModel sm
        28: .line 1085
            aload 7 /* sm */
            aload 5 /* buffer */
            aconst_null
            invokestatic java.awt.image.Raster.createWritableRaster:(Ljava/awt/image/SampleModel;Ljava/awt/image/DataBuffer;Ljava/awt/Point;)Ljava/awt/image/WritableRaster;
        29: .line 1084
            astore 8 /* raster */
        start local 8 // java.awt.image.WritableRaster raster
        30: .line 1086
            new java.awt.image.BufferedImage
            dup
            aload 6 /* cm */
        31: .line 1087
            aload 8 /* raster */
        32: .line 1088
            iconst_0
        33: .line 1089
            aconst_null
        34: .line 1086
            invokespecial java.awt.image.BufferedImage.<init>:(Ljava/awt/image/ColorModel;Ljava/awt/image/WritableRaster;ZLjava/util/Hashtable;)V
            areturn
        end local 8 // java.awt.image.WritableRaster raster
        end local 7 // java.awt.image.SampleModel sm
        end local 6 // java.awt.image.IndexColorModel cm
        end local 5 // java.awt.image.DataBufferByte buffer
        end local 4 // float palettePart
        end local 3 // byte[] palette
        end local 2 // com.sun.imageio.plugins.jpeg.JPEGImageReader reader
        end local 1 // javax.imageio.stream.ImageInputStream iis
        end local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0         this  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment$JFIFThumbPalette;
            0   35     1          iis  Ljavax/imageio/stream/ImageInputStream;
            0   35     2       reader  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            3   35     3      palette  [B
            4   35     4  palettePart  F
           11   35     5       buffer  Ljava/awt/image/DataBufferByte;
           25   35     6           cm  Ljava/awt/image/IndexColorModel;
           28   35     7           sm  Ljava/awt/image/SampleModel;
           30   35     8       raster  Ljava/awt/image/WritableRaster;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      iis     
      reader  

  void write(javax.imageio.stream.ImageOutputStream, com.sun.imageio.plugins.jpeg.JPEGImageWriter);
    descriptor: (Ljavax/imageio/stream/ImageOutputStream;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
        start local 1 // javax.imageio.stream.ImageOutputStream ios
        start local 2 // com.sun.imageio.plugins.jpeg.JPEGImageWriter writer
         0: .line 1094
            aload 0 /* this */
            aload 1 /* ios */
            aload 2 /* writer */
            invokespecial com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbUncompressed.write:(Ljavax/imageio/stream/ImageOutputStream;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
         1: .line 1096
            sipush 768
            newarray 8
            astore 3 /* palette */
        start local 3 // byte[] palette
         2: .line 1097
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.thumbnail:Ljava/awt/image/BufferedImage;
            invokevirtual java.awt.image.BufferedImage.getColorModel:()Ljava/awt/image/ColorModel;
            checkcast java.awt.image.IndexColorModel
            astore 4 /* icm */
        start local 4 // java.awt.image.IndexColorModel icm
         3: .line 1098
            sipush 256
            newarray 8
            astore 5 /* reds */
        start local 5 // byte[] reds
         4: .line 1099
            sipush 256
            newarray 8
            astore 6 /* greens */
        start local 6 // byte[] greens
         5: .line 1100
            sipush 256
            newarray 8
            astore 7 /* blues */
        start local 7 // byte[] blues
         6: .line 1101
            aload 4 /* icm */
            aload 5 /* reds */
            invokevirtual java.awt.image.IndexColorModel.getReds:([B)V
         7: .line 1102
            aload 4 /* icm */
            aload 6 /* greens */
            invokevirtual java.awt.image.IndexColorModel.getGreens:([B)V
         8: .line 1103
            aload 4 /* icm */
            aload 7 /* blues */
            invokevirtual java.awt.image.IndexColorModel.getBlues:([B)V
         9: .line 1104
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        10: goto 15
        11: .line 1105
      StackMap locals: com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette javax.imageio.stream.ImageOutputStream com.sun.imageio.plugins.jpeg.JPEGImageWriter byte[] java.awt.image.IndexColorModel byte[] byte[] byte[] int
      StackMap stack:
            aload 3 /* palette */
            iload 8 /* i */
            iconst_3
            imul
            aload 5 /* reds */
            iload 8 /* i */
            baload
            bastore
        12: .line 1106
            aload 3 /* palette */
            iload 8 /* i */
            iconst_3
            imul
            iconst_1
            iadd
            aload 6 /* greens */
            iload 8 /* i */
            baload
            bastore
        13: .line 1107
            aload 3 /* palette */
            iload 8 /* i */
            iconst_3
            imul
            iconst_2
            iadd
            aload 7 /* blues */
            iload 8 /* i */
            baload
            bastore
        14: .line 1104
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 8 /* i */
            sipush 256
            if_icmplt 11
        end local 8 // int i
        16: .line 1109
            aload 1 /* ios */
            aload 3 /* palette */
            invokeinterface javax.imageio.stream.ImageOutputStream.write:([B)V
        17: .line 1110
            aload 0 /* this */
            aload 1 /* ios */
            aload 2 /* writer */
            invokevirtual com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette.writePixels:(Ljavax/imageio/stream/ImageOutputStream;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
        18: .line 1111
            return
        end local 7 // byte[] blues
        end local 6 // byte[] greens
        end local 5 // byte[] reds
        end local 4 // java.awt.image.IndexColorModel icm
        end local 3 // byte[] palette
        end local 2 // com.sun.imageio.plugins.jpeg.JPEGImageWriter writer
        end local 1 // javax.imageio.stream.ImageOutputStream ios
        end local 0 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment$JFIFThumbPalette;
            0   19     1      ios  Ljavax/imageio/stream/ImageOutputStream;
            0   19     2   writer  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            2   19     3  palette  [B
            3   19     4      icm  Ljava/awt/image/IndexColorModel;
            4   19     5     reds  [B
            5   19     6   greens  [B
            6   19     7    blues  [B
           10   16     8        i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      ios     
      writer  
}
SourceFile: "JFIFMarkerSegment.java"
NestHost: com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
InnerClasses:
  private IllegalThumbException = com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$IllegalThumbException of com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
  JFIFThumbPalette = com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbPalette of com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
  abstract JFIFThumbUncompressed = com.sun.imageio.plugins.jpeg.JFIFMarkerSegment$JFIFThumbUncompressed of com.sun.imageio.plugins.jpeg.JFIFMarkerSegment