@Override
  public IParamsValue binaryOperation(AbstractInsnNode insn, IParamsValue value1, IParamsValue value2) {
    int size;
    switch (insn.getOpcode()) {
      case LALOAD, DALOAD -> {
        size = 2;
        leaking |= value1.params;
      }
      case LADD, DADD, LSUB, DSUB, LMUL, DMUL, LDIV, DDIV, LREM, DREM, LSHL, LSHR, LUSHR, LAND, LOR, LXOR -> size = 2;
      case IALOAD, FALOAD, AALOAD, BALOAD, CALOAD, SALOAD -> {
        leaking |= value1.params;
        size = 1;
      }
      case PUTFIELD -> {
        leaking |= value1.params;
        nullableLeaking |= value2.params;
        size = 1;
      }
      default -> size = 1;
    }
    return size == 1 ? val1 : val2;
  }
@Override
  public IParamsValue binaryOperation(AbstractInsnNode insn, IParamsValue value1, IParamsValue value2)