public class java.math.BigDecimal extends java.lang.Number implements java.lang.Comparable<java.math.BigDecimal>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.math.BigDecimal
  super_class: java.lang.Number
{
  private final java.math.BigInteger intVal;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private transient int precision;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.lang.String stringCache;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  static final long INFLATED;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -9223372036854775808

  private static final java.math.BigInteger INFLATED_BIGINT;
    descriptor: Ljava/math/BigInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final transient long intCompact;
    descriptor: J
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

  private static final int MAX_COMPACT_DIGITS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 18

  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6108874887143696463

  private static final java.lang.ThreadLocal<java.math.BigDecimal$StringBuilderHelper> threadLocalStringBuilderHelper;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/math/BigDecimal$StringBuilderHelper;>;

  private static final java.math.BigDecimal[] ZERO_THROUGH_TEN;
    descriptor: [Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.math.BigDecimal[] ZERO_SCALED_BY;
    descriptor: [Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long HALF_LONG_MAX_VALUE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4611686018427387903

  private static final long HALF_LONG_MIN_VALUE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -4611686018427387904

  public static final java.math.BigDecimal ZERO;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.math.BigDecimal ONE;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.math.BigDecimal TEN;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final java.math.BigDecimal ONE_TENTH;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.math.BigDecimal ONE_HALF;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int ROUND_UP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_DOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_CEILING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_FLOOR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_HALF_UP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_HALF_DOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_HALF_EVEN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_UNNECESSARY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  private static final double[] DOUBLE_10_POW;
    descriptor: [D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final float[] FLOAT_10_POW;
    descriptor: [F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long[] LONG_TEN_POWERS_TABLE;
    descriptor: [J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile java.math.BigInteger[] BIG_TEN_POWERS_TABLE;
    descriptor: [Ljava/math/BigInteger;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static final int BIG_TEN_POWERS_TABLE_INITLEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int BIG_TEN_POWERS_TABLE_MAX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long[] THRESHOLDS_TABLE;
    descriptor: [J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long DIV_NUM_BASE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4294967296

  private static final long[][] LONGLONG_TEN_POWERS_TABLE;
    descriptor: [[J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$java$math$RoundingMode;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=0, args_size=0
         0: .line 228
            ldc Ljava/math/BigDecimal;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic java.math.BigDecimal.$assertionsDisabled:Z
         3: .line 269
            ldc -9223372036854775808
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            putstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
         4: .line 286
            new java.math.BigDecimal$1
            dup
            invokespecial java.math.BigDecimal$1.<init>:()V
            putstatic java.math.BigDecimal.threadLocalStringBuilderHelper:Ljava/lang/ThreadLocal;
         5: .line 294
            bipush 11
            anewarray java.math.BigDecimal
            dup
            iconst_0
         6: .line 295
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_1
         7: .line 296
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            lconst_1
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_2
         8: .line 297
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
            ldc 2
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_3
         9: .line 298
            new java.math.BigDecimal
            dup
            ldc 3
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 3
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_4
        10: .line 299
            new java.math.BigDecimal
            dup
            ldc 4
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 4
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_5
        11: .line 300
            new java.math.BigDecimal
            dup
            ldc 5
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 5
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 6
        12: .line 301
            new java.math.BigDecimal
            dup
            ldc 6
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 6
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 7
        13: .line 302
            new java.math.BigDecimal
            dup
            ldc 7
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 7
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 8
        14: .line 303
            new java.math.BigDecimal
            dup
            ldc 8
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 8
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 9
        15: .line 304
            new java.math.BigDecimal
            dup
            ldc 9
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 9
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 10
        16: .line 305
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            ldc 10
            iconst_0
            iconst_2
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
        17: .line 294
            putstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
        18: .line 309
            bipush 16
            anewarray java.math.BigDecimal
            dup
            iconst_0
        19: .line 310
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            iconst_0
            aaload
            aastore
            dup
            iconst_1
        20: .line 311
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_1
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_2
        21: .line 312
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_2
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_3
        22: .line 313
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_3
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_4
        23: .line 314
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_4
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_5
        24: .line 315
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_5
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 6
        25: .line 316
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 6
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 7
        26: .line 317
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 7
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 8
        27: .line 318
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 8
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 9
        28: .line 319
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 9
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 10
        29: .line 320
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 10
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 11
        30: .line 321
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 11
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 12
        31: .line 322
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 12
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 13
        32: .line 323
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 13
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 14
        33: .line 324
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 14
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 15
        34: .line 325
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 15
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
        35: .line 309
            putstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
        36: .line 339
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            iconst_0
            aaload
        37: .line 338
            putstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
        38: .line 347
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            iconst_1
            aaload
        39: .line 346
            putstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
        40: .line 355
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            bipush 10
            aaload
        41: .line 354
            putstatic java.math.BigDecimal.TEN:Ljava/math/BigDecimal;
        42: .line 360
            lconst_1
            iconst_1
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            putstatic java.math.BigDecimal.ONE_TENTH:Ljava/math/BigDecimal;
        43: .line 365
            ldc 5
            iconst_1
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            putstatic java.math.BigDecimal.ONE_HALF:Ljava/math/BigDecimal;
        44: .line 3762
            bipush 23
            newarray 7
            dup
            iconst_0
        45: .line 3763
            dconst_1
            dastore
            dup
            iconst_1
            ldc 10.0
            dastore
            dup
            iconst_2
            ldc 100.0
            dastore
            dup
            iconst_3
            ldc 1000.0
            dastore
            dup
            iconst_4
            ldc 10000.0
            dastore
            dup
            iconst_5
            ldc 100000.0
            dastore
            dup
            bipush 6
        46: .line 3764
            ldc 1000000.0
            dastore
            dup
            bipush 7
            ldc 1.0E7
            dastore
            dup
            bipush 8
            ldc 1.0E8
            dastore
            dup
            bipush 9
            ldc 1.0E9
            dastore
            dup
            bipush 10
            ldc 1.0E10
            dastore
            dup
            bipush 11
            ldc 1.0E11
            dastore
            dup
            bipush 12
        47: .line 3765
            ldc 1.0E12
            dastore
            dup
            bipush 13
            ldc 1.0E13
            dastore
            dup
            bipush 14
            ldc 1.0E14
            dastore
            dup
            bipush 15
            ldc 1.0E15
            dastore
            dup
            bipush 16
            ldc 1.0E16
            dastore
            dup
            bipush 17
            ldc 1.0E17
            dastore
            dup
            bipush 18
        48: .line 3766
            ldc 1.0E18
            dastore
            dup
            bipush 19
            ldc 1.0E19
            dastore
            dup
            bipush 20
            ldc 1.0E20
            dastore
            dup
            bipush 21
            ldc 1.0E21
            dastore
            dup
            bipush 22
            ldc 1.0E22
            dastore
        49: .line 3762
            putstatic java.math.BigDecimal.DOUBLE_10_POW:[D
        50: .line 3773
            bipush 11
            newarray 6
            dup
            iconst_0
        51: .line 3774
            fconst_1
            fastore
            dup
            iconst_1
            ldc 10.0
            fastore
            dup
            iconst_2
            ldc 100.0
            fastore
            dup
            iconst_3
            ldc 1000.0
            fastore
            dup
            iconst_4
            ldc 10000.0
            fastore
            dup
            iconst_5
            ldc 100000.0
            fastore
            dup
            bipush 6
        52: .line 3775
            ldc 1000000.0
            fastore
            dup
            bipush 7
            ldc 1.0E7
            fastore
            dup
            bipush 8
            ldc 1.0E8
            fastore
            dup
            bipush 9
            ldc 1.0E9
            fastore
            dup
            bipush 10
            ldc 1.0E10
            fastore
        53: .line 3773
            putstatic java.math.BigDecimal.FLOAT_10_POW:[F
        54: .line 4059
            bipush 19
            newarray 11
            dup
            iconst_0
        55: .line 4060
            lconst_1
            lastore
            dup
            iconst_1
        56: .line 4061
            ldc 10
            lastore
            dup
            iconst_2
        57: .line 4062
            ldc 100
            lastore
            dup
            iconst_3
        58: .line 4063
            ldc 1000
            lastore
            dup
            iconst_4
        59: .line 4064
            ldc 10000
            lastore
            dup
            iconst_5
        60: .line 4065
            ldc 100000
            lastore
            dup
            bipush 6
        61: .line 4066
            ldc 1000000
            lastore
            dup
            bipush 7
        62: .line 4067
            ldc 10000000
            lastore
            dup
            bipush 8
        63: .line 4068
            ldc 100000000
            lastore
            dup
            bipush 9
        64: .line 4069
            ldc 1000000000
            lastore
            dup
            bipush 10
        65: .line 4070
            ldc 10000000000
            lastore
            dup
            bipush 11
        66: .line 4071
            ldc 100000000000
            lastore
            dup
            bipush 12
        67: .line 4072
            ldc 1000000000000
            lastore
            dup
            bipush 13
        68: .line 4073
            ldc 10000000000000
            lastore
            dup
            bipush 14
        69: .line 4074
            ldc 100000000000000
            lastore
            dup
            bipush 15
        70: .line 4075
            ldc 1000000000000000
            lastore
            dup
            bipush 16
        71: .line 4076
            ldc 10000000000000000
            lastore
            dup
            bipush 17
        72: .line 4077
            ldc 100000000000000000
            lastore
            dup
            bipush 18
        73: .line 4078
            ldc 1000000000000000000
            lastore
        74: .line 4059
            putstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
        75: .line 4081
            bipush 19
            anewarray java.math.BigInteger
            dup
            iconst_0
        76: .line 4082
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            aastore
            dup
            iconst_1
        77: .line 4083
            ldc 10
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_2
        78: .line 4084
            ldc 100
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_3
        79: .line 4085
            ldc 1000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_4
        80: .line 4086
            ldc 10000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_5
        81: .line 4087
            ldc 100000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 6
        82: .line 4088
            ldc 1000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 7
        83: .line 4089
            ldc 10000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 8
        84: .line 4090
            ldc 100000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 9
        85: .line 4091
            ldc 1000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 10
        86: .line 4092
            ldc 10000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 11
        87: .line 4093
            ldc 100000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 12
        88: .line 4094
            ldc 1000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 13
        89: .line 4095
            ldc 10000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 14
        90: .line 4096
            ldc 100000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 15
        91: .line 4097
            ldc 1000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 16
        92: .line 4098
            ldc 10000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 17
        93: .line 4099
            ldc 100000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 18
        94: .line 4100
            ldc 1000000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
        95: .line 4081
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
        96: .line 4104
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
            arraylength
        97: .line 4103
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_INITLEN:I
        98: .line 4106
            bipush 16
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_INITLEN:I
            imul
        99: .line 4105
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_MAX:I
       100: .line 4108
            bipush 19
            newarray 11
            dup
            iconst_0
       101: .line 4109
            ldc 9223372036854775807
            lastore
            dup
            iconst_1
       102: .line 4110
            ldc 922337203685477580
            lastore
            dup
            iconst_2
       103: .line 4111
            ldc 92233720368547758
            lastore
            dup
            iconst_3
       104: .line 4112
            ldc 9223372036854775
            lastore
            dup
            iconst_4
       105: .line 4113
            ldc 922337203685477
            lastore
            dup
            iconst_5
       106: .line 4114
            ldc 92233720368547
            lastore
            dup
            bipush 6
       107: .line 4115
            ldc 9223372036854
            lastore
            dup
            bipush 7
       108: .line 4116
            ldc 922337203685
            lastore
            dup
            bipush 8
       109: .line 4117
            ldc 92233720368
            lastore
            dup
            bipush 9
       110: .line 4118
            ldc 9223372036
            lastore
            dup
            bipush 10
       111: .line 4119
            ldc 922337203
            lastore
            dup
            bipush 11
       112: .line 4120
            ldc 92233720
            lastore
            dup
            bipush 12
       113: .line 4121
            ldc 9223372
            lastore
            dup
            bipush 13
       114: .line 4122
            ldc 922337
            lastore
            dup
            bipush 14
       115: .line 4123
            ldc 92233
            lastore
            dup
            bipush 15
       116: .line 4124
            ldc 9223
            lastore
            dup
            bipush 16
       117: .line 4125
            ldc 922
            lastore
            dup
            bipush 17
       118: .line 4126
            ldc 92
            lastore
            dup
            bipush 18
       119: .line 4127
            ldc 9
            lastore
       120: .line 4108
            putstatic java.math.BigDecimal.THRESHOLDS_TABLE:[J
       121: .line 5598
            bipush 20
            anewarray long[]
            dup
            iconst_0
       122: .line 5599
            iconst_2
            newarray 11
            dup
            iconst_1
            ldc -8446744073709551616
            lastore
            aastore
            dup
            iconst_1
       123: .line 5600
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5
            lastore
            dup
            iconst_1
            ldc 7766279631452241920
            lastore
            aastore
            dup
            iconst_2
       124: .line 5601
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54
            lastore
            dup
            iconst_1
            ldc 3875820019684212736
            lastore
            aastore
            dup
            iconst_3
       125: .line 5602
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542
            lastore
            dup
            iconst_1
            ldc 1864712049423024128
            lastore
            aastore
            dup
            iconst_4
       126: .line 5603
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421
            lastore
            dup
            iconst_1
            ldc 200376420520689664
            lastore
            aastore
            dup
            iconst_5
       127: .line 5604
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210
            lastore
            dup
            iconst_1
            ldc 2003764205206896640
            lastore
            aastore
            dup
            bipush 6
       128: .line 5605
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101
            lastore
            dup
            iconst_1
            ldc 1590897978359414784
            lastore
            aastore
            dup
            bipush 7
       129: .line 5606
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010
            lastore
            dup
            iconst_1
            ldc -2537764290115403776
            lastore
            aastore
            dup
            bipush 8
       130: .line 5607
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108
            lastore
            dup
            iconst_1
            ldc -6930898827444486144
            lastore
            aastore
            dup
            bipush 9
       131: .line 5608
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086
            lastore
            dup
            iconst_1
            ldc 4477988020393345024
            lastore
            aastore
            dup
            bipush 10
       132: .line 5609
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862
            lastore
            dup
            iconst_1
            ldc 7886392056514347008
            lastore
            aastore
            dup
            bipush 11
       133: .line 5610
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108624
            lastore
            dup
            iconst_1
            ldc 5076944270305263616
            lastore
            aastore
            dup
            bipush 12
       134: .line 5611
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086242
            lastore
            dup
            iconst_1
            ldc -4570789518076018688
            lastore
            aastore
            dup
            bipush 13
       135: .line 5612
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862427
            lastore
            dup
            iconst_1
            ldc -8814407033341083648
            lastore
            aastore
            dup
            bipush 14
       136: .line 5613
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108624275
            lastore
            dup
            iconst_1
            ldc 4089650035136921600
            lastore
            aastore
            dup
            bipush 15
       137: .line 5614
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086242752
            lastore
            dup
            iconst_1
            ldc 4003012203950112768
            lastore
            aastore
            dup
            bipush 16
       138: .line 5615
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862427522
            lastore
            dup
            iconst_1
            ldc 3136633892082024448
            lastore
            aastore
            dup
            bipush 17
       139: .line 5616
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108624275221
            lastore
            dup
            iconst_1
            ldc -5527149226598858752
            lastore
            aastore
            dup
            bipush 18
       140: .line 5617
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086242752217
            lastore
            dup
            iconst_1
            ldc 68739955140067328
            lastore
            aastore
            dup
            bipush 19
       141: .line 5618
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862427522170
            lastore
            dup
            iconst_1
            ldc 687399551400673280
            lastore
            aastore
       142: .line 5598
            putstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
       143: .line 5619
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.math.BigInteger, long, int, int);
    descriptor: (Ljava/math/BigInteger;JII)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger intVal
        start local 2 // long val
        start local 4 // int scale
        start local 5 // int prec
         0: .line 374
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 375
            aload 0 /* this */
            iload 4 /* scale */
            putfield java.math.BigDecimal.scale:I
         2: .line 376
            aload 0 /* this */
            iload 5 /* prec */
            putfield java.math.BigDecimal.precision:I
         3: .line 377
            aload 0 /* this */
            lload 2 /* val */
            putfield java.math.BigDecimal.intCompact:J
         4: .line 378
            aload 0 /* this */
            aload 1 /* intVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         5: .line 379
            return
        end local 5 // int prec
        end local 4 // int scale
        end local 2 // long val
        end local 1 // java.math.BigInteger intVal
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/math/BigDecimal;
            0    6     1  intVal  Ljava/math/BigInteger;
            0    6     2     val  J
            0    6     4   scale  I
            0    6     5    prec  I
    MethodParameters:
        Name  Flags
      intVal  
      val     
      scale   
      prec    

  public void <init>(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
        start local 2 // int offset
        start local 3 // int len
         0: .line 401
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* offset */
            iload 3 /* len */
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
         1: .line 402
            return
        end local 3 // int len
        end local 2 // int offset
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/math/BigDecimal;
            0    2     1      in  [C
            0    2     2  offset  I
            0    2     3     len  I
    MethodParameters:
        Name  Flags
      in      
      offset  
      len     

  public void <init>(char[], int, int, java.math.MathContext);
    descriptor: ([CIILjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=20, args_size=5
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
        start local 2 // int offset
        start local 3 // int len
        start local 4 // java.math.MathContext mc
         0: .line 427
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 430
            iload 2 /* offset */
            iload 3 /* len */
            aload 1 /* in */
            arraylength
            invokestatic java.util.Objects.checkFromIndexSize:(III)I
            pop
         2: .line 431
            goto 7
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext
      StackMap stack: java.lang.IndexOutOfBoundsException
         3: pop
         4: .line 432
            new java.lang.NumberFormatException
            dup
         5: .line 433
            ldc "Bad offset or len arguments for char[] input."
         6: .line 432
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 442
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* prec */
        start local 5 // int prec
         8: .line 443
            iconst_0
            istore 6 /* scl */
        start local 6 // int scl
         9: .line 444
            lconst_0
            lstore 7 /* rs */
        start local 7 // long rs
        10: .line 445
            aconst_null
            astore 9 /* rb */
        start local 9 // java.math.BigInteger rb
        11: .line 450
            iconst_0
            istore 10 /* isneg */
        start local 10 // boolean isneg
        12: .line 451
            aload 1 /* in */
            iload 2 /* offset */
            caload
            bipush 45
            if_icmpne 17
        13: .line 452
            iconst_1
            istore 10 /* isneg */
        14: .line 453
            iinc 2 /* offset */ 1
        15: .line 454
            iinc 3 /* len */ -1
        16: .line 455
            goto 20
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int
      StackMap stack:
        17: aload 1 /* in */
            iload 2 /* offset */
            caload
            bipush 43
            if_icmpne 20
        18: .line 456
            iinc 2 /* offset */ 1
        19: .line 457
            iinc 3 /* len */ -1
        20: .line 461
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* dot */
        start local 11 // boolean dot
        21: .line 462
            lconst_0
            lstore 12 /* exp */
        start local 12 // long exp
        22: .line 464
            iload 3 /* len */
            bipush 18
            if_icmpgt 23
            iconst_1
            goto 24
      StackMap locals: int long
      StackMap stack:
        23: iconst_0
      StackMap locals:
      StackMap stack: int
        24: istore 15 /* isCompact */
        start local 15 // boolean isCompact
        25: .line 467
            iconst_0
            istore 16 /* idx */
        start local 16 // int idx
        26: .line 468
            iload 15 /* isCompact */
            ifeq 93
        27: .line 471
            goto 75
        28: .line 472
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            caload
            istore 14 /* c */
        start local 14 // char c
        29: .line 473
            iload 14 /* c */
            bipush 48
            if_icmpne 38
        30: .line 474
            iload 5 /* prec */
            ifne 32
        31: .line 475
            iconst_1
            istore 5 /* prec */
            goto 35
        32: .line 476
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long int int int
      StackMap stack:
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 35
        33: .line 477
            lload 7 /* rs */
            ldc 10
            lmul
            lstore 7 /* rs */
        34: .line 478
            iinc 5 /* prec */ 1
        35: .line 480
      StackMap locals:
      StackMap stack:
            iload 11 /* dot */
            ifeq 74
        36: .line 481
            iinc 6 /* scl */ 1
        37: .line 482
            goto 74
      StackMap locals:
      StackMap stack:
        38: iload 14 /* c */
            bipush 49
            if_icmplt 46
            iload 14 /* c */
            bipush 57
            if_icmpgt 46
        39: .line 483
            iload 14 /* c */
            bipush 48
            isub
            istore 17 /* digit */
        start local 17 // int digit
        40: .line 484
            iload 5 /* prec */
            iconst_1
            if_icmpne 41
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 42
        41: .line 485
      StackMap locals: int
      StackMap stack:
            iinc 5 /* prec */ 1
        42: .line 486
      StackMap locals:
      StackMap stack:
            lload 7 /* rs */
            ldc 10
            lmul
            iload 17 /* digit */
            i2l
            ladd
            lstore 7 /* rs */
        43: .line 487
            iload 11 /* dot */
            ifeq 74
        44: .line 488
            iinc 6 /* scl */ 1
        end local 17 // int digit
        45: .line 489
            goto 74
      StackMap locals:
      StackMap stack:
        46: iload 14 /* c */
            bipush 46
            if_icmpne 51
        47: .line 491
            iload 11 /* dot */
            ifeq 49
        48: .line 492
            new java.lang.NumberFormatException
            dup
            ldc "Character array contains more than one decimal point."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 494
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 11 /* dot */
        50: .line 495
            goto 74
      StackMap locals:
      StackMap stack:
        51: iload 14 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifeq 66
        52: .line 496
            iload 14 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            istore 17 /* digit */
        start local 17 // int digit
        53: .line 497
            iload 17 /* digit */
            ifne 60
        54: .line 498
            iload 5 /* prec */
            ifne 56
        55: .line 499
            iconst_1
            istore 5 /* prec */
            goto 63
        56: .line 500
      StackMap locals: int
      StackMap stack:
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 63
        57: .line 501
            lload 7 /* rs */
            ldc 10
            lmul
            lstore 7 /* rs */
        58: .line 502
            iinc 5 /* prec */ 1
        59: .line 504
            goto 63
        60: .line 505
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            iconst_1
            if_icmpne 61
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 62
        61: .line 506
      StackMap locals:
      StackMap stack:
            iinc 5 /* prec */ 1
        62: .line 507
      StackMap locals:
      StackMap stack:
            lload 7 /* rs */
            ldc 10
            lmul
            iload 17 /* digit */
            i2l
            ladd
            lstore 7 /* rs */
        63: .line 509
      StackMap locals:
      StackMap stack:
            iload 11 /* dot */
            ifeq 74
        64: .line 510
            iinc 6 /* scl */ 1
        end local 17 // int digit
        65: .line 511
            goto 74
      StackMap locals:
      StackMap stack:
        66: iload 14 /* c */
            bipush 101
            if_icmpeq 67
            iload 14 /* c */
            bipush 69
            if_icmpne 70
        67: .line 512
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            iload 3 /* len */
            invokestatic java.math.BigDecimal.parseExp:([CII)J
            lstore 12 /* exp */
        68: .line 514
            lload 12 /* exp */
            l2i
            i2l
            lload 12 /* exp */
            lcmp
            ifeq 76
        69: .line 515
            new java.lang.NumberFormatException
            dup
            ldc "Exponent overflow."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        70: .line 518
      StackMap locals:
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Character "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 14 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        71: .line 519
            ldc " is neither a decimal digit number, decimal point, nor"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        72: .line 520
            ldc " \"e\" notation exponential mark."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        73: .line 518
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        74: .line 471
      StackMap locals:
      StackMap stack:
            iinc 2 /* offset */ 1
            iinc 3 /* len */ -1
        end local 14 // char c
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int
      StackMap stack:
        75: iload 3 /* len */
            ifgt 28
        76: .line 523
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            ifne 78
        77: .line 524
            new java.lang.NumberFormatException
            dup
            ldc "No digits found."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        78: .line 526
      StackMap locals:
      StackMap stack:
            lload 12 /* exp */
            lconst_0
            lcmp
            ifeq 80
        79: .line 527
            aload 0 /* this */
            iload 6 /* scl */
            lload 12 /* exp */
            invokevirtual java.math.BigDecimal.adjustScale:(IJ)I
            istore 6 /* scl */
        80: .line 529
      StackMap locals:
      StackMap stack:
            iload 10 /* isneg */
            ifeq 81
            lload 7 /* rs */
            lneg
            goto 82
      StackMap locals:
      StackMap stack:
        81: lload 7 /* rs */
      StackMap locals:
      StackMap stack: long
        82: lstore 7 /* rs */
        83: .line 530
            aload 4 /* mc */
            getfield java.math.MathContext.precision:I
            istore 17 /* mcp */
        start local 17 // int mcp
        84: .line 531
            iload 5 /* prec */
            iload 17 /* mcp */
            isub
            istore 18 /* drop */
        start local 18 // int drop
        85: .line 533
            iload 17 /* mcp */
            ifle 161
            iload 18 /* drop */
            ifle 161
        86: .line 534
            goto 91
        87: .line 535
      StackMap locals: int int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 18 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
        88: .line 536
            lload 7 /* rs */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 18 /* drop */
            laload
            aload 4 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 7 /* rs */
        89: .line 537
            lload 7 /* rs */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
        90: .line 538
            iload 5 /* prec */
            iload 17 /* mcp */
            isub
            istore 18 /* drop */
        91: .line 534
      StackMap locals:
      StackMap stack:
            iload 18 /* drop */
            ifgt 87
        end local 18 // int drop
        end local 17 // int mcp
        92: .line 541
            goto 161
        93: .line 542
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            newarray 5
            astore 17 /* coeff */
        start local 17 // char[] coeff
        94: .line 543
            goto 124
        95: .line 544
      StackMap locals: char[]
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            caload
            istore 14 /* c */
        start local 14 // char c
        96: .line 546
            iload 14 /* c */
            bipush 48
            if_icmplt 97
            iload 14 /* c */
            bipush 57
            if_icmple 98
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long int int int char[]
      StackMap stack:
        97: iload 14 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifeq 113
        98: .line 549
      StackMap locals:
      StackMap stack:
            iload 14 /* c */
            bipush 48
            if_icmpeq 99
            iload 14 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            ifne 107
        99: .line 550
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            ifne 103
       100: .line 551
            aload 17 /* coeff */
            iload 16 /* idx */
            iload 14 /* c */
            castore
       101: .line 552
            iconst_1
            istore 5 /* prec */
       102: .line 553
            goto 110
      StackMap locals:
      StackMap stack:
       103: iload 16 /* idx */
            ifeq 110
       104: .line 554
            aload 17 /* coeff */
            iload 16 /* idx */
            iinc 16 /* idx */ 1
            iload 14 /* c */
            castore
       105: .line 555
            iinc 5 /* prec */ 1
       106: .line 557
            goto 110
       107: .line 558
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            iconst_1
            if_icmpne 108
            iload 16 /* idx */
            ifeq 109
       108: .line 559
      StackMap locals:
      StackMap stack:
            iinc 5 /* prec */ 1
       109: .line 560
      StackMap locals:
      StackMap stack:
            aload 17 /* coeff */
            iload 16 /* idx */
            iinc 16 /* idx */ 1
            iload 14 /* c */
            castore
       110: .line 562
      StackMap locals:
      StackMap stack:
            iload 11 /* dot */
            ifeq 123
       111: .line 563
            iinc 6 /* scl */ 1
       112: .line 564
            goto 123
       113: .line 567
      StackMap locals:
      StackMap stack:
            iload 14 /* c */
            bipush 46
            if_icmpne 118
       114: .line 569
            iload 11 /* dot */
            ifeq 116
       115: .line 570
            new java.lang.NumberFormatException
            dup
            ldc "Character array contains more than one decimal point."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
       116: .line 572
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 11 /* dot */
       117: .line 573
            goto 123
       118: .line 576
      StackMap locals:
      StackMap stack:
            iload 14 /* c */
            bipush 101
            if_icmpeq 120
            iload 14 /* c */
            bipush 69
            if_icmpeq 120
       119: .line 577
            new java.lang.NumberFormatException
            dup
            ldc "Character array is missing \"e\" notation exponential mark."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
       120: .line 579
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            iload 3 /* len */
            invokestatic java.math.BigDecimal.parseExp:([CII)J
            lstore 12 /* exp */
       121: .line 581
            lload 12 /* exp */
            l2i
            i2l
            lload 12 /* exp */
            lcmp
            ifeq 125
       122: .line 582
            new java.lang.NumberFormatException
            dup
            ldc "Exponent overflow."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
       123: .line 543
      StackMap locals:
      StackMap stack:
            iinc 2 /* offset */ 1
            iinc 3 /* len */ -1
        end local 14 // char c
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
      StackMap stack:
       124: iload 3 /* len */
            ifgt 95
       125: .line 586
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            ifne 127
       126: .line 587
            new java.lang.NumberFormatException
            dup
            ldc "No digits found."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
       127: .line 589
      StackMap locals:
      StackMap stack:
            lload 12 /* exp */
            lconst_0
            lcmp
            ifeq 129
       128: .line 590
            aload 0 /* this */
            iload 6 /* scl */
            lload 12 /* exp */
            invokevirtual java.math.BigDecimal.adjustScale:(IJ)I
            istore 6 /* scl */
       129: .line 593
      StackMap locals:
      StackMap stack:
            new java.math.BigInteger
            dup
            aload 17 /* coeff */
            iload 10 /* isneg */
            ifeq 130
            iconst_m1
            goto 131
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
      StackMap stack: new 129 new 129 char[]
       130: iconst_1
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
      StackMap stack: new 129 new 129 char[] int
       131: iload 5 /* prec */
            invokespecial java.math.BigInteger.<init>:([CII)V
            astore 9 /* rb */
       132: .line 594
            aload 9 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 7 /* rs */
       133: .line 595
            aload 4 /* mc */
            getfield java.math.MathContext.precision:I
            istore 18 /* mcp */
        start local 18 // int mcp
       134: .line 596
            iload 18 /* mcp */
            ifle 161
            iload 5 /* prec */
            iload 18 /* mcp */
            if_icmple 161
       135: .line 597
            lload 7 /* rs */
            ldc -9223372036854775808
            lcmp
            ifne 147
       136: .line 598
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
        start local 19 // int drop
       137: .line 599
            goto 146
       138: .line 600
      StackMap locals: int int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 19 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
       139: .line 601
            aload 9 /* rb */
            iload 19 /* drop */
            aload 4 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 9 /* rb */
       140: .line 602
            aload 9 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 7 /* rs */
       141: .line 603
            lload 7 /* rs */
            ldc -9223372036854775808
            lcmp
            ifeq 144
       142: .line 604
            lload 7 /* rs */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
       143: .line 605
            goto 147
       144: .line 607
      StackMap locals:
      StackMap stack:
            aload 9 /* rb */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 5 /* prec */
       145: .line 608
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
       146: .line 599
      StackMap locals:
      StackMap stack:
            iload 19 /* drop */
            ifgt 138
        end local 19 // int drop
       147: .line 611
      StackMap locals:
      StackMap stack:
            lload 7 /* rs */
            ldc -9223372036854775808
            lcmp
            ifeq 161
       148: .line 612
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
        start local 19 // int drop
       149: .line 613
            goto 154
       150: .line 614
      StackMap locals: int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 19 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
       151: .line 615
            lload 7 /* rs */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 19 /* drop */
            laload
            aload 4 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 7 /* rs */
       152: .line 616
            lload 7 /* rs */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
       153: .line 617
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
       154: .line 613
      StackMap locals:
      StackMap stack:
            iload 19 /* drop */
            ifgt 150
       155: .line 619
            aconst_null
            astore 9 /* rb */
        end local 19 // int drop
        end local 18 // int mcp
        end local 17 // char[] coeff
        end local 16 // int idx
        end local 15 // boolean isCompact
        end local 12 // long exp
        end local 11 // boolean dot
        end local 10 // boolean isneg
       156: .line 623
            goto 161
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger
      StackMap stack: java.lang.RuntimeException
       157: astore 10 /* e */
        start local 10 // java.lang.RuntimeException e
       158: .line 624
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            astore 11 /* nfe */
        start local 11 // java.lang.NumberFormatException nfe
       159: .line 625
            aload 11 /* nfe */
            aload 10 /* e */
            invokevirtual java.lang.NumberFormatException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
       160: .line 626
            aload 11 /* nfe */
            athrow
        end local 11 // java.lang.NumberFormatException nfe
        end local 10 // java.lang.RuntimeException e
       161: .line 628
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* scl */
            putfield java.math.BigDecimal.scale:I
       162: .line 629
            aload 0 /* this */
            iload 5 /* prec */
            putfield java.math.BigDecimal.precision:I
       163: .line 630
            aload 0 /* this */
            lload 7 /* rs */
            putfield java.math.BigDecimal.intCompact:J
       164: .line 631
            aload 0 /* this */
            aload 9 /* rb */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
       165: .line 632
            return
        end local 9 // java.math.BigInteger rb
        end local 7 // long rs
        end local 6 // int scl
        end local 5 // int prec
        end local 4 // java.math.MathContext mc
        end local 3 // int len
        end local 2 // int offset
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0  166     0       this  Ljava/math/BigDecimal;
            0  166     1         in  [C
            0  166     2     offset  I
            0  166     3        len  I
            0  166     4         mc  Ljava/math/MathContext;
            8  166     5       prec  I
            9  166     6        scl  I
           10  166     7         rs  J
           11  166     9         rb  Ljava/math/BigInteger;
           12  156    10      isneg  Z
           21  156    11        dot  Z
           22  156    12        exp  J
           29   75    14          c  C
           96  124    14          c  C
           25  156    15  isCompact  Z
           26  156    16        idx  I
           40   45    17      digit  I
           53   65    17      digit  I
           84   92    17        mcp  I
           85   92    18       drop  I
           94  156    17      coeff  [C
          134  156    18        mcp  I
          137  147    19       drop  I
          149  156    19       drop  I
          158  161    10          e  Ljava/lang/RuntimeException;
          159  161    11        nfe  Ljava/lang/NumberFormatException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.IndexOutOfBoundsException
          11   156     157  Class java.lang.ArrayIndexOutOfBoundsException
          11   156     157  Class java.lang.NegativeArraySizeException
    MethodParameters:
        Name  Flags
      in      
      offset  
      len     
      mc      

  private int adjustScale(int, long);
    descriptor: (IJ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int scl
        start local 2 // long exp
         0: .line 635
            iload 1 /* scl */
            i2l
            lload 2 /* exp */
            lsub
            lstore 4 /* adjustedScale */
        start local 4 // long adjustedScale
         1: .line 636
            lload 4 /* adjustedScale */
            ldc 2147483647
            lcmp
            ifgt 2
            lload 4 /* adjustedScale */
            ldc -2147483648
            lcmp
            ifge 3
         2: .line 637
      StackMap locals: long
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Scale out of range."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 638
      StackMap locals:
      StackMap stack:
            lload 4 /* adjustedScale */
            l2i
            istore 1 /* scl */
         4: .line 639
            iload 1 /* scl */
            ireturn
        end local 4 // long adjustedScale
        end local 2 // long exp
        end local 1 // int scl
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Ljava/math/BigDecimal;
            0    5     1            scl  I
            0    5     2            exp  J
            1    5     4  adjustedScale  J
    MethodParameters:
      Name  Flags
      scl   
      exp   

  private static long parseExp(char[], int, int);
    descriptor: ([CII)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // char[] in
        start local 1 // int offset
        start local 2 // int len
         0: .line 646
            lconst_0
            lstore 3 /* exp */
        start local 3 // long exp
         1: .line 647
            iinc 1 /* offset */ 1
         2: .line 648
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        start local 5 // char c
         3: .line 649
            iinc 2 /* len */ -1
         4: .line 650
            iload 5 /* c */
            bipush 45
            if_icmpne 5
            iconst_1
            goto 6
      StackMap locals: long int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* negexp */
        start local 6 // boolean negexp
         7: .line 652
            iload 6 /* negexp */
            ifne 8
            iload 5 /* c */
            bipush 43
            if_icmpne 11
         8: .line 653
      StackMap locals: int
      StackMap stack:
            iinc 1 /* offset */ 1
         9: .line 654
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        10: .line 655
            iinc 2 /* len */ -1
        11: .line 657
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            ifgt 16
        12: .line 658
            new java.lang.NumberFormatException
            dup
            ldc "No exponent digits."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 661
      StackMap locals:
      StackMap stack:
            iinc 1 /* offset */ 1
        14: .line 662
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        15: .line 663
            iinc 2 /* len */ -1
        16: .line 660
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            bipush 10
            if_icmple 17
            iload 5 /* c */
            bipush 48
            if_icmpeq 13
            iload 5 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            ifeq 13
        17: .line 665
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            bipush 10
            if_icmple 19
        18: .line 666
            new java.lang.NumberFormatException
            dup
            ldc "Too many nonzero exponent digits."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 670
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            bipush 48
            if_icmplt 22
            iload 5 /* c */
            bipush 57
            if_icmpgt 22
        20: .line 671
            iload 5 /* c */
            bipush 48
            isub
            istore 7 /* v */
        start local 7 // int v
        21: .line 672
            goto 25
        end local 7 // int v
        22: .line 673
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            istore 7 /* v */
        start local 7 // int v
        23: .line 674
            iload 7 /* v */
            ifge 25
        24: .line 675
            new java.lang.NumberFormatException
            dup
            ldc "Not a digit."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 677
      StackMap locals: int
      StackMap stack:
            lload 3 /* exp */
            ldc 10
            lmul
            iload 7 /* v */
            i2l
            ladd
            lstore 3 /* exp */
        26: .line 678
            iload 2 /* len */
            iconst_1
            if_icmpne 28
        27: .line 679
            goto 31
        28: .line 680
      StackMap locals:
      StackMap stack:
            iinc 1 /* offset */ 1
        29: .line 681
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        end local 7 // int v
        30: .line 668
            iinc 2 /* len */ -1
            goto 19
        31: .line 683
      StackMap locals:
      StackMap stack:
            iload 6 /* negexp */
            ifeq 33
        32: .line 684
            lload 3 /* exp */
            lneg
            lstore 3 /* exp */
        33: .line 685
      StackMap locals:
      StackMap stack:
            lload 3 /* exp */
            lreturn
        end local 6 // boolean negexp
        end local 5 // char c
        end local 3 // long exp
        end local 2 // int len
        end local 1 // int offset
        end local 0 // char[] in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0      in  [C
            0   34     1  offset  I
            0   34     2     len  I
            1   34     3     exp  J
            3   34     5       c  C
            7   34     6  negexp  Z
           21   22     7       v  I
           23   30     7       v  I
    MethodParameters:
        Name  Flags
      in      
      offset  
      len     

  public void <init>(char[]);
    descriptor: ([C)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
         0: .line 705
            aload 0 /* this */
            aload 1 /* in */
            iconst_0
            aload 1 /* in */
            arraylength
            invokespecial java.math.BigDecimal.<init>:([CII)V
         1: .line 706
            return
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1    in  [C
    MethodParameters:
      Name  Flags
      in    

  public void <init>(char[], java.math.MathContext);
    descriptor: ([CLjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
        start local 2 // java.math.MathContext mc
         0: .line 729
            aload 0 /* this */
            aload 1 /* in */
            iconst_0
            aload 1 /* in */
            arraylength
            aload 2 /* mc */
            invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
         1: .line 730
            return
        end local 2 // java.math.MathContext mc
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1    in  [C
            0    2     2    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      in    
      mc    

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.lang.String val
         0: .line 834
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 1 /* val */
            invokevirtual java.lang.String.length:()I
            invokespecial java.math.BigDecimal.<init>:([CII)V
         1: .line 835
            return
        end local 1 // java.lang.String val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      val   

  public void <init>(java.lang.String, java.math.MathContext);
    descriptor: (Ljava/lang/String;Ljava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.lang.String val
        start local 2 // java.math.MathContext mc
         0: .line 852
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 1 /* val */
            invokevirtual java.lang.String.length:()I
            aload 2 /* mc */
            invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
         1: .line 853
            return
        end local 2 // java.math.MathContext mc
        end local 1 // java.lang.String val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  Ljava/lang/String;
            0    2     2    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(double);
    descriptor: (D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // double val
         0: .line 900
            aload 0 /* this */
            dload 1 /* val */
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokespecial java.math.BigDecimal.<init>:(DLjava/math/MathContext;)V
         1: .line 901
            return
        end local 1 // double val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  D
    MethodParameters:
      Name  Flags
      val   

  public void <init>(double, java.math.MathContext);
    descriptor: (DLjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=18, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // double val
        start local 3 // java.math.MathContext mc
         0: .line 921
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 922
            dload 1 /* val */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifne 2
            dload 1 /* val */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifeq 3
         2: .line 923
      StackMap locals: java.math.BigDecimal double java.math.MathContext
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Infinite or NaN"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 926
      StackMap locals:
      StackMap stack:
            dload 1 /* val */
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lstore 4 /* valBits */
        start local 4 // long valBits
         4: .line 927
            lload 4 /* valBits */
            bipush 63
            lshr
            lconst_0
            lcmp
            ifne 5
            iconst_1
            goto 6
      StackMap locals: long
      StackMap stack:
         5: iconst_m1
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* sign */
        start local 6 // int sign
         7: .line 928
            lload 4 /* valBits */
            bipush 52
            lshr
            ldc 2047
            land
            l2i
            istore 7 /* exponent */
        start local 7 // int exponent
         8: .line 929
            iload 7 /* exponent */
            ifne 10
         9: .line 930
            lload 4 /* valBits */
            ldc 4503599627370495
            land
            iconst_1
            lshl
            goto 11
        10: .line 931
      StackMap locals: int int
      StackMap stack:
            lload 4 /* valBits */
            ldc 4503599627370495
            land
            ldc 4503599627370496
            lor
        11: .line 929
      StackMap locals:
      StackMap stack: long
            lstore 8 /* significand */
        start local 8 // long significand
        12: .line 932
            iinc 7 /* exponent */ -1075
        13: .line 939
            lload 8 /* significand */
            lconst_0
            lcmp
            ifne 21
        14: .line 940
            aload 0 /* this */
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        15: .line 941
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
        16: .line 942
            aload 0 /* this */
            lconst_0
            putfield java.math.BigDecimal.intCompact:J
        17: .line 943
            aload 0 /* this */
            iconst_1
            putfield java.math.BigDecimal.precision:I
        18: .line 944
            return
        19: .line 948
      StackMap locals: long
      StackMap stack:
            lload 8 /* significand */
            iconst_1
            lshr
            lstore 8 /* significand */
        20: .line 949
            iinc 7 /* exponent */ 1
        21: .line 947
      StackMap locals:
      StackMap stack:
            lload 8 /* significand */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 19
        22: .line 951
            iconst_0
            istore 10 /* scl */
        start local 10 // int scl
        23: .line 954
            iload 6 /* sign */
            i2l
            lload 8 /* significand */
            lmul
            lstore 12 /* compactVal */
        start local 12 // long compactVal
        24: .line 955
            iload 7 /* exponent */
            ifne 29
        25: .line 956
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 26
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 27
      StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int top long
      StackMap stack:
        26: aconst_null
      StackMap locals:
      StackMap stack: java.math.BigInteger
        27: astore 11 /* rb */
        start local 11 // java.math.BigInteger rb
        28: .line 957
            goto 35
        end local 11 // java.math.BigInteger rb
        29: .line 958
      StackMap locals:
      StackMap stack:
            iload 7 /* exponent */
            ifge 33
        30: .line 959
            ldc 5
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            iload 7 /* exponent */
            ineg
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            lload 12 /* compactVal */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            astore 11 /* rb */
        start local 11 // java.math.BigInteger rb
        31: .line 960
            iload 7 /* exponent */
            ineg
            istore 10 /* scl */
        32: .line 961
            goto 34
        end local 11 // java.math.BigInteger rb
        33: .line 962
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
            iload 7 /* exponent */
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            lload 12 /* compactVal */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            astore 11 /* rb */
        start local 11 // java.math.BigInteger rb
        34: .line 964
      StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int java.math.BigInteger long
      StackMap stack:
            aload 11 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 12 /* compactVal */
        35: .line 966
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 14 /* prec */
        start local 14 // int prec
        36: .line 967
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 15 /* mcp */
        start local 15 // int mcp
        37: .line 968
            iload 15 /* mcp */
            ifle 61
        38: .line 969
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 16 /* mode */
        start local 16 // int mode
        39: .line 971
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 51
        40: .line 972
            aload 11 /* rb */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 14 /* prec */
        41: .line 973
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        start local 17 // int drop
        42: .line 974
            goto 50
        43: .line 975
      StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int java.math.BigInteger long int int int int
      StackMap stack:
            iload 10 /* scl */
            i2l
            iload 17 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 10 /* scl */
        44: .line 976
            aload 11 /* rb */
            iload 17 /* drop */
            iload 16 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 11 /* rb */
        45: .line 977
            aload 11 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 12 /* compactVal */
        46: .line 978
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 48
        47: .line 979
            goto 51
        48: .line 981
      StackMap locals:
      StackMap stack:
            aload 11 /* rb */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 14 /* prec */
        49: .line 982
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        50: .line 974
      StackMap locals:
      StackMap stack:
            iload 17 /* drop */
            ifgt 43
        end local 17 // int drop
        51: .line 985
      StackMap locals:
      StackMap stack:
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 61
        52: .line 986
            lload 12 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 14 /* prec */
        53: .line 987
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        start local 17 // int drop
        54: .line 988
            goto 59
        55: .line 989
      StackMap locals: int
      StackMap stack:
            iload 10 /* scl */
            i2l
            iload 17 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 10 /* scl */
        56: .line 990
            lload 12 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 17 /* drop */
            laload
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 12 /* compactVal */
        57: .line 991
            lload 12 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 14 /* prec */
        58: .line 992
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        59: .line 988
      StackMap locals:
      StackMap stack:
            iload 17 /* drop */
            ifgt 55
        60: .line 994
            aconst_null
            astore 11 /* rb */
        end local 17 // int drop
        end local 16 // int mode
        61: .line 997
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* rb */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        62: .line 998
            aload 0 /* this */
            lload 12 /* compactVal */
            putfield java.math.BigDecimal.intCompact:J
        63: .line 999
            aload 0 /* this */
            iload 10 /* scl */
            putfield java.math.BigDecimal.scale:I
        64: .line 1000
            aload 0 /* this */
            iload 14 /* prec */
            putfield java.math.BigDecimal.precision:I
        65: .line 1001
            return
        end local 15 // int mcp
        end local 14 // int prec
        end local 12 // long compactVal
        end local 11 // java.math.BigInteger rb
        end local 10 // int scl
        end local 8 // long significand
        end local 7 // int exponent
        end local 6 // int sign
        end local 4 // long valBits
        end local 3 // java.math.MathContext mc
        end local 1 // double val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   66     0         this  Ljava/math/BigDecimal;
            0   66     1          val  D
            0   66     3           mc  Ljava/math/MathContext;
            4   66     4      valBits  J
            7   66     6         sign  I
            8   66     7     exponent  I
           12   66     8  significand  J
           23   66    10          scl  I
           28   29    11           rb  Ljava/math/BigInteger;
           31   33    11           rb  Ljava/math/BigInteger;
           34   66    11           rb  Ljava/math/BigInteger;
           24   66    12   compactVal  J
           36   66    14         prec  I
           37   66    15          mcp  I
           39   61    16         mode  I
           42   51    17         drop  I
           54   61    17         drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger val
         0: .line 1010
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1011
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
         2: .line 1012
            aload 0 /* this */
            aload 1 /* val */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         3: .line 1013
            aload 0 /* this */
            aload 1 /* val */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            putfield java.math.BigDecimal.intCompact:J
         4: .line 1014
            return
        end local 1 // java.math.BigInteger val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;
            0    5     1   val  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      val   

  public void <init>(java.math.BigInteger, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;Ljava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger val
        start local 2 // java.math.MathContext mc
         0: .line 1029
            aload 0 /* this */
            aload 1 /* val */
            iconst_0
            aload 2 /* mc */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;ILjava/math/MathContext;)V
         1: .line 1030
            return
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigInteger val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  Ljava/math/BigInteger;
            0    2     2    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger unscaledVal
        start local 2 // int scale
         0: .line 1041
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1043
            aload 0 /* this */
            aload 1 /* unscaledVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         2: .line 1044
            aload 0 /* this */
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            putfield java.math.BigDecimal.intCompact:J
         3: .line 1045
            aload 0 /* this */
            iload 2 /* scale */
            putfield java.math.BigDecimal.scale:I
         4: .line 1046
            return
        end local 2 // int scale
        end local 1 // java.math.BigInteger unscaledVal
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Ljava/math/BigDecimal;
            0    5     1  unscaledVal  Ljava/math/BigInteger;
            0    5     2        scale  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        

  public void <init>(java.math.BigInteger, int, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;ILjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger unscaledVal
        start local 2 // int scale
        start local 3 // java.math.MathContext mc
         0: .line 1063
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1064
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 4 /* compactVal */
        start local 4 // long compactVal
         2: .line 1065
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 6 /* mcp */
        start local 6 // int mcp
         3: .line 1066
            iconst_0
            istore 7 /* prec */
        start local 7 // int prec
         4: .line 1067
            iload 6 /* mcp */
            ifle 28
         5: .line 1068
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 8 /* mode */
        start local 8 // int mode
         6: .line 1069
            lload 4 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 18
         7: .line 1070
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 7 /* prec */
         8: .line 1071
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
         9: .line 1072
            goto 17
        10: .line 1073
      StackMap locals: java.math.BigDecimal java.math.BigInteger int java.math.MathContext long int int int int
      StackMap stack:
            iload 2 /* scale */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 2 /* scale */
        11: .line 1074
            aload 1 /* unscaledVal */
            iload 9 /* drop */
            iload 8 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 1 /* unscaledVal */
        12: .line 1075
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 4 /* compactVal */
        13: .line 1076
            lload 4 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 15
        14: .line 1077
            goto 18
        15: .line 1079
      StackMap locals:
      StackMap stack:
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 7 /* prec */
        16: .line 1080
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        17: .line 1072
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 10
        end local 9 // int drop
        18: .line 1083
      StackMap locals:
      StackMap stack:
            lload 4 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 28
        19: .line 1084
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
        20: .line 1085
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
        21: .line 1086
            goto 26
        22: .line 1087
      StackMap locals: int
      StackMap stack:
            iload 2 /* scale */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 2 /* scale */
        23: .line 1088
            lload 4 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* drop */
            laload
            iload 8 /* mode */
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 4 /* compactVal */
        24: .line 1089
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
        25: .line 1090
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        26: .line 1086
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 22
        27: .line 1092
            aconst_null
            astore 1 /* unscaledVal */
        end local 9 // int drop
        end local 8 // int mode
        28: .line 1095
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unscaledVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        29: .line 1096
            aload 0 /* this */
            lload 4 /* compactVal */
            putfield java.math.BigDecimal.intCompact:J
        30: .line 1097
            aload 0 /* this */
            iload 2 /* scale */
            putfield java.math.BigDecimal.scale:I
        31: .line 1098
            aload 0 /* this */
            iload 7 /* prec */
            putfield java.math.BigDecimal.precision:I
        32: .line 1099
            return
        end local 7 // int prec
        end local 6 // int mcp
        end local 4 // long compactVal
        end local 3 // java.math.MathContext mc
        end local 2 // int scale
        end local 1 // java.math.BigInteger unscaledVal
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   33     0         this  Ljava/math/BigDecimal;
            0   33     1  unscaledVal  Ljava/math/BigInteger;
            0   33     2        scale  I
            0   33     3           mc  Ljava/math/MathContext;
            2   33     4   compactVal  J
            3   33     6          mcp  I
            4   33     7         prec  I
            6   28     8         mode  I
            9   18     9         drop  I
           21   28     9         drop  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        
      mc           

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int val
         0: .line 1109
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1110
            aload 0 /* this */
            iload 1 /* val */
            i2l
            putfield java.math.BigDecimal.intCompact:J
         2: .line 1111
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
         3: .line 1112
            aload 0 /* this */
            aconst_null
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         4: .line 1113
            return
        end local 1 // int val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;
            0    5     1   val  I
    MethodParameters:
      Name  Flags
      val   

  public void <init>(int, java.math.MathContext);
    descriptor: (ILjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int val
        start local 2 // java.math.MathContext mc
         0: .line 1126
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1127
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            istore 3 /* mcp */
        start local 3 // int mcp
         2: .line 1128
            iload 1 /* val */
            i2l
            lstore 4 /* compactVal */
        start local 4 // long compactVal
         3: .line 1129
            iconst_0
            istore 6 /* scl */
        start local 6 // int scl
         4: .line 1130
            iconst_0
            istore 7 /* prec */
        start local 7 // int prec
         5: .line 1131
            iload 3 /* mcp */
            ifle 14
         6: .line 1132
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
         7: .line 1133
            iload 7 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        start local 8 // int drop
         8: .line 1134
            goto 13
         9: .line 1135
      StackMap locals: java.math.BigDecimal int java.math.MathContext int long int int int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
        10: .line 1136
            lload 4 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 8 /* drop */
            laload
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 4 /* compactVal */
        11: .line 1137
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
        12: .line 1138
            iload 7 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        13: .line 1134
      StackMap locals:
      StackMap stack:
            iload 8 /* drop */
            ifgt 9
        end local 8 // int drop
        14: .line 1141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        15: .line 1142
            aload 0 /* this */
            lload 4 /* compactVal */
            putfield java.math.BigDecimal.intCompact:J
        16: .line 1143
            aload 0 /* this */
            iload 6 /* scl */
            putfield java.math.BigDecimal.scale:I
        17: .line 1144
            aload 0 /* this */
            iload 7 /* prec */
            putfield java.math.BigDecimal.precision:I
        18: .line 1145
            return
        end local 7 // int prec
        end local 6 // int scl
        end local 4 // long compactVal
        end local 3 // int mcp
        end local 2 // java.math.MathContext mc
        end local 1 // int val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Ljava/math/BigDecimal;
            0   19     1         val  I
            0   19     2          mc  Ljava/math/MathContext;
            2   19     3         mcp  I
            3   19     4  compactVal  J
            4   19     6         scl  I
            5   19     7        prec  I
            8   14     8        drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // long val
         0: .line 1154
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1155
            aload 0 /* this */
            lload 1 /* val */
            putfield java.math.BigDecimal.intCompact:J
         2: .line 1156
            aload 0 /* this */
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifne 3
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 4
      StackMap locals: java.math.BigDecimal long
      StackMap stack: java.math.BigDecimal
         3: aconst_null
      StackMap locals: java.math.BigDecimal long
      StackMap stack: java.math.BigDecimal java.math.BigInteger
         4: putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         5: .line 1157
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
         6: .line 1158
            return
        end local 1 // long val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/math/BigDecimal;
            0    7     1   val  J
    MethodParameters:
      Name  Flags
      val   

  public void <init>(long, java.math.MathContext);
    descriptor: (JLjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // long val
        start local 3 // java.math.MathContext mc
         0: .line 1171
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1172
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 4 /* mcp */
        start local 4 // int mcp
         2: .line 1173
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 5 /* mode */
        start local 5 // int mode
         3: .line 1174
            iconst_0
            istore 6 /* prec */
        start local 6 // int prec
         4: .line 1175
            iconst_0
            istore 7 /* scl */
        start local 7 // int scl
         5: .line 1176
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifne 6
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 7
      StackMap locals: java.math.BigDecimal long java.math.MathContext int int int int
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: java.math.BigInteger
         7: astore 8 /* rb */
        start local 8 // java.math.BigInteger rb
         8: .line 1177
            iload 4 /* mcp */
            ifle 31
         9: .line 1178
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifne 21
        10: .line 1179
            bipush 19
            istore 6 /* prec */
        11: .line 1180
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
        12: .line 1181
            goto 20
        13: .line 1182
      StackMap locals: java.math.BigInteger int
      StackMap stack:
            iload 7 /* scl */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scl */
        14: .line 1183
            aload 8 /* rb */
            iload 9 /* drop */
            iload 5 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 8 /* rb */
        15: .line 1184
            aload 8 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 1 /* val */
        16: .line 1185
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifeq 18
        17: .line 1186
            goto 21
        18: .line 1188
      StackMap locals:
      StackMap stack:
            aload 8 /* rb */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 6 /* prec */
        19: .line 1189
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        20: .line 1181
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 13
        end local 9 // int drop
        21: .line 1192
      StackMap locals:
      StackMap stack:
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifeq 31
        22: .line 1193
            lload 1 /* val */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 6 /* prec */
        23: .line 1194
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
        24: .line 1195
            goto 29
        25: .line 1196
      StackMap locals: int
      StackMap stack:
            iload 7 /* scl */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scl */
        26: .line 1197
            lload 1 /* val */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* drop */
            laload
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 1 /* val */
        27: .line 1198
            lload 1 /* val */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 6 /* prec */
        28: .line 1199
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        29: .line 1195
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 25
        30: .line 1201
            aconst_null
            astore 8 /* rb */
        end local 9 // int drop
        31: .line 1204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* rb */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        32: .line 1205
            aload 0 /* this */
            lload 1 /* val */
            putfield java.math.BigDecimal.intCompact:J
        33: .line 1206
            aload 0 /* this */
            iload 7 /* scl */
            putfield java.math.BigDecimal.scale:I
        34: .line 1207
            aload 0 /* this */
            iload 6 /* prec */
            putfield java.math.BigDecimal.precision:I
        35: .line 1208
            return
        end local 8 // java.math.BigInteger rb
        end local 7 // int scl
        end local 6 // int prec
        end local 5 // int mode
        end local 4 // int mcp
        end local 3 // java.math.MathContext mc
        end local 1 // long val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   36     0  this  Ljava/math/BigDecimal;
            0   36     1   val  J
            0   36     3    mc  Ljava/math/MathContext;
            2   36     4   mcp  I
            3   36     5  mode  I
            4   36     6  prec  I
            5   36     7   scl  I
            8   36     8    rb  Ljava/math/BigInteger;
           12   21     9  drop  I
           24   31     9  drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  public static java.math.BigDecimal valueOf(long, int);
    descriptor: (JI)Ljava/math/BigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // long unscaledVal
        start local 2 // int scale
         0: .line 1226
            iload 2 /* scale */
            ifne 2
         1: .line 1227
            lload 0 /* unscaledVal */
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            areturn
         2: .line 1228
      StackMap locals:
      StackMap stack:
            lload 0 /* unscaledVal */
            lconst_0
            lcmp
            ifne 4
         3: .line 1229
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         4: .line 1231
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* unscaledVal */
            ldc -9223372036854775808
            lcmp
            ifne 6
         5: .line 1232
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 7
      StackMap locals: long int
      StackMap stack: new 4 new 4
         6: aconst_null
         7: .line 1233
      StackMap locals: long int
      StackMap stack: new 4 new 4 java.math.BigInteger
            lload 0 /* unscaledVal */
            iload 2 /* scale */
            iconst_0
         8: .line 1231
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 2 // int scale
        end local 0 // long unscaledVal
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0  unscaledVal  J
            0    9     2        scale  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        

  public static java.math.BigDecimal valueOf(long);
    descriptor: (J)Ljava/math/BigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // long val
         0: .line 1248
            lload 0 /* val */
            lconst_0
            lcmp
            iflt 2
            lload 0 /* val */
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            arraylength
            i2l
            lcmp
            ifge 2
         1: .line 1249
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            lload 0 /* val */
            l2i
            aaload
            areturn
         2: .line 1250
      StackMap locals:
      StackMap stack:
            lload 0 /* val */
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 1251
            new java.math.BigDecimal
            dup
            aconst_null
            lload 0 /* val */
            iconst_0
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
         4: .line 1252
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            lload 0 /* val */
            iconst_0
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 0 // long val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   val  J
    MethodParameters:
      Name  Flags
      val   

  static java.math.BigDecimal valueOf(long, int, int);
    descriptor: (JII)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // long unscaledVal
        start local 2 // int scale
        start local 3 // int prec
         0: .line 1256
            iload 2 /* scale */
            ifne 2
            lload 0 /* unscaledVal */
            lconst_0
            lcmp
            iflt 2
            lload 0 /* unscaledVal */
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            arraylength
            i2l
            lcmp
            ifge 2
         1: .line 1257
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            lload 0 /* unscaledVal */
            l2i
            aaload
            areturn
         2: .line 1258
      StackMap locals:
      StackMap stack:
            lload 0 /* unscaledVal */
            lconst_0
            lcmp
            ifne 4
         3: .line 1259
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         4: .line 1261
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* unscaledVal */
            ldc -9223372036854775808
            lcmp
            ifne 5
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 6
      StackMap locals: long int int
      StackMap stack: new 4 new 4
         5: aconst_null
         6: .line 1262
      StackMap locals: long int int
      StackMap stack: new 4 new 4 java.math.BigInteger
            lload 0 /* unscaledVal */
            iload 2 /* scale */
            iload 3 /* prec */
         7: .line 1261
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // int prec
        end local 2 // int scale
        end local 0 // long unscaledVal
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0  unscaledVal  J
            0    8     2        scale  I
            0    8     3         prec  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        
      prec         

  static java.math.BigDecimal valueOf(java.math.BigInteger, int, int);
    descriptor: (Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int scale
        start local 2 // int prec
         0: .line 1266
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 3 /* val */
        start local 3 // long val
         1: .line 1267
            lload 3 /* val */
            lconst_0
            lcmp
            ifne 3
         2: .line 1268
            iload 1 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         3: .line 1269
      StackMap locals: long
      StackMap stack:
            iload 1 /* scale */
            ifne 5
            lload 3 /* val */
            lconst_0
            lcmp
            iflt 5
            lload 3 /* val */
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            arraylength
            i2l
            lcmp
            ifge 5
         4: .line 1270
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            lload 3 /* val */
            l2i
            aaload
            areturn
         5: .line 1272
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 0 /* intVal */
            lload 3 /* val */
            iload 1 /* scale */
            iload 2 /* prec */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // long val
        end local 2 // int prec
        end local 1 // int scale
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  intVal  Ljava/math/BigInteger;
            0    6     1   scale  I
            0    6     2    prec  I
            1    6     3     val  J
    MethodParameters:
        Name  Flags
      intVal  
      scale   
      prec    

  static java.math.BigDecimal zeroValueOf(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // int scale
         0: .line 1276
            iload 0 /* scale */
            iflt 2
            iload 0 /* scale */
            getstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
            arraylength
            if_icmpge 2
         1: .line 1277
            getstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
            iload 0 /* scale */
            aaload
            areturn
         2: .line 1279
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iload 0 /* scale */
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 0 // int scale
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  scale  I
    MethodParameters:
       Name  Flags
      scale  

  public static java.math.BigDecimal valueOf(double);
    descriptor: (D)Ljava/math/BigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double val
         0: .line 1304
            new java.math.BigDecimal
            dup
            dload 0 /* val */
            invokestatic java.lang.Double.toString:(D)Ljava/lang/String;
            invokespecial java.math.BigDecimal.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // double val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   val  D
    MethodParameters:
      Name  Flags
      val   

  public java.math.BigDecimal add(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal augend
         0: .line 1317
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         1: .line 1318
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 1319
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JIJI)Ljava/math/BigDecimal;
            areturn
         3: .line 1321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* augend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         4: .line 1324
      StackMap locals:
      StackMap stack:
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         5: .line 1325
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         6: .line 1327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* augend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(Ljava/math/BigInteger;ILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.BigDecimal augend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/math/BigDecimal;
            0    7     1  augend  Ljava/math/BigDecimal;
    MethodParameters:
        Name  Flags
      augend  

  public java.math.BigDecimal add(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal augend
        start local 2 // java.math.MathContext mc
         0: .line 1347
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 1348
            aload 0 /* this */
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         2: .line 1349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 3 /* lhs */
        start local 3 // java.math.BigDecimal lhs
         3: .line 1354
            aload 3 /* lhs */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 4
            iconst_1
            goto 5
      StackMap locals: java.math.BigDecimal
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 4 /* lhsIsZero */
        start local 4 // boolean lhsIsZero
         6: .line 1355
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
            iconst_1
            goto 8
      StackMap locals: int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 5 /* augendIsZero */
        start local 5 // boolean augendIsZero
         9: .line 1357
            iload 4 /* lhsIsZero */
            ifne 10
            iload 5 /* augendIsZero */
            ifeq 25
        10: .line 1358
      StackMap locals: int
      StackMap stack:
            aload 3 /* lhs */
            invokevirtual java.math.BigDecimal.scale:()I
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.scale:()I
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* preferredScale */
        start local 6 // int preferredScale
        11: .line 1361
            iload 4 /* lhsIsZero */
            ifeq 13
            iload 5 /* augendIsZero */
            ifeq 13
        12: .line 1362
            iload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
        13: .line 1363
      StackMap locals: int
      StackMap stack:
            iload 4 /* lhsIsZero */
            ifeq 14
            aload 1 /* augend */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 3 /* lhs */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
      StackMap locals:
      StackMap stack: java.math.BigDecimal
        15: astore 7 /* result */
        start local 7 // java.math.BigDecimal result
        16: .line 1365
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 6 /* preferredScale */
            if_icmpne 18
        17: .line 1366
            aload 7 /* result */
            areturn
        18: .line 1367
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 6 /* preferredScale */
            if_icmple 20
        19: .line 1368
            aload 7 /* result */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 7 /* result */
            getfield java.math.BigDecimal.intCompact:J
            aload 7 /* result */
            getfield java.math.BigDecimal.scale:I
            iload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.stripZerosToMatchScale:(Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
            areturn
        20: .line 1370
      StackMap locals:
      StackMap stack:
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.precision:()I
            isub
            istore 8 /* precisionDiff */
        start local 8 // int precisionDiff
        21: .line 1371
            iload 6 /* preferredScale */
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            isub
            istore 9 /* scaleDiff */
        start local 9 // int scaleDiff
        22: .line 1373
            iload 8 /* precisionDiff */
            iload 9 /* scaleDiff */
            if_icmplt 24
        23: .line 1374
            aload 7 /* result */
            iload 6 /* preferredScale */
            invokevirtual java.math.BigDecimal.setScale:(I)Ljava/math/BigDecimal;
            areturn
        24: .line 1376
      StackMap locals: int int
      StackMap stack:
            aload 7 /* result */
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 8 /* precisionDiff */
            iadd
            invokevirtual java.math.BigDecimal.setScale:(I)Ljava/math/BigDecimal;
            areturn
        end local 9 // int scaleDiff
        end local 8 // int precisionDiff
        end local 7 // java.math.BigDecimal result
        end local 6 // int preferredScale
        end local 5 // boolean augendIsZero
        end local 4 // boolean lhsIsZero
        25: .line 1381
      StackMap locals: java.math.BigDecimal java.math.BigDecimal java.math.MathContext java.math.BigDecimal
      StackMap stack:
            aload 3 /* lhs */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 4 /* padding */
        start local 4 // long padding
        26: .line 1382
            lload 4 /* padding */
            lconst_0
            lcmp
            ifeq 31
        27: .line 1383
            aload 0 /* this */
            aload 3 /* lhs */
            aload 1 /* augend */
            lload 4 /* padding */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.preAlign:(Ljava/math/BigDecimal;Ljava/math/BigDecimal;JLjava/math/MathContext;)[Ljava/math/BigDecimal;
            astore 6 /* arg */
        start local 6 // java.math.BigDecimal[] arg
        28: .line 1384
            aload 6 /* arg */
            invokestatic java.math.BigDecimal.matchScale:([Ljava/math/BigDecimal;)V
        29: .line 1385
            aload 6 /* arg */
            iconst_0
            aaload
            astore 3 /* lhs */
        30: .line 1386
            aload 6 /* arg */
            iconst_1
            aaload
            astore 1 /* augend */
        end local 6 // java.math.BigDecimal[] arg
        31: .line 1388
      StackMap locals: long
      StackMap stack:
            aload 3 /* lhs */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 3 /* lhs */
            getfield java.math.BigDecimal.scale:I
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 4 // long padding
        end local 3 // java.math.BigDecimal lhs
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal augend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   32     0            this  Ljava/math/BigDecimal;
            0   32     1          augend  Ljava/math/BigDecimal;
            0   32     2              mc  Ljava/math/MathContext;
            3   32     3             lhs  Ljava/math/BigDecimal;
            6   25     4       lhsIsZero  Z
            9   25     5    augendIsZero  Z
           11   25     6  preferredScale  I
           16   25     7          result  Ljava/math/BigDecimal;
           21   25     8   precisionDiff  I
           22   25     9       scaleDiff  I
           26   32     4         padding  J
           28   31     6             arg  [Ljava/math/BigDecimal;
    MethodParameters:
        Name  Flags
      augend  
      mc      

  private java.math.BigDecimal[] preAlign(java.math.BigDecimal, java.math.BigDecimal, long, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/BigDecimal;JLjava/math/MathContext;)[Ljava/math/BigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=5
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal lhs
        start local 2 // java.math.BigDecimal augend
        start local 3 // long padding
        start local 5 // java.math.MathContext mc
         0: .line 1414
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 3 /* padding */
            lconst_0
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1418
      StackMap locals:
      StackMap stack:
            lload 3 /* padding */
            lconst_0
            lcmp
            ifge 5
         2: .line 1419
            aload 1 /* lhs */
            astore 6 /* big */
        start local 6 // java.math.BigDecimal big
         3: .line 1420
            aload 2 /* augend */
            astore 7 /* small */
        start local 7 // java.math.BigDecimal small
         4: .line 1421
            goto 7
        end local 7 // java.math.BigDecimal small
        end local 6 // java.math.BigDecimal big
         5: .line 1422
      StackMap locals:
      StackMap stack:
            aload 2 /* augend */
            astore 6 /* big */
        start local 6 // java.math.BigDecimal big
         6: .line 1423
            aload 1 /* lhs */
            astore 7 /* small */
        start local 7 // java.math.BigDecimal small
         7: .line 1432
      StackMap locals: java.math.BigDecimal java.math.BigDecimal
      StackMap stack:
            aload 6 /* big */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 6 /* big */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            lsub
            aload 5 /* mc */
            getfield java.math.MathContext.precision:I
            i2l
            ladd
            lstore 8 /* estResultUlpScale */
        start local 8 // long estResultUlpScale
         8: .line 1443
            aload 7 /* small */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 7 /* small */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            lsub
            lconst_1
            ladd
            lstore 10 /* smallHighDigitPos */
        start local 10 // long smallHighDigitPos
         9: .line 1444
            lload 10 /* smallHighDigitPos */
            aload 6 /* big */
            getfield java.math.BigDecimal.scale:I
            iconst_2
            iadd
            i2l
            lcmp
            ifle 12
        10: .line 1445
            lload 10 /* smallHighDigitPos */
            lload 8 /* estResultUlpScale */
            ldc 2
            ladd
            lcmp
            ifle 12
        11: .line 1446
            aload 7 /* small */
            invokevirtual java.math.BigDecimal.signum:()I
            i2l
            aload 0 /* this */
            aload 6 /* big */
            getfield java.math.BigDecimal.scale:I
            i2l
            lload 8 /* estResultUlpScale */
            invokestatic java.lang.Math.max:(JJ)J
            ldc 3
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            astore 7 /* small */
        12: .line 1451
      StackMap locals: long long
      StackMap stack:
            iconst_2
            anewarray java.math.BigDecimal
            dup
            iconst_0
            aload 6 /* big */
            aastore
            dup
            iconst_1
            aload 7 /* small */
            aastore
            astore 12 /* result */
        start local 12 // java.math.BigDecimal[] result
        13: .line 1452
            aload 12 /* result */
            areturn
        end local 12 // java.math.BigDecimal[] result
        end local 10 // long smallHighDigitPos
        end local 8 // long estResultUlpScale
        end local 7 // java.math.BigDecimal small
        end local 6 // java.math.BigDecimal big
        end local 5 // java.math.MathContext mc
        end local 3 // long padding
        end local 2 // java.math.BigDecimal augend
        end local 1 // java.math.BigDecimal lhs
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0               this  Ljava/math/BigDecimal;
            0   14     1                lhs  Ljava/math/BigDecimal;
            0   14     2             augend  Ljava/math/BigDecimal;
            0   14     3            padding  J
            0   14     5                 mc  Ljava/math/MathContext;
            3    5     6                big  Ljava/math/BigDecimal;
            6   14     6                big  Ljava/math/BigDecimal;
            4    5     7              small  Ljava/math/BigDecimal;
            7   14     7              small  Ljava/math/BigDecimal;
            8   14     8  estResultUlpScale  J
            9   14    10  smallHighDigitPos  J
           13   14    12             result  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      lhs      
      augend   
      padding  
      mc       

  public java.math.BigDecimal subtract(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal subtrahend
         0: .line 1464
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         1: .line 1465
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 1466
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JIJI)Ljava/math/BigDecimal;
            areturn
         3: .line 1468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         4: .line 1471
      StackMap locals:
      StackMap stack:
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         5: .line 1475
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         6: .line 1477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(Ljava/math/BigInteger;ILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.BigDecimal subtrahend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljava/math/BigDecimal;
            0    7     1  subtrahend  Ljava/math/BigDecimal;
    MethodParameters:
            Name  Flags
      subtrahend  

  public java.math.BigDecimal subtract(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal subtrahend
        start local 2 // java.math.MathContext mc
         0: .line 1497
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 1498
            aload 0 /* this */
            aload 1 /* subtrahend */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         2: .line 1500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* subtrahend */
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal subtrahend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljava/math/BigDecimal;
            0    3     1  subtrahend  Ljava/math/BigDecimal;
            0    3     2          mc  Ljava/math/MathContext;
    MethodParameters:
            Name  Flags
      subtrahend  
      mc          

  public java.math.BigDecimal multiply(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal multiplicand
         0: .line 1512
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.scale:I
            i2l
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* productScale */
        start local 2 // int productScale
         1: .line 1513
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 5
         2: .line 1514
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 1515
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(JJI)Ljava/math/BigDecimal;
            areturn
         4: .line 1517
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(JLjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         5: .line 1520
      StackMap locals:
      StackMap stack:
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 7
         6: .line 1521
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(JLjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         7: .line 1523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
        end local 2 // int productScale
        end local 1 // java.math.BigDecimal multiplicand
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Ljava/math/BigDecimal;
            0    8     1  multiplicand  Ljava/math/BigDecimal;
            1    8     2  productScale  I
    MethodParameters:
              Name  Flags
      multiplicand  

  public java.math.BigDecimal multiply(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal multiplicand
        start local 2 // java.math.MathContext mc
         0: .line 1540
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 1541
            aload 0 /* this */
            aload 1 /* multiplicand */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         2: .line 1542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.scale:I
            i2l
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 3 /* productScale */
        start local 3 // int productScale
         3: .line 1543
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 7
         4: .line 1544
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         5: .line 1545
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(JJILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         6: .line 1547
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(JLjava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         7: .line 1550
      StackMap locals:
      StackMap stack:
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 9
         8: .line 1551
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(JLjava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         9: .line 1553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 3 // int productScale
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal multiplicand
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Ljava/math/BigDecimal;
            0   10     1  multiplicand  Ljava/math/BigDecimal;
            0   10     2            mc  Ljava/math/MathContext;
            3   10     3  productScale  I
    MethodParameters:
              Name  Flags
      multiplicand  
      mc            

  public java.math.BigDecimal divide(java.math.BigDecimal, int, int);
    descriptor: (Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // int scale
        start local 3 // int roundingMode
         0: .line 1588
            iload 3 /* roundingMode */
            iflt 1
            iload 3 /* roundingMode */
            bipush 7
            if_icmple 2
         1: .line 1589
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid rounding mode"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         3: .line 1591
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 5
         4: .line 1592
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(JIJIII)Ljava/math/BigDecimal;
            areturn
         5: .line 1594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(JILjava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
         6: .line 1597
      StackMap locals:
      StackMap stack:
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 8
         7: .line 1598
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;IJIII)Ljava/math/BigDecimal;
            areturn
         8: .line 1600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;ILjava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 3 // int roundingMode
        end local 2 // int scale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Ljava/math/BigDecimal;
            0    9     1       divisor  Ljava/math/BigDecimal;
            0    9     2         scale  I
            0    9     3  roundingMode  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")
    MethodParameters:
              Name  Flags
      divisor       
      scale         
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal, int, java.math.RoundingMode);
    descriptor: (Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // int scale
        start local 3 // java.math.RoundingMode roundingMode
         0: .line 1622
            aload 0 /* this */
            aload 1 /* divisor */
            iload 2 /* scale */
            aload 3 /* roundingMode */
            getfield java.math.RoundingMode.oldMode:I
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
            areturn
        end local 3 // java.math.RoundingMode roundingMode
        end local 2 // int scale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1       divisor  Ljava/math/BigDecimal;
            0    1     2         scale  I
            0    1     3  roundingMode  Ljava/math/RoundingMode;
    MethodParameters:
              Name  Flags
      divisor       
      scale         
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal, int);
    descriptor: (Ljava/math/BigDecimal;I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // int roundingMode
         0: .line 1654
            aload 0 /* this */
            aload 1 /* divisor */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* roundingMode */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
            areturn
        end local 2 // int roundingMode
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1       divisor  Ljava/math/BigDecimal;
            0    1     2  roundingMode  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")
    MethodParameters:
              Name  Flags
      divisor       
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal, java.math.RoundingMode);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/RoundingMode;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.RoundingMode roundingMode
         0: .line 1673
            aload 0 /* this */
            aload 1 /* divisor */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 2 /* roundingMode */
            getfield java.math.RoundingMode.oldMode:I
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
            areturn
        end local 2 // java.math.RoundingMode roundingMode
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1       divisor  Ljava/math/BigDecimal;
            0    1     2  roundingMode  Ljava/math/RoundingMode;
    MethodParameters:
              Name  Flags
      divisor       
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1694
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 4
         1: .line 1695
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 3
         2: .line 1696
            new java.lang.ArithmeticException
            dup
            ldc "Division undefined"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1697
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Division by zero"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1701
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            istore 2 /* preferredScale */
        start local 2 // int preferredScale
         5: .line 1703
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
         6: .line 1704
            iload 2 /* preferredScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         7: .line 1714
      StackMap locals: int
      StackMap stack:
            new java.math.MathContext
            dup
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
         8: .line 1715
            ldc 10.0
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.precision:()I
            i2d
            dmul
            ldc 3.0
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2l
            ladd
         9: .line 1716
            ldc 2147483647
        10: .line 1714
            invokestatic java.lang.Math.min:(JJ)J
            l2i
        11: .line 1717
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
        12: .line 1714
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 3 /* mc */
        start local 3 // java.math.MathContext mc
        13: .line 1720
            aload 0 /* this */
            aload 1 /* divisor */
            aload 3 /* mc */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        start local 4 // java.math.BigDecimal quotient
        14: .line 1721
            goto 17
        end local 4 // java.math.BigDecimal quotient
      StackMap locals: java.math.BigDecimal java.math.BigDecimal int java.math.MathContext
      StackMap stack: java.lang.ArithmeticException
        15: pop
        16: .line 1722
            new java.lang.ArithmeticException
            dup
            ldc "Non-terminating decimal expansion; no exact representable decimal result."
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // java.math.BigDecimal quotient
        17: .line 1726
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 4 /* quotient */
            invokevirtual java.math.BigDecimal.scale:()I
            istore 5 /* quotientScale */
        start local 5 // int quotientScale
        18: .line 1732
            iload 2 /* preferredScale */
            iload 5 /* quotientScale */
            if_icmple 20
        19: .line 1733
            aload 4 /* quotient */
            iload 2 /* preferredScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
        20: .line 1735
      StackMap locals: int
      StackMap stack:
            aload 4 /* quotient */
            areturn
        end local 5 // int quotientScale
        end local 4 // java.math.BigDecimal quotient
        end local 3 // java.math.MathContext mc
        end local 2 // int preferredScale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Ljava/math/BigDecimal;
            0   21     1         divisor  Ljava/math/BigDecimal;
            5   21     2  preferredScale  I
           13   21     3              mc  Ljava/math/MathContext;
           14   15     4        quotient  Ljava/math/BigDecimal;
           17   21     4        quotient  Ljava/math/BigDecimal;
           18   21     5   quotientScale  I
      Exception table:
        from    to  target  type
          13    14      15  Class java.lang.ArithmeticException
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal divide(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1753
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            istore 3 /* mcp */
        start local 3 // int mcp
         1: .line 1754
            iload 3 /* mcp */
            ifne 3
         2: .line 1755
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         3: .line 1757
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            astore 4 /* dividend */
        start local 4 // java.math.BigDecimal dividend
         4: .line 1758
            aload 4 /* dividend */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 5 /* preferredScale */
        start local 5 // long preferredScale
         5: .line 1771
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 9
         6: .line 1772
            aload 4 /* dividend */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 8
         7: .line 1773
            new java.lang.ArithmeticException
            dup
            ldc "Division undefined"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1774
      StackMap locals: java.math.BigDecimal long
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Division by zero"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1776
      StackMap locals:
      StackMap stack:
            aload 4 /* dividend */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 11
        10: .line 1777
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
        11: .line 1778
      StackMap locals:
      StackMap stack:
            aload 4 /* dividend */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 7 /* xscale */
        start local 7 // int xscale
        12: .line 1779
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 8 /* yscale */
        start local 8 // int yscale
        13: .line 1780
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 17
        14: .line 1781
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 16
        15: .line 1782
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intCompact:J
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        16: .line 1784
      StackMap locals: int int
      StackMap stack:
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intCompact:J
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(JILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        17: .line 1787
      StackMap locals:
      StackMap stack:
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 19
        18: .line 1788
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;IJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        19: .line 1790
      StackMap locals:
      StackMap stack:
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;ILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 8 // int yscale
        end local 7 // int xscale
        end local 5 // long preferredScale
        end local 4 // java.math.BigDecimal dividend
        end local 3 // int mcp
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Ljava/math/BigDecimal;
            0   20     1         divisor  Ljava/math/BigDecimal;
            0   20     2              mc  Ljava/math/MathContext;
            1   20     3             mcp  I
            4   20     4        dividend  Ljava/math/BigDecimal;
            5   20     5  preferredScale  J
           12   20     7          xscale  I
           13   20     8          yscale  I
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal divideToIntegralValue(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1808
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            istore 2 /* preferredScale */
        start local 2 // int preferredScale
         1: .line 1809
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            ifge 3
         2: .line 1811
            iload 2 /* preferredScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         3: .line 1814
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 5
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.signum:()I
            ifeq 5
         4: .line 1815
            aload 0 /* this */
            iload 2 /* preferredScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
         5: .line 1820
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
         6: .line 1821
            ldc 10.0
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.precision:()I
            i2d
            dmul
            ldc 3.0
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2l
         7: .line 1820
            ladd
         8: .line 1822
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.scale:()I
            i2l
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.scale:()I
            i2l
            lsub
            invokestatic java.lang.Math.abs:(J)J
         9: .line 1820
            ladd
        10: .line 1822
            ldc 2
        11: .line 1820
            ladd
        12: .line 1823
            ldc 2147483647
        13: .line 1820
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 3 /* maxDigits */
        start local 3 // int maxDigits
        14: .line 1824
            aload 0 /* this */
            aload 1 /* divisor */
            new java.math.MathContext
            dup
            iload 3 /* maxDigits */
        15: .line 1825
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
        16: .line 1824
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        start local 4 // java.math.BigDecimal quotient
        17: .line 1826
            aload 4 /* quotient */
            getfield java.math.BigDecimal.scale:I
            ifle 20
        18: .line 1827
            aload 4 /* quotient */
            iconst_0
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        19: .line 1828
            aload 4 /* quotient */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 4 /* quotient */
            getfield java.math.BigDecimal.intCompact:J
            aload 4 /* quotient */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* preferredScale */
            invokestatic java.math.BigDecimal.stripZerosToMatchScale:(Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        20: .line 1831
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
            aload 4 /* quotient */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* preferredScale */
            if_icmpge 22
        21: .line 1833
            aload 4 /* quotient */
            iload 2 /* preferredScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        22: .line 1836
      StackMap locals:
      StackMap stack:
            aload 4 /* quotient */
            areturn
        end local 4 // java.math.BigDecimal quotient
        end local 3 // int maxDigits
        end local 2 // int preferredScale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Ljava/math/BigDecimal;
            0   23     1         divisor  Ljava/math/BigDecimal;
            1   23     2  preferredScale  I
           14   23     3       maxDigits  I
           17   23     4        quotient  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal divideToIntegralValue(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1860
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifeq 2
         1: .line 1861
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            ifge 3
         2: .line 1862
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         3: .line 1865
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            istore 3 /* preferredScale */
        start local 3 // int preferredScale
         4: .line 1874
            aload 0 /* this */
            aload 1 /* divisor */
            new java.math.MathContext
            dup
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 4 /* result */
        start local 4 // java.math.BigDecimal result
         5: .line 1876
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            ifge 9
         6: .line 1882
            aload 4 /* result */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 5 /* product */
        start local 5 // java.math.BigDecimal product
         7: .line 1885
            aload 0 /* this */
            aload 5 /* product */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            iflt 11
         8: .line 1886
            new java.lang.ArithmeticException
            dup
            ldc "Division impossible"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.math.BigDecimal product
         9: .line 1888
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            ifle 11
        10: .line 1894
            aload 4 /* result */
            iconst_0
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            astore 4 /* result */
        11: .line 1899
      StackMap locals:
      StackMap stack:
            iload 3 /* preferredScale */
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            if_icmple 17
        12: .line 1900
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.precision:()I
            isub
            dup
            istore 5 /* precisionDiff */
        start local 5 // int precisionDiff
        13: ifle 17
        14: .line 1901
            aload 4 /* result */
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
        15: .line 1902
            iload 5 /* precisionDiff */
            iload 3 /* preferredScale */
            aload 4 /* result */
            getfield java.math.BigDecimal.scale:I
            isub
            invokestatic java.lang.Math.min:(II)I
            iadd
        16: .line 1901
            invokevirtual java.math.BigDecimal.setScale:(I)Ljava/math/BigDecimal;
            areturn
        end local 5 // int precisionDiff
        17: .line 1904
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 4 /* result */
            getfield java.math.BigDecimal.intCompact:J
            aload 4 /* result */
            getfield java.math.BigDecimal.scale:I
            iload 3 /* preferredScale */
            invokestatic java.math.BigDecimal.stripZerosToMatchScale:(Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
            areturn
        end local 4 // java.math.BigDecimal result
        end local 3 // int preferredScale
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Ljava/math/BigDecimal;
            0   18     1         divisor  Ljava/math/BigDecimal;
            0   18     2              mc  Ljava/math/MathContext;
            4   18     3  preferredScale  I
            5   18     4          result  Ljava/math/BigDecimal;
            7    9     5         product  Ljava/math/BigDecimal;
           13   17     5   precisionDiff  I
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal remainder(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1922
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
            astore 2 /* divrem */
        start local 2 // java.math.BigDecimal[] divrem
         1: .line 1923
            aload 2 /* divrem */
            iconst_1
            aaload
            areturn
        end local 2 // java.math.BigDecimal[] divrem
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/math/BigDecimal;
            0    2     1  divisor  Ljava/math/BigDecimal;
            1    2     2   divrem  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal remainder(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1952
            aload 0 /* this */
            aload 1 /* divisor */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;Ljava/math/MathContext;)[Ljava/math/BigDecimal;
            astore 3 /* divrem */
        start local 3 // java.math.BigDecimal[] divrem
         1: .line 1953
            aload 3 /* divrem */
            iconst_1
            aaload
            areturn
        end local 3 // java.math.BigDecimal[] divrem
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/math/BigDecimal;
            0    2     1  divisor  Ljava/math/BigDecimal;
            0    2     2       mc  Ljava/math/MathContext;
            1    2     3   divrem  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal[] divideAndRemainder(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1978
            iconst_2
            anewarray java.math.BigDecimal
            astore 2 /* result */
        start local 2 // java.math.BigDecimal[] result
         1: .line 1980
            aload 2 /* result */
            iconst_0
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aastore
         2: .line 1981
            aload 2 /* result */
            iconst_1
            aload 0 /* this */
            aload 2 /* result */
            iconst_0
            aaload
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aastore
         3: .line 1982
            aload 2 /* result */
            areturn
        end local 2 // java.math.BigDecimal[] result
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Ljava/math/BigDecimal;
            0    4     1  divisor  Ljava/math/BigDecimal;
            1    4     2   result  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal[] divideAndRemainder(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)[Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 2012
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 2013
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
            areturn
         2: .line 2015
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.math.BigDecimal
            astore 3 /* result */
        start local 3 // java.math.BigDecimal[] result
         3: .line 2016
            aload 0 /* this */
            astore 4 /* lhs */
        start local 4 // java.math.BigDecimal lhs
         4: .line 2018
            aload 3 /* result */
            iconst_0
            aload 4 /* lhs */
            aload 1 /* divisor */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            aastore
         5: .line 2019
            aload 3 /* result */
            iconst_1
            aload 4 /* lhs */
            aload 3 /* result */
            iconst_0
            aaload
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aastore
         6: .line 2020
            aload 3 /* result */
            areturn
        end local 4 // java.math.BigDecimal lhs
        end local 3 // java.math.BigDecimal[] result
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Ljava/math/BigDecimal;
            0    7     1  divisor  Ljava/math/BigDecimal;
            0    7     2       mc  Ljava/math/MathContext;
            3    7     3   result  [Ljava/math/BigDecimal;
            4    7     4      lhs  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal sqrt(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=20, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2058
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            istore 2 /* signum */
        start local 2 // int signum
         1: .line 2059
            iload 2 /* signum */
            iconst_1
            if_icmpne 73
         2: .line 2091
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.scale:()I
            iconst_2
            idiv
            istore 3 /* preferredScale */
        start local 3 // int preferredScale
         3: .line 2092
            lconst_0
            iload 3 /* preferredScale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            astore 4 /* zeroWithFinalPreferredScale */
        start local 4 // java.math.BigDecimal zeroWithFinalPreferredScale
         4: .line 2096
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.stripTrailingZeros:()Ljava/math/BigDecimal;
            astore 5 /* stripped */
        start local 5 // java.math.BigDecimal stripped
         5: .line 2097
            aload 5 /* stripped */
            invokevirtual java.math.BigDecimal.scale:()I
            istore 6 /* strippedScale */
        start local 6 // int strippedScale
         6: .line 2100
            aload 5 /* stripped */
            invokevirtual java.math.BigDecimal.isPowerOfTen:()Z
            ifeq 12
         7: .line 2101
            iload 6 /* strippedScale */
            iconst_2
            irem
            ifne 12
         8: .line 2102
            lconst_1
            iload 6 /* strippedScale */
            iconst_2
            idiv
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            astore 7 /* result */
        start local 7 // java.math.BigDecimal result
         9: .line 2103
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 3 /* preferredScale */
            if_icmpeq 11
        10: .line 2106
            aload 7 /* result */
            aload 4 /* zeroWithFinalPreferredScale */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 7 /* result */
        11: .line 2108
      StackMap locals: java.math.BigDecimal java.math.MathContext int int java.math.BigDecimal java.math.BigDecimal int java.math.BigDecimal
      StackMap stack:
            aload 7 /* result */
            areturn
        end local 7 // java.math.BigDecimal result
        12: .line 2124
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* scaleAdjust */
        start local 7 // int scaleAdjust
        13: .line 2125
            aload 5 /* stripped */
            invokevirtual java.math.BigDecimal.scale:()I
            aload 5 /* stripped */
            invokevirtual java.math.BigDecimal.precision:()I
            isub
            iconst_1
            iadd
            istore 8 /* scale */
        start local 8 // int scale
        14: .line 2126
            iload 8 /* scale */
            iconst_2
            irem
            ifne 17
        15: .line 2127
            iload 8 /* scale */
            istore 7 /* scaleAdjust */
        16: .line 2128
            goto 18
        17: .line 2129
      StackMap locals: int int
      StackMap stack:
            iload 8 /* scale */
            iconst_1
            isub
            istore 7 /* scaleAdjust */
        18: .line 2132
      StackMap locals:
      StackMap stack:
            aload 5 /* stripped */
            iload 7 /* scaleAdjust */
            invokevirtual java.math.BigDecimal.scaleByPowerOfTen:(I)Ljava/math/BigDecimal;
            astore 9 /* working */
        start local 9 // java.math.BigDecimal working
        19: .line 2134
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 22
        20: .line 2135
            getstatic java.math.BigDecimal.ONE_TENTH:Ljava/math/BigDecimal;
            aload 9 /* working */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 21
            aload 9 /* working */
            getstatic java.math.BigDecimal.TEN:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            iflt 22
      StackMap locals: java.math.BigDecimal
      StackMap stack:
        21: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        22: .line 2161
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 9 /* working */
            invokevirtual java.math.BigDecimal.doubleValue:()D
            invokestatic java.lang.Math.sqrt:(D)D
            invokespecial java.math.BigDecimal.<init>:(D)V
            astore 10 /* guess */
        start local 10 // java.math.BigDecimal guess
        23: .line 2162
            bipush 15
            istore 11 /* guessPrecision */
        start local 11 // int guessPrecision
        24: .line 2163
            aload 1 /* mc */
            invokevirtual java.math.MathContext.getPrecision:()I
            istore 12 /* originalPrecision */
        start local 12 // int originalPrecision
        25: .line 2170
            iload 12 /* originalPrecision */
            ifne 28
        26: .line 2171
            aload 5 /* stripped */
            invokevirtual java.math.BigDecimal.precision:()I
            iconst_2
            idiv
            iconst_1
            iadd
            istore 13 /* targetPrecision */
        start local 13 // int targetPrecision
        27: .line 2172
            goto 34
        end local 13 // int targetPrecision
        28: .line 2179
      StackMap locals: java.math.BigDecimal int int
      StackMap stack:
            invokestatic java.math.BigDecimal.$SWITCH_TABLE$java$math$RoundingMode:()[I
            aload 1 /* mc */
            invokevirtual java.math.MathContext.getRoundingMode:()Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iaload
            tableswitch { // 5 - 7
                    5: 29
                    6: 29
                    7: 29
              default: 33
          }
        29: .line 2183
      StackMap locals:
      StackMap stack:
            iconst_2
            iload 12 /* originalPrecision */
            imul
            istore 13 /* targetPrecision */
        start local 13 // int targetPrecision
        30: .line 2184
            iload 13 /* targetPrecision */
            ifge 34
        31: .line 2185
            ldc 2147483645
            istore 13 /* targetPrecision */
        32: .line 2186
            goto 34
        end local 13 // int targetPrecision
        33: .line 2189
      StackMap locals:
      StackMap stack:
            iload 12 /* originalPrecision */
            istore 13 /* targetPrecision */
        start local 13 // int targetPrecision
        34: .line 2198
      StackMap locals: int
      StackMap stack:
            aload 10 /* guess */
            astore 14 /* approx */
        start local 14 // java.math.BigDecimal approx
        35: .line 2199
            aload 9 /* working */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 15 /* workingPrecision */
        start local 15 // int workingPrecision
        36: .line 2201
      StackMap locals: java.math.BigDecimal int
      StackMap stack:
            iload 11 /* guessPrecision */
            iload 13 /* targetPrecision */
            iconst_2
            iadd
            invokestatic java.lang.Math.max:(II)I
        37: .line 2202
            iload 15 /* workingPrecision */
        38: .line 2201
            invokestatic java.lang.Math.max:(II)I
            istore 16 /* tmpPrecision */
        start local 16 // int tmpPrecision
        39: .line 2203
            new java.math.MathContext
            dup
            iload 16 /* tmpPrecision */
            getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 17 /* mcTmp */
        start local 17 // java.math.MathContext mcTmp
        40: .line 2205
            getstatic java.math.BigDecimal.ONE_HALF:Ljava/math/BigDecimal;
            aload 14 /* approx */
            aload 9 /* working */
            aload 14 /* approx */
            aload 17 /* mcTmp */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            aload 17 /* mcTmp */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 14 /* approx */
        41: .line 2206
            iload 11 /* guessPrecision */
            iconst_2
            imul
            istore 11 /* guessPrecision */
        end local 17 // java.math.MathContext mcTmp
        end local 16 // int tmpPrecision
        42: .line 2207
            iload 11 /* guessPrecision */
            iload 13 /* targetPrecision */
            iconst_2
            iadd
        43: .line 2200
            if_icmplt 36
        44: .line 2210
            aload 1 /* mc */
            invokevirtual java.math.MathContext.getRoundingMode:()Ljava/math/RoundingMode;
            astore 17 /* targetRm */
        start local 17 // java.math.RoundingMode targetRm
        45: .line 2211
            aload 17 /* targetRm */
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
            if_acmpeq 46
            iload 12 /* originalPrecision */
            ifne 53
        46: .line 2213
      StackMap locals: java.math.BigDecimal java.math.MathContext int int java.math.BigDecimal java.math.BigDecimal int int int java.math.BigDecimal java.math.BigDecimal int int int java.math.BigDecimal int top java.math.RoundingMode
      StackMap stack:
            aload 17 /* targetRm */
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
            if_acmpne 47
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            goto 48
      StackMap locals:
      StackMap stack:
        47: aload 17 /* targetRm */
        48: .line 2212
      StackMap locals:
      StackMap stack: java.math.RoundingMode
            astore 18 /* tmpRm */
        start local 18 // java.math.RoundingMode tmpRm
        49: .line 2214
            new java.math.MathContext
            dup
            iload 13 /* targetPrecision */
            aload 18 /* tmpRm */
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 19 /* mcTmp */
        start local 19 // java.math.MathContext mcTmp
        50: .line 2215
            aload 14 /* approx */
            iload 7 /* scaleAdjust */
            ineg
            iconst_2
            idiv
            invokevirtual java.math.BigDecimal.scaleByPowerOfTen:(I)Ljava/math/BigDecimal;
            aload 19 /* mcTmp */
            invokevirtual java.math.BigDecimal.round:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 16 /* result */
        start local 16 // java.math.BigDecimal result
        51: .line 2219
            aload 0 /* this */
            aload 16 /* result */
            invokevirtual java.math.BigDecimal.square:()Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifeq 64
        52: .line 2220
            new java.lang.ArithmeticException
            dup
            ldc "Computed square root not exact."
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        end local 19 // java.math.MathContext mcTmp
        end local 18 // java.math.RoundingMode tmpRm
        end local 16 // java.math.BigDecimal result
        53: .line 2223
      StackMap locals:
      StackMap stack:
            aload 14 /* approx */
            iload 7 /* scaleAdjust */
            ineg
            iconst_2
            idiv
            invokevirtual java.math.BigDecimal.scaleByPowerOfTen:(I)Ljava/math/BigDecimal;
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.round:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 16 /* result */
        start local 16 // java.math.BigDecimal result
        54: .line 2225
            invokestatic java.math.BigDecimal.$SWITCH_TABLE$java$math$RoundingMode:()[I
            aload 17 /* targetRm */
            invokevirtual java.math.RoundingMode.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 61
                    2: 55
                    3: 61
                    4: 55
              default: 64
          }
        55: .line 2229
      StackMap locals: java.math.BigDecimal java.math.MathContext int int java.math.BigDecimal java.math.BigDecimal int int int java.math.BigDecimal java.math.BigDecimal int int int java.math.BigDecimal int java.math.BigDecimal java.math.RoundingMode
      StackMap stack:
            aload 16 /* result */
            invokevirtual java.math.BigDecimal.square:()Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifle 64
        56: .line 2230
            aload 16 /* result */
            invokevirtual java.math.BigDecimal.ulp:()Ljava/math/BigDecimal;
            astore 18 /* ulp */
        start local 18 // java.math.BigDecimal ulp
        57: .line 2237
            aload 14 /* approx */
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifne 59
        58: .line 2238
            aload 18 /* ulp */
            getstatic java.math.BigDecimal.ONE_TENTH:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 18 /* ulp */
        59: .line 2240
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 16 /* result */
            aload 18 /* ulp */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 16 /* result */
        end local 18 // java.math.BigDecimal ulp
        60: .line 2242
            goto 64
        61: .line 2247
      StackMap locals:
      StackMap stack:
            aload 16 /* result */
            invokevirtual java.math.BigDecimal.square:()Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifge 64
        62: .line 2248
            aload 16 /* result */
            aload 16 /* result */
            invokevirtual java.math.BigDecimal.ulp:()Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 16 /* result */
        63: .line 2250
            goto 64
        64: .line 2263
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 66
        65: .line 2270
            aload 0 /* this */
            aload 16 /* result */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.squareRootResultAssertions:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Z
            ifne 66
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        66: .line 2271
      StackMap locals:
      StackMap stack:
            aload 16 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 3 /* preferredScale */
            if_icmpeq 72
        67: .line 2279
            aload 16 /* result */
            invokevirtual java.math.BigDecimal.stripTrailingZeros:()Ljava/math/BigDecimal;
        68: .line 2280
            aload 4 /* zeroWithFinalPreferredScale */
        69: .line 2281
            new java.math.MathContext
            dup
            iload 12 /* originalPrecision */
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
        70: .line 2280
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
        71: .line 2279
            astore 16 /* result */
        72: .line 2283
      StackMap locals:
      StackMap stack:
            aload 16 /* result */
            areturn
        end local 17 // java.math.RoundingMode targetRm
        end local 16 // java.math.BigDecimal result
        end local 15 // int workingPrecision
        end local 14 // java.math.BigDecimal approx
        end local 13 // int targetPrecision
        end local 12 // int originalPrecision
        end local 11 // int guessPrecision
        end local 10 // java.math.BigDecimal guess
        end local 9 // java.math.BigDecimal working
        end local 8 // int scale
        end local 7 // int scaleAdjust
        end local 6 // int strippedScale
        end local 5 // java.math.BigDecimal stripped
        end local 4 // java.math.BigDecimal zeroWithFinalPreferredScale
        end local 3 // int preferredScale
        73: .line 2285
      StackMap locals: java.math.BigDecimal java.math.MathContext int
      StackMap stack:
            aconst_null
            astore 3 /* result */
        start local 3 // java.math.BigDecimal result
        74: .line 2286
            iload 2 /* signum */
            tableswitch { // -1 - 0
                   -1: 75
                    0: 76
              default: 79
          }
        75: .line 2288
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Attempted square root of negative BigDecimal"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        76: .line 2291
      StackMap locals:
      StackMap stack:
            lconst_0
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.scale:()I
            iconst_2
            idiv
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            astore 3 /* result */
        77: .line 2292
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 78
            aload 0 /* this */
            aload 3 /* result */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.squareRootResultAssertions:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Z
            ifne 78
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        78: .line 2293
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        79: .line 2296
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            ldc "Bad value from signum"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // java.math.BigDecimal result
        end local 2 // int signum
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   80     0                         this  Ljava/math/BigDecimal;
            0   80     1                           mc  Ljava/math/MathContext;
            1   80     2                       signum  I
            3   73     3               preferredScale  I
            4   73     4  zeroWithFinalPreferredScale  Ljava/math/BigDecimal;
            5   73     5                     stripped  Ljava/math/BigDecimal;
            6   73     6                strippedScale  I
            9   12     7                       result  Ljava/math/BigDecimal;
           13   73     7                  scaleAdjust  I
           14   73     8                        scale  I
           19   73     9                      working  Ljava/math/BigDecimal;
           23   73    10                        guess  Ljava/math/BigDecimal;
           24   73    11               guessPrecision  I
           25   73    12            originalPrecision  I
           27   28    13              targetPrecision  I
           30   33    13              targetPrecision  I
           34   73    13              targetPrecision  I
           35   73    14                       approx  Ljava/math/BigDecimal;
           36   73    15             workingPrecision  I
           39   42    16                 tmpPrecision  I
           40   42    17                        mcTmp  Ljava/math/MathContext;
           51   53    16                       result  Ljava/math/BigDecimal;
           54   73    16                       result  Ljava/math/BigDecimal;
           45   73    17                     targetRm  Ljava/math/RoundingMode;
           49   53    18                        tmpRm  Ljava/math/RoundingMode;
           50   53    19                        mcTmp  Ljava/math/MathContext;
           57   60    18                          ulp  Ljava/math/BigDecimal;
           74   80     3                       result  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      mc    

  private java.math.BigDecimal square();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2302
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  private boolean isPowerOfTen();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2306
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  private boolean squareRootResultAssertions(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal result
        start local 2 // java.math.MathContext mc
         0: .line 2325
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 2
         1: .line 2326
            aload 0 /* this */
            aload 1 /* result */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.squareRootZeroResultAssertions:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Z
            ireturn
         2: .line 2328
      StackMap locals:
      StackMap stack:
            aload 2 /* mc */
            invokevirtual java.math.MathContext.getRoundingMode:()Ljava/math/RoundingMode;
            astore 3 /* rm */
        start local 3 // java.math.RoundingMode rm
         3: .line 2329
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.ulp:()Ljava/math/BigDecimal;
            astore 4 /* ulp */
        start local 4 // java.math.BigDecimal ulp
         4: .line 2330
            aload 1 /* result */
            aload 4 /* ulp */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 5 /* neighborUp */
        start local 5 // java.math.BigDecimal neighborUp
         5: .line 2332
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.isPowerOfTen:()Z
            ifeq 7
         6: .line 2333
            aload 4 /* ulp */
            getstatic java.math.BigDecimal.TEN:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 4 /* ulp */
         7: .line 2335
      StackMap locals: java.math.RoundingMode java.math.BigDecimal java.math.BigDecimal
      StackMap stack:
            aload 1 /* result */
            aload 4 /* ulp */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 6 /* neighborDown */
        start local 6 // java.math.BigDecimal neighborDown
         8: .line 2338
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 12
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.signum:()I
            iconst_1
            if_icmpne 10
         9: .line 2339
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            iconst_1
            if_icmpeq 12
      StackMap locals: java.math.BigDecimal
      StackMap stack:
        10: new java.lang.AssertionError
            dup
        11: .line 2340
            ldc "Bad signum of this and/or its sqrt."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        12: .line 2342
      StackMap locals:
      StackMap stack:
            invokestatic java.math.BigDecimal.$SWITCH_TABLE$java$math$RoundingMode:()[I
            aload 3 /* rm */
            invokevirtual java.math.RoundingMode.ordinal:()I
            iaload
            tableswitch { // 1 - 7
                    1: 19
                    2: 13
                    3: 19
                    4: 13
                    5: 25
                    6: 25
                    7: 25
              default: 45
          }
        13: .line 2345
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 18
        14: .line 2346
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.square:()Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 16
        15: .line 2347
            aload 5 /* neighborUp */
            invokevirtual java.math.BigDecimal.square:()Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 18
      StackMap locals:
      StackMap stack:
        16: new java.lang.AssertionError
            dup
        17: .line 2348
            new java.lang.StringBuilder
            dup
            ldc "Square of result out for bounds rounding "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* rm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        18: .line 2349
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        19: .line 2353
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 24
        20: .line 2354
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.square:()Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            iflt 22
        21: .line 2355
            aload 6 /* neighborDown */
            invokevirtual java.math.BigDecimal.square:()Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            iflt 24
      StackMap locals:
      StackMap stack:
        22: new java.lang.AssertionError
            dup
        23: .line 2356
            new java.lang.StringBuilder
            dup
            ldc "Square of result out for bounds rounding "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* rm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        24: .line 2357
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        25: .line 2363
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.square:()Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.abs:()Ljava/math/BigDecimal;
            astore 7 /* err */
        start local 7 // java.math.BigDecimal err
        26: .line 2364
            aload 5 /* neighborUp */
            invokevirtual java.math.BigDecimal.square:()Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 8 /* errUp */
        start local 8 // java.math.BigDecimal errUp
        27: .line 2365
            aload 0 /* this */
            aload 6 /* neighborDown */
            invokevirtual java.math.BigDecimal.square:()Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 9 /* errDown */
        start local 9 // java.math.BigDecimal errDown
        28: .line 2369
            aload 7 /* err */
            aload 8 /* errUp */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            istore 10 /* err_comp_errUp */
        start local 10 // int err_comp_errUp
        29: .line 2370
            aload 7 /* err */
            aload 9 /* errDown */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            istore 11 /* err_comp_errDown */
        start local 11 // int err_comp_errDown
        30: .line 2372
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 35
        31: .line 2373
            aload 8 /* errUp */
            invokevirtual java.math.BigDecimal.signum:()I
            iconst_1
            if_icmpne 33
        32: .line 2374
            aload 9 /* errDown */
            invokevirtual java.math.BigDecimal.signum:()I
            iconst_1
            if_icmpeq 35
      StackMap locals: java.math.BigDecimal java.math.BigDecimal java.math.MathContext java.math.RoundingMode java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal int int
      StackMap stack:
        33: new java.lang.AssertionError
            dup
        34: .line 2375
            ldc "Errors of neighbors squared don't have correct signs"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        35: .line 2383
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 39
        36: .line 2384
            iload 10 /* err_comp_errUp */
            ifle 39
        37: .line 2385
            iload 11 /* err_comp_errDown */
            ifle 39
            new java.lang.AssertionError
            dup
        38: .line 2386
            new java.lang.StringBuilder
            dup
            ldc "Computed square root has larger error than neighbors for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* rm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        39: .line 2388
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 44
        40: .line 2389
            iload 10 /* err_comp_errUp */
            ifne 41
            iload 11 /* err_comp_errDown */
            ifge 42
        41: .line 2390
      StackMap locals:
      StackMap stack:
            iload 11 /* err_comp_errDown */
            ifne 44
            iload 10 /* err_comp_errUp */
            iflt 44
      StackMap locals:
      StackMap stack:
        42: new java.lang.AssertionError
            dup
        43: .line 2391
            ldc "Incorrect error relationships"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        44: .line 2393
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 11 // int err_comp_errDown
        end local 10 // int err_comp_errUp
        end local 9 // java.math.BigDecimal errDown
        end local 8 // java.math.BigDecimal errUp
        end local 7 // java.math.BigDecimal err
        45: .line 2396
      StackMap locals: java.math.BigDecimal java.math.BigDecimal java.math.MathContext java.math.RoundingMode java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // java.math.BigDecimal neighborDown
        end local 5 // java.math.BigDecimal neighborUp
        end local 4 // java.math.BigDecimal ulp
        end local 3 // java.math.RoundingMode rm
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal result
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   46     0              this  Ljava/math/BigDecimal;
            0   46     1            result  Ljava/math/BigDecimal;
            0   46     2                mc  Ljava/math/MathContext;
            3   46     3                rm  Ljava/math/RoundingMode;
            4   46     4               ulp  Ljava/math/BigDecimal;
            5   46     5        neighborUp  Ljava/math/BigDecimal;
            8   46     6      neighborDown  Ljava/math/BigDecimal;
           26   45     7               err  Ljava/math/BigDecimal;
           27   45     8             errUp  Ljava/math/BigDecimal;
           28   45     9           errDown  Ljava/math/BigDecimal;
           29   45    10    err_comp_errUp  I
           30   45    11  err_comp_errDown  I
    MethodParameters:
        Name  Flags
      result  
      mc      

  private boolean squareRootZeroResultAssertions(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal result
        start local 2 // java.math.MathContext mc
         0: .line 2402
            aload 0 /* this */
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal result
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/math/BigDecimal;
            0    2     1  result  Ljava/math/BigDecimal;
            0    2     2      mc  Ljava/math/MathContext;
    MethodParameters:
        Name  Flags
      result  
      mc      

  public java.math.BigDecimal pow(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2423
            iload 1 /* n */
            iflt 1
            iload 1 /* n */
            ldc 999999999
            if_icmple 2
         1: .line 2424
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Invalid operation"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            lmul
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* newScale */
        start local 2 // int newScale
         3: .line 2428
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            iload 1 /* n */
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            iload 2 /* newScale */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;I)V
            areturn
        end local 2 // int newScale
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljava/math/BigDecimal;
            0    4     1         n  I
            3    4     2  newScale  I
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal pow(int, java.math.MathContext);
    descriptor: (ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
        start local 2 // java.math.MathContext mc
         0: .line 2483
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 2484
            aload 0 /* this */
            iload 1 /* n */
            invokevirtual java.math.BigDecimal.pow:(I)Ljava/math/BigDecimal;
            areturn
         2: .line 2485
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ldc -999999999
            if_icmplt 3
            iload 1 /* n */
            ldc 999999999
            if_icmple 4
         3: .line 2486
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Invalid operation"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2487
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ifne 6
         5: .line 2488
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            areturn
         6: .line 2489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 3 /* lhs */
        start local 3 // java.math.BigDecimal lhs
         7: .line 2490
            aload 2 /* mc */
            astore 4 /* workmc */
        start local 4 // java.math.MathContext workmc
         8: .line 2491
            iload 1 /* n */
            invokestatic java.lang.Math.abs:(I)I
            istore 5 /* mag */
        start local 5 // int mag
         9: .line 2492
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifle 16
        10: .line 2493
            iload 5 /* mag */
            i2l
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 6 /* elength */
        start local 6 // int elength
        11: .line 2494
            iload 6 /* elength */
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            if_icmple 13
        12: .line 2495
            new java.lang.ArithmeticException
            dup
            ldc "Invalid operation"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 2496
      StackMap locals: java.math.BigDecimal int java.math.MathContext java.math.BigDecimal java.math.MathContext int int
      StackMap stack:
            new java.math.MathContext
            dup
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            iload 6 /* elength */
            iadd
            iconst_1
            iadd
        14: .line 2497
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
        15: .line 2496
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 4 /* workmc */
        end local 6 // int elength
        16: .line 2500
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            astore 6 /* acc */
        start local 6 // java.math.BigDecimal acc
        17: .line 2501
            iconst_0
            istore 7 /* seenbit */
        start local 7 // boolean seenbit
        18: .line 2502
            iconst_1
            istore 8 /* i */
        start local 8 // int i
        19: .line 2503
      StackMap locals: java.math.BigDecimal int int
      StackMap stack:
            iload 5 /* mag */
            iload 5 /* mag */
            iadd
            istore 5 /* mag */
        20: .line 2504
            iload 5 /* mag */
            ifge 23
        21: .line 2505
            iconst_1
            istore 7 /* seenbit */
        22: .line 2506
            aload 6 /* acc */
            aload 3 /* lhs */
            aload 4 /* workmc */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 6 /* acc */
        23: .line 2508
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            bipush 31
            if_icmpne 25
        24: .line 2509
            goto 28
        25: .line 2510
      StackMap locals:
      StackMap stack:
            iload 7 /* seenbit */
            ifeq 27
        26: .line 2511
            aload 6 /* acc */
            aload 6 /* acc */
            aload 4 /* workmc */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 6 /* acc */
        27: .line 2502
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
            goto 19
        end local 8 // int i
        28: .line 2515
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ifge 30
        29: .line 2516
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            aload 6 /* acc */
            aload 4 /* workmc */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 6 /* acc */
        30: .line 2518
      StackMap locals:
      StackMap stack:
            aload 6 /* acc */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 7 // boolean seenbit
        end local 6 // java.math.BigDecimal acc
        end local 5 // int mag
        end local 4 // java.math.MathContext workmc
        end local 3 // java.math.BigDecimal lhs
        end local 2 // java.math.MathContext mc
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   31     0     this  Ljava/math/BigDecimal;
            0   31     1        n  I
            0   31     2       mc  Ljava/math/MathContext;
            7   31     3      lhs  Ljava/math/BigDecimal;
            8   31     4   workmc  Ljava/math/MathContext;
            9   31     5      mag  I
           11   16     6  elength  I
           17   31     6      acc  Ljava/math/BigDecimal;
           18   31     7  seenbit  Z
           19   28     8        i  I
    MethodParameters:
      Name  Flags
      n     
      mc    

  public java.math.BigDecimal abs();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2529
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 1
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal abs(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2544
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 1
            aload 0 /* this */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.negate:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.plus:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public java.math.BigDecimal negate();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2554
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifne 2
         1: .line 2555
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            ldc -9223372036854775808
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
         2: .line 2557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal negate(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2572
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.plus:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;
            0    1     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public java.math.BigDecimal plus();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2588
            aload 0 /* this */
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal plus(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2607
            aload 1 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 2608
            aload 0 /* this */
            areturn
         2: .line 2609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public int signum();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2619
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
         1: .line 2620
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.signum:(J)I
            goto 3
         2: .line 2621
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.signum:()I
         3: .line 2619
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;

  public int scale();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2635
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public int precision();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2648
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            istore 1 /* result */
        start local 1 // int result
         1: .line 2649
            iload 1 /* result */
            ifne 7
         2: .line 2650
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 2 /* s */
        start local 2 // long s
         3: .line 2651
            lload 2 /* s */
            ldc -9223372036854775808
            lcmp
            ifeq 5
         4: .line 2652
            lload 2 /* s */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 1 /* result */
            goto 6
         5: .line 2654
      StackMap locals: int long
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 1 /* result */
         6: .line 2655
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* result */
            putfield java.math.BigDecimal.precision:I
        end local 2 // long s
         7: .line 2657
      StackMap locals:
      StackMap stack:
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljava/math/BigDecimal;
            1    8     1  result  I
            3    7     2       s  J

  public java.math.BigInteger unscaledValue();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2670
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal round(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2791
            aload 0 /* this */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.plus:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;
            0    1     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public java.math.BigDecimal setScale(int, java.math.RoundingMode);
    descriptor: (ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int newScale
        start local 2 // java.math.RoundingMode roundingMode
         0: .line 2824
            aload 0 /* this */
            iload 1 /* newScale */
            aload 2 /* roundingMode */
            getfield java.math.RoundingMode.oldMode:I
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
        end local 2 // java.math.RoundingMode roundingMode
        end local 1 // int newScale
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1      newScale  I
            0    1     2  roundingMode  Ljava/math/RoundingMode;
    MethodParameters:
              Name  Flags
      newScale      
      roundingMode  

  public java.math.BigDecimal setScale(int, int);
    descriptor: (II)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int newScale
        start local 2 // int roundingMode
         0: .line 2869
            iload 2 /* roundingMode */
            iflt 1
            iload 2 /* roundingMode */
            bipush 7
            if_icmple 2
         1: .line 2870
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid rounding mode"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2872
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            istore 3 /* oldScale */
        start local 3 // int oldScale
         3: .line 2873
            iload 1 /* newScale */
            iload 3 /* oldScale */
            if_icmpne 5
         4: .line 2874
            aload 0 /* this */
            areturn
         5: .line 2875
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
         6: .line 2876
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         7: .line 2877
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 21
         8: .line 2878
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 4 /* rs */
        start local 4 // long rs
         9: .line 2879
            iload 1 /* newScale */
            iload 3 /* oldScale */
            if_icmple 17
        10: .line 2880
            aload 0 /* this */
            iload 1 /* newScale */
            i2l
            iload 3 /* oldScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 6 /* raise */
        start local 6 // int raise
        11: .line 2881
            lload 4 /* rs */
            iload 6 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 4 /* rs */
            ldc -9223372036854775808
            lcmp
            ifeq 13
        12: .line 2882
            lload 4 /* rs */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        13: .line 2884
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* raise */
            invokevirtual java.math.BigDecimal.bigMultiplyPowerTen:(I)Ljava/math/BigInteger;
            astore 7 /* rb */
        start local 7 // java.math.BigInteger rb
        14: .line 2885
            new java.math.BigDecimal
            dup
            aload 7 /* rb */
            ldc -9223372036854775808
            iload 1 /* newScale */
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 15
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            iload 6 /* raise */
            iadd
            goto 16
      StackMap locals: java.math.BigDecimal int int int long int java.math.BigInteger
      StackMap stack: new 14 new 14 java.math.BigInteger long int
        15: iconst_0
      StackMap locals: java.math.BigDecimal int int int long int java.math.BigInteger
      StackMap stack: new 14 new 14 java.math.BigInteger long int int
        16: invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 7 // java.math.BigInteger rb
        end local 6 // int raise
        17: .line 2889
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* oldScale */
            i2l
            iload 1 /* newScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 6 /* drop */
        start local 6 // int drop
        18: .line 2890
            iload 6 /* drop */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 20
        19: .line 2891
            lload 4 /* rs */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 6 /* drop */
            laload
            iload 1 /* newScale */
            iload 2 /* roundingMode */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            areturn
        20: .line 2893
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            iload 6 /* drop */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            iload 1 /* newScale */
            iload 2 /* roundingMode */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 6 // int drop
        end local 4 // long rs
        21: .line 2897
      StackMap locals:
      StackMap stack:
            iload 1 /* newScale */
            iload 3 /* oldScale */
            if_icmple 27
        22: .line 2898
            aload 0 /* this */
            iload 1 /* newScale */
            i2l
            iload 3 /* oldScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 4 /* raise */
        start local 4 // int raise
        23: .line 2899
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 4 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 5 /* rb */
        start local 5 // java.math.BigInteger rb
        24: .line 2900
            new java.math.BigDecimal
            dup
            aload 5 /* rb */
            ldc -9223372036854775808
            iload 1 /* newScale */
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 25
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            iload 4 /* raise */
            iadd
            goto 26
      StackMap locals: java.math.BigDecimal int int int int java.math.BigInteger
      StackMap stack: new 24 new 24 java.math.BigInteger long int
        25: iconst_0
      StackMap locals: java.math.BigDecimal int int int int java.math.BigInteger
      StackMap stack: new 24 new 24 java.math.BigInteger long int int
        26: invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 5 // java.math.BigInteger rb
        end local 4 // int raise
        27: .line 2904
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* oldScale */
            i2l
            iload 1 /* newScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 4 /* drop */
        start local 4 // int drop
        28: .line 2905
            iload 4 /* drop */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 32
        29: .line 2906
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 4 /* drop */
            laload
            iload 1 /* newScale */
            iload 2 /* roundingMode */
        30: .line 2907
            iload 1 /* newScale */
        31: .line 2906
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        32: .line 2909
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 4 /* drop */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            iload 1 /* newScale */
            iload 2 /* roundingMode */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 4 // int drop
        end local 3 // int oldScale
        end local 2 // int roundingMode
        end local 1 // int newScale
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   33     0          this  Ljava/math/BigDecimal;
            0   33     1      newScale  I
            0   33     2  roundingMode  I
            3   33     3      oldScale  I
            9   21     4            rs  J
           11   17     6         raise  I
           14   17     7            rb  Ljava/math/BigInteger;
           18   21     6          drop  I
           23   27     4         raise  I
           24   27     5            rb  Ljava/math/BigInteger;
           28   33     4          drop  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")
    MethodParameters:
              Name  Flags
      newScale      
      roundingMode  

  public java.math.BigDecimal setScale(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int newScale
         0: .line 2951
            aload 0 /* this */
            iload 1 /* newScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
        end local 1 // int newScale
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljava/math/BigDecimal;
            0    1     1  newScale  I
    MethodParameters:
          Name  Flags
      newScale  

  public java.math.BigDecimal movePointLeft(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2973
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* newScale */
        start local 2 // int newScale
         1: .line 2974
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            iload 2 /* newScale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            astore 3 /* num */
        start local 3 // java.math.BigDecimal num
         2: .line 2975
            aload 3 /* num */
            getfield java.math.BigDecimal.scale:I
            ifge 3
            aload 3 /* num */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            goto 4
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
         3: aload 3 /* num */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         4: areturn
        end local 3 // java.math.BigDecimal num
        end local 2 // int newScale
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/math/BigDecimal;
            0    5     1         n  I
            1    5     2  newScale  I
            2    5     3       num  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal movePointRight(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2995
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* newScale */
        start local 2 // int newScale
         1: .line 2996
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            iload 2 /* newScale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            astore 3 /* num */
        start local 3 // java.math.BigDecimal num
         2: .line 2997
            aload 3 /* num */
            getfield java.math.BigDecimal.scale:I
            ifge 3
            aload 3 /* num */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            goto 4
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
         3: aload 3 /* num */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         4: areturn
        end local 3 // java.math.BigDecimal num
        end local 2 // int newScale
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/math/BigDecimal;
            0    5     1         n  I
            1    5     2  newScale  I
            2    5     3       num  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal scaleByPowerOfTen(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 3014
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
         1: .line 3015
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
         2: .line 3014
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1     n  I
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal stripTrailingZeros();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3034
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifeq 1
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnull 2
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.signum:()I
            ifne 2
         1: .line 3035
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            areturn
         2: .line 3036
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 3037
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ldc -9223372036854775808
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
         4: .line 3039
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ldc -9223372036854775808
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;

  public int compareTo(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 3065
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* val */
            getfield java.math.BigDecimal.scale:I
            if_icmpne 8
         1: .line 3066
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 2 /* xs */
        start local 2 // long xs
         2: .line 3067
            aload 1 /* val */
            getfield java.math.BigDecimal.intCompact:J
            lstore 4 /* ys */
        start local 4 // long ys
         3: .line 3068
            lload 2 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 8
            lload 4 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 8
         4: .line 3069
            lload 2 /* xs */
            lload 4 /* ys */
            lcmp
            ifeq 6
            lload 2 /* xs */
            lload 4 /* ys */
            lcmp
            ifle 5
            iconst_1
            goto 7
      StackMap locals: long long
      StackMap stack:
         5: iconst_m1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: ireturn
        end local 4 // long ys
        end local 2 // long xs
         8: .line 3071
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            istore 2 /* xsign */
        start local 2 // int xsign
         9: .line 3072
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.signum:()I
            istore 3 /* ysign */
        start local 3 // int ysign
        10: .line 3073
            iload 2 /* xsign */
            iload 3 /* ysign */
            if_icmpeq 14
        11: .line 3074
            iload 2 /* xsign */
            iload 3 /* ysign */
            if_icmple 12
            iconst_1
            goto 13
      StackMap locals: int int
      StackMap stack:
        12: iconst_m1
      StackMap locals:
      StackMap stack: int
        13: ireturn
        14: .line 3075
      StackMap locals:
      StackMap stack:
            iload 2 /* xsign */
            ifne 16
        15: .line 3076
            iconst_0
            ireturn
        16: .line 3077
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            istore 4 /* cmp */
        start local 4 // int cmp
        17: .line 3078
            iload 2 /* xsign */
            ifle 18
            iload 4 /* cmp */
            goto 19
      StackMap locals: int
      StackMap stack:
        18: iload 4 /* cmp */
            ineg
      StackMap locals:
      StackMap stack: int
        19: ireturn
        end local 4 // int cmp
        end local 3 // int ysign
        end local 2 // int xsign
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Ljava/math/BigDecimal;
            0   20     1    val  Ljava/math/BigDecimal;
            2    8     2     xs  J
            3    8     4     ys  J
            9   20     2  xsign  I
           10   20     3  ysign  I
           17   20     4    cmp  I
    MethodParameters:
      Name  Flags
      val   

  private int compareMagnitude(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=13, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 3086
            aload 1 /* val */
            getfield java.math.BigDecimal.intCompact:J
            lstore 2 /* ys */
        start local 2 // long ys
         1: .line 3087
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 4 /* xs */
        start local 4 // long xs
         2: .line 3088
            lload 4 /* xs */
            lconst_0
            lcmp
            ifne 6
         3: .line 3089
            lload 2 /* ys */
            lconst_0
            lcmp
            ifne 4
            iconst_0
            goto 5
      StackMap locals: long long
      StackMap stack:
         4: iconst_m1
      StackMap locals:
      StackMap stack: int
         5: ireturn
         6: .line 3090
      StackMap locals:
      StackMap stack:
            lload 2 /* ys */
            lconst_0
            lcmp
            ifne 8
         7: .line 3091
            iconst_1
            ireturn
         8: .line 3093
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* val */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 6 /* sdiff */
        start local 6 // long sdiff
         9: .line 3094
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifeq 29
        10: .line 3096
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 8 /* xae */
        start local 8 // long xae
        11: .line 3097
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            aload 1 /* val */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 10 /* yae */
        start local 10 // long yae
        12: .line 3098
            lload 8 /* xae */
            lload 10 /* yae */
            lcmp
            ifge 14
        13: .line 3099
            iconst_m1
            ireturn
        14: .line 3100
      StackMap locals: long long long
      StackMap stack:
            lload 8 /* xae */
            lload 10 /* yae */
            lcmp
            ifle 16
        15: .line 3101
            iconst_1
            ireturn
        16: .line 3102
      StackMap locals:
      StackMap stack:
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifge 23
        17: .line 3104
            lload 6 /* sdiff */
            ldc -2147483648
            lcmp
            ifle 29
        18: .line 3105
            lload 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 20
        19: .line 3106
            lload 4 /* xs */
            lload 6 /* sdiff */
            lneg
            l2i
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifne 29
        20: .line 3107
      StackMap locals:
      StackMap stack:
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifne 29
        21: .line 3108
            aload 0 /* this */
            lload 6 /* sdiff */
            lneg
            l2i
            invokevirtual java.math.BigDecimal.bigMultiplyPowerTen:(I)Ljava/math/BigInteger;
            astore 12 /* rb */
        start local 12 // java.math.BigInteger rb
        22: .line 3109
            aload 12 /* rb */
            aload 1 /* val */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 12 // java.math.BigInteger rb
        23: .line 3113
      StackMap locals:
      StackMap stack:
            lload 6 /* sdiff */
            ldc 2147483647
            lcmp
            ifgt 29
        24: .line 3114
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 26
        25: .line 3115
            lload 2 /* ys */
            lload 6 /* sdiff */
            l2i
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifne 29
        26: .line 3116
      StackMap locals:
      StackMap stack:
            lload 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifne 29
        27: .line 3117
            aload 1 /* val */
            lload 6 /* sdiff */
            l2i
            invokevirtual java.math.BigDecimal.bigMultiplyPowerTen:(I)Ljava/math/BigInteger;
            astore 12 /* rb */
        start local 12 // java.math.BigInteger rb
        28: .line 3118
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 12 /* rb */
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 12 // java.math.BigInteger rb
        end local 10 // long yae
        end local 8 // long xae
        29: .line 3122
      StackMap locals:
      StackMap stack:
            lload 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 33
        30: .line 3123
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 31
            lload 4 /* xs */
            lload 2 /* ys */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            goto 32
      StackMap locals:
      StackMap stack:
        31: iconst_m1
      StackMap locals:
      StackMap stack: int
        32: ireturn
        33: .line 3124
      StackMap locals:
      StackMap stack:
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 35
        34: .line 3125
            iconst_1
            ireturn
        35: .line 3127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* val */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 6 // long sdiff
        end local 4 // long xs
        end local 2 // long ys
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   36     0   this  Ljava/math/BigDecimal;
            0   36     1    val  Ljava/math/BigDecimal;
            1   36     2     ys  J
            2   36     4     xs  J
            9   36     6  sdiff  J
           11   29     8    xae  J
           12   29    10    yae  J
           22   23    12     rb  Ljava/math/BigInteger;
           28   29    12     rb  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      val   

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.lang.Object x
         0: .line 3148
            aload 1 /* x */
            instanceof java.math.BigDecimal
            ifne 2
         1: .line 3149
            iconst_0
            ireturn
         2: .line 3150
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            checkcast java.math.BigDecimal
            astore 2 /* xDec */
        start local 2 // java.math.BigDecimal xDec
         3: .line 3151
            aload 1 /* x */
            aload 0 /* this */
            if_acmpne 5
         4: .line 3152
            iconst_1
            ireturn
         5: .line 3153
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 2 /* xDec */
            getfield java.math.BigDecimal.scale:I
            if_icmpeq 7
         6: .line 3154
            iconst_0
            ireturn
         7: .line 3155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 3 /* s */
        start local 3 // long s
         8: .line 3156
            aload 2 /* xDec */
            getfield java.math.BigDecimal.intCompact:J
            lstore 5 /* xs */
        start local 5 // long xs
         9: .line 3157
            lload 3 /* s */
            ldc -9223372036854775808
            lcmp
            ifeq 14
        10: .line 3158
            lload 5 /* xs */
            ldc -9223372036854775808
            lcmp
            ifne 12
        11: .line 3159
            aload 2 /* xDec */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* xs */
        12: .line 3160
      StackMap locals: long long
      StackMap stack:
            lload 5 /* xs */
            lload 3 /* s */
            lcmp
            ifne 13
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        14: .line 3161
      StackMap locals:
      StackMap stack:
            lload 5 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 17
        15: .line 3162
            lload 5 /* xs */
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lcmp
            ifne 16
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        16: iconst_0
            ireturn
        17: .line 3164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            aload 2 /* xDec */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 5 // long xs
        end local 3 // long s
        end local 2 // java.math.BigDecimal xDec
        end local 1 // java.lang.Object x
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Ljava/math/BigDecimal;
            0   18     1     x  Ljava/lang/Object;
            3   18     2  xDec  Ljava/math/BigDecimal;
            8   18     3     s  J
            9   18     5    xs  J
    MethodParameters:
      Name  Flags
      x     

  public java.math.BigDecimal min(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 3179
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 1
            aload 0 /* this */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* val */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1   val  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      val   

  public java.math.BigDecimal max(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 3193
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            iflt 1
            aload 0 /* this */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* val */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1   val  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      val   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3209
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 10
         1: .line 3210
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifge 2
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
      StackMap locals:
      StackMap stack: long
         3: lstore 1 /* val2 */
        start local 1 // long val2
         4: .line 3211
            lload 1 /* val2 */
            bipush 32
            lushr
            l2i
            bipush 31
            imul
            i2l
         5: .line 3212
            lload 1 /* val2 */
            ldc 4294967295
            land
         6: .line 3211
            ladd
            l2i
            istore 3 /* temp */
        start local 3 // int temp
         7: .line 3213
            bipush 31
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifge 8
            iload 3 /* temp */
            ineg
            goto 9
      StackMap locals: java.math.BigDecimal long int
      StackMap stack: int
         8: iload 3 /* temp */
      StackMap locals: java.math.BigDecimal long int
      StackMap stack: int int
         9: imul
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iadd
            ireturn
        end local 3 // int temp
        end local 1 // long val2
        10: .line 3215
      StackMap locals:
      StackMap stack:
            bipush 31
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.hashCode:()I
            imul
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iadd
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/math/BigDecimal;
            4   10     1  val2  J
            7   10     3  temp  I

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3321
            aload 0 /* this */
            getfield java.math.BigDecimal.stringCache:Ljava/lang/String;
            astore 1 /* sc */
        start local 1 // java.lang.String sc
         1: .line 3322
            aload 1 /* sc */
            ifnonnull 3
         2: .line 3323
            aload 0 /* this */
            aload 0 /* this */
            iconst_1
            invokevirtual java.math.BigDecimal.layoutChars:(Z)Ljava/lang/String;
            dup
            astore 1 /* sc */
            putfield java.math.BigDecimal.stringCache:Ljava/lang/String;
         3: .line 3325
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* sc */
            areturn
        end local 1 // java.lang.String sc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1    sc  Ljava/lang/String;

  public java.lang.String toEngineeringString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3353
            aload 0 /* this */
            iconst_0
            invokevirtual java.math.BigDecimal.layoutChars:(Z)Ljava/lang/String;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.lang.String toPlainString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3390
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 4
         1: .line 3391
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 3392
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            areturn
         3: .line 3394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            areturn
         4: .line 3397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifge 21
         5: .line 3398
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
         6: .line 3399
            ldc "0"
            areturn
         7: .line 3401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            lneg
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 1 /* trailingZeros */
        start local 1 // int trailingZeros
         8: .line 3403
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 12
         9: .line 3404
            new java.lang.StringBuilder
            dup
            bipush 20
            iload 1 /* trailingZeros */
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuilder buf
        10: .line 3405
            aload 2 /* buf */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
        11: .line 3406
            goto 15
        end local 2 // java.lang.StringBuilder buf
        12: .line 3407
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            astore 3 /* str */
        start local 3 // java.lang.String str
        13: .line 3408
            new java.lang.StringBuilder
            dup
            aload 3 /* str */
            invokevirtual java.lang.String.length:()I
            iload 1 /* trailingZeros */
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuilder buf
        14: .line 3409
            aload 2 /* buf */
            aload 3 /* str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.String str
        15: .line 3411
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        16: goto 19
        17: .line 3412
      StackMap locals: int
      StackMap stack:
            aload 2 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 3411
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 3 /* i */
            iload 1 /* trailingZeros */
            if_icmplt 17
        end local 3 // int i
        20: .line 3414
            aload 2 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder buf
        end local 1 // int trailingZeros
        21: .line 3417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 24
        22: .line 3418
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            astore 1 /* str */
        start local 1 // java.lang.String str
        23: .line 3419
            goto 25
        end local 1 // java.lang.String str
        24: .line 3420
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            astore 1 /* str */
        start local 1 // java.lang.String str
        25: .line 3422
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            aload 1 /* str */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokevirtual java.math.BigDecimal.getValueString:(ILjava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String str
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Ljava/math/BigDecimal;
            8   21     1  trailingZeros  I
           10   12     2            buf  Ljava/lang/StringBuilder;
           14   21     2            buf  Ljava/lang/StringBuilder;
           13   15     3            str  Ljava/lang/String;
           16   20     3              i  I
           23   24     1            str  Ljava/lang/String;
           25   26     1            str  Ljava/lang/String;

  private java.lang.String getValueString(int, java.lang.String, int);
    descriptor: (ILjava/lang/String;I)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // int signum
        start local 2 // java.lang.String intString
        start local 3 // int scale
         0: .line 3429
            aload 2 /* intString */
            invokevirtual java.lang.String.length:()I
            iload 3 /* scale */
            isub
            istore 5 /* insertionPoint */
        start local 5 // int insertionPoint
         1: .line 3430
            iload 5 /* insertionPoint */
            ifne 5
         2: .line 3431
            new java.lang.StringBuilder
            dup
            iload 1 /* signum */
            ifge 3
            ldc "-0."
            goto 4
      StackMap locals: java.math.BigDecimal int java.lang.String int top int
      StackMap stack: new 2 new 2
         3: ldc "0."
      StackMap locals: java.math.BigDecimal int java.lang.String int top int
      StackMap stack: new 2 new 2 java.lang.String
         4: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* intString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         5: .line 3432
      StackMap locals:
      StackMap stack:
            iload 5 /* insertionPoint */
            ifle 11
         6: .line 3433
            new java.lang.StringBuilder
            dup
            aload 2 /* intString */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
         7: .line 3434
            aload 4 /* buf */
            iload 5 /* insertionPoint */
            bipush 46
            invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
            pop
         8: .line 3435
            iload 1 /* signum */
            ifge 21
         9: .line 3436
            aload 4 /* buf */
            iconst_0
            bipush 45
            invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
            pop
        10: .line 3437
            goto 21
        end local 4 // java.lang.StringBuilder buf
        11: .line 3438
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            iconst_3
            iload 5 /* insertionPoint */
            isub
            aload 2 /* intString */
            invokevirtual java.lang.String.length:()I
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
        12: .line 3439
            aload 4 /* buf */
            iload 1 /* signum */
            ifge 13
            ldc "-0."
            goto 14
      StackMap locals: java.math.BigDecimal int java.lang.String int java.lang.StringBuilder int
      StackMap stack: java.lang.StringBuilder
        13: ldc "0."
      StackMap locals: java.math.BigDecimal int java.lang.String int java.lang.StringBuilder int
      StackMap stack: java.lang.StringBuilder java.lang.String
        14: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 3440
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        16: goto 19
        17: .line 3441
      StackMap locals: int
      StackMap stack:
            aload 4 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 3440
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 5 /* insertionPoint */
            ineg
            if_icmplt 17
        end local 6 // int i
        20: .line 3443
            aload 4 /* buf */
            aload 2 /* intString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 3445
      StackMap locals:
      StackMap stack:
            aload 4 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // int insertionPoint
        end local 4 // java.lang.StringBuilder buf
        end local 3 // int scale
        end local 2 // java.lang.String intString
        end local 1 // int signum
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Ljava/math/BigDecimal;
            0   22     1          signum  I
            0   22     2       intString  Ljava/lang/String;
            0   22     3           scale  I
            7   11     4             buf  Ljava/lang/StringBuilder;
           12   22     4             buf  Ljava/lang/StringBuilder;
            1   22     5  insertionPoint  I
           16   20     6               i  I
    MethodParameters:
           Name  Flags
      signum     
      intString  
      scale      

  public java.math.BigInteger toBigInteger();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3468
            aload 0 /* this */
            iconst_0
            iconst_1
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.math.BigInteger toBigIntegerExact();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3483
            aload 0 /* this */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public long longValue();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3505
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 2
         1: .line 3506
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lreturn
         2: .line 3509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifeq 4
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.fractionOnly:()Z
            ifne 4
         3: .line 3516
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            bipush -64
            if_icmpgt 5
         4: .line 3517
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
         5: .line 3519
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lreturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/math/BigDecimal;

  private boolean fractionOnly();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3529
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3530
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            isub
            ifgt 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  public long longValueExact();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3546
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 2
         1: .line 3547
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lreturn
         2: .line 3550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 4
         3: .line 3551
            lconst_0
            lreturn
         4: .line 3555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.fractionOnly:()Z
            ifeq 6
         5: .line 3556
            new java.lang.ArithmeticException
            dup
            ldc "Rounding necessary"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 3559
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            isub
            bipush 19
            if_icmple 8
         7: .line 3560
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 3563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            astore 1 /* num */
        start local 1 // java.math.BigDecimal num
         9: .line 3564
            aload 1 /* num */
            invokevirtual java.math.BigDecimal.precision:()I
            bipush 19
            if_icmplt 11
        10: .line 3565
            aload 1 /* num */
            invokestatic java.math.BigDecimal$LongOverflow.check:(Ljava/math/BigDecimal;)V
        11: .line 3566
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 1 /* num */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lreturn
        end local 1 // java.math.BigDecimal num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljava/math/BigDecimal;
            9   12     1   num  Ljava/math/BigDecimal;

  public int intValue();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3603
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 2
         1: .line 3604
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2i
            goto 3
         2: .line 3605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValue:()J
            l2i
         3: .line 3603
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;

  public int intValueExact();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3622
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValueExact:()J
            lstore 1 /* num */
        start local 1 // long num
         1: .line 3623
            lload 1 /* num */
            l2i
            i2l
            lload 1 /* num */
            lcmp
            ifeq 3
         2: .line 3624
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3625
      StackMap locals: long
      StackMap stack:
            lload 1 /* num */
            l2i
            ireturn
        end local 1 // long num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1   num  J

  public short shortValueExact();
    descriptor: ()S
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3642
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValueExact:()J
            lstore 1 /* num */
        start local 1 // long num
         1: .line 3643
            lload 1 /* num */
            l2i
            i2s
            i2l
            lload 1 /* num */
            lcmp
            ifeq 3
         2: .line 3644
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3645
      StackMap locals: long
      StackMap stack:
            lload 1 /* num */
            l2i
            i2s
            ireturn
        end local 1 // long num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1   num  J

  public byte byteValueExact();
    descriptor: ()B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3662
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValueExact:()J
            lstore 1 /* num */
        start local 1 // long num
         1: .line 3663
            lload 1 /* num */
            l2i
            i2b
            i2l
            lload 1 /* num */
            lcmp
            ifeq 3
         2: .line 3664
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3665
      StackMap locals: long
      StackMap stack:
            lload 1 /* num */
            l2i
            i2b
            ireturn
        end local 1 // long num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1   num  J

  public float floatValue();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3687
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 8
         1: .line 3688
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 3
         2: .line 3689
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2f
            freturn
         3: .line 3697
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            ldc 4194304
            lcmp
            ifge 8
         4: .line 3701
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifle 6
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.FLOAT_10_POW:[F
            arraylength
            if_icmpge 6
         5: .line 3702
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2f
            getstatic java.math.BigDecimal.FLOAT_10_POW:[F
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            faload
            fdiv
            freturn
         6: .line 3703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifge 8
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.FLOAT_10_POW:[F
            arraylength
            ineg
            if_icmple 8
         7: .line 3704
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2f
            getstatic java.math.BigDecimal.FLOAT_10_POW:[F
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ineg
            faload
            fmul
            freturn
         8: .line 3710
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.toString:()Ljava/lang/String;
            invokestatic java.lang.Float.parseFloat:(Ljava/lang/String;)F
            freturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/math/BigDecimal;

  public double doubleValue();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3732
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 8
         1: .line 3733
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 3
         2: .line 3734
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2d
            dreturn
         3: .line 3742
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            ldc 4503599627370496
            lcmp
            ifge 8
         4: .line 3746
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifle 6
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.DOUBLE_10_POW:[D
            arraylength
            if_icmpge 6
         5: .line 3747
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2d
            getstatic java.math.BigDecimal.DOUBLE_10_POW:[D
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            daload
            ddiv
            dreturn
         6: .line 3748
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifge 8
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.DOUBLE_10_POW:[D
            arraylength
            ineg
            if_icmple 8
         7: .line 3749
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2d
            getstatic java.math.BigDecimal.DOUBLE_10_POW:[D
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ineg
            daload
            dmul
            dreturn
         8: .line 3755
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.toString:()Ljava/lang/String;
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dreturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal ulp();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3793
            lconst_1
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.scale:()I
            iconst_1
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  private java.lang.String layoutChars(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // boolean sci
         0: .line 3905
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 5
         1: .line 3906
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 3907
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            goto 4
         3: .line 3908
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
         4: .line 3906
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
         5: .line 3909
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iconst_2
            if_icmpne 13
         6: .line 3910
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            iflt 13
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc 2147483647
            lcmp
            ifge 13
         7: .line 3912
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2i
            bipush 100
            irem
            istore 2 /* lowInt */
        start local 2 // int lowInt
         8: .line 3913
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2i
            bipush 100
            idiv
            istore 3 /* highInt */
        start local 3 // int highInt
         9: .line 3914
            new java.lang.StringBuilder
            dup
            iload 3 /* highInt */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        10: .line 3915
            getstatic java.math.BigDecimal$StringBuilderHelper.DIGIT_TENS:[C
            iload 2 /* lowInt */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        11: .line 3916
            getstatic java.math.BigDecimal$StringBuilderHelper.DIGIT_ONES:[C
            iload 2 /* lowInt */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        12: .line 3914
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int highInt
        end local 2 // int lowInt
        13: .line 3919
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.threadLocalStringBuilderHelper:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.math.BigDecimal$StringBuilderHelper
            astore 2 /* sbHelper */
        start local 2 // java.math.BigDecimal$StringBuilderHelper sbHelper
        14: .line 3923
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 18
        15: .line 3924
            aload 2 /* sbHelper */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            invokevirtual java.math.BigDecimal$StringBuilderHelper.putIntCompact:(J)I
            istore 4 /* offset */
        start local 4 // int offset
        16: .line 3925
            aload 2 /* sbHelper */
            invokevirtual java.math.BigDecimal$StringBuilderHelper.getCompactCharArray:()[C
            astore 3 /* coeff */
        start local 3 // char[] coeff
        17: .line 3926
            goto 20
        end local 4 // int offset
        end local 3 // char[] coeff
        18: .line 3927
      StackMap locals: java.math.BigDecimal$StringBuilderHelper
      StackMap stack:
            iconst_0
            istore 4 /* offset */
        start local 4 // int offset
        19: .line 3928
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 3 /* coeff */
        start local 3 // char[] coeff
        20: .line 3935
      StackMap locals: char[] int
      StackMap stack:
            aload 2 /* sbHelper */
            invokevirtual java.math.BigDecimal$StringBuilderHelper.getStringBuilder:()Ljava/lang/StringBuilder;
            astore 5 /* buf */
        start local 5 // java.lang.StringBuilder buf
        21: .line 3936
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 23
        22: .line 3937
            aload 5 /* buf */
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        23: .line 3938
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 3 /* coeff */
            arraylength
            iload 4 /* offset */
            isub
            istore 6 /* coeffLen */
        start local 6 // int coeffLen
        24: .line 3939
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            lneg
            iload 6 /* coeffLen */
            iconst_1
            isub
            i2l
            ladd
            lstore 7 /* adjusted */
        start local 7 // long adjusted
        25: .line 3940
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iflt 40
            lload 7 /* adjusted */
            ldc -6
            lcmp
            iflt 40
        26: .line 3941
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iload 6 /* coeffLen */
            isub
            istore 9 /* pad */
        start local 9 // int pad
        27: .line 3942
            iload 9 /* pad */
            iflt 36
        28: .line 3943
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        29: .line 3944
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        30: .line 3945
            goto 33
        31: .line 3946
      StackMap locals: int long int
      StackMap stack:
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        32: .line 3945
            iinc 9 /* pad */ -1
      StackMap locals:
      StackMap stack:
        33: iload 9 /* pad */
            ifgt 31
        34: .line 3948
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 6 /* coeffLen */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        35: .line 3949
            goto 79
        36: .line 3950
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 9 /* pad */
            ineg
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        37: .line 3951
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        38: .line 3952
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 9 /* pad */
            ineg
            iload 4 /* offset */
            iadd
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        end local 9 // int pad
        39: .line 3954
            goto 79
        40: .line 3955
      StackMap locals:
      StackMap stack:
            iload 1 /* sci */
            ifeq 46
        41: .line 3956
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        42: .line 3957
            iload 6 /* coeffLen */
            iconst_1
            if_icmple 74
        43: .line 3958
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        44: .line 3959
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iconst_1
            iadd
            iload 6 /* coeffLen */
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        45: .line 3961
            goto 74
        46: .line 3962
      StackMap locals:
      StackMap stack:
            lload 7 /* adjusted */
            ldc 3
            lrem
            l2i
            istore 9 /* sig */
        start local 9 // int sig
        47: .line 3963
            iload 9 /* sig */
            ifge 49
        48: .line 3964
            iinc 9 /* sig */ 3
        49: .line 3965
      StackMap locals: int
      StackMap stack:
            lload 7 /* adjusted */
            iload 9 /* sig */
            i2l
            lsub
            lstore 7 /* adjusted */
        50: .line 3966
            iinc 9 /* sig */ 1
        51: .line 3967
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 63
        52: .line 3968
            iload 9 /* sig */
            tableswitch { // 1 - 3
                    1: 53
                    2: 55
                    3: 58
              default: 61
          }
        53: .line 3970
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        54: .line 3971
            goto 74
        55: .line 3973
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            ldc "0.00"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        56: .line 3974
            lload 7 /* adjusted */
            ldc 3
            ladd
            lstore 7 /* adjusted */
        57: .line 3975
            goto 74
        58: .line 3977
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            ldc "0.0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        59: .line 3978
            lload 7 /* adjusted */
            ldc 3
            ladd
            lstore 7 /* adjusted */
        60: .line 3979
            goto 74
        61: .line 3981
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected sig value "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* sig */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        62: .line 3983
      StackMap locals:
      StackMap stack:
            goto 74
      StackMap locals:
      StackMap stack:
        63: iload 9 /* sig */
            iload 6 /* coeffLen */
            if_icmplt 71
        64: .line 3984
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 6 /* coeffLen */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        65: .line 3986
            iload 9 /* sig */
            iload 6 /* coeffLen */
            isub
            istore 10 /* i */
        start local 10 // int i
        66: goto 69
        67: .line 3987
      StackMap locals: int
      StackMap stack:
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        68: .line 3986
            iinc 10 /* i */ -1
      StackMap locals:
      StackMap stack:
        69: iload 10 /* i */
            ifgt 67
        end local 10 // int i
        70: .line 3989
            goto 74
        71: .line 3990
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 9 /* sig */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        72: .line 3991
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        73: .line 3992
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 9 /* sig */
            iadd
            iload 6 /* coeffLen */
            iload 9 /* sig */
            isub
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        end local 9 // int sig
        74: .line 3995
      StackMap locals:
      StackMap stack:
            lload 7 /* adjusted */
            lconst_0
            lcmp
            ifeq 79
        75: .line 3996
            aload 5 /* buf */
            bipush 69
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        76: .line 3997
            lload 7 /* adjusted */
            lconst_0
            lcmp
            ifle 78
        77: .line 3998
            aload 5 /* buf */
            bipush 43
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        78: .line 3999
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            lload 7 /* adjusted */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
        79: .line 4002
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 7 // long adjusted
        end local 6 // int coeffLen
        end local 5 // java.lang.StringBuilder buf
        end local 4 // int offset
        end local 3 // char[] coeff
        end local 2 // java.math.BigDecimal$StringBuilderHelper sbHelper
        end local 1 // boolean sci
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   80     0      this  Ljava/math/BigDecimal;
            0   80     1       sci  Z
            8   13     2    lowInt  I
            9   13     3   highInt  I
           14   80     2  sbHelper  Ljava/math/BigDecimal$StringBuilderHelper;
           17   18     3     coeff  [C
           20   80     3     coeff  [C
           16   18     4    offset  I
           19   80     4    offset  I
           21   80     5       buf  Ljava/lang/StringBuilder;
           24   80     6  coeffLen  I
           25   80     7  adjusted  J
           27   39     9       pad  I
           47   74     9       sig  I
           66   70    10         i  I
    MethodParameters:
      Name  Flags
      sci   

  private static java.math.BigInteger bigTenToThe(int);
    descriptor: (I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int n
         0: .line 4012
            iload 0 /* n */
            ifge 2
         1: .line 4013
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            areturn
         2: .line 4015
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_MAX:I
            if_icmpge 7
         3: .line 4016
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
            astore 1 /* pows */
        start local 1 // java.math.BigInteger[] pows
         4: .line 4017
            iload 0 /* n */
            aload 1 /* pows */
            arraylength
            if_icmpge 6
         5: .line 4018
            aload 1 /* pows */
            iload 0 /* n */
            aaload
            areturn
         6: .line 4020
      StackMap locals: java.math.BigInteger[]
      StackMap stack:
            iload 0 /* n */
            invokestatic java.math.BigDecimal.expandBigIntegerTenPowers:(I)Ljava/math/BigInteger;
            areturn
        end local 1 // java.math.BigInteger[] pows
         7: .line 4023
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            iload 0 /* n */
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            areturn
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     n  I
            4    7     1  pows  [Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      n     

  private static java.math.BigInteger expandBigIntegerTenPowers(int);
    descriptor: (I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // int n
         0: .line 4035
            ldc Ljava/math/BigDecimal;
            dup
            astore 1
            monitorenter
         1: .line 4036
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
            astore 2 /* pows */
        start local 2 // java.math.BigInteger[] pows
         2: .line 4037
            aload 2 /* pows */
            arraylength
            istore 3 /* curLen */
        start local 3 // int curLen
         3: .line 4040
            iload 3 /* curLen */
            iload 0 /* n */
            if_icmpgt 15
         4: .line 4041
            iload 3 /* curLen */
            iconst_1
            ishl
            istore 4 /* newLen */
        start local 4 // int newLen
         5: .line 4042
            goto 7
         6: .line 4043
      StackMap locals: int java.lang.Class java.math.BigInteger[] int int
      StackMap stack:
            iload 4 /* newLen */
            iconst_1
            ishl
            istore 4 /* newLen */
         7: .line 4042
      StackMap locals:
      StackMap stack:
            iload 4 /* newLen */
            iload 0 /* n */
            if_icmple 6
         8: .line 4045
            aload 2 /* pows */
            iload 4 /* newLen */
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast java.math.BigInteger[]
            astore 2 /* pows */
         9: .line 4046
            iload 3 /* curLen */
            istore 5 /* i */
        start local 5 // int i
        10: goto 13
        11: .line 4047
      StackMap locals: int
      StackMap stack:
            aload 2 /* pows */
            iload 5 /* i */
            aload 2 /* pows */
            iload 5 /* i */
            iconst_1
            isub
            aaload
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aastore
        12: .line 4046
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            iload 4 /* newLen */
            if_icmplt 11
        end local 5 // int i
        14: .line 4053
            aload 2 /* pows */
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
        end local 4 // int newLen
        15: .line 4055
      StackMap locals:
      StackMap stack:
            aload 2 /* pows */
            iload 0 /* n */
            aaload
            aload 1
            monitorexit
        16: areturn
        end local 3 // int curLen
        end local 2 // java.math.BigInteger[] pows
        17: .line 4035
      StackMap locals: int java.lang.Class
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        18: athrow
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0       n  I
            2   17     2    pows  [Ljava/math/BigInteger;
            3   17     3  curLen  I
            5   15     4  newLen  I
           10   14     5       i  I
      Exception table:
        from    to  target  type
           1    16      17  any
          17    18      17  any
    MethodParameters:
      Name  Flags
      n     

  private static long longMultiplyPowerTen(long, int);
    descriptor: (JI)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // long val
        start local 2 // int n
         0: .line 4135
            lload 0 /* val */
            lconst_0
            lcmp
            ifeq 1
            iload 2 /* n */
            ifgt 2
         1: .line 4136
      StackMap locals:
      StackMap stack:
            lload 0 /* val */
            lreturn
         2: .line 4137
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            astore 3 /* tab */
        start local 3 // long[] tab
         3: .line 4138
            getstatic java.math.BigDecimal.THRESHOLDS_TABLE:[J
            astore 4 /* bounds */
        start local 4 // long[] bounds
         4: .line 4139
            iload 2 /* n */
            aload 3 /* tab */
            arraylength
            if_icmpge 10
            iload 2 /* n */
            aload 4 /* bounds */
            arraylength
            if_icmpge 10
         5: .line 4140
            aload 3 /* tab */
            iload 2 /* n */
            laload
            lstore 5 /* tenpower */
        start local 5 // long tenpower
         6: .line 4141
            lload 0 /* val */
            lconst_1
            lcmp
            ifne 8
         7: .line 4142
            lload 5 /* tenpower */
            lreturn
         8: .line 4143
      StackMap locals: long[] long[] long
      StackMap stack:
            lload 0 /* val */
            invokestatic java.lang.Math.abs:(J)J
            aload 4 /* bounds */
            iload 2 /* n */
            laload
            lcmp
            ifgt 10
         9: .line 4144
            lload 0 /* val */
            lload 5 /* tenpower */
            lmul
            lreturn
        end local 5 // long tenpower
        10: .line 4146
      StackMap locals:
      StackMap stack:
            ldc -9223372036854775808
            lreturn
        end local 4 // long[] bounds
        end local 3 // long[] tab
        end local 2 // int n
        end local 0 // long val
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0       val  J
            0   11     2         n  I
            3   11     3       tab  [J
            4   11     4    bounds  [J
            6   10     5  tenpower  J
    MethodParameters:
      Name  Flags
      val   
      n     

  private java.math.BigInteger bigMultiplyPowerTen(int);
    descriptor: (I)Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 4154
            iload 1 /* n */
            ifgt 2
         1: .line 4155
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
         2: .line 4157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 4158
            iload 1 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            areturn
         4: .line 4160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 1 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            areturn
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;
            0    5     1     n  I
    MethodParameters:
      Name  Flags
      n     

  private java.math.BigInteger inflated();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 4168
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 2
         1: .line 4169
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            areturn
         2: .line 4171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  private static void matchScale(java.math.BigDecimal[]);
    descriptor: ([Ljava/math/BigDecimal;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.math.BigDecimal[] val
         0: .line 4188
            aload 0 /* val */
            iconst_0
            aaload
            getfield java.math.BigDecimal.scale:I
            aload 0 /* val */
            iconst_1
            aaload
            getfield java.math.BigDecimal.scale:I
            if_icmpge 3
         1: .line 4189
            aload 0 /* val */
            iconst_0
            aload 0 /* val */
            iconst_0
            aaload
            aload 0 /* val */
            iconst_1
            aaload
            getfield java.math.BigDecimal.scale:I
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            aastore
         2: .line 4190
            goto 5
      StackMap locals:
      StackMap stack:
         3: aload 0 /* val */
            iconst_1
            aaload
            getfield java.math.BigDecimal.scale:I
            aload 0 /* val */
            iconst_0
            aaload
            getfield java.math.BigDecimal.scale:I
            if_icmpge 5
         4: .line 4191
            aload 0 /* val */
            iconst_1
            aload 0 /* val */
            iconst_1
            aaload
            aload 0 /* val */
            iconst_0
            aaload
            getfield java.math.BigDecimal.scale:I
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            aastore
         5: .line 4193
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.math.BigDecimal[] val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   val  [Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      val   

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.io.ObjectInputStream s
         0: .line 4221
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 4223
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 4
         2: .line 4224
            ldc "BigDecimal: null intVal in stream"
            astore 2 /* message */
        start local 2 // java.lang.String message
         3: .line 4225
            new java.io.StreamCorruptedException
            dup
            aload 2 /* message */
            invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String message
         4: .line 4228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            invokestatic java.math.BigDecimal$UnsafeHolder.setIntCompact:(Ljava/math/BigDecimal;J)V
         5: .line 4229
            return
        end local 1 // java.io.ObjectInputStream s
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljava/math/BigDecimal;
            0    6     1        s  Ljava/io/ObjectInputStream;
            3    4     2  message  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 4239
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 2
         1: .line 4240
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal$UnsafeHolder.setIntValVolatile:(Ljava/math/BigDecimal;Ljava/math/BigInteger;)V
         2: .line 4242
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         3: .line 4243
            return
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            0    4     1     s  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  static int longDigitLength(long);
    descriptor: (J)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // long x
         0: .line 4266
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 0 /* x */
            ldc -9223372036854775808
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4267
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            lconst_0
            lcmp
            ifge 3
         2: .line 4268
            lload 0 /* x */
            lneg
            lstore 0 /* x */
         3: .line 4269
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            ldc 10
            lcmp
            ifge 5
         4: .line 4270
            iconst_1
            ireturn
         5: .line 4271
      StackMap locals:
      StackMap stack:
            bipush 64
            lload 0 /* x */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            isub
            iconst_1
            iadd
            sipush 1233
            imul
            bipush 12
            iushr
            istore 2 /* r */
        start local 2 // int r
         6: .line 4272
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            astore 3 /* tab */
        start local 3 // long[] tab
         7: .line 4274
            iload 2 /* r */
            aload 3 /* tab */
            arraylength
            if_icmpge 8
            lload 0 /* x */
            aload 3 /* tab */
            iload 2 /* r */
            laload
            lcmp
            ifge 9
      StackMap locals: int long[]
      StackMap stack:
         8: iload 2 /* r */
            goto 10
      StackMap locals:
      StackMap stack:
         9: iload 2 /* r */
            iconst_1
            iadd
      StackMap locals:
      StackMap stack: int
        10: ireturn
        end local 3 // long[] tab
        end local 2 // int r
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0     x  J
            6   11     2     r  I
            7   11     3   tab  [J
    MethodParameters:
      Name  Flags
      x     

  private static int bigDigitLength(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.math.BigInteger b
         0: .line 4290
            aload 0 /* b */
            getfield java.math.BigInteger.signum:I
            ifne 2
         1: .line 4291
            iconst_1
            ireturn
         2: .line 4292
      StackMap locals:
      StackMap stack:
            aload 0 /* b */
            invokevirtual java.math.BigInteger.bitLength:()I
            i2l
            lconst_1
            ladd
            ldc 646456993
            lmul
            bipush 31
            lushr
            l2i
            istore 1 /* r */
        start local 1 // int r
         3: .line 4293
            aload 0 /* b */
            iload 1 /* r */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ifge 4
            iload 1 /* r */
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iload 1 /* r */
            iconst_1
            iadd
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 1 // int r
        end local 0 // java.math.BigInteger b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     b  Ljava/math/BigInteger;
            3    6     1     r  I
    MethodParameters:
      Name  Flags
      b     

  private int checkScale(long);
    descriptor: (J)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // long val
         0: .line 4308
            lload 1 /* val */
            l2i
            istore 3 /* asInt */
        start local 3 // int asInt
         1: .line 4309
            iload 3 /* asInt */
            i2l
            lload 1 /* val */
            lcmp
            ifeq 11
         2: .line 4310
            lload 1 /* val */
            ldc 2147483647
            lcmp
            ifle 3
            ldc 2147483647
            goto 4
      StackMap locals: int
      StackMap stack:
         3: ldc -2147483648
      StackMap locals:
      StackMap stack: int
         4: istore 3 /* asInt */
         5: .line 4312
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifeq 11
         6: .line 4313
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            dup
            astore 4 /* b */
        start local 4 // java.math.BigInteger b
         7: ifnull 8
            aload 4 /* b */
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 11
         8: .line 4314
      StackMap locals: java.math.BigInteger
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            iload 3 /* asInt */
            ifle 9
            ldc "Underflow"
            goto 10
      StackMap locals: java.math.BigDecimal long int java.math.BigInteger
      StackMap stack: new 8 new 8
         9: ldc "Overflow"
      StackMap locals: java.math.BigDecimal long int java.math.BigInteger
      StackMap stack: new 8 new 8 java.lang.String
        10: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.math.BigInteger b
        11: .line 4316
      StackMap locals:
      StackMap stack:
            iload 3 /* asInt */
            ireturn
        end local 3 // int asInt
        end local 1 // long val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Ljava/math/BigDecimal;
            0   12     1    val  J
            1   12     3  asInt  I
            7   11     4      b  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      val   

  private static long compactValFor(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // java.math.BigInteger b
         0: .line 4325
            aload 0 /* b */
            getfield java.math.BigInteger.mag:[I
            astore 1 /* m */
        start local 1 // int[] m
         1: .line 4326
            aload 1 /* m */
            arraylength
            istore 2 /* len */
        start local 2 // int len
         2: .line 4327
            iload 2 /* len */
            ifne 4
         3: .line 4328
            lconst_0
            lreturn
         4: .line 4329
      StackMap locals: int[] int
      StackMap stack:
            aload 1 /* m */
            iconst_0
            iaload
            istore 3 /* d */
        start local 3 // int d
         5: .line 4330
            iload 2 /* len */
            iconst_2
            if_icmpgt 6
            iload 2 /* len */
            iconst_2
            if_icmpne 7
            iload 3 /* d */
            ifge 7
         6: .line 4331
      StackMap locals: int
      StackMap stack:
            ldc -9223372036854775808
            lreturn
         7: .line 4333
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            iconst_2
            if_icmpne 9
         8: .line 4334
            aload 1 /* m */
            iconst_1
            iaload
            i2l
            ldc 4294967295
            land
            iload 3 /* d */
            i2l
            bipush 32
            lshl
            ladd
            goto 10
         9: .line 4335
      StackMap locals:
      StackMap stack:
            iload 3 /* d */
            i2l
            ldc 4294967295
            land
        10: .line 4333
      StackMap locals:
      StackMap stack: long
            lstore 4 /* u */
        start local 4 // long u
        11: .line 4336
            aload 0 /* b */
            getfield java.math.BigInteger.signum:I
            ifge 12
            lload 4 /* u */
            lneg
            goto 13
      StackMap locals: long
      StackMap stack:
        12: lload 4 /* u */
      StackMap locals:
      StackMap stack: long
        13: lreturn
        end local 4 // long u
        end local 3 // int d
        end local 2 // int len
        end local 1 // int[] m
        end local 0 // java.math.BigInteger b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     b  Ljava/math/BigInteger;
            1   14     1     m  [I
            2   14     2   len  I
            5   14     3     d  I
           11   14     4     u  J
    MethodParameters:
      Name  Flags
      b     

  private static int longCompareMagnitude(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 4340
            lload 0 /* x */
            lconst_0
            lcmp
            ifge 2
         1: .line 4341
            lload 0 /* x */
            lneg
            lstore 0 /* x */
         2: .line 4342
      StackMap locals:
      StackMap stack:
            lload 2 /* y */
            lconst_0
            lcmp
            ifge 4
         3: .line 4343
            lload 2 /* y */
            lneg
            lstore 2 /* y */
         4: .line 4344
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            lload 2 /* y */
            lcmp
            ifge 5
            iconst_m1
            goto 7
      StackMap locals:
      StackMap stack:
         5: lload 0 /* x */
            lload 2 /* y */
            lcmp
            ifne 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: ireturn
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     x  J
            0    8     2     y  J
    MethodParameters:
      Name  Flags
      x     
      y     

  private static int saturateLong(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // long s
         0: .line 4348
            lload 0 /* s */
            l2i
            istore 2 /* i */
        start local 2 // int i
         1: .line 4349
            lload 0 /* s */
            iload 2 /* i */
            i2l
            lcmp
            ifne 2
            iload 2 /* i */
            goto 4
      StackMap locals: int
      StackMap stack:
         2: lload 0 /* s */
            lconst_0
            lcmp
            ifge 3
            ldc -2147483648
            goto 4
      StackMap locals:
      StackMap stack:
         3: ldc 2147483647
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 2 // int i
        end local 0 // long s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     s  J
            1    5     2     i  I
    MethodParameters:
      Name  Flags
      s     

  private static void print(java.lang.String, java.math.BigDecimal);
    descriptor: (Ljava/lang/String;Ljava/math/BigDecimal;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.math.BigDecimal bd
         0: .line 4356
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "%s:\tintCompact %d\tintVal %d\tscale %d\tprecision %d%n"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 4357
            aload 0 /* name */
            aastore
            dup
            iconst_1
         2: .line 4358
            aload 1 /* bd */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
         3: .line 4359
            aload 1 /* bd */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aastore
            dup
            iconst_3
         4: .line 4360
            aload 1 /* bd */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
         5: .line 4361
            aload 1 /* bd */
            getfield java.math.BigDecimal.precision:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         6: .line 4356
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         7: .line 4362
            return
        end local 1 // java.math.BigDecimal bd
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  name  Ljava/lang/String;
            0    8     1    bd  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      name  
      bd    

  private java.math.BigDecimal audit();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 4384
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifne 7
         1: .line 4385
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 4
         2: .line 4386
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
         3: .line 4387
            new java.lang.AssertionError
            dup
            ldc "null intVal"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 4390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 17
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            if_icmpeq 17
         5: .line 4391
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
         6: .line 4392
            new java.lang.AssertionError
            dup
            ldc "precision mismatch"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 4395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnull 14
         8: .line 4396
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lstore 1 /* val */
        start local 1 // long val
         9: .line 4397
            lload 1 /* val */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lcmp
            ifeq 14
        10: .line 4398
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
        11: .line 4399
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Inconsistent state, intCompact="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 4400
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "\t intVal="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 1 /* val */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 4399
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // long val
        14: .line 4404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 17
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            if_icmpeq 17
        15: .line 4405
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
        16: .line 4406
            new java.lang.AssertionError
            dup
            ldc "precision mismatch"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        17: .line 4409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Ljava/math/BigDecimal;
            9   14     1   val  J

  private static int checkScaleNonZero(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // long val
         0: .line 4414
            lload 0 /* val */
            l2i
            istore 2 /* asInt */
        start local 2 // int asInt
         1: .line 4415
            iload 2 /* asInt */
            i2l
            lload 0 /* val */
            lcmp
            ifeq 5
         2: .line 4416
            new java.lang.ArithmeticException
            dup
            iload 2 /* asInt */
            ifle 3
            ldc "Underflow"
            goto 4
      StackMap locals: long int
      StackMap stack: new 2 new 2
         3: ldc "Overflow"
      StackMap locals: long int
      StackMap stack: new 2 new 2 java.lang.String
         4: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 4418
      StackMap locals:
      StackMap stack:
            iload 2 /* asInt */
            ireturn
        end local 2 // int asInt
        end local 0 // long val
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0    val  J
            1    6     2  asInt  I
    MethodParameters:
      Name  Flags
      val   

  private static int checkScale(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // long intCompact
        start local 2 // long val
         0: .line 4422
            lload 2 /* val */
            l2i
            istore 4 /* asInt */
        start local 4 // int asInt
         1: .line 4423
            iload 4 /* asInt */
            i2l
            lload 2 /* val */
            lcmp
            ifeq 9
         2: .line 4424
            lload 2 /* val */
            ldc 2147483647
            lcmp
            ifle 3
            ldc 2147483647
            goto 4
      StackMap locals: int
      StackMap stack:
         3: ldc -2147483648
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* asInt */
         5: .line 4425
            lload 0 /* intCompact */
            lconst_0
            lcmp
            ifeq 9
         6: .line 4426
            new java.lang.ArithmeticException
            dup
            iload 4 /* asInt */
            ifle 7
            ldc "Underflow"
            goto 8
      StackMap locals: long long int
      StackMap stack: new 6 new 6
         7: ldc "Overflow"
      StackMap locals: long long int
      StackMap stack: new 6 new 6 java.lang.String
         8: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 4428
      StackMap locals:
      StackMap stack:
            iload 4 /* asInt */
            ireturn
        end local 4 // int asInt
        end local 2 // long val
        end local 0 // long intCompact
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0  intCompact  J
            0   10     2         val  J
            1   10     4       asInt  I
    MethodParameters:
            Name  Flags
      intCompact  
      val         

  private static int checkScale(java.math.BigInteger, long);
    descriptor: (Ljava/math/BigInteger;J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.math.BigInteger intVal
        start local 1 // long val
         0: .line 4432
            lload 1 /* val */
            l2i
            istore 3 /* asInt */
        start local 3 // int asInt
         1: .line 4433
            iload 3 /* asInt */
            i2l
            lload 1 /* val */
            lcmp
            ifeq 9
         2: .line 4434
            lload 1 /* val */
            ldc 2147483647
            lcmp
            ifle 3
            ldc 2147483647
            goto 4
      StackMap locals: int
      StackMap stack:
         3: ldc -2147483648
      StackMap locals:
      StackMap stack: int
         4: istore 3 /* asInt */
         5: .line 4435
            aload 0 /* intVal */
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 9
         6: .line 4436
            new java.lang.ArithmeticException
            dup
            iload 3 /* asInt */
            ifle 7
            ldc "Underflow"
            goto 8
      StackMap locals: java.math.BigInteger long int
      StackMap stack: new 6 new 6
         7: ldc "Overflow"
      StackMap locals: java.math.BigInteger long int
      StackMap stack: new 6 new 6 java.lang.String
         8: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 4438
      StackMap locals:
      StackMap stack:
            iload 3 /* asInt */
            ireturn
        end local 3 // int asInt
        end local 1 // long val
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0  intVal  Ljava/math/BigInteger;
            0   10     1     val  J
            1   10     3   asInt  I
    MethodParameters:
        Name  Flags
      intVal  
      val     

  private static java.math.BigDecimal doRound(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=11, args_size=2
        start local 0 // java.math.BigDecimal val
        start local 1 // java.math.MathContext mc
         0: .line 4455
            aload 1 /* mc */
            getfield java.math.MathContext.precision:I
            istore 2 /* mcp */
        start local 2 // int mcp
         1: .line 4456
            iconst_0
            istore 3 /* wasDivided */
        start local 3 // boolean wasDivided
         2: .line 4457
            iload 2 /* mcp */
            ifle 34
         3: .line 4458
            aload 0 /* val */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            astore 4 /* intVal */
        start local 4 // java.math.BigInteger intVal
         4: .line 4459
            aload 0 /* val */
            getfield java.math.BigDecimal.intCompact:J
            lstore 5 /* compactVal */
        start local 5 // long compactVal
         5: .line 4460
            aload 0 /* val */
            getfield java.math.BigDecimal.scale:I
            istore 7 /* scale */
        start local 7 // int scale
         6: .line 4461
            aload 0 /* val */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 8 /* prec */
        start local 8 // int prec
         7: .line 4462
            aload 1 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 9 /* mode */
        start local 9 // int mode
         8: .line 4464
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 21
         9: .line 4465
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        start local 10 // int drop
        10: .line 4466
            goto 20
        11: .line 4467
      StackMap locals: java.math.BigDecimal java.math.MathContext int int java.math.BigInteger long int int int int
      StackMap stack:
            iload 7 /* scale */
            i2l
            iload 10 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scale */
        12: .line 4468
            aload 4 /* intVal */
            iload 10 /* drop */
            iload 9 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 4 /* intVal */
        13: .line 4469
            iconst_1
            istore 3 /* wasDivided */
        14: .line 4470
            aload 4 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* compactVal */
        15: .line 4471
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 18
        16: .line 4472
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 8 /* prec */
        17: .line 4473
            goto 21
        18: .line 4475
      StackMap locals:
      StackMap stack:
            aload 4 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 8 /* prec */
        19: .line 4476
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        20: .line 4466
      StackMap locals:
      StackMap stack:
            iload 10 /* drop */
            ifgt 11
        end local 10 // int drop
        21: .line 4479
      StackMap locals:
      StackMap stack:
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 31
        22: .line 4480
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        start local 10 // int drop
        23: .line 4481
            goto 30
        24: .line 4482
      StackMap locals: int
      StackMap stack:
            iload 7 /* scale */
            i2l
            iload 10 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scale */
        25: .line 4483
            lload 5 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 10 /* drop */
            laload
            aload 1 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 5 /* compactVal */
        26: .line 4484
            iconst_1
            istore 3 /* wasDivided */
        27: .line 4485
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 8 /* prec */
        28: .line 4486
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        29: .line 4487
            aconst_null
            astore 4 /* intVal */
        30: .line 4481
      StackMap locals:
      StackMap stack:
            iload 10 /* drop */
            ifgt 24
        end local 10 // int drop
        31: .line 4490
      StackMap locals:
      StackMap stack:
            iload 3 /* wasDivided */
            ifeq 32
            new java.math.BigDecimal
            dup
            aload 4 /* intVal */
            lload 5 /* compactVal */
            iload 7 /* scale */
            iload 8 /* prec */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 33
      StackMap locals:
      StackMap stack:
        32: aload 0 /* val */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
        33: areturn
        end local 9 // int mode
        end local 8 // int prec
        end local 7 // int scale
        end local 5 // long compactVal
        end local 4 // java.math.BigInteger intVal
        34: .line 4492
      StackMap locals: java.math.BigDecimal java.math.MathContext int int
      StackMap stack:
            aload 0 /* val */
            areturn
        end local 3 // boolean wasDivided
        end local 2 // int mcp
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal val
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   35     0         val  Ljava/math/BigDecimal;
            0   35     1          mc  Ljava/math/MathContext;
            1   35     2         mcp  I
            2   35     3  wasDivided  Z
            4   34     4      intVal  Ljava/math/BigInteger;
            5   34     5  compactVal  J
            6   34     7       scale  I
            7   34     8        prec  I
            8   34     9        mode  I
           10   21    10        drop  I
           23   31    10        drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  private static java.math.BigDecimal doRound(long, int, java.math.MathContext);
    descriptor: (JILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // long compactVal
        start local 2 // int scale
        start local 3 // java.math.MathContext mc
         0: .line 4500
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 4 /* mcp */
        start local 4 // int mcp
         1: .line 4501
            iload 4 /* mcp */
            ifle 11
            iload 4 /* mcp */
            bipush 19
            if_icmpge 11
         2: .line 4502
            lload 0 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
        start local 5 // int prec
         3: .line 4503
            iload 5 /* prec */
            iload 4 /* mcp */
            isub
            istore 6 /* drop */
        start local 6 // int drop
         4: .line 4504
            goto 9
         5: .line 4505
      StackMap locals: int int int
      StackMap stack:
            iload 2 /* scale */
            i2l
            iload 6 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 2 /* scale */
         6: .line 4506
            lload 0 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 6 /* drop */
            laload
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 0 /* compactVal */
         7: .line 4507
            lload 0 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
         8: .line 4508
            iload 5 /* prec */
            iload 4 /* mcp */
            isub
            istore 6 /* drop */
         9: .line 4504
      StackMap locals:
      StackMap stack:
            iload 6 /* drop */
            ifgt 5
        10: .line 4510
            lload 0 /* compactVal */
            iload 2 /* scale */
            iload 5 /* prec */
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 6 // int drop
        end local 5 // int prec
        11: .line 4512
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 4 // int mcp
        end local 3 // java.math.MathContext mc
        end local 2 // int scale
        end local 0 // long compactVal
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  compactVal  J
            0   12     2       scale  I
            0   12     3          mc  Ljava/math/MathContext;
            1   12     4         mcp  I
            3   11     5        prec  I
            4   11     6        drop  I
    MethodParameters:
            Name  Flags
      compactVal  
      scale       
      mc          

  private static java.math.BigDecimal doRound(java.math.BigInteger, int, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int scale
        start local 2 // java.math.MathContext mc
         0: .line 4520
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            istore 3 /* mcp */
        start local 3 // int mcp
         1: .line 4521
            iconst_0
            istore 4 /* prec */
        start local 4 // int prec
         2: .line 4522
            iload 3 /* mcp */
            ifle 27
         3: .line 4523
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* compactVal */
        start local 5 // long compactVal
         4: .line 4524
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 7 /* mode */
        start local 7 // int mode
         5: .line 4526
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 17
         6: .line 4527
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 4 /* prec */
         7: .line 4528
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        start local 8 // int drop
         8: .line 4529
            goto 16
         9: .line 4530
      StackMap locals: java.math.BigInteger int java.math.MathContext int int long int int
      StackMap stack:
            iload 1 /* scale */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 1 /* scale */
        10: .line 4531
            aload 0 /* intVal */
            iload 8 /* drop */
            iload 7 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 0 /* intVal */
        11: .line 4532
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* compactVal */
        12: .line 4533
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 14
        13: .line 4534
            goto 17
        14: .line 4536
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 4 /* prec */
        15: .line 4537
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        16: .line 4529
      StackMap locals:
      StackMap stack:
            iload 8 /* drop */
            ifgt 9
        end local 8 // int drop
        17: .line 4540
      StackMap locals:
      StackMap stack:
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 27
        18: .line 4541
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 4 /* prec */
        19: .line 4542
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        start local 8 // int drop
        20: .line 4543
            goto 25
        21: .line 4544
      StackMap locals: int
      StackMap stack:
            iload 1 /* scale */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 1 /* scale */
        22: .line 4545
            lload 5 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 8 /* drop */
            laload
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 5 /* compactVal */
        23: .line 4546
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 4 /* prec */
        24: .line 4547
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        25: .line 4543
      StackMap locals:
      StackMap stack:
            iload 8 /* drop */
            ifgt 21
        26: .line 4549
            lload 5 /* compactVal */
            iload 1 /* scale */
            iload 4 /* prec */
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 8 // int drop
        end local 7 // int mode
        end local 5 // long compactVal
        27: .line 4552
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 0 /* intVal */
            ldc -9223372036854775808
            iload 1 /* scale */
            iload 4 /* prec */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 4 // int prec
        end local 3 // int mcp
        end local 2 // java.math.MathContext mc
        end local 1 // int scale
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0      intVal  Ljava/math/BigInteger;
            0   28     1       scale  I
            0   28     2          mc  Ljava/math/MathContext;
            1   28     3         mcp  I
            2   28     4        prec  I
            4   27     5  compactVal  J
            5   27     7        mode  I
            8   17     8        drop  I
           20   27     8        drop  I
    MethodParameters:
        Name  Flags
      intVal  
      scale   
      mc      

  private static java.math.BigInteger divideAndRoundByTenPow(java.math.BigInteger, int, int);
    descriptor: (Ljava/math/BigInteger;II)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int tenPow
        start local 2 // int roundingMode
         0: .line 4559
            iload 1 /* tenPow */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 2
         1: .line 4560
            aload 0 /* intVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 1 /* tenPow */
            laload
            iload 2 /* roundingMode */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JI)Ljava/math/BigInteger;
            astore 0 /* intVal */
            goto 3
         2: .line 4562
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            iload 1 /* tenPow */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            iload 2 /* roundingMode */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 0 /* intVal */
         3: .line 4563
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            areturn
        end local 2 // int roundingMode
        end local 1 // int tenPow
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0        intVal  Ljava/math/BigInteger;
            0    4     1        tenPow  I
            0    4     2  roundingMode  I
    MethodParameters:
              Name  Flags
      intVal        
      tenPow        
      roundingMode  

  private static java.math.BigDecimal divideAndRound(long, long, int, int, int);
    descriptor: (JJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=13, args_size=5
        start local 0 // long ldividend
        start local 2 // long ldivisor
        start local 4 // int scale
        start local 5 // int roundingMode
        start local 6 // int preferredScale
         0: .line 4579
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            ldiv
            lstore 8 /* q */
        start local 8 // long q
         1: .line 4580
            iload 5 /* roundingMode */
            iconst_1
            if_icmpne 3
            iload 4 /* scale */
            iload 6 /* preferredScale */
            if_icmpne 3
         2: .line 4581
            lload 8 /* q */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         3: .line 4582
      StackMap locals: long long int int int top long
      StackMap stack:
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            lrem
            lstore 10 /* r */
        start local 10 // long r
         4: .line 4583
            lload 0 /* ldividend */
            lconst_0
            lcmp
            ifge 5
            iconst_1
            goto 6
      StackMap locals: long
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: lload 2 /* ldivisor */
            lconst_0
            lcmp
            ifge 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack: int
         7: iconst_0
      StackMap locals: long long int int int top long long
      StackMap stack: int int
         8: if_icmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_m1
      StackMap locals:
      StackMap stack: int
        10: istore 7 /* qsign */
        start local 7 // int qsign
        11: .line 4584
            lload 10 /* r */
            lconst_0
            lcmp
            ifeq 16
        12: .line 4585
            lload 2 /* ldivisor */
            iload 5 /* roundingMode */
            iload 7 /* qsign */
            lload 8 /* q */
            lload 10 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIIJJ)Z
            istore 12 /* increment */
        start local 12 // boolean increment
        13: .line 4586
            iload 12 /* increment */
            ifeq 14
            lload 8 /* q */
            iload 7 /* qsign */
            i2l
            ladd
            goto 15
      StackMap locals: long long int int int int long long int
      StackMap stack:
        14: lload 8 /* q */
      StackMap locals:
      StackMap stack: long
        15: iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 12 // boolean increment
        16: .line 4588
      StackMap locals:
      StackMap stack:
            iload 6 /* preferredScale */
            iload 4 /* scale */
            if_icmpeq 18
        17: .line 4589
            lload 8 /* q */
            iload 4 /* scale */
            iload 6 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        18: .line 4591
      StackMap locals:
      StackMap stack:
            lload 8 /* q */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 10 // long r
        end local 8 // long q
        end local 7 // int qsign
        end local 6 // int preferredScale
        end local 5 // int roundingMode
        end local 4 // int scale
        end local 2 // long ldivisor
        end local 0 // long ldividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0       ldividend  J
            0   19     2        ldivisor  J
            0   19     4           scale  I
            0   19     5    roundingMode  I
            0   19     6  preferredScale  I
           11   19     7           qsign  I
            1   19     8               q  J
            4   19    10               r  J
           13   16    12       increment  Z
    MethodParameters:
                Name  Flags
      ldividend       
      ldivisor        
      scale           
      roundingMode    
      preferredScale  

  private static long divideAndRound(long, long, int);
    descriptor: (JJI)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=11, args_size=3
        start local 0 // long ldividend
        start local 2 // long ldivisor
        start local 4 // int roundingMode
         0: .line 4601
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            ldiv
            lstore 6 /* q */
        start local 6 // long q
         1: .line 4602
            iload 4 /* roundingMode */
            iconst_1
            if_icmpne 3
         2: .line 4603
            lload 6 /* q */
            lreturn
         3: .line 4604
      StackMap locals: long long int top long
      StackMap stack:
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            lrem
            lstore 8 /* r */
        start local 8 // long r
         4: .line 4605
            lload 0 /* ldividend */
            lconst_0
            lcmp
            ifge 5
            iconst_1
            goto 6
      StackMap locals: long
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: lload 2 /* ldivisor */
            lconst_0
            lcmp
            ifge 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack: int
         7: iconst_0
      StackMap locals: long long int top long long
      StackMap stack: int int
         8: if_icmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_m1
      StackMap locals:
      StackMap stack: int
        10: istore 5 /* qsign */
        start local 5 // int qsign
        11: .line 4606
            lload 8 /* r */
            lconst_0
            lcmp
            ifeq 16
        12: .line 4607
            lload 2 /* ldivisor */
            iload 4 /* roundingMode */
            iload 5 /* qsign */
            lload 6 /* q */
            lload 8 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIIJJ)Z
            istore 10 /* increment */
        start local 10 // boolean increment
        13: .line 4608
            iload 10 /* increment */
            ifeq 14
            lload 6 /* q */
            iload 5 /* qsign */
            i2l
            ladd
            goto 15
      StackMap locals: long long int int long long int
      StackMap stack:
        14: lload 6 /* q */
      StackMap locals:
      StackMap stack: long
        15: lreturn
        end local 10 // boolean increment
        16: .line 4610
      StackMap locals:
      StackMap stack:
            lload 6 /* q */
            lreturn
        end local 8 // long r
        end local 6 // long q
        end local 5 // int qsign
        end local 4 // int roundingMode
        end local 2 // long ldivisor
        end local 0 // long ldividend
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0     ldividend  J
            0   17     2      ldivisor  J
            0   17     4  roundingMode  I
           11   17     5         qsign  I
            1   17     6             q  J
            4   17     8             r  J
           13   16    10     increment  Z
    MethodParameters:
              Name  Flags
      ldividend     
      ldivisor      
      roundingMode  

  private static boolean commonNeedIncrement(int, int, int, boolean);
    descriptor: (IIIZ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // int roundingMode
        start local 1 // int qsign
        start local 2 // int cmpFracHalf
        start local 3 // boolean oddQuot
         0: .line 4619
            iload 0 /* roundingMode */
            tableswitch { // 0 - 7
                    0: 2
                    1: 3
                    2: 4
                    3: 6
                    4: 8
                    5: 8
                    6: 8
                    7: 1
              default: 8
          }
         1: .line 4621
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Rounding necessary"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4624
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         3: .line 4627
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 4630
      StackMap locals:
      StackMap stack:
            iload 1 /* qsign */
            ifle 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
         6: .line 4633
      StackMap locals:
      StackMap stack:
            iload 1 /* qsign */
            ifge 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
         8: .line 4636
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 11
            iload 0 /* roundingMode */
            iconst_4
            if_icmplt 10
         9: .line 4637
            iload 0 /* roundingMode */
            bipush 6
            if_icmple 11
      StackMap locals:
      StackMap stack:
        10: new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected rounding mode"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* roundingMode */
            invokestatic java.math.RoundingMode.valueOf:(I)Ljava/math/RoundingMode;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        11: .line 4639
      StackMap locals:
      StackMap stack:
            iload 2 /* cmpFracHalf */
            ifge 13
        12: .line 4640
            iconst_0
            ireturn
        13: .line 4641
      StackMap locals:
      StackMap stack:
            iload 2 /* cmpFracHalf */
            ifle 15
        14: .line 4642
            iconst_1
            ireturn
        15: .line 4644
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 16
            iload 2 /* cmpFracHalf */
            ifeq 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 4646
      StackMap locals:
      StackMap stack:
            iload 0 /* roundingMode */
            tableswitch { // 4 - 6
                    4: 18
                    5: 17
                    6: 19
              default: 20
          }
        17: .line 4648
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        18: .line 4651
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        19: .line 4654
      StackMap locals:
      StackMap stack:
            iload 3 /* oddQuot */
            ireturn
        20: .line 4657
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected rounding mode"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* roundingMode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // boolean oddQuot
        end local 2 // int cmpFracHalf
        end local 1 // int qsign
        end local 0 // int roundingMode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0  roundingMode  I
            0   21     1         qsign  I
            0   21     2   cmpFracHalf  I
            0   21     3       oddQuot  Z
    MethodParameters:
              Name  Flags
      roundingMode  
      qsign         
      cmpFracHalf   
      oddQuot       

  private static boolean needIncrement(long, int, int, long, long);
    descriptor: (JIIJJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // long ldivisor
        start local 2 // int roundingMode
        start local 3 // int qsign
        start local 4 // long q
        start local 6 // long r
         0: .line 4668
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 6 /* r */
            lconst_0
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4671
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            ldc -4611686018427387904
            lcmp
            ifle 2
            lload 6 /* r */
            ldc 4611686018427387903
            lcmp
            ifle 4
         2: .line 4672
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* cmpFracHalf */
        start local 8 // int cmpFracHalf
         3: .line 4673
            goto 5
        end local 8 // int cmpFracHalf
         4: .line 4674
      StackMap locals:
      StackMap stack:
            ldc 2
            lload 6 /* r */
            lmul
            lload 0 /* ldivisor */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            istore 8 /* cmpFracHalf */
        start local 8 // int cmpFracHalf
         5: .line 4677
      StackMap locals: int
      StackMap stack:
            iload 2 /* roundingMode */
            iload 3 /* qsign */
            iload 8 /* cmpFracHalf */
            lload 4 /* q */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 6
            iconst_1
            goto 7
      StackMap locals: long int int long long int
      StackMap stack: int int int
         6: iconst_0
      StackMap locals: long int int long long int
      StackMap stack: int int int int
         7: invokestatic java.math.BigDecimal.commonNeedIncrement:(IIIZ)Z
            ireturn
        end local 8 // int cmpFracHalf
        end local 6 // long r
        end local 4 // long q
        end local 3 // int qsign
        end local 2 // int roundingMode
        end local 0 // long ldivisor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0      ldivisor  J
            0    8     2  roundingMode  I
            0    8     3         qsign  I
            0    8     4             q  J
            0    8     6             r  J
            3    4     8   cmpFracHalf  I
            5    8     8   cmpFracHalf  I
    MethodParameters:
              Name  Flags
      ldivisor      
      roundingMode  
      qsign         
      q             
      r             

  private static java.math.BigInteger divideAndRound(java.math.BigInteger, long, int);
    descriptor: (Ljava/math/BigInteger;JI)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // java.math.BigInteger bdividend
        start local 1 // long ldivisor
        start local 3 // int roundingMode
         0: .line 4686
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 4 /* mdividend */
        start local 4 // java.math.MutableBigInteger mdividend
         1: .line 4688
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 5 /* mq */
        start local 5 // java.math.MutableBigInteger mq
         2: .line 4690
            aload 4 /* mdividend */
            lload 1 /* ldivisor */
            aload 5 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(JLjava/math/MutableBigInteger;)J
            lstore 6 /* r */
        start local 6 // long r
         3: .line 4692
            lload 6 /* r */
            lconst_0
            lcmp
            ifne 4
            iconst_1
            goto 5
      StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger long
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 8 /* isRemainderZero */
        start local 8 // boolean isRemainderZero
         6: .line 4694
            lload 1 /* ldivisor */
            lconst_0
            lcmp
            ifge 7
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            ineg
            goto 8
      StackMap locals: int
      StackMap stack:
         7: aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
      StackMap locals:
      StackMap stack: int
         8: istore 9 /* qsign */
        start local 9 // int qsign
         9: .line 4695
            iload 8 /* isRemainderZero */
            ifne 12
        10: .line 4696
            lload 1 /* ldivisor */
            iload 3 /* roundingMode */
            iload 9 /* qsign */
            aload 5 /* mq */
            lload 6 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIILjava/math/MutableBigInteger;J)Z
            ifeq 12
        11: .line 4697
            aload 5 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        12: .line 4700
      StackMap locals: int
      StackMap stack:
            aload 5 /* mq */
            iload 9 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            areturn
        end local 9 // int qsign
        end local 8 // boolean isRemainderZero
        end local 6 // long r
        end local 5 // java.math.MutableBigInteger mq
        end local 4 // java.math.MutableBigInteger mdividend
        end local 3 // int roundingMode
        end local 1 // long ldivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0        bdividend  Ljava/math/BigInteger;
            0   13     1         ldivisor  J
            0   13     3     roundingMode  I
            1   13     4        mdividend  Ljava/math/MutableBigInteger;
            2   13     5               mq  Ljava/math/MutableBigInteger;
            3   13     6                r  J
            6   13     8  isRemainderZero  Z
            9   13     9            qsign  I
    MethodParameters:
              Name  Flags
      bdividend     
      ldivisor      
      roundingMode  

  private static java.math.BigDecimal divideAndRound(java.math.BigInteger, long, int, int, int);
    descriptor: (Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=15, args_size=5
        start local 0 // java.math.BigInteger bdividend
        start local 1 // long ldivisor
        start local 3 // int scale
        start local 4 // int roundingMode
        start local 5 // int preferredScale
         0: .line 4715
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 6 /* mdividend */
        start local 6 // java.math.MutableBigInteger mdividend
         1: .line 4717
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 7 /* mq */
        start local 7 // java.math.MutableBigInteger mq
         2: .line 4719
            aload 6 /* mdividend */
            lload 1 /* ldivisor */
            aload 7 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(JLjava/math/MutableBigInteger;)J
            lstore 8 /* r */
        start local 8 // long r
         3: .line 4721
            lload 8 /* r */
            lconst_0
            lcmp
            ifne 4
            iconst_1
            goto 5
      StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger long
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 10 /* isRemainderZero */
        start local 10 // boolean isRemainderZero
         6: .line 4723
            lload 1 /* ldivisor */
            lconst_0
            lcmp
            ifge 7
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            ineg
            goto 8
      StackMap locals: int
      StackMap stack:
         7: aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
      StackMap locals:
      StackMap stack: int
         8: istore 11 /* qsign */
        start local 11 // int qsign
         9: .line 4724
            iload 10 /* isRemainderZero */
            ifne 13
        10: .line 4725
            lload 1 /* ldivisor */
            iload 4 /* roundingMode */
            iload 11 /* qsign */
            aload 7 /* mq */
            lload 8 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIILjava/math/MutableBigInteger;J)Z
            ifeq 12
        11: .line 4726
            aload 7 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        12: .line 4728
      StackMap locals: int
      StackMap stack:
            aload 7 /* mq */
            iload 11 /* qsign */
            iload 3 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        13: .line 4730
      StackMap locals:
      StackMap stack:
            iload 5 /* preferredScale */
            iload 3 /* scale */
            if_icmpeq 19
        14: .line 4731
            aload 7 /* mq */
            iload 11 /* qsign */
            invokevirtual java.math.MutableBigInteger.toCompactValue:(I)J
            lstore 12 /* compactVal */
        start local 12 // long compactVal
        15: .line 4732
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 17
        16: .line 4733
            lload 12 /* compactVal */
            iload 3 /* scale */
            iload 5 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        17: .line 4735
      StackMap locals: long
      StackMap stack:
            aload 7 /* mq */
            iload 11 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            astore 14 /* intVal */
        start local 14 // java.math.BigInteger intVal
        18: .line 4736
            aload 14 /* intVal */
            iload 3 /* scale */
            iload 5 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 14 // java.math.BigInteger intVal
        end local 12 // long compactVal
        19: .line 4738
      StackMap locals:
      StackMap stack:
            aload 7 /* mq */
            iload 11 /* qsign */
            iload 3 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        end local 11 // int qsign
        end local 10 // boolean isRemainderZero
        end local 8 // long r
        end local 7 // java.math.MutableBigInteger mq
        end local 6 // java.math.MutableBigInteger mdividend
        end local 5 // int preferredScale
        end local 4 // int roundingMode
        end local 3 // int scale
        end local 1 // long ldivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0        bdividend  Ljava/math/BigInteger;
            0   20     1         ldivisor  J
            0   20     3            scale  I
            0   20     4     roundingMode  I
            0   20     5   preferredScale  I
            1   20     6        mdividend  Ljava/math/MutableBigInteger;
            2   20     7               mq  Ljava/math/MutableBigInteger;
            3   20     8                r  J
            6   20    10  isRemainderZero  Z
            9   20    11            qsign  I
           15   19    12       compactVal  J
           18   19    14           intVal  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      bdividend       
      ldivisor        
      scale           
      roundingMode    
      preferredScale  

  private static boolean needIncrement(long, int, int, java.math.MutableBigInteger, long);
    descriptor: (JIILjava/math/MutableBigInteger;J)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // long ldivisor
        start local 2 // int roundingMode
        start local 3 // int qsign
        start local 4 // java.math.MutableBigInteger mq
        start local 5 // long r
         0: .line 4748
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 5 /* r */
            lconst_0
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4751
      StackMap locals:
      StackMap stack:
            lload 5 /* r */
            ldc -4611686018427387904
            lcmp
            ifle 2
            lload 5 /* r */
            ldc 4611686018427387903
            lcmp
            ifle 4
         2: .line 4752
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* cmpFracHalf */
        start local 7 // int cmpFracHalf
         3: .line 4753
            goto 5
        end local 7 // int cmpFracHalf
         4: .line 4754
      StackMap locals:
      StackMap stack:
            ldc 2
            lload 5 /* r */
            lmul
            lload 0 /* ldivisor */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            istore 7 /* cmpFracHalf */
        start local 7 // int cmpFracHalf
         5: .line 4757
      StackMap locals: int
      StackMap stack:
            iload 2 /* roundingMode */
            iload 3 /* qsign */
            iload 7 /* cmpFracHalf */
            aload 4 /* mq */
            invokevirtual java.math.MutableBigInteger.isOdd:()Z
            invokestatic java.math.BigDecimal.commonNeedIncrement:(IIIZ)Z
            ireturn
        end local 7 // int cmpFracHalf
        end local 5 // long r
        end local 4 // java.math.MutableBigInteger mq
        end local 3 // int qsign
        end local 2 // int roundingMode
        end local 0 // long ldivisor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0      ldivisor  J
            0    6     2  roundingMode  I
            0    6     3         qsign  I
            0    6     4            mq  Ljava/math/MutableBigInteger;
            0    6     5             r  J
            3    4     7   cmpFracHalf  I
            5    6     7   cmpFracHalf  I
    MethodParameters:
              Name  Flags
      ldivisor      
      roundingMode  
      qsign         
      mq            
      r             

  private static java.math.BigInteger divideAndRound(java.math.BigInteger, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.math.BigInteger bdividend
        start local 1 // java.math.BigInteger bdivisor
        start local 2 // int roundingMode
         0: .line 4768
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 5 /* mdividend */
        start local 5 // java.math.MutableBigInteger mdividend
         1: .line 4769
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 6 /* mq */
        start local 6 // java.math.MutableBigInteger mq
         2: .line 4770
            new java.math.MutableBigInteger
            dup
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 7 /* mdivisor */
        start local 7 // java.math.MutableBigInteger mdivisor
         3: .line 4771
            aload 5 /* mdividend */
            aload 7 /* mdivisor */
            aload 6 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
            astore 8 /* mr */
        start local 8 // java.math.MutableBigInteger mr
         4: .line 4772
            aload 8 /* mr */
            invokevirtual java.math.MutableBigInteger.isZero:()Z
            istore 3 /* isRemainderZero */
        start local 3 // boolean isRemainderZero
         5: .line 4773
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.signum:I
            if_icmpeq 6
            iconst_m1
            goto 7
      StackMap locals: java.math.BigInteger java.math.BigInteger int int top java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 4 /* qsign */
        start local 4 // int qsign
         8: .line 4774
            iload 3 /* isRemainderZero */
            ifne 11
         9: .line 4775
            aload 7 /* mdivisor */
            iload 2 /* roundingMode */
            iload 4 /* qsign */
            aload 6 /* mq */
            aload 8 /* mr */
            invokestatic java.math.BigDecimal.needIncrement:(Ljava/math/MutableBigInteger;IILjava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Z
            ifeq 11
        10: .line 4776
            aload 6 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        11: .line 4779
      StackMap locals: java.math.BigInteger java.math.BigInteger int int int java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
            aload 6 /* mq */
            iload 4 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            areturn
        end local 8 // java.math.MutableBigInteger mr
        end local 7 // java.math.MutableBigInteger mdivisor
        end local 6 // java.math.MutableBigInteger mq
        end local 5 // java.math.MutableBigInteger mdividend
        end local 4 // int qsign
        end local 3 // boolean isRemainderZero
        end local 2 // int roundingMode
        end local 1 // java.math.BigInteger bdivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0        bdividend  Ljava/math/BigInteger;
            0   12     1         bdivisor  Ljava/math/BigInteger;
            0   12     2     roundingMode  I
            5   12     3  isRemainderZero  Z
            8   12     4            qsign  I
            1   12     5        mdividend  Ljava/math/MutableBigInteger;
            2   12     6               mq  Ljava/math/MutableBigInteger;
            3   12     7         mdivisor  Ljava/math/MutableBigInteger;
            4   12     8               mr  Ljava/math/MutableBigInteger;
    MethodParameters:
              Name  Flags
      bdividend     
      bdivisor      
      roundingMode  

  private static java.math.BigDecimal divideAndRound(java.math.BigInteger, java.math.BigInteger, int, int, int);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=14, args_size=5
        start local 0 // java.math.BigInteger bdividend
        start local 1 // java.math.BigInteger bdivisor
        start local 2 // int scale
        start local 3 // int roundingMode
        start local 4 // int preferredScale
         0: .line 4796
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 7 /* mdividend */
        start local 7 // java.math.MutableBigInteger mdividend
         1: .line 4797
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 8 /* mq */
        start local 8 // java.math.MutableBigInteger mq
         2: .line 4798
            new java.math.MutableBigInteger
            dup
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 9 /* mdivisor */
        start local 9 // java.math.MutableBigInteger mdivisor
         3: .line 4799
            aload 7 /* mdividend */
            aload 9 /* mdivisor */
            aload 8 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
            astore 10 /* mr */
        start local 10 // java.math.MutableBigInteger mr
         4: .line 4800
            aload 10 /* mr */
            invokevirtual java.math.MutableBigInteger.isZero:()Z
            istore 5 /* isRemainderZero */
        start local 5 // boolean isRemainderZero
         5: .line 4801
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.signum:I
            if_icmpeq 6
            iconst_m1
            goto 7
      StackMap locals: java.math.BigInteger java.math.BigInteger int int int int top java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* qsign */
        start local 6 // int qsign
         8: .line 4802
            iload 5 /* isRemainderZero */
            ifne 12
         9: .line 4803
            aload 9 /* mdivisor */
            iload 3 /* roundingMode */
            iload 6 /* qsign */
            aload 8 /* mq */
            aload 10 /* mr */
            invokestatic java.math.BigDecimal.needIncrement:(Ljava/math/MutableBigInteger;IILjava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Z
            ifeq 11
        10: .line 4804
            aload 8 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        11: .line 4806
      StackMap locals: java.math.BigInteger java.math.BigInteger int int int int int java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
            aload 8 /* mq */
            iload 6 /* qsign */
            iload 2 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        12: .line 4808
      StackMap locals:
      StackMap stack:
            iload 4 /* preferredScale */
            iload 2 /* scale */
            if_icmpeq 18
        13: .line 4809
            aload 8 /* mq */
            iload 6 /* qsign */
            invokevirtual java.math.MutableBigInteger.toCompactValue:(I)J
            lstore 11 /* compactVal */
        start local 11 // long compactVal
        14: .line 4810
            lload 11 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 16
        15: .line 4811
            lload 11 /* compactVal */
            iload 2 /* scale */
            iload 4 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        16: .line 4813
      StackMap locals: long
      StackMap stack:
            aload 8 /* mq */
            iload 6 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            astore 13 /* intVal */
        start local 13 // java.math.BigInteger intVal
        17: .line 4814
            aload 13 /* intVal */
            iload 2 /* scale */
            iload 4 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 13 // java.math.BigInteger intVal
        end local 11 // long compactVal
        18: .line 4816
      StackMap locals:
      StackMap stack:
            aload 8 /* mq */
            iload 6 /* qsign */
            iload 2 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        end local 10 // java.math.MutableBigInteger mr
        end local 9 // java.math.MutableBigInteger mdivisor
        end local 8 // java.math.MutableBigInteger mq
        end local 7 // java.math.MutableBigInteger mdividend
        end local 6 // int qsign
        end local 5 // boolean isRemainderZero
        end local 4 // int preferredScale
        end local 3 // int roundingMode
        end local 2 // int scale
        end local 1 // java.math.BigInteger bdivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0        bdividend  Ljava/math/BigInteger;
            0   19     1         bdivisor  Ljava/math/BigInteger;
            0   19     2            scale  I
            0   19     3     roundingMode  I
            0   19     4   preferredScale  I
            5   19     5  isRemainderZero  Z
            8   19     6            qsign  I
            1   19     7        mdividend  Ljava/math/MutableBigInteger;
            2   19     8               mq  Ljava/math/MutableBigInteger;
            3   19     9         mdivisor  Ljava/math/MutableBigInteger;
            4   19    10               mr  Ljava/math/MutableBigInteger;
           14   18    11       compactVal  J
           17   18    13           intVal  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      bdividend       
      bdivisor        
      scale           
      roundingMode    
      preferredScale  

  private static boolean needIncrement(java.math.MutableBigInteger, int, int, java.math.MutableBigInteger, java.math.MutableBigInteger);
    descriptor: (Ljava/math/MutableBigInteger;IILjava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // java.math.MutableBigInteger mdivisor
        start local 1 // int roundingMode
        start local 2 // int qsign
        start local 3 // java.math.MutableBigInteger mq
        start local 4 // java.math.MutableBigInteger mr
         0: .line 4826
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            aload 4 /* mr */
            invokevirtual java.math.MutableBigInteger.isZero:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4827
      StackMap locals:
      StackMap stack:
            aload 4 /* mr */
            aload 0 /* mdivisor */
            invokevirtual java.math.MutableBigInteger.compareHalf:(Ljava/math/MutableBigInteger;)I
            istore 5 /* cmpFracHalf */
        start local 5 // int cmpFracHalf
         2: .line 4828
            iload 1 /* roundingMode */
            iload 2 /* qsign */
            iload 5 /* cmpFracHalf */
            aload 3 /* mq */
            invokevirtual java.math.MutableBigInteger.isOdd:()Z
            invokestatic java.math.BigDecimal.commonNeedIncrement:(IIIZ)Z
            ireturn
        end local 5 // int cmpFracHalf
        end local 4 // java.math.MutableBigInteger mr
        end local 3 // java.math.MutableBigInteger mq
        end local 2 // int qsign
        end local 1 // int roundingMode
        end local 0 // java.math.MutableBigInteger mdivisor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0      mdivisor  Ljava/math/MutableBigInteger;
            0    3     1  roundingMode  I
            0    3     2         qsign  I
            0    3     3            mq  Ljava/math/MutableBigInteger;
            0    3     4            mr  Ljava/math/MutableBigInteger;
            2    3     5   cmpFracHalf  I
    MethodParameters:
              Name  Flags
      mdivisor      
      roundingMode  
      qsign         
      mq            
      mr            

  private static java.math.BigDecimal createAndStripZerosToMatchScale(java.math.BigInteger, int, long);
    descriptor: (Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int scale
        start local 2 // long preferredScale
         0: .line 4842
            goto 8
         1: .line 4844
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 3
         2: .line 4845
            goto 11
         3: .line 4846
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.divideAndRemainder:(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
            astore 4 /* qr */
        start local 4 // java.math.BigInteger[] qr
         4: .line 4847
            aload 4 /* qr */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 6
         5: .line 4848
            goto 11
         6: .line 4849
      StackMap locals: java.math.BigInteger[]
      StackMap stack:
            aload 4 /* qr */
            iconst_0
            aaload
            astore 0 /* intVal */
         7: .line 4850
            aload 0 /* intVal */
            iload 1 /* scale */
            i2l
            lconst_1
            lsub
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 1 /* scale */
        end local 4 // java.math.BigInteger[] qr
         8: .line 4842
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            iflt 11
         9: .line 4843
            iload 1 /* scale */
            i2l
            lload 2 /* preferredScale */
        10: .line 4842
            lcmp
            ifgt 1
        11: .line 4852
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            iload 1 /* scale */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
            areturn
        end local 2 // long preferredScale
        end local 1 // int scale
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0          intVal  Ljava/math/BigInteger;
            0   12     1           scale  I
            0   12     2  preferredScale  J
            4    8     4              qr  [Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      intVal          
      scale           
      preferredScale  

  private static java.math.BigDecimal createAndStripZerosToMatchScale(long, int, long);
    descriptor: (JIJ)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // long compactVal
        start local 2 // int scale
        start local 3 // long preferredScale
         0: .line 4865
            goto 8
         1: .line 4866
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 3
         2: .line 4867
            goto 9
         3: .line 4868
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            ldc 10
            lrem
            lstore 5 /* r */
        start local 5 // long r
         4: .line 4869
            lload 5 /* r */
            lconst_0
            lcmp
            ifeq 6
         5: .line 4870
            goto 9
         6: .line 4871
      StackMap locals: long
      StackMap stack:
            lload 0 /* compactVal */
            ldc 10
            ldiv
            lstore 0 /* compactVal */
         7: .line 4872
            lload 0 /* compactVal */
            iload 2 /* scale */
            i2l
            lconst_1
            lsub
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 2 /* scale */
        end local 5 // long r
         8: .line 4865
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            invokestatic java.lang.Math.abs:(J)J
            ldc 10
            lcmp
            iflt 9
            iload 2 /* scale */
            i2l
            lload 3 /* preferredScale */
            lcmp
            ifgt 1
         9: .line 4874
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 3 // long preferredScale
        end local 2 // int scale
        end local 0 // long compactVal
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0      compactVal  J
            0   10     2           scale  I
            0   10     3  preferredScale  J
            4    8     5               r  J
    MethodParameters:
                Name  Flags
      compactVal      
      scale           
      preferredScale  

  private static java.math.BigDecimal stripZerosToMatchScale(java.math.BigInteger, long, int, int);
    descriptor: (Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.math.BigInteger intVal
        start local 1 // long intCompact
        start local 3 // int scale
        start local 4 // int preferredScale
         0: .line 4878
            lload 1 /* intCompact */
            ldc -9223372036854775808
            lcmp
            ifeq 2
         1: .line 4879
            lload 1 /* intCompact */
            iload 3 /* scale */
            iload 4 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
         2: .line 4881
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            ifnonnull 3
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* intVal */
         4: .line 4882
      StackMap locals:
      StackMap stack: java.math.BigInteger
            iload 3 /* scale */
            iload 4 /* preferredScale */
            i2l
         5: .line 4881
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 4 // int preferredScale
        end local 3 // int scale
        end local 1 // long intCompact
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0          intVal  Ljava/math/BigInteger;
            0    6     1      intCompact  J
            0    6     3           scale  I
            0    6     4  preferredScale  I
    MethodParameters:
                Name  Flags
      intVal          
      intCompact      
      scale           
      preferredScale  

  private static long add(long, long);
    descriptor: (JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // long xs
        start local 2 // long ys
         0: .line 4890
            lload 0 /* xs */
            lload 2 /* ys */
            ladd
            lstore 4 /* sum */
        start local 4 // long sum
         1: .line 4893
            lload 4 /* sum */
            lload 0 /* xs */
            lxor
            lload 4 /* sum */
            lload 2 /* ys */
            lxor
            land
            lconst_0
            lcmp
            iflt 3
         2: .line 4894
            lload 4 /* sum */
            lreturn
         3: .line 4896
      StackMap locals: long
      StackMap stack:
            ldc -9223372036854775808
            lreturn
        end local 4 // long sum
        end local 2 // long ys
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    xs  J
            0    4     2    ys  J
            1    4     4   sum  J
    MethodParameters:
      Name  Flags
      xs    
      ys    

  private static java.math.BigDecimal add(long, long, int);
    descriptor: (JJI)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // long xs
        start local 2 // long ys
        start local 4 // int scale
         0: .line 4900
            lload 0 /* xs */
            lload 2 /* ys */
            invokestatic java.math.BigDecimal.add:(JJ)J
            lstore 5 /* sum */
        start local 5 // long sum
         1: .line 4901
            lload 5 /* sum */
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 4902
            lload 5 /* sum */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         3: .line 4903
      StackMap locals: long
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            lload 2 /* ys */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            iload 4 /* scale */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;I)V
            areturn
        end local 5 // long sum
        end local 4 // int scale
        end local 2 // long ys
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0     xs  J
            0    4     2     ys  J
            0    4     4  scale  I
            1    4     5    sum  J
    MethodParameters:
       Name  Flags
      xs     
      ys     
      scale  

  private static java.math.BigDecimal add(long, int, long, int);
    descriptor: (JIJI)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // long xs
        start local 2 // int scale1
        start local 3 // long ys
        start local 5 // int scale2
         0: .line 4907
            iload 2 /* scale1 */
            i2l
            iload 5 /* scale2 */
            i2l
            lsub
            lstore 6 /* sdiff */
        start local 6 // long sdiff
         1: .line 4908
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifne 3
         2: .line 4909
            lload 0 /* xs */
            lload 3 /* ys */
            iload 2 /* scale1 */
            invokestatic java.math.BigDecimal.add:(JJI)Ljava/math/BigDecimal;
            areturn
         3: .line 4910
      StackMap locals: long
      StackMap stack:
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifge 13
         4: .line 4911
            lload 0 /* xs */
            lload 6 /* sdiff */
            lneg
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 8 /* raise */
        start local 8 // int raise
         5: .line 4912
            lload 0 /* xs */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 9 /* scaledX */
        start local 9 // long scaledX
         6: .line 4913
            lload 9 /* scaledX */
            ldc -9223372036854775808
            lcmp
            ifeq 8
         7: .line 4914
            lload 9 /* scaledX */
            lload 3 /* ys */
            iload 5 /* scale2 */
            invokestatic java.math.BigDecimal.add:(JJI)Ljava/math/BigDecimal;
            areturn
         8: .line 4916
      StackMap locals: int long
      StackMap stack:
            lload 0 /* xs */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            lload 3 /* ys */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 11 /* bigsum */
        start local 11 // java.math.BigInteger bigsum
         9: .line 4917
            lload 0 /* xs */
            lload 3 /* ys */
            lxor
            lconst_0
            lcmp
            iflt 11
        10: .line 4918
            new java.math.BigDecimal
            dup
            aload 11 /* bigsum */
            ldc -9223372036854775808
            iload 5 /* scale2 */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 12
        11: .line 4919
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 11 /* bigsum */
            iload 5 /* scale2 */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        12: .line 4917
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 11 // java.math.BigInteger bigsum
        end local 9 // long scaledX
        end local 8 // int raise
        13: .line 4922
      StackMap locals:
      StackMap stack:
            lload 3 /* ys */
            lload 6 /* sdiff */
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 8 /* raise */
        start local 8 // int raise
        14: .line 4923
            lload 3 /* ys */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 9 /* scaledY */
        start local 9 // long scaledY
        15: .line 4924
            lload 9 /* scaledY */
            ldc -9223372036854775808
            lcmp
            ifeq 17
        16: .line 4925
            lload 0 /* xs */
            lload 9 /* scaledY */
            iload 2 /* scale1 */
            invokestatic java.math.BigDecimal.add:(JJI)Ljava/math/BigDecimal;
            areturn
        17: .line 4927
      StackMap locals: int long
      StackMap stack:
            lload 3 /* ys */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            lload 0 /* xs */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 11 /* bigsum */
        start local 11 // java.math.BigInteger bigsum
        18: .line 4928
            lload 0 /* xs */
            lload 3 /* ys */
            lxor
            lconst_0
            lcmp
            iflt 20
        19: .line 4929
            new java.math.BigDecimal
            dup
            aload 11 /* bigsum */
            ldc -9223372036854775808
            iload 2 /* scale1 */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 21
        20: .line 4930
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 11 /* bigsum */
            iload 2 /* scale1 */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        21: .line 4928
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 11 // java.math.BigInteger bigsum
        end local 9 // long scaledY
        end local 8 // int raise
        end local 6 // long sdiff
        end local 5 // int scale2
        end local 3 // long ys
        end local 2 // int scale1
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0       xs  J
            0   22     2   scale1  I
            0   22     3       ys  J
            0   22     5   scale2  I
            1   22     6    sdiff  J
            5   13     8    raise  I
            6   13     9  scaledX  J
            9   13    11   bigsum  Ljava/math/BigInteger;
           14   22     8    raise  I
           15   22     9  scaledY  J
           18   22    11   bigsum  Ljava/math/BigInteger;
    MethodParameters:
        Name  Flags
      xs      final
      scale1  
      ys      final
      scale2  

  private static java.math.BigDecimal add(long, int, java.math.BigInteger, int);
    descriptor: (JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=13, args_size=4
        start local 0 // long xs
        start local 2 // int scale1
        start local 3 // java.math.BigInteger snd
        start local 4 // int scale2
         0: .line 4936
            iload 2 /* scale1 */
            istore 5 /* rscale */
        start local 5 // int rscale
         1: .line 4937
            iload 5 /* rscale */
            i2l
            iload 4 /* scale2 */
            i2l
            lsub
            lstore 6 /* sdiff */
        start local 6 // long sdiff
         2: .line 4938
            lload 0 /* xs */
            invokestatic java.lang.Long.signum:(J)I
            aload 3 /* snd */
            getfield java.math.BigInteger.signum:I
            if_icmpne 3
            iconst_1
            goto 4
      StackMap locals: int long
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 8 /* sameSigns */
        start local 8 // boolean sameSigns
         5: .line 4940
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifge 14
         6: .line 4941
            lload 0 /* xs */
            lload 6 /* sdiff */
            lneg
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 10 /* raise */
        start local 10 // int raise
         7: .line 4942
            iload 4 /* scale2 */
            istore 5 /* rscale */
         8: .line 4943
            lload 0 /* xs */
            iload 10 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 11 /* scaledX */
        start local 11 // long scaledX
         9: .line 4944
            lload 11 /* scaledX */
            ldc -9223372036854775808
            lcmp
            ifne 12
        10: .line 4945
            aload 3 /* snd */
            lload 0 /* xs */
            iload 10 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 9 /* sum */
        start local 9 // java.math.BigInteger sum
        11: .line 4946
            goto 17
        end local 9 // java.math.BigInteger sum
        12: .line 4947
      StackMap locals: long int java.math.BigInteger int int long int top int long
      StackMap stack:
            aload 3 /* snd */
            lload 11 /* scaledX */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 9 /* sum */
        end local 11 // long scaledX
        end local 10 // int raise
        start local 9 // java.math.BigInteger sum
        13: .line 4949
            goto 17
        end local 9 // java.math.BigInteger sum
        14: .line 4950
      StackMap locals: long int java.math.BigInteger int int long int
      StackMap stack:
            aload 3 /* snd */
            lload 6 /* sdiff */
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 10 /* raise */
        start local 10 // int raise
        15: .line 4951
            aload 3 /* snd */
            iload 10 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 3 /* snd */
        16: .line 4952
            aload 3 /* snd */
            lload 0 /* xs */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 9 /* sum */
        end local 10 // int raise
        start local 9 // java.math.BigInteger sum
        17: .line 4954
      StackMap locals: java.math.BigInteger
      StackMap stack:
            iload 8 /* sameSigns */
            ifeq 19
        18: .line 4955
            new java.math.BigDecimal
            dup
            aload 9 /* sum */
            ldc -9223372036854775808
            iload 5 /* rscale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 20
        19: .line 4956
      StackMap locals:
      StackMap stack:
            aload 9 /* sum */
            iload 5 /* rscale */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        20: .line 4954
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 9 // java.math.BigInteger sum
        end local 8 // boolean sameSigns
        end local 6 // long sdiff
        end local 5 // int rscale
        end local 4 // int scale2
        end local 3 // java.math.BigInteger snd
        end local 2 // int scale1
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0         xs  J
            0   21     2     scale1  I
            0   21     3        snd  Ljava/math/BigInteger;
            0   21     4     scale2  I
            1   21     5     rscale  I
            2   21     6      sdiff  J
            5   21     8  sameSigns  Z
           11   12     9        sum  Ljava/math/BigInteger;
           13   14     9        sum  Ljava/math/BigInteger;
           17   21     9        sum  Ljava/math/BigInteger;
            7   13    10      raise  I
            9   13    11    scaledX  J
           15   17    10      raise  I
    MethodParameters:
        Name  Flags
      xs      final
      scale1  
      snd     
      scale2  

  private static java.math.BigDecimal add(java.math.BigInteger, int, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // java.math.BigInteger fst
        start local 1 // int scale1
        start local 2 // java.math.BigInteger snd
        start local 3 // int scale2
         0: .line 4960
            iload 1 /* scale1 */
            istore 4 /* rscale */
        start local 4 // int rscale
         1: .line 4961
            iload 4 /* rscale */
            i2l
            iload 3 /* scale2 */
            i2l
            lsub
            lstore 5 /* sdiff */
        start local 5 // long sdiff
         2: .line 4962
            lload 5 /* sdiff */
            lconst_0
            lcmp
            ifeq 10
         3: .line 4963
            lload 5 /* sdiff */
            lconst_0
            lcmp
            ifge 8
         4: .line 4964
            aload 0 /* fst */
            lload 5 /* sdiff */
            lneg
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 7 /* raise */
        start local 7 // int raise
         5: .line 4965
            iload 3 /* scale2 */
            istore 4 /* rscale */
         6: .line 4966
            aload 0 /* fst */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 0 /* fst */
        end local 7 // int raise
         7: .line 4967
            goto 10
         8: .line 4968
      StackMap locals: int long
      StackMap stack:
            aload 2 /* snd */
            lload 5 /* sdiff */
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 7 /* raise */
        start local 7 // int raise
         9: .line 4969
            aload 2 /* snd */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 2 /* snd */
        end local 7 // int raise
        10: .line 4972
      StackMap locals:
      StackMap stack:
            aload 0 /* fst */
            aload 2 /* snd */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* sum */
        start local 7 // java.math.BigInteger sum
        11: .line 4973
            aload 0 /* fst */
            getfield java.math.BigInteger.signum:I
            aload 2 /* snd */
            getfield java.math.BigInteger.signum:I
            if_icmpne 13
        12: .line 4974
            new java.math.BigDecimal
            dup
            aload 7 /* sum */
            ldc -9223372036854775808
            iload 4 /* rscale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 14
        13: .line 4975
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 7 /* sum */
            iload 4 /* rscale */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        14: .line 4973
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 7 // java.math.BigInteger sum
        end local 5 // long sdiff
        end local 4 // int rscale
        end local 3 // int scale2
        end local 2 // java.math.BigInteger snd
        end local 1 // int scale1
        end local 0 // java.math.BigInteger fst
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0     fst  Ljava/math/BigInteger;
            0   15     1  scale1  I
            0   15     2     snd  Ljava/math/BigInteger;
            0   15     3  scale2  I
            1   15     4  rscale  I
            2   15     5   sdiff  J
            5    7     7   raise  I
            9   10     7   raise  I
           11   15     7     sum  Ljava/math/BigInteger;
    MethodParameters:
        Name  Flags
      fst     
      scale1  
      snd     
      scale2  

  private static java.math.BigInteger bigMultiplyPowerTen(long, int);
    descriptor: (JI)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // long value
        start local 2 // int n
         0: .line 4979
            iload 2 /* n */
            ifgt 2
         1: .line 4980
            lload 0 /* value */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            areturn
         2: .line 4981
      StackMap locals:
      StackMap stack:
            iload 2 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            lload 0 /* value */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            areturn
        end local 2 // int n
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  J
            0    3     2      n  I
    MethodParameters:
       Name  Flags
      value  
      n      

  private static java.math.BigInteger bigMultiplyPowerTen(java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigInteger value
        start local 1 // int n
         0: .line 4985
            iload 1 /* n */
            ifgt 2
         1: .line 4986
            aload 0 /* value */
            areturn
         2: .line 4987
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 4
         3: .line 4988
            aload 0 /* value */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 1 /* n */
            laload
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            areturn
         4: .line 4990
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            iload 1 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            areturn
        end local 1 // int n
        end local 0 // java.math.BigInteger value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  value  Ljava/math/BigInteger;
            0    5     1      n  I
    MethodParameters:
       Name  Flags
      value  
      n      

  private static java.math.BigDecimal divideSmallFastPath(long, int, long, int, long, java.math.MathContext);
    descriptor: (JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=22, args_size=6
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // long ys
        start local 5 // int yscale
        start local 6 // long preferredScale
        start local 8 // java.math.MathContext mc
         0: .line 5003
            aload 8 /* mc */
            getfield java.math.MathContext.precision:I
            istore 9 /* mcp */
        start local 9 // int mcp
         1: .line 5004
            aload 8 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 10 /* roundingMode */
        start local 10 // int roundingMode
         2: .line 5006
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 4
            iload 2 /* xscale */
            iload 5 /* yscale */
            if_icmpgt 3
            iload 5 /* yscale */
            bipush 18
            if_icmpge 3
            iload 9 /* mcp */
            bipush 18
            if_icmplt 4
      StackMap locals: int int
      StackMap stack:
         3: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 5007
      StackMap locals:
      StackMap stack:
            iload 5 /* yscale */
            iload 2 /* xscale */
            isub
            istore 11 /* xraise */
        start local 11 // int xraise
         5: .line 5008
            iload 11 /* xraise */
            ifne 6
            lload 0 /* xs */
            goto 7
         6: .line 5009
      StackMap locals: int
      StackMap stack:
            lload 0 /* xs */
            iload 11 /* xraise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
         7: .line 5008
      StackMap locals:
      StackMap stack: long
            lstore 12 /* scaledX */
        start local 12 // long scaledX
         8: .line 5012
            lload 12 /* scaledX */
            lload 3 /* ys */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            istore 15 /* cmp */
        start local 15 // int cmp
         9: .line 5013
            iload 15 /* cmp */
            ifle 41
        10: .line 5014
            iinc 5 /* yscale */ -1
        11: .line 5015
            lload 6 /* preferredScale */
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 9 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 16 /* scl */
        start local 16 // int scl
        12: .line 5016
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 27
        13: .line 5018
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 17 /* raise */
        start local 17 // int raise
        14: .line 5020
            lload 0 /* xs */
            iload 17 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 18 /* scaledXs */
        start local 18 // long scaledXs
        15: ldc -9223372036854775808
            lcmp
            ifne 25
        16: .line 5021
            aconst_null
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        17: .line 5022
            iload 9 /* mcp */
            iconst_1
            isub
            iflt 19
            iload 9 /* mcp */
            iconst_1
            isub
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 19
        18: .line 5023
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* mcp */
            iconst_1
            isub
            laload
            lload 12 /* scaledX */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.multiplyDivideAndRound:(JJJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        19: .line 5025
      StackMap locals: long int long int long java.math.MathContext int int int long java.math.BigDecimal int int int long
      StackMap stack:
            aload 14 /* quotient */
            ifnonnull 63
        20: .line 5026
            lload 12 /* scaledX */
            iload 9 /* mcp */
            iconst_1
            isub
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 20 /* rb */
        start local 20 // java.math.BigInteger rb
        21: .line 5027
            aload 20 /* rb */
            lload 3 /* ys */
        22: .line 5028
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        23: .line 5027
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 20 // java.math.BigInteger rb
        24: .line 5030
            goto 63
        end local 14 // java.math.BigDecimal quotient
        25: .line 5031
      StackMap locals: long int long int long java.math.MathContext int int int long top int int int long
      StackMap stack:
            lload 18 /* scaledXs */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 18 // long scaledXs
        end local 17 // int raise
        start local 14 // java.math.BigDecimal quotient
        26: .line 5033
            goto 63
        end local 14 // java.math.BigDecimal quotient
        27: .line 5034
      StackMap locals:
      StackMap stack:
            iload 2 /* xscale */
            i2l
            iload 9 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 17 /* newScale */
        start local 17 // int newScale
        28: .line 5036
            iload 17 /* newScale */
            iload 5 /* yscale */
            if_icmpne 31
        29: .line 5037
            lload 0 /* xs */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        30: .line 5038
            goto 63
        end local 14 // java.math.BigDecimal quotient
        31: .line 5039
      StackMap locals: int
      StackMap stack:
            iload 17 /* newScale */
            i2l
            iload 5 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 18 /* raise */
        start local 18 // int raise
        32: .line 5041
            lload 3 /* ys */
            iload 18 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 19 /* scaledYs */
        start local 19 // long scaledYs
        33: ldc -9223372036854775808
            lcmp
            ifne 39
        34: .line 5042
            lload 3 /* ys */
            iload 18 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 21 /* rb */
        start local 21 // java.math.BigInteger rb
        35: .line 5043
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
        36: .line 5044
            aload 21 /* rb */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        37: .line 5043
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 21 // java.math.BigInteger rb
        start local 14 // java.math.BigDecimal quotient
        38: .line 5045
            goto 63
        end local 14 // java.math.BigDecimal quotient
        39: .line 5046
      StackMap locals: int long
      StackMap stack:
            lload 0 /* xs */
            lload 19 /* scaledYs */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 19 // long scaledYs
        end local 18 // int raise
        end local 17 // int newScale
        end local 16 // int scl
        start local 14 // java.math.BigDecimal quotient
        40: .line 5050
            goto 63
        end local 14 // java.math.BigDecimal quotient
        41: .line 5053
      StackMap locals: long int long int long java.math.MathContext int int int long top int
      StackMap stack:
            lload 6 /* preferredScale */
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 9 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 16 /* scl */
        start local 16 // int scl
        42: .line 5054
            iload 15 /* cmp */
            ifne 51
        43: .line 5056
            lload 12 /* scaledX */
            lconst_0
            lcmp
            ifge 44
            iconst_1
            goto 45
      StackMap locals: int
      StackMap stack:
        44: iconst_0
      StackMap locals:
      StackMap stack: int
        45: lload 3 /* ys */
            lconst_0
            lcmp
            ifge 46
            iconst_1
            goto 47
      StackMap locals:
      StackMap stack: int
        46: iconst_0
      StackMap locals: long int long int long java.math.MathContext int int int long top int int
      StackMap stack: int int
        47: if_icmpne 48
            iconst_1
            goto 49
      StackMap locals:
      StackMap stack:
        48: iconst_m1
      StackMap locals:
      StackMap stack: int
        49: iload 9 /* mcp */
            iload 16 /* scl */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.roundedTenPower:(IIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        50: .line 5057
            goto 63
        end local 14 // java.math.BigDecimal quotient
        51: .line 5060
      StackMap locals:
      StackMap stack:
            lload 12 /* scaledX */
            iload 9 /* mcp */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 17 /* scaledXs */
        start local 17 // long scaledXs
        52: ldc -9223372036854775808
            lcmp
            ifne 62
        53: .line 5061
            aconst_null
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        54: .line 5062
            iload 9 /* mcp */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 56
        55: .line 5063
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* mcp */
            laload
            lload 12 /* scaledX */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.multiplyDivideAndRound:(JJJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        56: .line 5065
      StackMap locals: long int long int long java.math.MathContext int int int long java.math.BigDecimal int int long
      StackMap stack:
            aload 14 /* quotient */
            ifnonnull 63
        57: .line 5066
            lload 12 /* scaledX */
            iload 9 /* mcp */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 19 /* rb */
        start local 19 // java.math.BigInteger rb
        58: .line 5067
            aload 19 /* rb */
            lload 3 /* ys */
        59: .line 5068
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        60: .line 5067
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 19 // java.math.BigInteger rb
        61: .line 5070
            goto 63
        end local 14 // java.math.BigDecimal quotient
        62: .line 5071
      StackMap locals: long int long int long java.math.MathContext int int int long top int int long
      StackMap stack:
            lload 17 /* scaledXs */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 17 // long scaledXs
        end local 16 // int scl
        start local 14 // java.math.BigDecimal quotient
        63: .line 5076
      StackMap locals: long int long int long java.math.MathContext int int int long java.math.BigDecimal int
      StackMap stack:
            aload 14 /* quotient */
            aload 8 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 15 // int cmp
        end local 14 // java.math.BigDecimal quotient
        end local 12 // long scaledX
        end local 11 // int xraise
        end local 10 // int roundingMode
        end local 9 // int mcp
        end local 8 // java.math.MathContext mc
        end local 6 // long preferredScale
        end local 5 // int yscale
        end local 3 // long ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   64     0              xs  J
            0   64     2          xscale  I
            0   64     3              ys  J
            0   64     5          yscale  I
            0   64     6  preferredScale  J
            0   64     8              mc  Ljava/math/MathContext;
            1   64     9             mcp  I
            2   64    10    roundingMode  I
            5   64    11          xraise  I
            8   64    12         scaledX  J
           17   25    14        quotient  Ljava/math/BigDecimal;
           26   27    14        quotient  Ljava/math/BigDecimal;
           30   31    14        quotient  Ljava/math/BigDecimal;
           38   39    14        quotient  Ljava/math/BigDecimal;
           40   41    14        quotient  Ljava/math/BigDecimal;
           50   51    14        quotient  Ljava/math/BigDecimal;
           54   62    14        quotient  Ljava/math/BigDecimal;
           63   64    14        quotient  Ljava/math/BigDecimal;
            9   64    15             cmp  I
           12   40    16             scl  I
           14   26    17           raise  I
           15   26    18        scaledXs  J
           21   24    20              rb  Ljava/math/BigInteger;
           28   40    17        newScale  I
           32   40    18           raise  I
           33   40    19        scaledYs  J
           35   38    21              rb  Ljava/math/BigInteger;
           42   63    16             scl  I
           52   63    17        scaledXs  J
           58   61    19              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              final
      xscale          
      ys              final
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(long, int, long, int, long, java.math.MathContext);
    descriptor: (JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=18, args_size=6
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // long ys
        start local 5 // int yscale
        start local 6 // long preferredScale
        start local 8 // java.math.MathContext mc
         0: .line 5084
            aload 8 /* mc */
            getfield java.math.MathContext.precision:I
            istore 9 /* mcp */
        start local 9 // int mcp
         1: .line 5085
            iload 2 /* xscale */
            iload 5 /* yscale */
            if_icmpgt 3
            iload 5 /* yscale */
            bipush 18
            if_icmpge 3
            iload 9 /* mcp */
            bipush 18
            if_icmpge 3
         2: .line 5086
            lload 0 /* xs */
            iload 2 /* xscale */
            lload 3 /* ys */
            iload 5 /* yscale */
            lload 6 /* preferredScale */
            aload 8 /* mc */
            invokestatic java.math.BigDecimal.divideSmallFastPath:(JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         3: .line 5088
      StackMap locals: int
      StackMap stack:
            lload 0 /* xs */
            iload 2 /* xscale */
            lload 3 /* ys */
            iload 5 /* yscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(JIJI)I
            ifle 5
         4: .line 5089
            iinc 5 /* yscale */ -1
         5: .line 5091
      StackMap locals:
      StackMap stack:
            aload 8 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 10 /* roundingMode */
        start local 10 // int roundingMode
         6: .line 5095
            lload 6 /* preferredScale */
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 9 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* scl */
        start local 11 // int scl
         7: .line 5097
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 16
         8: .line 5098
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* raise */
        start local 13 // int raise
         9: .line 5100
            lload 0 /* xs */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 14 /* scaledXs */
        start local 14 // long scaledXs
        10: ldc -9223372036854775808
            lcmp
            ifne 14
        11: .line 5101
            lload 0 /* xs */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 16 /* rb */
        start local 16 // java.math.BigInteger rb
        12: .line 5102
            aload 16 /* rb */
            lload 3 /* ys */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 16 // java.math.BigInteger rb
        start local 12 // java.math.BigDecimal quotient
        13: .line 5103
            goto 29
        end local 12 // java.math.BigDecimal quotient
        14: .line 5104
      StackMap locals: long int long int long java.math.MathContext int int int top int long
      StackMap stack:
            lload 14 /* scaledXs */
            lload 3 /* ys */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 14 // long scaledXs
        end local 13 // int raise
        start local 12 // java.math.BigDecimal quotient
        15: .line 5106
            goto 29
        end local 12 // java.math.BigDecimal quotient
        16: .line 5107
      StackMap locals: long int long int long java.math.MathContext int int int
      StackMap stack:
            iload 2 /* xscale */
            i2l
            iload 9 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* newScale */
        start local 13 // int newScale
        17: .line 5109
            iload 13 /* newScale */
            iload 5 /* yscale */
            if_icmpne 20
        18: .line 5110
            lload 0 /* xs */
            lload 3 /* ys */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        start local 12 // java.math.BigDecimal quotient
        19: .line 5111
            goto 29
        end local 12 // java.math.BigDecimal quotient
        20: .line 5112
      StackMap locals: long int long int long java.math.MathContext int int int top int
      StackMap stack:
            iload 13 /* newScale */
            i2l
            iload 5 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 14 /* raise */
        start local 14 // int raise
        21: .line 5114
            lload 3 /* ys */
            iload 14 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 15 /* scaledYs */
        start local 15 // long scaledYs
        22: ldc -9223372036854775808
            lcmp
            ifne 28
        23: .line 5115
            lload 3 /* ys */
            iload 14 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 17 /* rb */
        start local 17 // java.math.BigInteger rb
        24: .line 5116
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
        25: .line 5117
            aload 17 /* rb */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        26: .line 5116
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 17 // java.math.BigInteger rb
        start local 12 // java.math.BigDecimal quotient
        27: .line 5118
            goto 29
        end local 12 // java.math.BigDecimal quotient
        28: .line 5119
      StackMap locals: int long
      StackMap stack:
            lload 0 /* xs */
            lload 15 /* scaledYs */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 15 // long scaledYs
        end local 14 // int raise
        end local 13 // int newScale
        start local 12 // java.math.BigDecimal quotient
        29: .line 5124
      StackMap locals: long int long int long java.math.MathContext int int int java.math.BigDecimal
      StackMap stack:
            aload 12 /* quotient */
            aload 8 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 12 // java.math.BigDecimal quotient
        end local 11 // int scl
        end local 10 // int roundingMode
        end local 9 // int mcp
        end local 8 // java.math.MathContext mc
        end local 6 // long preferredScale
        end local 5 // int yscale
        end local 3 // long ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   30     0              xs  J
            0   30     2          xscale  I
            0   30     3              ys  J
            0   30     5          yscale  I
            0   30     6  preferredScale  J
            0   30     8              mc  Ljava/math/MathContext;
            1   30     9             mcp  I
            6   30    10    roundingMode  I
            7   30    11             scl  I
           13   14    12        quotient  Ljava/math/BigDecimal;
           15   16    12        quotient  Ljava/math/BigDecimal;
           19   20    12        quotient  Ljava/math/BigDecimal;
           27   28    12        quotient  Ljava/math/BigDecimal;
           29   30    12        quotient  Ljava/math/BigDecimal;
            9   15    13           raise  I
           10   15    14        scaledXs  J
           12   13    16              rb  Ljava/math/BigInteger;
           17   29    13        newScale  I
           21   29    14           raise  I
           22   29    15        scaledYs  J
           24   27    17              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              final
      xscale          
      ys              final
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(java.math.BigInteger, int, long, int, long, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;IJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=17, args_size=6
        start local 0 // java.math.BigInteger xs
        start local 1 // int xscale
        start local 2 // long ys
        start local 4 // int yscale
        start local 5 // long preferredScale
        start local 7 // java.math.MathContext mc
         0: .line 5133
            lload 2 /* ys */
            iload 4 /* yscale */
            aload 0 /* xs */
            iload 1 /* xscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(JILjava/math/BigInteger;I)I
            ineg
            ifle 2
         1: .line 5134
            iinc 4 /* yscale */ -1
         2: .line 5136
      StackMap locals:
      StackMap stack:
            aload 7 /* mc */
            getfield java.math.MathContext.precision:I
            istore 8 /* mcp */
        start local 8 // int mcp
         3: .line 5137
            aload 7 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 9 /* roundingMode */
        start local 9 // int roundingMode
         4: .line 5143
            lload 5 /* preferredScale */
            iload 4 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            iload 8 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* scl */
        start local 11 // int scl
         5: .line 5144
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 10
         6: .line 5145
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* raise */
        start local 12 // int raise
         7: .line 5146
            aload 0 /* xs */
            iload 12 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 13 /* rb */
        start local 13 // java.math.BigInteger rb
         8: .line 5147
            aload 13 /* rb */
            lload 2 /* ys */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 13 // java.math.BigInteger rb
        end local 12 // int raise
        start local 10 // java.math.BigDecimal quotient
         9: .line 5148
            goto 21
        end local 10 // java.math.BigDecimal quotient
        10: .line 5149
      StackMap locals: java.math.BigInteger int long int long java.math.MathContext int int top int
      StackMap stack:
            iload 1 /* xscale */
            i2l
            iload 8 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* newScale */
        start local 12 // int newScale
        11: .line 5151
            iload 12 /* newScale */
            iload 4 /* yscale */
            if_icmpne 14
        12: .line 5152
            aload 0 /* xs */
            lload 2 /* ys */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        start local 10 // java.math.BigDecimal quotient
        13: .line 5153
            goto 21
        end local 10 // java.math.BigDecimal quotient
        14: .line 5154
      StackMap locals: int
      StackMap stack:
            iload 12 /* newScale */
            i2l
            iload 4 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* raise */
        start local 13 // int raise
        15: .line 5156
            lload 2 /* ys */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 14 /* scaledYs */
        start local 14 // long scaledYs
        16: ldc -9223372036854775808
            lcmp
            ifne 20
        17: .line 5157
            lload 2 /* ys */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 16 /* rb */
        start local 16 // java.math.BigInteger rb
        18: .line 5158
            aload 0 /* xs */
            aload 16 /* rb */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 16 // java.math.BigInteger rb
        start local 10 // java.math.BigDecimal quotient
        19: .line 5159
            goto 21
        end local 10 // java.math.BigDecimal quotient
        20: .line 5160
      StackMap locals: int long
      StackMap stack:
            aload 0 /* xs */
            lload 14 /* scaledYs */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 14 // long scaledYs
        end local 13 // int raise
        end local 12 // int newScale
        start local 10 // java.math.BigDecimal quotient
        21: .line 5165
      StackMap locals: java.math.BigInteger int long int long java.math.MathContext int int java.math.BigDecimal int
      StackMap stack:
            aload 10 /* quotient */
            aload 7 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 11 // int scl
        end local 10 // java.math.BigDecimal quotient
        end local 9 // int roundingMode
        end local 8 // int mcp
        end local 7 // java.math.MathContext mc
        end local 5 // long preferredScale
        end local 4 // int yscale
        end local 2 // long ys
        end local 1 // int xscale
        end local 0 // java.math.BigInteger xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0              xs  Ljava/math/BigInteger;
            0   22     1          xscale  I
            0   22     2              ys  J
            0   22     4          yscale  I
            0   22     5  preferredScale  J
            0   22     7              mc  Ljava/math/MathContext;
            3   22     8             mcp  I
            4   22     9    roundingMode  I
            9   10    10        quotient  Ljava/math/BigDecimal;
           13   14    10        quotient  Ljava/math/BigDecimal;
           19   20    10        quotient  Ljava/math/BigDecimal;
           21   22    10        quotient  Ljava/math/BigDecimal;
            5   22    11             scl  I
            7    9    12           raise  I
            8    9    13              rb  Ljava/math/BigInteger;
           11   21    12        newScale  I
           15   21    13           raise  I
           16   21    14        scaledYs  J
           18   19    16              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              
      xscale          
      ys              
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(long, int, java.math.BigInteger, int, long, java.math.MathContext);
    descriptor: (JILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=15, args_size=6
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // java.math.BigInteger ys
        start local 4 // int yscale
        start local 5 // long preferredScale
        start local 7 // java.math.MathContext mc
         0: .line 5174
            lload 0 /* xs */
            iload 2 /* xscale */
            aload 3 /* ys */
            iload 4 /* yscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(JILjava/math/BigInteger;I)I
            ifle 2
         1: .line 5175
            iinc 4 /* yscale */ -1
         2: .line 5177
      StackMap locals:
      StackMap stack:
            aload 7 /* mc */
            getfield java.math.MathContext.precision:I
            istore 8 /* mcp */
        start local 8 // int mcp
         3: .line 5178
            aload 7 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 9 /* roundingMode */
        start local 9 // int roundingMode
         4: .line 5184
            lload 5 /* preferredScale */
            iload 4 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 8 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* scl */
        start local 11 // int scl
         5: .line 5185
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 10
         6: .line 5186
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* raise */
        start local 12 // int raise
         7: .line 5187
            lload 0 /* xs */
            iload 12 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 13 /* rb */
        start local 13 // java.math.BigInteger rb
         8: .line 5188
            aload 13 /* rb */
            aload 3 /* ys */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 13 // java.math.BigInteger rb
        end local 12 // int raise
        start local 10 // java.math.BigDecimal quotient
         9: .line 5189
            goto 14
        end local 10 // java.math.BigDecimal quotient
        10: .line 5190
      StackMap locals: long int java.math.BigInteger int long java.math.MathContext int int top int
      StackMap stack:
            iload 2 /* xscale */
            i2l
            iload 8 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* newScale */
        start local 12 // int newScale
        11: .line 5191
            iload 12 /* newScale */
            i2l
            iload 4 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* raise */
        start local 13 // int raise
        12: .line 5192
            aload 3 /* ys */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 14 /* rb */
        start local 14 // java.math.BigInteger rb
        13: .line 5193
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aload 14 /* rb */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 14 // java.math.BigInteger rb
        end local 13 // int raise
        end local 12 // int newScale
        start local 10 // java.math.BigDecimal quotient
        14: .line 5196
      StackMap locals: long int java.math.BigInteger int long java.math.MathContext int int java.math.BigDecimal int
      StackMap stack:
            aload 10 /* quotient */
            aload 7 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 11 // int scl
        end local 10 // java.math.BigDecimal quotient
        end local 9 // int roundingMode
        end local 8 // int mcp
        end local 7 // java.math.MathContext mc
        end local 5 // long preferredScale
        end local 4 // int yscale
        end local 3 // java.math.BigInteger ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0              xs  J
            0   15     2          xscale  I
            0   15     3              ys  Ljava/math/BigInteger;
            0   15     4          yscale  I
            0   15     5  preferredScale  J
            0   15     7              mc  Ljava/math/MathContext;
            3   15     8             mcp  I
            4   15     9    roundingMode  I
            9   10    10        quotient  Ljava/math/BigDecimal;
           14   15    10        quotient  Ljava/math/BigDecimal;
            5   15    11             scl  I
            7    9    12           raise  I
            8    9    13              rb  Ljava/math/BigInteger;
           11   14    12        newScale  I
           12   14    13           raise  I
           13   14    14              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              
      xscale          
      ys              
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(java.math.BigInteger, int, java.math.BigInteger, int, long, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=6
        start local 0 // java.math.BigInteger xs
        start local 1 // int xscale
        start local 2 // java.math.BigInteger ys
        start local 3 // int yscale
        start local 4 // long preferredScale
        start local 6 // java.math.MathContext mc
         0: .line 5205
            aload 0 /* xs */
            iload 1 /* xscale */
            aload 2 /* ys */
            iload 3 /* yscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(Ljava/math/BigInteger;ILjava/math/BigInteger;I)I
            ifle 2
         1: .line 5206
            iinc 3 /* yscale */ -1
         2: .line 5208
      StackMap locals:
      StackMap stack:
            aload 6 /* mc */
            getfield java.math.MathContext.precision:I
            istore 7 /* mcp */
        start local 7 // int mcp
         3: .line 5209
            aload 6 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 8 /* roundingMode */
        start local 8 // int roundingMode
         4: .line 5215
            lload 4 /* preferredScale */
            iload 3 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            iload 7 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 10 /* scl */
        start local 10 // int scl
         5: .line 5216
            iload 7 /* mcp */
            i2l
            iload 3 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 10
         6: .line 5217
            iload 7 /* mcp */
            i2l
            iload 3 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* raise */
        start local 11 // int raise
         7: .line 5218
            aload 0 /* xs */
            iload 11 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 12 /* rb */
        start local 12 // java.math.BigInteger rb
         8: .line 5219
            aload 12 /* rb */
            aload 2 /* ys */
            iload 10 /* scl */
            iload 8 /* roundingMode */
            lload 4 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 9 /* quotient */
        end local 12 // java.math.BigInteger rb
        end local 11 // int raise
        start local 9 // java.math.BigDecimal quotient
         9: .line 5220
            goto 14
        end local 9 // java.math.BigDecimal quotient
        10: .line 5221
      StackMap locals: java.math.BigInteger int java.math.BigInteger int long java.math.MathContext int int top int
      StackMap stack:
            iload 1 /* xscale */
            i2l
            iload 7 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* newScale */
        start local 11 // int newScale
        11: .line 5222
            iload 11 /* newScale */
            i2l
            iload 3 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* raise */
        start local 12 // int raise
        12: .line 5223
            aload 2 /* ys */
            iload 12 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 13 /* rb */
        start local 13 // java.math.BigInteger rb
        13: .line 5224
            aload 0 /* xs */
            aload 13 /* rb */
            iload 10 /* scl */
            iload 8 /* roundingMode */
            lload 4 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 9 /* quotient */
        end local 13 // java.math.BigInteger rb
        end local 12 // int raise
        end local 11 // int newScale
        start local 9 // java.math.BigDecimal quotient
        14: .line 5227
      StackMap locals: java.math.BigInteger int java.math.BigInteger int long java.math.MathContext int int java.math.BigDecimal int
      StackMap stack:
            aload 9 /* quotient */
            aload 6 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 10 // int scl
        end local 9 // java.math.BigDecimal quotient
        end local 8 // int roundingMode
        end local 7 // int mcp
        end local 6 // java.math.MathContext mc
        end local 4 // long preferredScale
        end local 3 // int yscale
        end local 2 // java.math.BigInteger ys
        end local 1 // int xscale
        end local 0 // java.math.BigInteger xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0              xs  Ljava/math/BigInteger;
            0   15     1          xscale  I
            0   15     2              ys  Ljava/math/BigInteger;
            0   15     3          yscale  I
            0   15     4  preferredScale  J
            0   15     6              mc  Ljava/math/MathContext;
            3   15     7             mcp  I
            4   15     8    roundingMode  I
            9   10     9        quotient  Ljava/math/BigDecimal;
           14   15     9        quotient  Ljava/math/BigDecimal;
            5   15    10             scl  I
            7    9    11           raise  I
            8    9    12              rb  Ljava/math/BigInteger;
           11   14    11        newScale  I
           12   14    12           raise  I
           13   14    13              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              
      xscale          
      ys              
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal multiplyDivideAndRound(long, long, long, int, int, int);
    descriptor: (JJJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=32, args_size=6
        start local 0 // long dividend0
        start local 2 // long dividend1
        start local 4 // long divisor
        start local 6 // int scale
        start local 7 // int roundingMode
        start local 8 // int preferredScale
         0: .line 5236
            lload 0 /* dividend0 */
            invokestatic java.lang.Long.signum:(J)I
            lload 2 /* dividend1 */
            invokestatic java.lang.Long.signum:(J)I
            imul
            lload 4 /* divisor */
            invokestatic java.lang.Long.signum:(J)I
            imul
            istore 9 /* qsign */
        start local 9 // int qsign
         1: .line 5237
            lload 0 /* dividend0 */
            invokestatic java.lang.Math.abs:(J)J
            lstore 0 /* dividend0 */
         2: .line 5238
            lload 2 /* dividend1 */
            invokestatic java.lang.Math.abs:(J)J
            lstore 2 /* dividend1 */
         3: .line 5239
            lload 4 /* divisor */
            invokestatic java.lang.Math.abs:(J)J
            lstore 4 /* divisor */
         4: .line 5241
            lload 0 /* dividend0 */
            bipush 32
            lushr
            lstore 10 /* d0_hi */
        start local 10 // long d0_hi
         5: .line 5242
            lload 0 /* dividend0 */
            ldc 4294967295
            land
            lstore 12 /* d0_lo */
        start local 12 // long d0_lo
         6: .line 5243
            lload 2 /* dividend1 */
            bipush 32
            lushr
            lstore 14 /* d1_hi */
        start local 14 // long d1_hi
         7: .line 5244
            lload 2 /* dividend1 */
            ldc 4294967295
            land
            lstore 16 /* d1_lo */
        start local 16 // long d1_lo
         8: .line 5245
            lload 12 /* d0_lo */
            lload 16 /* d1_lo */
            lmul
            lstore 18 /* product */
        start local 18 // long product
         9: .line 5246
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 20 /* d0 */
        start local 20 // long d0
        10: .line 5247
            lload 18 /* product */
            bipush 32
            lushr
            lstore 22 /* d1 */
        start local 22 // long d1
        11: .line 5248
            lload 10 /* d0_hi */
            lload 16 /* d1_lo */
            lmul
            lload 22 /* d1 */
            ladd
            lstore 18 /* product */
        12: .line 5249
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 22 /* d1 */
        13: .line 5250
            lload 18 /* product */
            bipush 32
            lushr
            lstore 24 /* d2 */
        start local 24 // long d2
        14: .line 5251
            lload 12 /* d0_lo */
            lload 14 /* d1_hi */
            lmul
            lload 22 /* d1 */
            ladd
            lstore 18 /* product */
        15: .line 5252
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 22 /* d1 */
        16: .line 5253
            lload 24 /* d2 */
            lload 18 /* product */
            bipush 32
            lushr
            ladd
            lstore 24 /* d2 */
        17: .line 5254
            lload 24 /* d2 */
            bipush 32
            lushr
            lstore 26 /* d3 */
        start local 26 // long d3
        18: .line 5255
            lload 24 /* d2 */
            ldc 4294967295
            land
            lstore 24 /* d2 */
        19: .line 5256
            lload 10 /* d0_hi */
            lload 14 /* d1_hi */
            lmul
            lload 24 /* d2 */
            ladd
            lstore 18 /* product */
        20: .line 5257
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 24 /* d2 */
        21: .line 5258
            lload 18 /* product */
            bipush 32
            lushr
            lload 26 /* d3 */
            ladd
            ldc 4294967295
            land
            lstore 26 /* d3 */
        22: .line 5259
            lload 26 /* d3 */
            lload 24 /* d2 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 28 /* dividendHi */
        start local 28 // long dividendHi
        23: .line 5260
            lload 22 /* d1 */
            lload 20 /* d0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 30 /* dividendLo */
        start local 30 // long dividendLo
        24: .line 5262
            lload 28 /* dividendHi */
            lload 30 /* dividendLo */
            lload 4 /* divisor */
            iload 9 /* qsign */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 8 /* preferredScale */
            invokestatic java.math.BigDecimal.divideAndRound128:(JJJIIII)Ljava/math/BigDecimal;
            areturn
        end local 30 // long dividendLo
        end local 28 // long dividendHi
        end local 26 // long d3
        end local 24 // long d2
        end local 22 // long d1
        end local 20 // long d0
        end local 18 // long product
        end local 16 // long d1_lo
        end local 14 // long d1_hi
        end local 12 // long d0_lo
        end local 10 // long d0_hi
        end local 9 // int qsign
        end local 8 // int preferredScale
        end local 7 // int roundingMode
        end local 6 // int scale
        end local 4 // long divisor
        end local 2 // long dividend1
        end local 0 // long dividend0
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0       dividend0  J
            0   25     2       dividend1  J
            0   25     4         divisor  J
            0   25     6           scale  I
            0   25     7    roundingMode  I
            0   25     8  preferredScale  I
            1   25     9           qsign  I
            5   25    10           d0_hi  J
            6   25    12           d0_lo  J
            7   25    14           d1_hi  J
            8   25    16           d1_lo  J
            9   25    18         product  J
           10   25    20              d0  J
           11   25    22              d1  J
           14   25    24              d2  J
           18   25    26              d3  J
           23   25    28      dividendHi  J
           24   25    30      dividendLo  J
    MethodParameters:
                Name  Flags
      dividend0       
      dividend1       
      divisor         
      scale           
      roundingMode    
      preferredScale  

  private static java.math.BigDecimal divideAndRound128(long, long, long, int, int, int, int);
    descriptor: (JJJIIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=34, args_size=7
        start local 0 // long dividendHi
        start local 2 // long dividendLo
        start local 4 // long divisor
        start local 6 // int sign
        start local 7 // int scale
        start local 8 // int roundingMode
        start local 9 // int preferredScale
         0: .line 5274
            lload 0 /* dividendHi */
            lload 4 /* divisor */
            lcmp
            iflt 2
         1: .line 5275
            aconst_null
            areturn
         2: .line 5278
      StackMap locals:
      StackMap stack:
            lload 4 /* divisor */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            istore 10 /* shift */
        start local 10 // int shift
         3: .line 5279
            lload 4 /* divisor */
            iload 10 /* shift */
            lshl
            lstore 4 /* divisor */
         4: .line 5281
            lload 4 /* divisor */
            bipush 32
            lushr
            lstore 11 /* v1 */
        start local 11 // long v1
         5: .line 5282
            lload 4 /* divisor */
            ldc 4294967295
            land
            lstore 13 /* v0 */
        start local 13 // long v0
         6: .line 5284
            lload 2 /* dividendLo */
            iload 10 /* shift */
            lshl
            lstore 15 /* tmp */
        start local 15 // long tmp
         7: .line 5285
            lload 15 /* tmp */
            bipush 32
            lushr
            lstore 17 /* u1 */
        start local 17 // long u1
         8: .line 5286
            lload 15 /* tmp */
            ldc 4294967295
            land
            lstore 19 /* u0 */
        start local 19 // long u0
         9: .line 5288
            lload 0 /* dividendHi */
            iload 10 /* shift */
            lshl
            lload 2 /* dividendLo */
            bipush 64
            iload 10 /* shift */
            isub
            lushr
            lor
            lstore 15 /* tmp */
        10: .line 5289
            lload 15 /* tmp */
            ldc 4294967295
            land
            lstore 21 /* u2 */
        start local 21 // long u2
        11: .line 5291
            lload 11 /* v1 */
            lconst_1
            lcmp
            ifne 15
        12: .line 5292
            lload 15 /* tmp */
            lstore 23 /* q1 */
        start local 23 // long q1
        13: .line 5293
            lconst_0
            lstore 25 /* r_tmp */
        start local 25 // long r_tmp
        14: .line 5294
            goto 27
        end local 25 // long r_tmp
        end local 23 // long q1
      StackMap locals: long long long int int int int int long long long long long long
      StackMap stack:
        15: lload 15 /* tmp */
            lconst_0
            lcmp
            iflt 19
        16: .line 5295
            lload 15 /* tmp */
            lload 11 /* v1 */
            ldiv
            lstore 23 /* q1 */
        start local 23 // long q1
        17: .line 5296
            lload 15 /* tmp */
            lload 23 /* q1 */
            lload 11 /* v1 */
            lmul
            lsub
            lstore 25 /* r_tmp */
        start local 25 // long r_tmp
        18: .line 5297
            goto 27
        end local 25 // long r_tmp
        end local 23 // long q1
        19: .line 5298
      StackMap locals:
      StackMap stack:
            lload 15 /* tmp */
            lload 11 /* v1 */
            invokestatic java.math.BigDecimal.divRemNegativeLong:(JJ)[J
            astore 27 /* rq */
        start local 27 // long[] rq
        20: .line 5299
            aload 27 /* rq */
            iconst_1
            laload
            lstore 23 /* q1 */
        start local 23 // long q1
        21: .line 5300
            aload 27 /* rq */
            iconst_0
            laload
            lstore 25 /* r_tmp */
        end local 27 // long[] rq
        start local 25 // long r_tmp
        22: .line 5303
            goto 27
        23: .line 5304
      StackMap locals: long long
      StackMap stack:
            lload 23 /* q1 */
            lconst_1
            lsub
            lstore 23 /* q1 */
        24: .line 5305
            lload 25 /* r_tmp */
            lload 11 /* v1 */
            ladd
            lstore 25 /* r_tmp */
        25: .line 5306
            lload 25 /* r_tmp */
            ldc 4294967296
            lcmp
            iflt 27
        26: .line 5307
            goto 28
        27: .line 5303
      StackMap locals:
      StackMap stack:
            lload 23 /* q1 */
            ldc 4294967296
            lcmp
            ifge 23
            lload 23 /* q1 */
            lload 13 /* v0 */
            lmul
            lload 25 /* r_tmp */
            lload 17 /* u1 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            invokestatic java.math.BigDecimal.unsignedLongCompare:(JJ)Z
            ifne 23
        28: .line 5310
      StackMap locals:
      StackMap stack:
            lload 21 /* u2 */
            lload 17 /* u1 */
            lload 11 /* v1 */
            lload 13 /* v0 */
            lload 23 /* q1 */
            invokestatic java.math.BigDecimal.mulsub:(JJJJJ)J
            lstore 15 /* tmp */
        29: .line 5311
            lload 15 /* tmp */
            ldc 4294967295
            land
            lstore 17 /* u1 */
        30: .line 5313
            lload 11 /* v1 */
            lconst_1
            lcmp
            ifne 34
        31: .line 5314
            lload 15 /* tmp */
            lstore 27 /* q0 */
        start local 27 // long q0
        32: .line 5315
            lconst_0
            lstore 25 /* r_tmp */
        33: .line 5316
            goto 46
        end local 27 // long q0
      StackMap locals:
      StackMap stack:
        34: lload 15 /* tmp */
            lconst_0
            lcmp
            iflt 38
        35: .line 5317
            lload 15 /* tmp */
            lload 11 /* v1 */
            ldiv
            lstore 27 /* q0 */
        start local 27 // long q0
        36: .line 5318
            lload 15 /* tmp */
            lload 27 /* q0 */
            lload 11 /* v1 */
            lmul
            lsub
            lstore 25 /* r_tmp */
        37: .line 5319
            goto 46
        end local 27 // long q0
        38: .line 5320
      StackMap locals:
      StackMap stack:
            lload 15 /* tmp */
            lload 11 /* v1 */
            invokestatic java.math.BigDecimal.divRemNegativeLong:(JJ)[J
            astore 29 /* rq */
        start local 29 // long[] rq
        39: .line 5321
            aload 29 /* rq */
            iconst_1
            laload
            lstore 27 /* q0 */
        start local 27 // long q0
        40: .line 5322
            aload 29 /* rq */
            iconst_0
            laload
            lstore 25 /* r_tmp */
        end local 29 // long[] rq
        41: .line 5325
            goto 46
        42: .line 5326
      StackMap locals: long
      StackMap stack:
            lload 27 /* q0 */
            lconst_1
            lsub
            lstore 27 /* q0 */
        43: .line 5327
            lload 25 /* r_tmp */
            lload 11 /* v1 */
            ladd
            lstore 25 /* r_tmp */
        44: .line 5328
            lload 25 /* r_tmp */
            ldc 4294967296
            lcmp
            iflt 46
        45: .line 5329
            goto 47
        46: .line 5325
      StackMap locals:
      StackMap stack:
            lload 27 /* q0 */
            ldc 4294967296
            lcmp
            ifge 42
            lload 27 /* q0 */
            lload 13 /* v0 */
            lmul
            lload 25 /* r_tmp */
            lload 19 /* u0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            invokestatic java.math.BigDecimal.unsignedLongCompare:(JJ)Z
            ifne 42
        47: .line 5332
      StackMap locals:
      StackMap stack:
            lload 23 /* q1 */
            l2i
            ifge 60
        48: .line 5335
            new java.math.MutableBigInteger
            dup
            iconst_2
            newarray 10
            dup
            iconst_0
            lload 23 /* q1 */
            l2i
            iastore
            dup
            iconst_1
            lload 27 /* q0 */
            l2i
            iastore
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 29 /* mq */
        start local 29 // java.math.MutableBigInteger mq
        49: .line 5336
            iload 8 /* roundingMode */
            iconst_1
            if_icmpne 51
            iload 7 /* scale */
            iload 9 /* preferredScale */
            if_icmpne 51
        50: .line 5337
            aload 29 /* mq */
            iload 6 /* sign */
            iload 7 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        51: .line 5339
      StackMap locals: java.math.MutableBigInteger
      StackMap stack:
            lload 17 /* u1 */
            lload 19 /* u0 */
            lload 11 /* v1 */
            lload 13 /* v0 */
            lload 27 /* q0 */
            invokestatic java.math.BigDecimal.mulsub:(JJJJJ)J
            iload 10 /* shift */
            lushr
            lstore 30 /* r */
        start local 30 // long r
        52: .line 5340
            lload 30 /* r */
            lconst_0
            lcmp
            ifeq 56
        53: .line 5341
            lload 4 /* divisor */
            iload 10 /* shift */
            lushr
            iload 8 /* roundingMode */
            iload 6 /* sign */
            aload 29 /* mq */
            lload 30 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIILjava/math/MutableBigInteger;J)Z
            ifeq 55
        54: .line 5342
            aload 29 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        55: .line 5344
      StackMap locals: long
      StackMap stack:
            aload 29 /* mq */
            iload 6 /* sign */
            iload 7 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        56: .line 5346
      StackMap locals:
      StackMap stack:
            iload 9 /* preferredScale */
            iload 7 /* scale */
            if_icmpeq 59
        57: .line 5347
            aload 29 /* mq */
            iload 6 /* sign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            astore 32 /* intVal */
        start local 32 // java.math.BigInteger intVal
        58: .line 5348
            aload 32 /* intVal */
            iload 7 /* scale */
            iload 9 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 32 // java.math.BigInteger intVal
        59: .line 5350
      StackMap locals:
      StackMap stack:
            aload 29 /* mq */
            iload 6 /* sign */
            iload 7 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        end local 30 // long r
        end local 29 // java.math.MutableBigInteger mq
        60: .line 5355
      StackMap locals:
      StackMap stack:
            lload 23 /* q1 */
            lload 27 /* q0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 29 /* q */
        start local 29 // long q
        61: .line 5356
            lload 29 /* q */
            iload 6 /* sign */
            i2l
            lmul
            lstore 29 /* q */
        62: .line 5358
            iload 8 /* roundingMode */
            iconst_1
            if_icmpne 64
            iload 7 /* scale */
            iload 9 /* preferredScale */
            if_icmpne 64
        63: .line 5359
            lload 29 /* q */
            iload 7 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        64: .line 5361
      StackMap locals: long
      StackMap stack:
            lload 17 /* u1 */
            lload 19 /* u0 */
            lload 11 /* v1 */
            lload 13 /* v0 */
            lload 27 /* q0 */
            invokestatic java.math.BigDecimal.mulsub:(JJJJJ)J
            iload 10 /* shift */
            lushr
            lstore 31 /* r */
        start local 31 // long r
        65: .line 5362
            lload 31 /* r */
            lconst_0
            lcmp
            ifeq 70
        66: .line 5363
            lload 4 /* divisor */
            iload 10 /* shift */
            lushr
            iload 8 /* roundingMode */
            iload 6 /* sign */
            lload 29 /* q */
            lload 31 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIIJJ)Z
            istore 33 /* increment */
        start local 33 // boolean increment
        67: .line 5364
            iload 33 /* increment */
            ifeq 68
            lload 29 /* q */
            iload 6 /* sign */
            i2l
            ladd
            goto 69
      StackMap locals: long int
      StackMap stack:
        68: lload 29 /* q */
      StackMap locals:
      StackMap stack: long
        69: iload 7 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 33 // boolean increment
        70: .line 5366
      StackMap locals:
      StackMap stack:
            iload 9 /* preferredScale */
            iload 7 /* scale */
            if_icmpeq 72
        71: .line 5367
            lload 29 /* q */
            iload 7 /* scale */
            iload 9 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        72: .line 5369
      StackMap locals:
      StackMap stack:
            lload 29 /* q */
            iload 7 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 31 // long r
        end local 29 // long q
        end local 27 // long q0
        end local 25 // long r_tmp
        end local 23 // long q1
        end local 21 // long u2
        end local 19 // long u0
        end local 17 // long u1
        end local 15 // long tmp
        end local 13 // long v0
        end local 11 // long v1
        end local 10 // int shift
        end local 9 // int preferredScale
        end local 8 // int roundingMode
        end local 7 // int scale
        end local 6 // int sign
        end local 4 // long divisor
        end local 2 // long dividendLo
        end local 0 // long dividendHi
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   73     0      dividendHi  J
            0   73     2      dividendLo  J
            0   73     4         divisor  J
            0   73     6            sign  I
            0   73     7           scale  I
            0   73     8    roundingMode  I
            0   73     9  preferredScale  I
            3   73    10           shift  I
            5   73    11              v1  J
            6   73    13              v0  J
            7   73    15             tmp  J
            8   73    17              u1  J
            9   73    19              u0  J
           11   73    21              u2  J
           13   15    23              q1  J
           17   19    23              q1  J
           21   73    23              q1  J
           14   15    25           r_tmp  J
           18   19    25           r_tmp  J
           22   73    25           r_tmp  J
           20   22    27              rq  [J
           32   34    27              q0  J
           36   38    27              q0  J
           40   73    27              q0  J
           39   41    29              rq  [J
           49   60    29              mq  Ljava/math/MutableBigInteger;
           52   60    30               r  J
           58   59    32          intVal  Ljava/math/BigInteger;
           61   73    29               q  J
           65   73    31               r  J
           67   70    33       increment  Z
    MethodParameters:
                Name  Flags
      dividendHi      final
      dividendLo      final
      divisor         
      sign            
      scale           
      roundingMode    
      preferredScale  

  private static java.math.BigDecimal roundedTenPower(int, int, int, int);
    descriptor: (IIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // int qsign
        start local 1 // int raise
        start local 2 // int scale
        start local 3 // int preferredScale
         0: .line 5379
            iload 2 /* scale */
            iload 3 /* preferredScale */
            if_icmple 5
         1: .line 5380
            iload 2 /* scale */
            iload 3 /* preferredScale */
            isub
            istore 4 /* diff */
        start local 4 // int diff
         2: .line 5381
            iload 4 /* diff */
            iload 1 /* raise */
            if_icmpge 4
         3: .line 5382
            iload 1 /* raise */
            iload 4 /* diff */
            isub
            iload 0 /* qsign */
            iload 3 /* preferredScale */
            invokestatic java.math.BigDecimal.scaledTenPow:(III)Ljava/math/BigDecimal;
            areturn
         4: .line 5384
      StackMap locals: int
      StackMap stack:
            iload 0 /* qsign */
            i2l
            iload 2 /* scale */
            iload 1 /* raise */
            isub
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 4 // int diff
         5: .line 5387
      StackMap locals:
      StackMap stack:
            iload 1 /* raise */
            iload 0 /* qsign */
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.scaledTenPow:(III)Ljava/math/BigDecimal;
            areturn
        end local 3 // int preferredScale
        end local 2 // int scale
        end local 1 // int raise
        end local 0 // int qsign
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0           qsign  I
            0    6     1           raise  I
            0    6     2           scale  I
            0    6     3  preferredScale  I
            2    5     4            diff  I
    MethodParameters:
                Name  Flags
      qsign           
      raise           
      scale           
      preferredScale  

  static java.math.BigDecimal scaledTenPow(int, int, int);
    descriptor: (III)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // int n
        start local 1 // int sign
        start local 2 // int scale
         0: .line 5392
            iload 0 /* n */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 2
         1: .line 5393
            iload 1 /* sign */
            i2l
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 0 /* n */
            laload
            lmul
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         2: .line 5395
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            astore 3 /* unscaledVal */
        start local 3 // java.math.BigInteger unscaledVal
         3: .line 5396
            iload 1 /* sign */
            iconst_m1
            if_icmpne 5
         4: .line 5397
            aload 3 /* unscaledVal */
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 3 /* unscaledVal */
         5: .line 5399
      StackMap locals: java.math.BigInteger
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 3 /* unscaledVal */
            ldc -9223372036854775808
            iload 2 /* scale */
            iload 0 /* n */
            iconst_1
            iadd
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // java.math.BigInteger unscaledVal
        end local 2 // int scale
        end local 1 // int sign
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0            n  I
            0    6     1         sign  I
            0    6     2        scale  I
            3    6     3  unscaledVal  Ljava/math/BigInteger;
    MethodParameters:
       Name  Flags
      n      
      sign   
      scale  

  private static long[] divRemNegativeLong(long, long);
    descriptor: (JJ)[J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // long n
        start local 2 // long d
         0: .line 5413
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 0 /* n */
            lconst_0
            lcmp
            iflt 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Non-negative numerator "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 0 /* n */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 5414
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 2
            lload 2 /* d */
            lconst_1
            lcmp
            ifne 2
            new java.lang.AssertionError
            dup
            ldc "Unity denominator"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 5417
      StackMap locals:
      StackMap stack:
            lload 0 /* n */
            iconst_1
            lushr
            lload 2 /* d */
            iconst_1
            lushr
            ldiv
            lstore 4 /* q */
        start local 4 // long q
         3: .line 5418
            lload 0 /* n */
            lload 4 /* q */
            lload 2 /* d */
            lmul
            lsub
            lstore 6 /* r */
        start local 6 // long r
         4: .line 5421
            goto 7
         5: .line 5422
      StackMap locals: long long
      StackMap stack:
            lload 6 /* r */
            lload 2 /* d */
            ladd
            lstore 6 /* r */
         6: .line 5423
            lload 4 /* q */
            lconst_1
            lsub
            lstore 4 /* q */
         7: .line 5421
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            lconst_0
            lcmp
            iflt 5
         8: .line 5425
            goto 11
         9: .line 5426
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            lload 2 /* d */
            lsub
            lstore 6 /* r */
        10: .line 5427
            lload 4 /* q */
            lconst_1
            ladd
            lstore 4 /* q */
        11: .line 5425
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            lload 2 /* d */
            lcmp
            ifge 9
        12: .line 5431
            iconst_2
            newarray 11
            dup
            iconst_0
            lload 6 /* r */
            lastore
            dup
            iconst_1
            lload 4 /* q */
            lastore
            areturn
        end local 6 // long r
        end local 4 // long q
        end local 2 // long d
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0     n  J
            0   13     2     d  J
            3   13     4     q  J
            4   13     6     r  J
    MethodParameters:
      Name  Flags
      n     
      d     

  private static long make64(long, long);
    descriptor: (JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long hi
        start local 2 // long lo
         0: .line 5435
            lload 0 /* hi */
            bipush 32
            lshl
            lload 2 /* lo */
            lor
            lreturn
        end local 2 // long lo
        end local 0 // long hi
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    hi  J
            0    1     2    lo  J
    MethodParameters:
      Name  Flags
      hi    
      lo    

  private static long mulsub(long, long, long, long, long);
    descriptor: (JJJJJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=5
        start local 0 // long u1
        start local 2 // long u0
        start local 4 // long v1
        start local 6 // long v0
        start local 8 // long q0
         0: .line 5439
            lload 2 /* u0 */
            lload 8 /* q0 */
            lload 6 /* v0 */
            lmul
            lsub
            lstore 10 /* tmp */
        start local 10 // long tmp
         1: .line 5440
            lload 0 /* u1 */
            lload 10 /* tmp */
            bipush 32
            lushr
            ladd
            lload 8 /* q0 */
            lload 4 /* v1 */
            lmul
            lsub
            lload 10 /* tmp */
            ldc 4294967295
            land
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lreturn
        end local 10 // long tmp
        end local 8 // long q0
        end local 6 // long v0
        end local 4 // long v1
        end local 2 // long u0
        end local 0 // long u1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    u1  J
            0    2     2    u0  J
            0    2     4    v1  J
            0    2     6    v0  J
            0    2     8    q0  J
            1    2    10   tmp  J
    MethodParameters:
      Name  Flags
      u1    
      u0    
      v1    final
      v0    final
      q0    

  private static boolean unsignedLongCompare(long, long);
    descriptor: (JJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // long one
        start local 2 // long two
         0: .line 5444
            lload 0 /* one */
            ldc -9223372036854775808
            ladd
            lload 2 /* two */
            ldc -9223372036854775808
            ladd
            lcmp
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // long two
        end local 0 // long one
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   one  J
            0    2     2   two  J
    MethodParameters:
      Name  Flags
      one   
      two   

  private static boolean unsignedLongCompareEq(long, long);
    descriptor: (JJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // long one
        start local 2 // long two
         0: .line 5448
            lload 0 /* one */
            ldc -9223372036854775808
            ladd
            lload 2 /* two */
            ldc -9223372036854775808
            ladd
            lcmp
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // long two
        end local 0 // long one
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   one  J
            0    2     2   two  J
    MethodParameters:
      Name  Flags
      one   
      two   

  private static int compareMagnitudeNormalized(long, int, long, int);
    descriptor: (JIJI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // long ys
        start local 5 // int yscale
         0: .line 5455
            iload 2 /* xscale */
            iload 5 /* yscale */
            isub
            istore 6 /* sdiff */
        start local 6 // int sdiff
         1: .line 5456
            iload 6 /* sdiff */
            ifeq 6
         2: .line 5457
            iload 6 /* sdiff */
            ifge 5
         3: .line 5458
            lload 0 /* xs */
            iload 6 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 0 /* xs */
         4: .line 5459
            goto 6
         5: .line 5460
      StackMap locals: int
      StackMap stack:
            lload 3 /* ys */
            iload 6 /* sdiff */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 3 /* ys */
         6: .line 5463
      StackMap locals:
      StackMap stack:
            lload 0 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 10
         7: .line 5464
            lload 3 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 8
            lload 0 /* xs */
            lload 3 /* ys */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_m1
      StackMap locals:
      StackMap stack: int
         9: ireturn
        10: .line 5466
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // int sdiff
        end local 5 // int yscale
        end local 3 // long ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0      xs  J
            0   11     2  xscale  I
            0   11     3      ys  J
            0   11     5  yscale  I
            1   11     6   sdiff  I
    MethodParameters:
        Name  Flags
      xs      
      xscale  
      ys      
      yscale  

  private static int compareMagnitudeNormalized(long, int, java.math.BigInteger, int);
    descriptor: (JILjava/math/BigInteger;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // java.math.BigInteger ys
        start local 4 // int yscale
         0: .line 5472
            lload 0 /* xs */
            lconst_0
            lcmp
            ifne 2
         1: .line 5473
            iconst_m1
            ireturn
         2: .line 5474
      StackMap locals:
      StackMap stack:
            iload 2 /* xscale */
            iload 4 /* yscale */
            isub
            istore 5 /* sdiff */
        start local 5 // int sdiff
         3: .line 5475
            iload 5 /* sdiff */
            ifge 6
         4: .line 5476
            lload 0 /* xs */
            iload 5 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            ldc -9223372036854775808
            lcmp
            ifne 6
         5: .line 5477
            lload 0 /* xs */
            iload 5 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            aload 3 /* ys */
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
         6: .line 5480
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        end local 5 // int sdiff
        end local 4 // int yscale
        end local 3 // java.math.BigInteger ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0      xs  J
            0    7     2  xscale  I
            0    7     3      ys  Ljava/math/BigInteger;
            0    7     4  yscale  I
            3    7     5   sdiff  I
    MethodParameters:
        Name  Flags
      xs      
      xscale  
      ys      
      yscale  

  private static int compareMagnitudeNormalized(java.math.BigInteger, int, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.math.BigInteger xs
        start local 1 // int xscale
        start local 2 // java.math.BigInteger ys
        start local 3 // int yscale
         0: .line 5485
            iload 1 /* xscale */
            iload 3 /* yscale */
            isub
            istore 4 /* sdiff */
        start local 4 // int sdiff
         1: .line 5486
            iload 4 /* sdiff */
            ifge 3
         2: .line 5487
            aload 0 /* xs */
            iload 4 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            aload 2 /* ys */
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
         3: .line 5489
      StackMap locals: int
      StackMap stack:
            aload 0 /* xs */
            aload 2 /* ys */
            iload 4 /* sdiff */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 4 // int sdiff
        end local 3 // int yscale
        end local 2 // java.math.BigInteger ys
        end local 1 // int xscale
        end local 0 // java.math.BigInteger xs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0      xs  Ljava/math/BigInteger;
            0    4     1  xscale  I
            0    4     2      ys  Ljava/math/BigInteger;
            0    4     3  yscale  I
            1    4     4   sdiff  I
    MethodParameters:
        Name  Flags
      xs      
      xscale  
      ys      
      yscale  

  private static long multiply(long, long);
    descriptor: (JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 5494
            lload 0 /* x */
            lload 2 /* y */
            lmul
            lstore 4 /* product */
        start local 4 // long product
         1: .line 5495
            lload 0 /* x */
            invokestatic java.lang.Math.abs:(J)J
            lstore 6 /* ax */
        start local 6 // long ax
         2: .line 5496
            lload 2 /* y */
            invokestatic java.lang.Math.abs:(J)J
            lstore 8 /* ay */
        start local 8 // long ay
         3: .line 5497
            lload 6 /* ax */
            lload 8 /* ay */
            lor
            bipush 31
            lushr
            lconst_0
            lcmp
            ifeq 4
            lload 2 /* y */
            lconst_0
            lcmp
            ifeq 4
            lload 4 /* product */
            lload 2 /* y */
            ldiv
            lload 0 /* x */
            lcmp
            ifne 5
         4: .line 5498
      StackMap locals: long long long
      StackMap stack:
            lload 4 /* product */
            lreturn
         5: .line 5500
      StackMap locals:
      StackMap stack:
            ldc -9223372036854775808
            lreturn
        end local 8 // long ay
        end local 6 // long ax
        end local 4 // long product
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0        x  J
            0    6     2        y  J
            1    6     4  product  J
            2    6     6       ax  J
            3    6     8       ay  J
    MethodParameters:
      Name  Flags
      x     
      y     

  private static java.math.BigDecimal multiply(long, long, int);
    descriptor: (JJI)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // long x
        start local 2 // long y
        start local 4 // int scale
         0: .line 5504
            lload 0 /* x */
            lload 2 /* y */
            invokestatic java.math.BigDecimal.multiply:(JJ)J
            lstore 5 /* product */
        start local 5 // long product
         1: .line 5505
            lload 5 /* product */
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 5506
            lload 5 /* product */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         3: .line 5508
      StackMap locals: long
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* x */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            lload 2 /* y */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 4 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 5 // long product
        end local 4 // int scale
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0        x  J
            0    4     2        y  J
            0    4     4    scale  I
            1    4     5  product  J
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  

  private static java.math.BigDecimal multiply(long, java.math.BigInteger, int);
    descriptor: (JLjava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // long x
        start local 2 // java.math.BigInteger y
        start local 3 // int scale
         0: .line 5512
            lload 0 /* x */
            lconst_0
            lcmp
            ifne 2
         1: .line 5513
            iload 3 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         2: .line 5515
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 2 /* y */
            lload 0 /* x */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 3 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // int scale
        end local 2 // java.math.BigInteger y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0      x  J
            0    3     2      y  Ljava/math/BigInteger;
            0    3     3  scale  I
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  

  private static java.math.BigDecimal multiply(java.math.BigInteger, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // java.math.BigInteger x
        start local 1 // java.math.BigInteger y
        start local 2 // int scale
         0: .line 5519
            new java.math.BigDecimal
            dup
            aload 0 /* x */
            aload 1 /* y */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 2 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 2 // int scale
        end local 1 // java.math.BigInteger y
        end local 0 // java.math.BigInteger x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      x  Ljava/math/BigInteger;
            0    1     1      y  Ljava/math/BigInteger;
            0    1     2  scale  I
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  

  private static java.math.BigDecimal multiplyAndRound(long, long, int, java.math.MathContext);
    descriptor: (JJILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=30, args_size=4
        start local 0 // long x
        start local 2 // long y
        start local 4 // int scale
        start local 5 // java.math.MathContext mc
         0: .line 5526
            lload 0 /* x */
            lload 2 /* y */
            invokestatic java.math.BigDecimal.multiply:(JJ)J
            lstore 6 /* product */
        start local 6 // long product
         1: .line 5527
            lload 6 /* product */
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 5528
            lload 6 /* product */
            iload 4 /* scale */
            aload 5 /* mc */
            invokestatic java.math.BigDecimal.doRound:(JILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         3: .line 5531
      StackMap locals: long
      StackMap stack:
            iconst_1
            istore 8 /* rsign */
        start local 8 // int rsign
         4: .line 5532
            lload 0 /* x */
            lconst_0
            lcmp
            ifge 7
         5: .line 5533
            lload 0 /* x */
            lneg
            lstore 0 /* x */
         6: .line 5534
            iconst_m1
            istore 8 /* rsign */
         7: .line 5536
      StackMap locals: int
      StackMap stack:
            lload 2 /* y */
            lconst_0
            lcmp
            ifge 10
         8: .line 5537
            lload 2 /* y */
            lneg
            lstore 2 /* y */
         9: .line 5538
            iload 8 /* rsign */
            iconst_m1
            imul
            istore 8 /* rsign */
        10: .line 5541
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            bipush 32
            lushr
            lstore 9 /* m0_hi */
        start local 9 // long m0_hi
        11: .line 5542
            lload 0 /* x */
            ldc 4294967295
            land
            lstore 11 /* m0_lo */
        start local 11 // long m0_lo
        12: .line 5543
            lload 2 /* y */
            bipush 32
            lushr
            lstore 13 /* m1_hi */
        start local 13 // long m1_hi
        13: .line 5544
            lload 2 /* y */
            ldc 4294967295
            land
            lstore 15 /* m1_lo */
        start local 15 // long m1_lo
        14: .line 5545
            lload 11 /* m0_lo */
            lload 15 /* m1_lo */
            lmul
            lstore 6 /* product */
        15: .line 5546
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 17 /* m0 */
        start local 17 // long m0
        16: .line 5547
            lload 6 /* product */
            bipush 32
            lushr
            lstore 19 /* m1 */
        start local 19 // long m1
        17: .line 5548
            lload 9 /* m0_hi */
            lload 15 /* m1_lo */
            lmul
            lload 19 /* m1 */
            ladd
            lstore 6 /* product */
        18: .line 5549
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 19 /* m1 */
        19: .line 5550
            lload 6 /* product */
            bipush 32
            lushr
            lstore 21 /* m2 */
        start local 21 // long m2
        20: .line 5551
            lload 11 /* m0_lo */
            lload 13 /* m1_hi */
            lmul
            lload 19 /* m1 */
            ladd
            lstore 6 /* product */
        21: .line 5552
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 19 /* m1 */
        22: .line 5553
            lload 21 /* m2 */
            lload 6 /* product */
            bipush 32
            lushr
            ladd
            lstore 21 /* m2 */
        23: .line 5554
            lload 21 /* m2 */
            bipush 32
            lushr
            lstore 23 /* m3 */
        start local 23 // long m3
        24: .line 5555
            lload 21 /* m2 */
            ldc 4294967295
            land
            lstore 21 /* m2 */
        25: .line 5556
            lload 9 /* m0_hi */
            lload 13 /* m1_hi */
            lmul
            lload 21 /* m2 */
            ladd
            lstore 6 /* product */
        26: .line 5557
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 21 /* m2 */
        27: .line 5558
            lload 6 /* product */
            bipush 32
            lushr
            lload 23 /* m3 */
            ladd
            ldc 4294967295
            land
            lstore 23 /* m3 */
        28: .line 5559
            lload 23 /* m3 */
            lload 21 /* m2 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 25 /* mHi */
        start local 25 // long mHi
        29: .line 5560
            lload 19 /* m1 */
            lload 17 /* m0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 27 /* mLo */
        start local 27 // long mLo
        30: .line 5561
            lload 25 /* mHi */
            lload 27 /* mLo */
            iload 8 /* rsign */
            iload 4 /* scale */
            aload 5 /* mc */
            invokestatic java.math.BigDecimal.doRound128:(JJIILjava/math/MathContext;)Ljava/math/BigDecimal;
            astore 29 /* res */
        start local 29 // java.math.BigDecimal res
        31: .line 5562
            aload 29 /* res */
            ifnull 33
        32: .line 5563
            aload 29 /* res */
            areturn
        33: .line 5565
      StackMap locals: long long int java.math.MathContext long int long long long long long long long long long long java.math.BigDecimal
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* x */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            lload 2 /* y */
            iload 8 /* rsign */
            i2l
            lmul
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 4 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            astore 29 /* res */
        34: .line 5566
            aload 29 /* res */
            aload 5 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 29 // java.math.BigDecimal res
        end local 27 // long mLo
        end local 25 // long mHi
        end local 23 // long m3
        end local 21 // long m2
        end local 19 // long m1
        end local 17 // long m0
        end local 15 // long m1_lo
        end local 13 // long m1_hi
        end local 11 // long m0_lo
        end local 9 // long m0_hi
        end local 8 // int rsign
        end local 6 // long product
        end local 5 // java.math.MathContext mc
        end local 4 // int scale
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   35     0        x  J
            0   35     2        y  J
            0   35     4    scale  I
            0   35     5       mc  Ljava/math/MathContext;
            1   35     6  product  J
            4   35     8    rsign  I
           11   35     9    m0_hi  J
           12   35    11    m0_lo  J
           13   35    13    m1_hi  J
           14   35    15    m1_lo  J
           16   35    17       m0  J
           17   35    19       m1  J
           20   35    21       m2  J
           24   35    23       m3  J
           29   35    25      mHi  J
           30   35    27      mLo  J
           31   35    29      res  Ljava/math/BigDecimal;
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  
      mc     

  private static java.math.BigDecimal multiplyAndRound(long, java.math.BigInteger, int, java.math.MathContext);
    descriptor: (JLjava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // long x
        start local 2 // java.math.BigInteger y
        start local 3 // int scale
        start local 4 // java.math.MathContext mc
         0: .line 5570
            lload 0 /* x */
            lconst_0
            lcmp
            ifne 2
         1: .line 5571
            iload 3 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         2: .line 5573
      StackMap locals:
      StackMap stack:
            aload 2 /* y */
            lload 0 /* x */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            iload 3 /* scale */
            aload 4 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 4 // java.math.MathContext mc
        end local 3 // int scale
        end local 2 // java.math.BigInteger y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0      x  J
            0    3     2      y  Ljava/math/BigInteger;
            0    3     3  scale  I
            0    3     4     mc  Ljava/math/MathContext;
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  
      mc     

  private static java.math.BigDecimal multiplyAndRound(java.math.BigInteger, java.math.BigInteger, int, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.math.BigInteger x
        start local 1 // java.math.BigInteger y
        start local 2 // int scale
        start local 3 // java.math.MathContext mc
         0: .line 5577
            aload 0 /* x */
            aload 1 /* y */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            iload 2 /* scale */
            aload 3 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 3 // java.math.MathContext mc
        end local 2 // int scale
        end local 1 // java.math.BigInteger y
        end local 0 // java.math.BigInteger x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      x  Ljava/math/BigInteger;
            0    1     1      y  Ljava/math/BigInteger;
            0    1     2  scale  I
            0    1     3     mc  Ljava/math/MathContext;
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  
      mc     

  private static java.math.BigDecimal doRound128(long, long, int, int, java.math.MathContext);
    descriptor: (JJIILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=10, args_size=5
        start local 0 // long hi
        start local 2 // long lo
        start local 4 // int sign
        start local 5 // int scale
        start local 6 // java.math.MathContext mc
         0: .line 5585
            aload 6 /* mc */
            getfield java.math.MathContext.precision:I
            istore 7 /* mcp */
        start local 7 // int mcp
         1: .line 5587
            aconst_null
            astore 9 /* res */
        start local 9 // java.math.BigDecimal res
         2: .line 5588
            lload 0 /* hi */
            lload 2 /* lo */
            invokestatic java.math.BigDecimal.precision:(JJ)I
            iload 7 /* mcp */
            isub
            dup
            istore 8 /* drop */
        start local 8 // int drop
         3: ifle 6
            iload 8 /* drop */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 6
         4: .line 5589
            iload 5 /* scale */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 5 /* scale */
         5: .line 5590
            lload 0 /* hi */
            lload 2 /* lo */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 8 /* drop */
            laload
            iload 4 /* sign */
            iload 5 /* scale */
            aload 6 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound128:(JJJIIII)Ljava/math/BigDecimal;
            astore 9 /* res */
         6: .line 5592
      StackMap locals: int int java.math.BigDecimal
      StackMap stack:
            aload 9 /* res */
            ifnull 8
         7: .line 5593
            aload 9 /* res */
            aload 6 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         8: .line 5595
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 9 // java.math.BigDecimal res
        end local 8 // int drop
        end local 7 // int mcp
        end local 6 // java.math.MathContext mc
        end local 5 // int scale
        end local 4 // int sign
        end local 2 // long lo
        end local 0 // long hi
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0     hi  J
            0    9     2     lo  J
            0    9     4   sign  I
            0    9     5  scale  I
            0    9     6     mc  Ljava/math/MathContext;
            1    9     7    mcp  I
            3    9     8   drop  I
            2    9     9    res  Ljava/math/BigDecimal;
    MethodParameters:
       Name  Flags
      hi     
      lo     
      sign   
      scale  
      mc     

  private static int precision(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // long hi
        start local 2 // long lo
         0: .line 5625
            lload 0 /* hi */
            lconst_0
            lcmp
            ifne 6
         1: .line 5626
            lload 2 /* lo */
            lconst_0
            lcmp
            iflt 3
         2: .line 5627
            lload 2 /* lo */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            ireturn
         3: .line 5629
      StackMap locals:
      StackMap stack:
            lload 2 /* lo */
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            iconst_0
            aaload
            iconst_1
            laload
            invokestatic java.math.BigDecimal.unsignedLongCompareEq:(JJ)Z
            ifeq 4
            bipush 20
            goto 5
      StackMap locals:
      StackMap stack:
         4: bipush 19
      StackMap locals:
      StackMap stack: int
         5: ireturn
         6: .line 5632
      StackMap locals:
      StackMap stack:
            sipush 128
            lload 0 /* hi */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            isub
            iconst_1
            iadd
            sipush 1233
            imul
            bipush 12
            iushr
            istore 4 /* r */
        start local 4 // int r
         7: .line 5633
            iload 4 /* r */
            bipush 19
            isub
            istore 5 /* idx */
        start local 5 // int idx
         8: .line 5634
            iload 5 /* idx */
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            arraylength
            if_icmpge 12
            lload 0 /* hi */
            lload 2 /* lo */
         9: .line 5635
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            iload 5 /* idx */
            aaload
            iconst_0
            laload
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            iload 5 /* idx */
            aaload
            iconst_1
            laload
        10: .line 5634
            invokestatic java.math.BigDecimal.longLongCompareMagnitude:(JJJJ)Z
        11: .line 5635
            ifeq 13
      StackMap locals: int int
      StackMap stack:
        12: iload 4 /* r */
            goto 14
      StackMap locals:
      StackMap stack:
        13: iload 4 /* r */
            iconst_1
            iadd
        14: .line 5634
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 5 // int idx
        end local 4 // int r
        end local 2 // long lo
        end local 0 // long hi
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0    hi  J
            0   15     2    lo  J
            7   15     4     r  I
            8   15     5   idx  I
    MethodParameters:
      Name  Flags
      hi    
      lo    

  private static boolean longLongCompareMagnitude(long, long, long, long);
    descriptor: (JJJJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // long hi0
        start local 2 // long lo0
        start local 4 // long hi1
        start local 6 // long lo1
         0: .line 5643
            lload 0 /* hi0 */
            lload 4 /* hi1 */
            lcmp
            ifeq 3
         1: .line 5644
            lload 0 /* hi0 */
            lload 4 /* hi1 */
            lcmp
            ifge 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 5646
      StackMap locals:
      StackMap stack:
            lload 2 /* lo0 */
            ldc -9223372036854775808
            ladd
            lload 6 /* lo1 */
            ldc -9223372036854775808
            ladd
            lcmp
            ifge 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 6 // long lo1
        end local 4 // long hi1
        end local 2 // long lo0
        end local 0 // long hi0
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   hi0  J
            0    5     2   lo0  J
            0    5     4   hi1  J
            0    5     6   lo1  J
    MethodParameters:
      Name  Flags
      hi0   
      lo0   
      hi1   
      lo1   

  private static java.math.BigDecimal divide(long, int, long, int, int, int);
    descriptor: (JIJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=13, args_size=6
        start local 0 // long dividend
        start local 2 // int dividendScale
        start local 3 // long divisor
        start local 5 // int divisorScale
        start local 6 // int scale
        start local 7 // int roundingMode
         0: .line 5650
            lload 0 /* dividend */
            iload 6 /* scale */
            i2l
            iload 5 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            iload 2 /* dividendScale */
            if_icmple 12
         1: .line 5651
            iload 6 /* scale */
            iload 5 /* divisorScale */
            iadd
            istore 8 /* newScale */
        start local 8 // int newScale
         2: .line 5652
            iload 8 /* newScale */
            iload 2 /* dividendScale */
            isub
            istore 9 /* raise */
        start local 9 // int raise
         3: .line 5653
            iload 9 /* raise */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 10
         4: .line 5654
            lload 0 /* dividend */
            lstore 10 /* xs */
        start local 10 // long xs
         5: .line 5655
            lload 10 /* xs */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 10 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 7
         6: .line 5656
            lload 10 /* xs */
            lload 3 /* divisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            areturn
         7: .line 5658
      StackMap locals: int int long
      StackMap stack:
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* raise */
            laload
            lload 0 /* dividend */
            lload 3 /* divisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.multiplyDivideAndRound:(JJJIII)Ljava/math/BigDecimal;
            astore 12 /* q */
        start local 12 // java.math.BigDecimal q
         8: .line 5659
            aload 12 /* q */
            ifnull 10
         9: .line 5660
            aload 12 /* q */
            areturn
        end local 12 // java.math.BigDecimal q
        end local 10 // long xs
        10: .line 5663
      StackMap locals:
      StackMap stack:
            lload 0 /* dividend */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 10 /* scaledDividend */
        start local 10 // java.math.BigInteger scaledDividend
        11: .line 5664
            aload 10 /* scaledDividend */
            lload 3 /* divisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        end local 10 // java.math.BigInteger scaledDividend
        end local 9 // int raise
        end local 8 // int newScale
        12: .line 5666
      StackMap locals:
      StackMap stack:
            lload 3 /* divisor */
            iload 2 /* dividendScale */
            i2l
            iload 6 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 8 /* newScale */
        start local 8 // int newScale
        13: .line 5667
            iload 8 /* newScale */
            iload 5 /* divisorScale */
            isub
            istore 9 /* raise */
        start local 9 // int raise
        14: .line 5668
            iload 9 /* raise */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 18
        15: .line 5669
            lload 3 /* divisor */
            lstore 10 /* ys */
        start local 10 // long ys
        16: .line 5670
            lload 10 /* ys */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 10 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 18
        17: .line 5671
            lload 0 /* dividend */
            lload 10 /* ys */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            areturn
        end local 10 // long ys
        18: .line 5674
      StackMap locals: int int
      StackMap stack:
            lload 3 /* divisor */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 10 /* scaledDivisor */
        start local 10 // java.math.BigInteger scaledDivisor
        19: .line 5675
            lload 0 /* dividend */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aload 10 /* scaledDivisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 10 // java.math.BigInteger scaledDivisor
        end local 9 // int raise
        end local 8 // int newScale
        end local 7 // int roundingMode
        end local 6 // int scale
        end local 5 // int divisorScale
        end local 3 // long divisor
        end local 2 // int dividendScale
        end local 0 // long dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0        dividend  J
            0   20     2   dividendScale  I
            0   20     3         divisor  J
            0   20     5    divisorScale  I
            0   20     6           scale  I
            0   20     7    roundingMode  I
            2   12     8        newScale  I
            3   12     9           raise  I
            5   10    10              xs  J
            8   10    12               q  Ljava/math/BigDecimal;
           11   12    10  scaledDividend  Ljava/math/BigInteger;
           13   20     8        newScale  I
           14   20     9           raise  I
           16   18    10              ys  J
           19   20    10   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  private static java.math.BigDecimal divide(java.math.BigInteger, int, long, int, int, int);
    descriptor: (Ljava/math/BigInteger;IJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=6
        start local 0 // java.math.BigInteger dividend
        start local 1 // int dividendScale
        start local 2 // long divisor
        start local 4 // int divisorScale
        start local 5 // int scale
        start local 6 // int roundingMode
         0: .line 5680
            aload 0 /* dividend */
            iload 5 /* scale */
            i2l
            iload 4 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            iload 1 /* dividendScale */
            if_icmple 5
         1: .line 5681
            iload 5 /* scale */
            iload 4 /* divisorScale */
            iadd
            istore 7 /* newScale */
        start local 7 // int newScale
         2: .line 5682
            iload 7 /* newScale */
            iload 1 /* dividendScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         3: .line 5683
            aload 0 /* dividend */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 9 /* scaledDividend */
        start local 9 // java.math.BigInteger scaledDividend
         4: .line 5684
            aload 9 /* scaledDividend */
            lload 2 /* divisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDividend
        end local 8 // int raise
        end local 7 // int newScale
         5: .line 5686
      StackMap locals:
      StackMap stack:
            lload 2 /* divisor */
            iload 1 /* dividendScale */
            i2l
            iload 5 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 7 /* newScale */
        start local 7 // int newScale
         6: .line 5687
            iload 7 /* newScale */
            iload 4 /* divisorScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         7: .line 5688
            iload 8 /* raise */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 11
         8: .line 5689
            lload 2 /* divisor */
            lstore 9 /* ys */
        start local 9 // long ys
         9: .line 5690
            lload 9 /* ys */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 9 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 11
        10: .line 5691
            aload 0 /* dividend */
            lload 9 /* ys */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        end local 9 // long ys
        11: .line 5694
      StackMap locals: int int
      StackMap stack:
            lload 2 /* divisor */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 9 /* scaledDivisor */
        start local 9 // java.math.BigInteger scaledDivisor
        12: .line 5695
            aload 0 /* dividend */
            aload 9 /* scaledDivisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDivisor
        end local 8 // int raise
        end local 7 // int newScale
        end local 6 // int roundingMode
        end local 5 // int scale
        end local 4 // int divisorScale
        end local 2 // long divisor
        end local 1 // int dividendScale
        end local 0 // java.math.BigInteger dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0        dividend  Ljava/math/BigInteger;
            0   13     1   dividendScale  I
            0   13     2         divisor  J
            0   13     4    divisorScale  I
            0   13     5           scale  I
            0   13     6    roundingMode  I
            2    5     7        newScale  I
            3    5     8           raise  I
            4    5     9  scaledDividend  Ljava/math/BigInteger;
            6   13     7        newScale  I
            7   13     8           raise  I
            9   11     9              ys  J
           12   13     9   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  private static java.math.BigDecimal divide(long, int, java.math.BigInteger, int, int, int);
    descriptor: (JILjava/math/BigInteger;III)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // long dividend
        start local 2 // int dividendScale
        start local 3 // java.math.BigInteger divisor
        start local 4 // int divisorScale
        start local 5 // int scale
        start local 6 // int roundingMode
         0: .line 5700
            lload 0 /* dividend */
            iload 5 /* scale */
            i2l
            iload 4 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            iload 2 /* dividendScale */
            if_icmple 5
         1: .line 5701
            iload 5 /* scale */
            iload 4 /* divisorScale */
            iadd
            istore 7 /* newScale */
        start local 7 // int newScale
         2: .line 5702
            iload 7 /* newScale */
            iload 2 /* dividendScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         3: .line 5703
            lload 0 /* dividend */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 9 /* scaledDividend */
        start local 9 // java.math.BigInteger scaledDividend
         4: .line 5704
            aload 9 /* scaledDividend */
            aload 3 /* divisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDividend
        end local 8 // int raise
        end local 7 // int newScale
         5: .line 5706
      StackMap locals:
      StackMap stack:
            aload 3 /* divisor */
            iload 2 /* dividendScale */
            i2l
            iload 5 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 7 /* newScale */
        start local 7 // int newScale
         6: .line 5707
            iload 7 /* newScale */
            iload 4 /* divisorScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         7: .line 5708
            aload 3 /* divisor */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 9 /* scaledDivisor */
        start local 9 // java.math.BigInteger scaledDivisor
         8: .line 5709
            lload 0 /* dividend */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aload 9 /* scaledDivisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDivisor
        end local 8 // int raise
        end local 7 // int newScale
        end local 6 // int roundingMode
        end local 5 // int scale
        end local 4 // int divisorScale
        end local 3 // java.math.BigInteger divisor
        end local 2 // int dividendScale
        end local 0 // long dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0        dividend  J
            0    9     2   dividendScale  I
            0    9     3         divisor  Ljava/math/BigInteger;
            0    9     4    divisorScale  I
            0    9     5           scale  I
            0    9     6    roundingMode  I
            2    5     7        newScale  I
            3    5     8           raise  I
            4    5     9  scaledDividend  Ljava/math/BigInteger;
            6    9     7        newScale  I
            7    9     8           raise  I
            8    9     9   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  private static java.math.BigDecimal divide(java.math.BigInteger, int, java.math.BigInteger, int, int, int);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;III)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=6
        start local 0 // java.math.BigInteger dividend
        start local 1 // int dividendScale
        start local 2 // java.math.BigInteger divisor
        start local 3 // int divisorScale
        start local 4 // int scale
        start local 5 // int roundingMode
         0: .line 5714
            aload 0 /* dividend */
            iload 4 /* scale */
            i2l
            iload 3 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            iload 1 /* dividendScale */
            if_icmple 5
         1: .line 5715
            iload 4 /* scale */
            iload 3 /* divisorScale */
            iadd
            istore 6 /* newScale */
        start local 6 // int newScale
         2: .line 5716
            iload 6 /* newScale */
            iload 1 /* dividendScale */
            isub
            istore 7 /* raise */
        start local 7 // int raise
         3: .line 5717
            aload 0 /* dividend */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 8 /* scaledDividend */
        start local 8 // java.math.BigInteger scaledDividend
         4: .line 5718
            aload 8 /* scaledDividend */
            aload 2 /* divisor */
            iload 4 /* scale */
            iload 5 /* roundingMode */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 8 // java.math.BigInteger scaledDividend
        end local 7 // int raise
        end local 6 // int newScale
         5: .line 5720
      StackMap locals:
      StackMap stack:
            aload 2 /* divisor */
            iload 1 /* dividendScale */
            i2l
            iload 4 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 6 /* newScale */
        start local 6 // int newScale
         6: .line 5721
            iload 6 /* newScale */
            iload 3 /* divisorScale */
            isub
            istore 7 /* raise */
        start local 7 // int raise
         7: .line 5722
            aload 2 /* divisor */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 8 /* scaledDivisor */
        start local 8 // java.math.BigInteger scaledDivisor
         8: .line 5723
            aload 0 /* dividend */
            aload 8 /* scaledDivisor */
            iload 4 /* scale */
            iload 5 /* roundingMode */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 8 // java.math.BigInteger scaledDivisor
        end local 7 // int raise
        end local 6 // int newScale
        end local 5 // int roundingMode
        end local 4 // int scale
        end local 3 // int divisorScale
        end local 2 // java.math.BigInteger divisor
        end local 1 // int dividendScale
        end local 0 // java.math.BigInteger dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0        dividend  Ljava/math/BigInteger;
            0    9     1   dividendScale  I
            0    9     2         divisor  Ljava/math/BigInteger;
            0    9     3    divisorScale  I
            0    9     4           scale  I
            0    9     5    roundingMode  I
            2    5     6        newScale  I
            3    5     7           raise  I
            4    5     8  scaledDividend  Ljava/math/BigInteger;
            6    9     6        newScale  I
            7    9     7           raise  I
            8    9     8   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.math.BigDecimal
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$java$math$RoundingMode();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 228
            getstatic java.math.BigDecimal.$SWITCH_TABLE$java$math$RoundingMode:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic java.math.RoundingMode.values:()[Ljava/math/RoundingMode;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic java.math.RoundingMode.FLOOR:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            bipush 6
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            bipush 7
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            bipush 8
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic java.math.RoundingMode.UP:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_1
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            dup
            putstatic java.math.BigDecimal.$SWITCH_TABLE$java$math$RoundingMode:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
}
Signature: Ljava/lang/Number;Ljava/lang/Comparable<Ljava/math/BigDecimal;>;
SourceFile: "BigDecimal.java"
NestMembers:
  java.math.BigDecimal$1  java.math.BigDecimal$LongOverflow  java.math.BigDecimal$StringBuilderHelper  java.math.BigDecimal$UnsafeHolder
InnerClasses:
  java.math.BigDecimal$1
  private LongOverflow = java.math.BigDecimal$LongOverflow of java.math.BigDecimal
  StringBuilderHelper = java.math.BigDecimal$StringBuilderHelper of java.math.BigDecimal
  private UnsafeHolder = java.math.BigDecimal$UnsafeHolder of java.math.BigDecimal