class sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule
  super_class: java.lang.Object
{
  private final int month;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final byte dom;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final boolean timeEndOfDay;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

  void <init>(java.io.DataInput);
    descriptor: (Ljava/io/DataInput;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule this
        start local 1 // java.io.DataInput in
         0: .line 897
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 898
            aload 1 /* in */
            invokeinterface java.io.DataInput.readInt:()I
            istore 2 /* data */
        start local 2 // int data
         2: .line 899
            iload 2 /* data */
            ldc 3670016
            iand
            bipush 19
            iushr
            istore 3 /* dowByte */
        start local 3 // int dowByte
         3: .line 900
            iload 2 /* data */
            ldc 507904
            iand
            bipush 14
            iushr
            istore 4 /* timeByte */
        start local 4 // int timeByte
         4: .line 901
            iload 2 /* data */
            sipush 4080
            iand
            iconst_4
            iushr
            istore 5 /* stdByte */
        start local 5 // int stdByte
         5: .line 902
            iload 2 /* data */
            bipush 12
            iand
            iconst_2
            iushr
            istore 6 /* beforeByte */
        start local 6 // int beforeByte
         6: .line 903
            iload 2 /* data */
            iconst_3
            iand
            istore 7 /* afterByte */
        start local 7 // int afterByte
         7: .line 905
            aload 0 /* this */
            iload 2 /* data */
            bipush 28
            iushr
            putfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.month:I
         8: .line 906
            aload 0 /* this */
            iload 2 /* data */
            ldc 264241152
            iand
            bipush 22
            iushr
            bipush 32
            isub
            i2b
            putfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.dom:B
         9: .line 907
            aload 0 /* this */
            iload 3 /* dowByte */
            ifne 10
            iconst_m1
            goto 11
      StackMap locals: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule java.io.DataInput int int int int int int
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule
        10: iload 3 /* dowByte */
      StackMap locals: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule java.io.DataInput int int int int int int
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule int
        11: putfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.dow:I
        12: .line 908
            aload 0 /* this */
            iload 4 /* timeByte */
            bipush 31
            if_icmpne 13
            aload 1 /* in */
            invokeinterface java.io.DataInput.readInt:()I
            goto 14
      StackMap locals:
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule
        13: iload 4 /* timeByte */
            sipush 3600
            imul
      StackMap locals: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule java.io.DataInput int int int int int int
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule int
        14: putfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.secondOfDay:I
        15: .line 909
            aload 0 /* this */
            iload 4 /* timeByte */
            bipush 24
            if_icmpne 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule
        16: iconst_0
      StackMap locals: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule java.io.DataInput int int int int int int
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule int
        17: putfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.timeEndOfDay:Z
        18: .line 910
            aload 0 /* this */
            iload 2 /* data */
            sipush 12288
            iand
            bipush 12
            iushr
            putfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.timeDefinition:I
        19: .line 912
            aload 0 /* this */
            iload 5 /* stdByte */
            sipush 255
            if_icmpne 20
            aload 1 /* in */
            invokeinterface java.io.DataInput.readInt:()I
            goto 21
      StackMap locals:
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule
        20: iload 5 /* stdByte */
            sipush 128
            isub
            sipush 900
            imul
      StackMap locals: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule java.io.DataInput int int int int int int
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule int
        21: putfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.standardOffset:I
        22: .line 913
            aload 0 /* this */
            iload 6 /* beforeByte */
            iconst_3
            if_icmpne 23
            aload 1 /* in */
            invokeinterface java.io.DataInput.readInt:()I
            goto 24
      StackMap locals:
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule
        23: aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.standardOffset:I
            iload 6 /* beforeByte */
            sipush 1800
            imul
            iadd
      StackMap locals: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule java.io.DataInput int int int int int int
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule int
        24: putfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.offsetBefore:I
        25: .line 914
            aload 0 /* this */
            iload 7 /* afterByte */
            iconst_3
            if_icmpne 26
            aload 1 /* in */
            invokeinterface java.io.DataInput.readInt:()I
            goto 27
      StackMap locals:
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule
        26: aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.standardOffset:I
            iload 7 /* afterByte */
            sipush 1800
            imul
            iadd
      StackMap locals: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule java.io.DataInput int int int int int int
      StackMap stack: sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule int
        27: putfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.offsetAfter:I
        28: .line 915
            return
        end local 7 // int afterByte
        end local 6 // int beforeByte
        end local 5 // int stdByte
        end local 4 // int timeByte
        end local 3 // int dowByte
        end local 2 // int data
        end local 1 // java.io.DataInput in
        end local 0 // sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0        this  Lsun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule;
            0   29     1          in  Ljava/io/DataInput;
            2   29     2        data  I
            3   29     3     dowByte  I
            4   29     4    timeByte  I
            5   29     5     stdByte  I
            6   29     6  beforeByte  I
            7   29     7   afterByte  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  long getTransitionEpochSecond(int);
    descriptor: (I)J
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule this
        start local 1 // int year
         0: .line 918
            lconst_0
            lstore 2 /* epochDay */
        start local 2 // long epochDay
         1: .line 919
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.dom:B
            ifge 6
         2: .line 920
            iload 1 /* year */
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.month:I
            iload 1 /* year */
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.month:I
            invokestatic sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.lengthOfMonth:(II)I
            iconst_1
            iadd
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.dom:B
            iadd
            invokestatic sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.toEpochDay:(III)J
            lstore 2 /* epochDay */
         3: .line 921
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.dow:I
            iconst_m1
            if_icmpeq 9
         4: .line 922
            lload 2 /* epochDay */
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.dow:I
            invokestatic sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.previousOrSame:(JI)J
            lstore 2 /* epochDay */
         5: .line 924
            goto 9
         6: .line 925
      StackMap locals: long
      StackMap stack:
            iload 1 /* year */
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.month:I
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.dom:B
            invokestatic sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.toEpochDay:(III)J
            lstore 2 /* epochDay */
         7: .line 926
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.dow:I
            iconst_m1
            if_icmpeq 9
         8: .line 927
            lload 2 /* epochDay */
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.dow:I
            invokestatic sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.nextOrSame:(JI)J
            lstore 2 /* epochDay */
         9: .line 930
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.timeEndOfDay:Z
            ifeq 11
        10: .line 931
            lload 2 /* epochDay */
            lconst_1
            ladd
            lstore 2 /* epochDay */
        11: .line 933
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* difference */
        start local 4 // int difference
        12: .line 934
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.timeDefinition:I
            tableswitch { // 0 - 2
                    0: 13
                    1: 15
                    2: 17
              default: 18
          }
        13: .line 936
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* difference */
        14: .line 937
            goto 18
        15: .line 939
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.offsetBefore:I
            ineg
            istore 4 /* difference */
        16: .line 940
            goto 18
        17: .line 942
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.standardOffset:I
            ineg
            istore 4 /* difference */
        18: .line 945
      StackMap locals:
      StackMap stack:
            lload 2 /* epochDay */
            ldc 86400
            lmul
            aload 0 /* this */
            getfield sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.secondOfDay:I
            i2l
            ladd
            iload 4 /* difference */
            i2l
            ladd
            lreturn
        end local 4 // int difference
        end local 2 // long epochDay
        end local 1 // int year
        end local 0 // sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lsun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule;
            0   19     1        year  I
            1   19     2    epochDay  J
           12   19     4  difference  I
    MethodParameters:
      Name  Flags
      year  

  static final boolean isLeapYear(int);
    descriptor: (I)Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int year
         0: .line 949
            iload 0 /* year */
            iconst_3
            iand
            ifne 2
            iload 0 /* year */
            bipush 100
            irem
            ifne 1
            iload 0 /* year */
            sipush 400
            irem
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // int year
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  year  I
    MethodParameters:
      Name  Flags
      year  

  static final int lengthOfMonth(int, int);
    descriptor: (II)I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // int year
        start local 1 // int month
         0: .line 953
            iload 1 /* month */
            tableswitch { // 2 - 11
                    2: 1
                    3: 5
                    4: 4
                    5: 5
                    6: 4
                    7: 5
                    8: 5
                    9: 4
                   10: 5
                   11: 4
              default: 5
          }
         1: .line 955
      StackMap locals:
      StackMap stack:
            iload 0 /* year */
            invokestatic sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.isLeapYear:(I)Z
            ifeq 2
            bipush 29
            goto 3
      StackMap locals:
      StackMap stack:
         2: bipush 28
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 960
      StackMap locals:
      StackMap stack:
            bipush 30
            ireturn
         5: .line 962
      StackMap locals:
      StackMap stack:
            bipush 31
            ireturn
        end local 1 // int month
        end local 0 // int year
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   year  I
            0    6     1  month  I
    MethodParameters:
       Name  Flags
      year   
      month  

  static final long toEpochDay(int, int, int);
    descriptor: (III)J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Code:
      stack=8, locals=9, args_size=3
        start local 0 // int year
        start local 1 // int month
        start local 2 // int day
         0: .line 967
            iload 0 /* year */
            i2l
            lstore 3 /* y */
        start local 3 // long y
         1: .line 968
            iload 1 /* month */
            i2l
            lstore 5 /* m */
        start local 5 // long m
         2: .line 969
            lconst_0
            lstore 7 /* total */
        start local 7 // long total
         3: .line 970
            lload 7 /* total */
            ldc 365
            lload 3 /* y */
            lmul
            ladd
            lstore 7 /* total */
         4: .line 971
            lload 3 /* y */
            lconst_0
            lcmp
            iflt 7
         5: .line 972
            lload 7 /* total */
            lload 3 /* y */
            ldc 3
            ladd
            ldc 4
            ldiv
            lload 3 /* y */
            ldc 99
            ladd
            ldc 100
            ldiv
            lsub
            lload 3 /* y */
            ldc 399
            ladd
            ldc 400
            ldiv
            ladd
            ladd
            lstore 7 /* total */
         6: .line 973
            goto 8
         7: .line 974
      StackMap locals: long long long
      StackMap stack:
            lload 7 /* total */
            lload 3 /* y */
            ldc -4
            ldiv
            lload 3 /* y */
            ldc -100
            ldiv
            lsub
            lload 3 /* y */
            ldc -400
            ldiv
            ladd
            lsub
            lstore 7 /* total */
         8: .line 976
      StackMap locals:
      StackMap stack:
            lload 7 /* total */
            ldc 367
            lload 5 /* m */
            lmul
            ldc 362
            lsub
            ldc 12
            ldiv
            ladd
            lstore 7 /* total */
         9: .line 977
            lload 7 /* total */
            iload 2 /* day */
            iconst_1
            isub
            i2l
            ladd
            lstore 7 /* total */
        10: .line 978
            lload 5 /* m */
            ldc 2
            lcmp
            ifle 14
        11: .line 979
            lload 7 /* total */
            lconst_1
            lsub
            lstore 7 /* total */
        12: .line 980
            iload 0 /* year */
            invokestatic sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.isLeapYear:(I)Z
            ifne 14
        13: .line 981
            lload 7 /* total */
            lconst_1
            lsub
            lstore 7 /* total */
        14: .line 984
      StackMap locals:
      StackMap stack:
            lload 7 /* total */
            ldc 719528
            lsub
            lreturn
        end local 7 // long total
        end local 5 // long m
        end local 3 // long y
        end local 2 // int day
        end local 1 // int month
        end local 0 // int year
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   year  I
            0   15     1  month  I
            0   15     2    day  I
            1   15     3      y  J
            2   15     5      m  J
            3   15     7  total  J
    MethodParameters:
       Name  Flags
      year   
      month  
      day    

  static final long previousOrSame(long, int);
    descriptor: (JI)J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // long epochDay
        start local 2 // int dayOfWeek
         0: .line 988
            lload 0 /* epochDay */
            iload 2 /* dayOfWeek */
            iconst_1
            invokestatic sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.adjust:(JII)J
            lreturn
        end local 2 // int dayOfWeek
        end local 0 // long epochDay
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0   epochDay  J
            0    1     2  dayOfWeek  I
    MethodParameters:
           Name  Flags
      epochDay   
      dayOfWeek  

  static final long nextOrSame(long, int);
    descriptor: (JI)J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // long epochDay
        start local 2 // int dayOfWeek
         0: .line 992
            lload 0 /* epochDay */
            iload 2 /* dayOfWeek */
            iconst_0
            invokestatic sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule.adjust:(JII)J
            lreturn
        end local 2 // int dayOfWeek
        end local 0 // long epochDay
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0   epochDay  J
            0    1     2  dayOfWeek  I
    MethodParameters:
           Name  Flags
      epochDay   
      dayOfWeek  

  static final long adjust(long, int, int);
    descriptor: (JII)J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // long epochDay
        start local 2 // int dow
        start local 3 // int relative
         0: .line 996
            lload 0 /* epochDay */
            ldc 3
            ladd
            ldc 7
            invokestatic java.lang.Math.floorMod:(JJ)J
            l2i
            iconst_1
            iadd
            istore 4 /* calDow */
        start local 4 // int calDow
         1: .line 997
            iload 3 /* relative */
            iconst_2
            if_icmpge 3
            iload 4 /* calDow */
            iload 2 /* dow */
            if_icmpne 3
         2: .line 998
            lload 0 /* epochDay */
            lreturn
         3: .line 1000
      StackMap locals: int
      StackMap stack:
            iload 3 /* relative */
            iconst_1
            iand
            ifne 8
         4: .line 1001
            iload 4 /* calDow */
            iload 2 /* dow */
            isub
            istore 5 /* daysDiff */
        start local 5 // int daysDiff
         5: .line 1002
            lload 0 /* epochDay */
            iload 5 /* daysDiff */
            iflt 6
            bipush 7
            iload 5 /* daysDiff */
            isub
            goto 7
      StackMap locals: long int int int int
      StackMap stack: long
         6: iload 5 /* daysDiff */
            ineg
      StackMap locals: long int int int int
      StackMap stack: long int
         7: i2l
            ladd
            lreturn
        end local 5 // int daysDiff
         8: .line 1004
      StackMap locals:
      StackMap stack:
            iload 2 /* dow */
            iload 4 /* calDow */
            isub
            istore 5 /* daysDiff */
        start local 5 // int daysDiff
         9: .line 1005
            lload 0 /* epochDay */
            iload 5 /* daysDiff */
            iflt 10
            bipush 7
            iload 5 /* daysDiff */
            isub
            goto 11
      StackMap locals: long int int int int
      StackMap stack: long
        10: iload 5 /* daysDiff */
            ineg
      StackMap locals: long int int int int
      StackMap stack: long int
        11: i2l
            lsub
            lreturn
        end local 5 // int daysDiff
        end local 4 // int calDow
        end local 3 // int relative
        end local 2 // int dow
        end local 0 // long epochDay
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0  epochDay  J
            0   12     2       dow  I
            0   12     3  relative  I
            1   12     4    calDow  I
            5    8     5  daysDiff  I
            9   12     5  daysDiff  I
    MethodParameters:
          Name  Flags
      epochDay  
      dow       
      relative  
}
SourceFile: "ZoneInfoFile.java"
NestHost: sun.util.calendar.ZoneInfoFile
InnerClasses:
  private ZoneOffsetTransitionRule = sun.util.calendar.ZoneInfoFile$ZoneOffsetTransitionRule of sun.util.calendar.ZoneInfoFile