public class android.animation.KeyframeSet implements android.animation.Keyframes
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.animation.KeyframeSet
  super_class: java.lang.Object
{
  int mNumKeyframes;
    descriptor: I
    flags: (0x0000) 

  android.animation.Keyframe mFirstKeyframe;
    descriptor: Landroid/animation/Keyframe;
    flags: (0x0000) 

  android.animation.Keyframe mLastKeyframe;
    descriptor: Landroid/animation/Keyframe;
    flags: (0x0000) 

  android.animation.TimeInterpolator mInterpolator;
    descriptor: Landroid/animation/TimeInterpolator;
    flags: (0x0000) 

  java.util.List<android.animation.Keyframe> mKeyframes;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Landroid/animation/Keyframe;>;

  android.animation.TypeEvaluator mEvaluator;
    descriptor: Landroid/animation/TypeEvaluator;
    flags: (0x0000) 

  public void <init>(android.animation.Keyframe[]);
    descriptor: ([Landroid/animation/Keyframe;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.animation.KeyframeSet this
        start local 1 // android.animation.Keyframe[] keyframes
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* keyframes */
            arraylength
            putfield android.animation.KeyframeSet.mNumKeyframes:I
         2: .line 48
            aload 0 /* this */
            aload 1 /* keyframes */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            putfield android.animation.KeyframeSet.mKeyframes:Ljava/util/List;
         3: .line 49
            aload 0 /* this */
            aload 1 /* keyframes */
            iconst_0
            aaload
            putfield android.animation.KeyframeSet.mFirstKeyframe:Landroid/animation/Keyframe;
         4: .line 50
            aload 0 /* this */
            aload 1 /* keyframes */
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mNumKeyframes:I
            iconst_1
            isub
            aaload
            putfield android.animation.KeyframeSet.mLastKeyframe:Landroid/animation/Keyframe;
         5: .line 51
            aload 0 /* this */
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mLastKeyframe:Landroid/animation/Keyframe;
            invokevirtual android.animation.Keyframe.getInterpolator:()Landroid/animation/TimeInterpolator;
            putfield android.animation.KeyframeSet.mInterpolator:Landroid/animation/TimeInterpolator;
         6: .line 52
            return
        end local 1 // android.animation.Keyframe[] keyframes
        end local 0 // android.animation.KeyframeSet this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Landroid/animation/KeyframeSet;
            0    7     1  keyframes  [Landroid/animation/Keyframe;
    MethodParameters:
           Name  Flags
      keyframes  

  public java.util.List<android.animation.Keyframe> getKeyframes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.KeyframeSet this
         0: .line 55
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mKeyframes:Ljava/util/List;
            areturn
        end local 0 // android.animation.KeyframeSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/KeyframeSet;
    Signature: ()Ljava/util/List<Landroid/animation/Keyframe;>;

  public static android.animation.KeyframeSet ofInt(int[]);
    descriptor: ([I)Landroid/animation/KeyframeSet;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // int[] values
         0: .line 59
            aload 0 /* values */
            arraylength
            istore 1 /* numKeyframes */
        start local 1 // int numKeyframes
         1: .line 60
            iload 1 /* numKeyframes */
            iconst_2
            invokestatic java.lang.Math.max:(II)I
            anewarray android.animation.Keyframe$IntKeyframe
            astore 2 /* keyframes */
        start local 2 // android.animation.Keyframe$IntKeyframe[] keyframes
         2: .line 61
            iload 1 /* numKeyframes */
            iconst_1
            if_icmpne 6
         3: .line 62
            aload 2 /* keyframes */
            iconst_0
            fconst_0
            invokestatic android.animation.Keyframe.ofInt:(F)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$IntKeyframe
            aastore
         4: .line 63
            aload 2 /* keyframes */
            iconst_1
            fconst_1
            aload 0 /* values */
            iconst_0
            iaload
            invokestatic android.animation.Keyframe.ofInt:(FI)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$IntKeyframe
            aastore
         5: .line 64
            goto 14
         6: .line 65
      StackMap locals: int android.animation.Keyframe$IntKeyframe[]
      StackMap stack:
            aload 2 /* keyframes */
            iconst_0
            fconst_0
            aload 0 /* values */
            iconst_0
            iaload
            invokestatic android.animation.Keyframe.ofInt:(FI)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$IntKeyframe
            aastore
         7: .line 66
            iconst_1
            istore 3 /* i */
        start local 3 // int i
         8: goto 13
         9: .line 67
      StackMap locals: int
      StackMap stack:
            aload 2 /* keyframes */
            iload 3 /* i */
        10: .line 68
            iload 3 /* i */
            i2f
            iload 1 /* numKeyframes */
            iconst_1
            isub
            i2f
            fdiv
            aload 0 /* values */
            iload 3 /* i */
            iaload
            invokestatic android.animation.Keyframe.ofInt:(FI)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$IntKeyframe
        11: .line 67
            aastore
        12: .line 66
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* i */
            iload 1 /* numKeyframes */
            if_icmplt 9
        end local 3 // int i
        14: .line 71
      StackMap locals:
      StackMap stack:
            new android.animation.IntKeyframeSet
            dup
            aload 2 /* keyframes */
            invokespecial android.animation.IntKeyframeSet.<init>:([Landroid/animation/Keyframe$IntKeyframe;)V
            areturn
        end local 2 // android.animation.Keyframe$IntKeyframe[] keyframes
        end local 1 // int numKeyframes
        end local 0 // int[] values
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0        values  [I
            1   15     1  numKeyframes  I
            2   15     2     keyframes  [Landroid/animation/Keyframe$IntKeyframe;
            8   14     3             i  I
    MethodParameters:
        Name  Flags
      values  

  public static android.animation.KeyframeSet ofFloat(float[]);
    descriptor: ([F)Landroid/animation/KeyframeSet;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // float[] values
         0: .line 75
            iconst_0
            istore 1 /* badValue */
        start local 1 // boolean badValue
         1: .line 76
            aload 0 /* values */
            arraylength
            istore 2 /* numKeyframes */
        start local 2 // int numKeyframes
         2: .line 77
            iload 2 /* numKeyframes */
            iconst_2
            invokestatic java.lang.Math.max:(II)I
            anewarray android.animation.Keyframe$FloatKeyframe
            astore 3 /* keyframes */
        start local 3 // android.animation.Keyframe$FloatKeyframe[] keyframes
         3: .line 78
            iload 2 /* numKeyframes */
            iconst_1
            if_icmpne 9
         4: .line 79
            aload 3 /* keyframes */
            iconst_0
            fconst_0
            invokestatic android.animation.Keyframe.ofFloat:(F)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$FloatKeyframe
            aastore
         5: .line 80
            aload 3 /* keyframes */
            iconst_1
            fconst_1
            aload 0 /* values */
            iconst_0
            faload
            invokestatic android.animation.Keyframe.ofFloat:(FF)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$FloatKeyframe
            aastore
         6: .line 81
            aload 0 /* values */
            iconst_0
            faload
            invokestatic java.lang.Float.isNaN:(F)Z
            ifeq 19
         7: .line 82
            iconst_1
            istore 1 /* badValue */
         8: .line 84
            goto 19
         9: .line 85
      StackMap locals: int int android.animation.Keyframe$FloatKeyframe[]
      StackMap stack:
            aload 3 /* keyframes */
            iconst_0
            fconst_0
            aload 0 /* values */
            iconst_0
            faload
            invokestatic android.animation.Keyframe.ofFloat:(FF)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$FloatKeyframe
            aastore
        10: .line 86
            iconst_1
            istore 4 /* i */
        start local 4 // int i
        11: goto 18
        12: .line 87
      StackMap locals: int
      StackMap stack:
            aload 3 /* keyframes */
            iload 4 /* i */
        13: .line 88
            iload 4 /* i */
            i2f
            iload 2 /* numKeyframes */
            iconst_1
            isub
            i2f
            fdiv
            aload 0 /* values */
            iload 4 /* i */
            faload
            invokestatic android.animation.Keyframe.ofFloat:(FF)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$FloatKeyframe
        14: .line 87
            aastore
        15: .line 89
            aload 0 /* values */
            iload 4 /* i */
            faload
            invokestatic java.lang.Float.isNaN:(F)Z
            ifeq 17
        16: .line 90
            iconst_1
            istore 1 /* badValue */
        17: .line 86
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 4 /* i */
            iload 2 /* numKeyframes */
            if_icmplt 12
        end local 4 // int i
        19: .line 94
      StackMap locals:
      StackMap stack:
            iload 1 /* badValue */
            ifeq 21
        20: .line 95
            ldc "Animator"
            ldc "Bad value (NaN) in float animator"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        21: .line 97
      StackMap locals:
      StackMap stack:
            new android.animation.FloatKeyframeSet
            dup
            aload 3 /* keyframes */
            invokespecial android.animation.FloatKeyframeSet.<init>:([Landroid/animation/Keyframe$FloatKeyframe;)V
            areturn
        end local 3 // android.animation.Keyframe$FloatKeyframe[] keyframes
        end local 2 // int numKeyframes
        end local 1 // boolean badValue
        end local 0 // float[] values
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0        values  [F
            1   22     1      badValue  Z
            2   22     2  numKeyframes  I
            3   22     3     keyframes  [Landroid/animation/Keyframe$FloatKeyframe;
           11   19     4             i  I
    MethodParameters:
        Name  Flags
      values  

  public static android.animation.KeyframeSet ofKeyframe(android.animation.Keyframe[]);
    descriptor: ([Landroid/animation/Keyframe;)Landroid/animation/KeyframeSet;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // android.animation.Keyframe[] keyframes
         0: .line 102
            aload 0 /* keyframes */
            arraylength
            istore 1 /* numKeyframes */
        start local 1 // int numKeyframes
         1: .line 103
            iconst_0
            istore 2 /* hasFloat */
        start local 2 // boolean hasFloat
         2: .line 104
            iconst_0
            istore 3 /* hasInt */
        start local 3 // boolean hasInt
         3: .line 105
            iconst_0
            istore 4 /* hasOther */
        start local 4 // boolean hasOther
         4: .line 106
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 14
         6: .line 107
      StackMap locals: android.animation.Keyframe[] int int int int int
      StackMap stack:
            aload 0 /* keyframes */
            iload 5 /* i */
            aaload
            instanceof android.animation.Keyframe$FloatKeyframe
            ifeq 9
         7: .line 108
            iconst_1
            istore 2 /* hasFloat */
         8: .line 109
            goto 13
      StackMap locals:
      StackMap stack:
         9: aload 0 /* keyframes */
            iload 5 /* i */
            aaload
            instanceof android.animation.Keyframe$IntKeyframe
            ifeq 12
        10: .line 110
            iconst_1
            istore 3 /* hasInt */
        11: .line 111
            goto 13
        12: .line 112
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* hasOther */
        13: .line 106
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 5 /* i */
            iload 1 /* numKeyframes */
            if_icmplt 6
        end local 5 // int i
        15: .line 115
            iload 2 /* hasFloat */
            ifeq 23
            iload 3 /* hasInt */
            ifne 23
            iload 4 /* hasOther */
            ifne 23
        16: .line 116
            iload 1 /* numKeyframes */
            anewarray android.animation.Keyframe$FloatKeyframe
            astore 5 /* floatKeyframes */
        start local 5 // android.animation.Keyframe$FloatKeyframe[] floatKeyframes
        17: .line 117
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        18: goto 21
        19: .line 118
      StackMap locals: android.animation.Keyframe[] int int int int android.animation.Keyframe$FloatKeyframe[] int
      StackMap stack:
            aload 5 /* floatKeyframes */
            iload 6 /* i */
            aload 0 /* keyframes */
            iload 6 /* i */
            aaload
            checkcast android.animation.Keyframe$FloatKeyframe
            aastore
        20: .line 117
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 6 /* i */
            iload 1 /* numKeyframes */
            if_icmplt 19
        end local 6 // int i
        22: .line 120
            new android.animation.FloatKeyframeSet
            dup
            aload 5 /* floatKeyframes */
            invokespecial android.animation.FloatKeyframeSet.<init>:([Landroid/animation/Keyframe$FloatKeyframe;)V
            areturn
        end local 5 // android.animation.Keyframe$FloatKeyframe[] floatKeyframes
        23: .line 121
      StackMap locals:
      StackMap stack:
            iload 3 /* hasInt */
            ifeq 31
            iload 2 /* hasFloat */
            ifne 31
            iload 4 /* hasOther */
            ifne 31
        24: .line 122
            iload 1 /* numKeyframes */
            anewarray android.animation.Keyframe$IntKeyframe
            astore 5 /* intKeyframes */
        start local 5 // android.animation.Keyframe$IntKeyframe[] intKeyframes
        25: .line 123
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        26: goto 29
        27: .line 124
      StackMap locals: android.animation.Keyframe$IntKeyframe[] int
      StackMap stack:
            aload 5 /* intKeyframes */
            iload 6 /* i */
            aload 0 /* keyframes */
            iload 6 /* i */
            aaload
            checkcast android.animation.Keyframe$IntKeyframe
            aastore
        28: .line 123
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 6 /* i */
            iload 1 /* numKeyframes */
            if_icmplt 27
        end local 6 // int i
        30: .line 126
            new android.animation.IntKeyframeSet
            dup
            aload 5 /* intKeyframes */
            invokespecial android.animation.IntKeyframeSet.<init>:([Landroid/animation/Keyframe$IntKeyframe;)V
            areturn
        end local 5 // android.animation.Keyframe$IntKeyframe[] intKeyframes
        31: .line 128
      StackMap locals:
      StackMap stack:
            new android.animation.KeyframeSet
            dup
            aload 0 /* keyframes */
            invokespecial android.animation.KeyframeSet.<init>:([Landroid/animation/Keyframe;)V
            areturn
        end local 4 // boolean hasOther
        end local 3 // boolean hasInt
        end local 2 // boolean hasFloat
        end local 1 // int numKeyframes
        end local 0 // android.animation.Keyframe[] keyframes
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   32     0       keyframes  [Landroid/animation/Keyframe;
            1   32     1    numKeyframes  I
            2   32     2        hasFloat  Z
            3   32     3          hasInt  Z
            4   32     4        hasOther  Z
            5   15     5               i  I
           17   23     5  floatKeyframes  [Landroid/animation/Keyframe$FloatKeyframe;
           18   22     6               i  I
           25   31     5    intKeyframes  [Landroid/animation/Keyframe$IntKeyframe;
           26   30     6               i  I
    MethodParameters:
           Name  Flags
      keyframes  

  public static android.animation.KeyframeSet ofObject(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Landroid/animation/KeyframeSet;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.lang.Object[] values
         0: .line 133
            aload 0 /* values */
            arraylength
            istore 1 /* numKeyframes */
        start local 1 // int numKeyframes
         1: .line 134
            iload 1 /* numKeyframes */
            iconst_2
            invokestatic java.lang.Math.max:(II)I
            anewarray android.animation.Keyframe$ObjectKeyframe
            astore 2 /* keyframes */
        start local 2 // android.animation.Keyframe$ObjectKeyframe[] keyframes
         2: .line 135
            iload 1 /* numKeyframes */
            iconst_1
            if_icmpne 6
         3: .line 136
            aload 2 /* keyframes */
            iconst_0
            fconst_0
            invokestatic android.animation.Keyframe.ofObject:(F)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$ObjectKeyframe
            aastore
         4: .line 137
            aload 2 /* keyframes */
            iconst_1
            fconst_1
            aload 0 /* values */
            iconst_0
            aaload
            invokestatic android.animation.Keyframe.ofObject:(FLjava/lang/Object;)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$ObjectKeyframe
            aastore
         5: .line 138
            goto 12
         6: .line 139
      StackMap locals: int android.animation.Keyframe$ObjectKeyframe[]
      StackMap stack:
            aload 2 /* keyframes */
            iconst_0
            fconst_0
            aload 0 /* values */
            iconst_0
            aaload
            invokestatic android.animation.Keyframe.ofObject:(FLjava/lang/Object;)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$ObjectKeyframe
            aastore
         7: .line 140
            iconst_1
            istore 3 /* i */
        start local 3 // int i
         8: goto 11
         9: .line 141
      StackMap locals: int
      StackMap stack:
            aload 2 /* keyframes */
            iload 3 /* i */
            iload 3 /* i */
            i2f
            iload 1 /* numKeyframes */
            iconst_1
            isub
            i2f
            fdiv
            aload 0 /* values */
            iload 3 /* i */
            aaload
            invokestatic android.animation.Keyframe.ofObject:(FLjava/lang/Object;)Landroid/animation/Keyframe;
            checkcast android.animation.Keyframe$ObjectKeyframe
            aastore
        10: .line 140
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            iload 1 /* numKeyframes */
            if_icmplt 9
        end local 3 // int i
        12: .line 144
      StackMap locals:
      StackMap stack:
            new android.animation.KeyframeSet
            dup
            aload 2 /* keyframes */
            invokespecial android.animation.KeyframeSet.<init>:([Landroid/animation/Keyframe;)V
            areturn
        end local 2 // android.animation.Keyframe$ObjectKeyframe[] keyframes
        end local 1 // int numKeyframes
        end local 0 // java.lang.Object[] values
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0        values  [Ljava/lang/Object;
            1   13     1  numKeyframes  I
            2   13     2     keyframes  [Landroid/animation/Keyframe$ObjectKeyframe;
            8   12     3             i  I
    MethodParameters:
        Name  Flags
      values  

  public static android.animation.PathKeyframes ofPath(android.graphics.Path);
    descriptor: (Landroid/graphics/Path;)Landroid/animation/PathKeyframes;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.graphics.Path path
         0: .line 148
            new android.animation.PathKeyframes
            dup
            aload 0 /* path */
            invokespecial android.animation.PathKeyframes.<init>:(Landroid/graphics/Path;)V
            areturn
        end local 0 // android.graphics.Path path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  path  Landroid/graphics/Path;
    MethodParameters:
      Name  Flags
      path  

  public static android.animation.PathKeyframes ofPath(android.graphics.Path, float);
    descriptor: (Landroid/graphics/Path;F)Landroid/animation/PathKeyframes;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.graphics.Path path
        start local 1 // float error
         0: .line 152
            new android.animation.PathKeyframes
            dup
            aload 0 /* path */
            fload 1 /* error */
            invokespecial android.animation.PathKeyframes.<init>:(Landroid/graphics/Path;F)V
            areturn
        end local 1 // float error
        end local 0 // android.graphics.Path path
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   path  Landroid/graphics/Path;
            0    1     1  error  F
    MethodParameters:
       Name  Flags
      path   
      error  

  public void setEvaluator(android.animation.TypeEvaluator);
    descriptor: (Landroid/animation/TypeEvaluator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.animation.KeyframeSet this
        start local 1 // android.animation.TypeEvaluator evaluator
         0: .line 164
            aload 0 /* this */
            aload 1 /* evaluator */
            putfield android.animation.KeyframeSet.mEvaluator:Landroid/animation/TypeEvaluator;
         1: .line 165
            return
        end local 1 // android.animation.TypeEvaluator evaluator
        end local 0 // android.animation.KeyframeSet this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Landroid/animation/KeyframeSet;
            0    2     1  evaluator  Landroid/animation/TypeEvaluator;
    MethodParameters:
           Name  Flags
      evaluator  

  public java.lang.Class getType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.KeyframeSet this
         0: .line 169
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mFirstKeyframe:Landroid/animation/Keyframe;
            invokevirtual android.animation.Keyframe.getType:()Ljava/lang/Class;
            areturn
        end local 0 // android.animation.KeyframeSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/KeyframeSet;

  public android.animation.KeyframeSet clone();
    descriptor: ()Landroid/animation/KeyframeSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // android.animation.KeyframeSet this
         0: .line 174
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mKeyframes:Ljava/util/List;
            astore 1 /* keyframes */
        start local 1 // java.util.List keyframes
         1: .line 175
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mKeyframes:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 2 /* numKeyframes */
        start local 2 // int numKeyframes
         2: .line 176
            iload 2 /* numKeyframes */
            anewarray android.animation.Keyframe
            astore 3 /* newKeyframes */
        start local 3 // android.animation.Keyframe[] newKeyframes
         3: .line 177
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 178
      StackMap locals: android.animation.KeyframeSet java.util.List int android.animation.Keyframe[] int
      StackMap stack:
            aload 3 /* newKeyframes */
            iload 4 /* i */
            aload 1 /* keyframes */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.animation.Keyframe
            invokevirtual android.animation.Keyframe.clone:()Landroid/animation/Keyframe;
            aastore
         6: .line 177
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 2 /* numKeyframes */
            if_icmplt 5
        end local 4 // int i
         8: .line 180
            new android.animation.KeyframeSet
            dup
            aload 3 /* newKeyframes */
            invokespecial android.animation.KeyframeSet.<init>:([Landroid/animation/Keyframe;)V
            astore 4 /* newSet */
        start local 4 // android.animation.KeyframeSet newSet
         9: .line 181
            aload 4 /* newSet */
            areturn
        end local 4 // android.animation.KeyframeSet newSet
        end local 3 // android.animation.Keyframe[] newKeyframes
        end local 2 // int numKeyframes
        end local 1 // java.util.List keyframes
        end local 0 // android.animation.KeyframeSet this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Landroid/animation/KeyframeSet;
            1   10     1     keyframes  Ljava/util/List<Landroid/animation/Keyframe;>;
            2   10     2  numKeyframes  I
            3   10     3  newKeyframes  [Landroid/animation/Keyframe;
            4    8     4             i  I
            9   10     4        newSet  Landroid/animation/KeyframeSet;

  public java.lang.Object getValue(float);
    descriptor: (F)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // android.animation.KeyframeSet this
        start local 1 // float fraction
         0: .line 198
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mNumKeyframes:I
            iconst_2
            if_icmpne 6
         1: .line 199
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mInterpolator:Landroid/animation/TimeInterpolator;
            ifnull 3
         2: .line 200
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mInterpolator:Landroid/animation/TimeInterpolator;
            fload 1 /* fraction */
            invokeinterface android.animation.TimeInterpolator.getInterpolation:(F)F
            fstore 1 /* fraction */
         3: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mEvaluator:Landroid/animation/TypeEvaluator;
            fload 1 /* fraction */
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mFirstKeyframe:Landroid/animation/Keyframe;
            invokevirtual android.animation.Keyframe.getValue:()Ljava/lang/Object;
         4: .line 203
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mLastKeyframe:Landroid/animation/Keyframe;
            invokevirtual android.animation.Keyframe.getValue:()Ljava/lang/Object;
         5: .line 202
            invokeinterface android.animation.TypeEvaluator.evaluate:(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         6: .line 205
      StackMap locals:
      StackMap stack:
            fload 1 /* fraction */
            fconst_0
            fcmpg
            ifgt 18
         7: .line 206
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mKeyframes:Ljava/util/List;
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.animation.Keyframe
            astore 2 /* nextKeyframe */
        start local 2 // android.animation.Keyframe nextKeyframe
         8: .line 207
            aload 2 /* nextKeyframe */
            invokevirtual android.animation.Keyframe.getInterpolator:()Landroid/animation/TimeInterpolator;
            astore 3 /* interpolator */
        start local 3 // android.animation.TimeInterpolator interpolator
         9: .line 208
            aload 3 /* interpolator */
            ifnull 11
        10: .line 209
            aload 3 /* interpolator */
            fload 1 /* fraction */
            invokeinterface android.animation.TimeInterpolator.getInterpolation:(F)F
            fstore 1 /* fraction */
        11: .line 211
      StackMap locals: android.animation.Keyframe android.animation.TimeInterpolator
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mFirstKeyframe:Landroid/animation/Keyframe;
            invokevirtual android.animation.Keyframe.getFraction:()F
            fstore 4 /* prevFraction */
        start local 4 // float prevFraction
        12: .line 212
            fload 1 /* fraction */
            fload 4 /* prevFraction */
            fsub
        13: .line 213
            aload 2 /* nextKeyframe */
            invokevirtual android.animation.Keyframe.getFraction:()F
            fload 4 /* prevFraction */
            fsub
        14: .line 212
            fdiv
            fstore 5 /* intervalFraction */
        start local 5 // float intervalFraction
        15: .line 214
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mEvaluator:Landroid/animation/TypeEvaluator;
            fload 5 /* intervalFraction */
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mFirstKeyframe:Landroid/animation/Keyframe;
            invokevirtual android.animation.Keyframe.getValue:()Ljava/lang/Object;
        16: .line 215
            aload 2 /* nextKeyframe */
            invokevirtual android.animation.Keyframe.getValue:()Ljava/lang/Object;
        17: .line 214
            invokeinterface android.animation.TypeEvaluator.evaluate:(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // float intervalFraction
        end local 4 // float prevFraction
        end local 3 // android.animation.TimeInterpolator interpolator
        end local 2 // android.animation.Keyframe nextKeyframe
        18: .line 216
      StackMap locals:
      StackMap stack:
            fload 1 /* fraction */
            fconst_1
            fcmpl
            iflt 30
        19: .line 217
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mKeyframes:Ljava/util/List;
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mNumKeyframes:I
            iconst_2
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.animation.Keyframe
            astore 2 /* prevKeyframe */
        start local 2 // android.animation.Keyframe prevKeyframe
        20: .line 218
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mLastKeyframe:Landroid/animation/Keyframe;
            invokevirtual android.animation.Keyframe.getInterpolator:()Landroid/animation/TimeInterpolator;
            astore 3 /* interpolator */
        start local 3 // android.animation.TimeInterpolator interpolator
        21: .line 219
            aload 3 /* interpolator */
            ifnull 23
        22: .line 220
            aload 3 /* interpolator */
            fload 1 /* fraction */
            invokeinterface android.animation.TimeInterpolator.getInterpolation:(F)F
            fstore 1 /* fraction */
        23: .line 222
      StackMap locals: android.animation.Keyframe android.animation.TimeInterpolator
      StackMap stack:
            aload 2 /* prevKeyframe */
            invokevirtual android.animation.Keyframe.getFraction:()F
            fstore 4 /* prevFraction */
        start local 4 // float prevFraction
        24: .line 223
            fload 1 /* fraction */
            fload 4 /* prevFraction */
            fsub
        25: .line 224
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mLastKeyframe:Landroid/animation/Keyframe;
            invokevirtual android.animation.Keyframe.getFraction:()F
            fload 4 /* prevFraction */
            fsub
        26: .line 223
            fdiv
            fstore 5 /* intervalFraction */
        start local 5 // float intervalFraction
        27: .line 225
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mEvaluator:Landroid/animation/TypeEvaluator;
            fload 5 /* intervalFraction */
            aload 2 /* prevKeyframe */
            invokevirtual android.animation.Keyframe.getValue:()Ljava/lang/Object;
        28: .line 226
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mLastKeyframe:Landroid/animation/Keyframe;
            invokevirtual android.animation.Keyframe.getValue:()Ljava/lang/Object;
        29: .line 225
            invokeinterface android.animation.TypeEvaluator.evaluate:(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // float intervalFraction
        end local 4 // float prevFraction
        end local 3 // android.animation.TimeInterpolator interpolator
        end local 2 // android.animation.Keyframe prevKeyframe
        30: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mFirstKeyframe:Landroid/animation/Keyframe;
            astore 2 /* prevKeyframe */
        start local 2 // android.animation.Keyframe prevKeyframe
        31: .line 229
            iconst_1
            istore 3 /* i */
        start local 3 // int i
        32: goto 47
        33: .line 230
      StackMap locals: android.animation.Keyframe int
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mKeyframes:Ljava/util/List;
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.animation.Keyframe
            astore 4 /* nextKeyframe */
        start local 4 // android.animation.Keyframe nextKeyframe
        34: .line 231
            fload 1 /* fraction */
            aload 4 /* nextKeyframe */
            invokevirtual android.animation.Keyframe.getFraction:()F
            fcmpg
            ifge 45
        35: .line 232
            aload 4 /* nextKeyframe */
            invokevirtual android.animation.Keyframe.getInterpolator:()Landroid/animation/TimeInterpolator;
            astore 5 /* interpolator */
        start local 5 // android.animation.TimeInterpolator interpolator
        36: .line 233
            aload 2 /* prevKeyframe */
            invokevirtual android.animation.Keyframe.getFraction:()F
            fstore 6 /* prevFraction */
        start local 6 // float prevFraction
        37: .line 234
            fload 1 /* fraction */
            fload 6 /* prevFraction */
            fsub
        38: .line 235
            aload 4 /* nextKeyframe */
            invokevirtual android.animation.Keyframe.getFraction:()F
            fload 6 /* prevFraction */
            fsub
        39: .line 234
            fdiv
            fstore 7 /* intervalFraction */
        start local 7 // float intervalFraction
        40: .line 237
            aload 5 /* interpolator */
            ifnull 42
        41: .line 238
            aload 5 /* interpolator */
            fload 7 /* intervalFraction */
            invokeinterface android.animation.TimeInterpolator.getInterpolation:(F)F
            fstore 7 /* intervalFraction */
        42: .line 240
      StackMap locals: android.animation.KeyframeSet float android.animation.Keyframe int android.animation.Keyframe android.animation.TimeInterpolator float float
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mEvaluator:Landroid/animation/TypeEvaluator;
            fload 7 /* intervalFraction */
            aload 2 /* prevKeyframe */
            invokevirtual android.animation.Keyframe.getValue:()Ljava/lang/Object;
        43: .line 241
            aload 4 /* nextKeyframe */
            invokevirtual android.animation.Keyframe.getValue:()Ljava/lang/Object;
        44: .line 240
            invokeinterface android.animation.TypeEvaluator.evaluate:(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 7 // float intervalFraction
        end local 6 // float prevFraction
        end local 5 // android.animation.TimeInterpolator interpolator
        45: .line 243
      StackMap locals:
      StackMap stack:
            aload 4 /* nextKeyframe */
            astore 2 /* prevKeyframe */
        end local 4 // android.animation.Keyframe nextKeyframe
        46: .line 229
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        47: iload 3 /* i */
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mNumKeyframes:I
            if_icmplt 33
        end local 3 // int i
        48: .line 246
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mLastKeyframe:Landroid/animation/Keyframe;
            invokevirtual android.animation.Keyframe.getValue:()Ljava/lang/Object;
            areturn
        end local 2 // android.animation.Keyframe prevKeyframe
        end local 1 // float fraction
        end local 0 // android.animation.KeyframeSet this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   49     0              this  Landroid/animation/KeyframeSet;
            0   49     1          fraction  F
            8   18     2      nextKeyframe  Landroid/animation/Keyframe;
            9   18     3      interpolator  Landroid/animation/TimeInterpolator;
           12   18     4      prevFraction  F
           15   18     5  intervalFraction  F
           20   30     2      prevKeyframe  Landroid/animation/Keyframe;
           21   30     3      interpolator  Landroid/animation/TimeInterpolator;
           24   30     4      prevFraction  F
           27   30     5  intervalFraction  F
           31   49     2      prevKeyframe  Landroid/animation/Keyframe;
           32   48     3                 i  I
           34   46     4      nextKeyframe  Landroid/animation/Keyframe;
           36   45     5      interpolator  Landroid/animation/TimeInterpolator;
           37   45     6      prevFraction  F
           40   45     7  intervalFraction  F
    MethodParameters:
          Name  Flags
      fraction  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.animation.KeyframeSet this
         0: .line 251
            ldc " "
            astore 1 /* returnVal */
        start local 1 // java.lang.String returnVal
         1: .line 252
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 253
      StackMap locals: java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* returnVal */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mKeyframes:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.animation.Keyframe
            invokevirtual android.animation.Keyframe.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* returnVal */
         4: .line 252
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield android.animation.KeyframeSet.mNumKeyframes:I
            if_icmplt 3
        end local 2 // int i
         6: .line 255
            aload 1 /* returnVal */
            areturn
        end local 1 // java.lang.String returnVal
        end local 0 // android.animation.KeyframeSet this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Landroid/animation/KeyframeSet;
            1    7     1  returnVal  Ljava/lang/String;
            2    6     2          i  I

  public android.animation.Keyframes clone();
    descriptor: ()Landroid/animation/Keyframes;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual android.animation.KeyframeSet.clone:()Landroid/animation/KeyframeSet;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual android.animation.KeyframeSet.clone:()Landroid/animation/KeyframeSet;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.CloneNotSupportedException
}
SourceFile: "KeyframeSet.java"
InnerClasses:
  FloatKeyframe = android.animation.Keyframe$FloatKeyframe of android.animation.Keyframe
  IntKeyframe = android.animation.Keyframe$IntKeyframe of android.animation.Keyframe
  ObjectKeyframe = android.animation.Keyframe$ObjectKeyframe of android.animation.Keyframe