/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
 * This library is free for commercial and non-commercial use as long as
 * the following conditions are aheared to.  The following conditions
 * apply to all code found in this distribution, be it the RC4, RSA,
 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
 * included with this distribution is covered by the same copyright terms
 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
 *
 * Copyright remains Eric Young's, and as such any Copyright notices in
 * the code are not to be removed.
 * If this package is used in a product, Eric Young should be given attribution
 * as the author of the parts of the library used.
 * This can be in the form of a textual message at program startup or
 * in documentation (online or textual) provided with the package.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *    "This product includes cryptographic software written by
 *     Eric Young (eay@cryptsoft.com)"
 *    The word 'cryptographic' can be left out if the rouines from the library
 *    being used are not cryptographic related :-).
 * 4. If you include any Windows specific code (or a derivative thereof) from
 *    the apps directory (application code) you must include an acknowledgement:
 *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
 *
 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */
/* ====================================================================
 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
 *
 * Portions of the attached software ("Contribution") are developed by
 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
 *
 * The Contribution is licensed pursuant to the Eric Young open source
 * license provided above.
 *
 * The binary polynomial arithmetic software is originally written by
 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems
 * Laboratories. */

/* Per C99, various stdint.h and inttypes.h macros (the latter used by bn.h) are
 * unavailable in C++ unless some macros are defined. C++11 overruled this
 * decision, but older Android NDKs still require it. */
#if !defined(__STDC_CONSTANT_MACROS)
#define __STDC_CONSTANT_MACROS
#endif
#if !defined(__STDC_FORMAT_MACROS)
#define __STDC_FORMAT_MACROS
#endif

#include <assert.h>
#include <errno.h>
#include <limits.h>
#include <stdio.h>
#include <string.h>

#include <utility>

#include <openssl/bn.h>
#include <openssl/bytestring.h>
#include <openssl/crypto.h>
#include <openssl/err.h>
#include <openssl/mem.h>

#include "../internal.h"
#include "../test/file_test.h"
#include "../test/test_util.h"


static int HexToBIGNUM(bssl::UniquePtr<BIGNUM> *out, const char *in) {
  BIGNUM *raw = NULL;
  int ret = BN_hex2bn(&raw, in);
  out->reset(raw);
  return ret;
}

static bssl::UniquePtr<BIGNUM> GetBIGNUM(FileTest *t, const char *attribute) {
  std::string hex;
  if (!t->GetAttribute(&hex, attribute)) {
    return nullptr;
  }

  bssl::UniquePtr<BIGNUM> ret;
  if (HexToBIGNUM(&ret, hex.c_str()) != static_cast<int>(hex.size())) {
    t->PrintLine("Could not decode '%s'.", hex.c_str());
    return nullptr;
  }
  return ret;
}

static bool GetInt(FileTest *t, int *out, const char *attribute) {
  bssl::UniquePtr<BIGNUM> ret = GetBIGNUM(t, attribute);
  if (!ret) {
    return false;
  }

  BN_ULONG word = BN_get_word(ret.get());
  if (word > INT_MAX) {
    return false;
  }

  *out = static_cast<int>(word);
  return true;
}

static bool ExpectBIGNUMsEqual(FileTest *t, const char *operation,
                               const BIGNUM *expected, const BIGNUM *actual) {
  if (BN_cmp(expected, actual) == 0) {
    return true;
  }

  bssl::UniquePtr<char> expected_str(BN_bn2hex(expected));
  bssl::UniquePtr<char> actual_str(BN_bn2hex(actual));
  if (!expected_str || !actual_str) {
    return false;
  }

  t->PrintLine("Got %s =", operation);
  t->PrintLine("\t%s", actual_str.get());
  t->PrintLine("wanted:");
  t->PrintLine("\t%s", expected_str.get());
  return false;
}

static bool TestSum(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> b = GetBIGNUM(t, "B");
  bssl::UniquePtr<BIGNUM> sum = GetBIGNUM(t, "Sum");
  if (!a || !b || !sum) {
    return false;
  }

  bssl::UniquePtr<BIGNUM> ret(BN_new());
  if (!ret ||
      !BN_add(ret.get(), a.get(), b.get()) ||
      !ExpectBIGNUMsEqual(t, "A + B", sum.get(), ret.get()) ||
      !BN_sub(ret.get(), sum.get(), a.get()) ||
      !ExpectBIGNUMsEqual(t, "Sum - A", b.get(), ret.get()) ||
      !BN_sub(ret.get(), sum.get(), b.get()) ||
      !ExpectBIGNUMsEqual(t, "Sum - B", a.get(), ret.get())) {
    return false;
  }

  // Test that the functions work when |r| and |a| point to the same |BIGNUM|,
  // or when |r| and |b| point to the same |BIGNUM|. TODO: Test the case where
  // all of |r|, |a|, and |b| point to the same |BIGNUM|.
  if (!BN_copy(ret.get(), a.get()) ||
      !BN_add(ret.get(), ret.get(), b.get()) ||
      !ExpectBIGNUMsEqual(t, "A + B (r is a)", sum.get(), ret.get()) ||
      !BN_copy(ret.get(), b.get()) ||
      !BN_add(ret.get(), a.get(), ret.get()) ||
      !ExpectBIGNUMsEqual(t, "A + B (r is b)", sum.get(), ret.get()) ||
      !BN_copy(ret.get(), sum.get()) ||
      !BN_sub(ret.get(), ret.get(), a.get()) ||
      !ExpectBIGNUMsEqual(t, "Sum - A (r is a)", b.get(), ret.get()) ||
      !BN_copy(ret.get(), a.get()) ||
      !BN_sub(ret.get(), sum.get(), ret.get()) ||
      !ExpectBIGNUMsEqual(t, "Sum - A (r is b)", b.get(), ret.get()) ||
      !BN_copy(ret.get(), sum.get()) ||
      !BN_sub(ret.get(), ret.get(), b.get()) ||
      !ExpectBIGNUMsEqual(t, "Sum - B (r is a)", a.get(), ret.get()) ||
      !BN_copy(ret.get(), b.get()) ||
      !BN_sub(ret.get(), sum.get(), ret.get()) ||
      !ExpectBIGNUMsEqual(t, "Sum - B (r is b)", a.get(), ret.get())) {
    return false;
  }

  // Test |BN_uadd| and |BN_usub| with the prerequisites they are documented as
  // having. Note that these functions are frequently used when the
  // prerequisites don't hold. In those cases, they are supposed to work as if
  // the prerequisite hold, but we don't test that yet. TODO: test that.
  if (!BN_is_negative(a.get()) &&
      !BN_is_negative(b.get()) && BN_cmp(a.get(), b.get()) >= 0) {
    if (!BN_uadd(ret.get(), a.get(), b.get()) ||
        !ExpectBIGNUMsEqual(t, "A +u B", sum.get(), ret.get()) ||
        !BN_usub(ret.get(), sum.get(), a.get()) ||
        !ExpectBIGNUMsEqual(t, "Sum -u A", b.get(), ret.get()) ||
        !BN_usub(ret.get(), sum.get(), b.get()) ||
        !ExpectBIGNUMsEqual(t, "Sum -u B", a.get(), ret.get())) {
      return false;
    }

    // Test that the functions work when |r| and |a| point to the same |BIGNUM|,
    // or when |r| and |b| point to the same |BIGNUM|. TODO: Test the case where
    // all of |r|, |a|, and |b| point to the same |BIGNUM|.
    if (!BN_copy(ret.get(), a.get()) ||
        !BN_uadd(ret.get(), ret.get(), b.get()) ||
        !ExpectBIGNUMsEqual(t, "A +u B (r is a)", sum.get(), ret.get()) ||
        !BN_copy(ret.get(), b.get()) ||
        !BN_uadd(ret.get(), a.get(), ret.get()) ||
        !ExpectBIGNUMsEqual(t, "A +u B (r is b)", sum.get(), ret.get()) ||
        !BN_copy(ret.get(), sum.get()) ||
        !BN_usub(ret.get(), ret.get(), a.get()) ||
        !ExpectBIGNUMsEqual(t, "Sum -u A (r is a)", b.get(), ret.get()) ||
        !BN_copy(ret.get(), a.get()) ||
        !BN_usub(ret.get(), sum.get(), ret.get()) ||
        !ExpectBIGNUMsEqual(t, "Sum -u A (r is b)", b.get(), ret.get()) ||
        !BN_copy(ret.get(), sum.get()) ||
        !BN_usub(ret.get(), ret.get(), b.get()) ||
        !ExpectBIGNUMsEqual(t, "Sum -u B (r is a)", a.get(), ret.get()) ||
        !BN_copy(ret.get(), b.get()) ||
        !BN_usub(ret.get(), sum.get(), ret.get()) ||
        !ExpectBIGNUMsEqual(t, "Sum -u B (r is b)", a.get(), ret.get())) {
      return false;
    }
  }

  // Test with |BN_add_word| and |BN_sub_word| if |b| is small enough.
  BN_ULONG b_word = BN_get_word(b.get());
  if (!BN_is_negative(b.get()) && b_word != (BN_ULONG)-1) {
    if (!BN_copy(ret.get(), a.get()) ||
        !BN_add_word(ret.get(), b_word) ||
        !ExpectBIGNUMsEqual(t, "A + B (word)", sum.get(), ret.get()) ||
        !BN_copy(ret.get(), sum.get()) ||
        !BN_sub_word(ret.get(), b_word) ||
        !ExpectBIGNUMsEqual(t, "Sum - B (word)", a.get(), ret.get())) {
      return false;
    }
  }

  return true;
}

static bool TestLShift1(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> lshift1 = GetBIGNUM(t, "LShift1");
  bssl::UniquePtr<BIGNUM> zero(BN_new());
  if (!a || !lshift1 || !zero) {
    return false;
  }

  BN_zero(zero.get());

  bssl::UniquePtr<BIGNUM> ret(BN_new()), two(BN_new()), remainder(BN_new());
  if (!ret || !two || !remainder ||
      !BN_set_word(two.get(), 2) ||
      !BN_add(ret.get(), a.get(), a.get()) ||
      !ExpectBIGNUMsEqual(t, "A + A", lshift1.get(), ret.get()) ||
      !BN_mul(ret.get(), a.get(), two.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "A * 2", lshift1.get(), ret.get()) ||
      !BN_div(ret.get(), remainder.get(), lshift1.get(), two.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "LShift1 / 2", a.get(), ret.get()) ||
      !ExpectBIGNUMsEqual(t, "LShift1 % 2", zero.get(), remainder.get()) ||
      !BN_lshift1(ret.get(), a.get()) ||
      !ExpectBIGNUMsEqual(t, "A << 1", lshift1.get(), ret.get()) ||
      !BN_rshift1(ret.get(), lshift1.get()) ||
      !ExpectBIGNUMsEqual(t, "LShift >> 1", a.get(), ret.get()) ||
      !BN_rshift1(ret.get(), lshift1.get()) ||
      !ExpectBIGNUMsEqual(t, "LShift >> 1", a.get(), ret.get())) {
    return false;
  }

  // Set the LSB to 1 and test rshift1 again.
  if (!BN_set_bit(lshift1.get(), 0) ||
      !BN_div(ret.get(), nullptr /* rem */, lshift1.get(), two.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "(LShift1 | 1) / 2", a.get(), ret.get()) ||
      !BN_rshift1(ret.get(), lshift1.get()) ||
      !ExpectBIGNUMsEqual(t, "(LShift | 1) >> 1", a.get(), ret.get())) {
    return false;
  }

  return true;
}

static bool TestLShift(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> lshift = GetBIGNUM(t, "LShift");
  int n = 0;
  if (!a || !lshift || !GetInt(t, &n, "N")) {
    return false;
  }

  bssl::UniquePtr<BIGNUM> ret(BN_new());
  if (!ret ||
      !BN_lshift(ret.get(), a.get(), n) ||
      !ExpectBIGNUMsEqual(t, "A << N", lshift.get(), ret.get()) ||
      !BN_rshift(ret.get(), lshift.get(), n) ||
      !ExpectBIGNUMsEqual(t, "A >> N", a.get(), ret.get())) {
    return false;
  }

  return true;
}

static bool TestRShift(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> rshift = GetBIGNUM(t, "RShift");
  int n = 0;
  if (!a || !rshift || !GetInt(t, &n, "N")) {
    return false;
  }

  bssl::UniquePtr<BIGNUM> ret(BN_new());
  if (!ret ||
      !BN_rshift(ret.get(), a.get(), n) ||
      !ExpectBIGNUMsEqual(t, "A >> N", rshift.get(), ret.get())) {
    return false;
  }

  return true;
}

static bool TestSquare(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> square = GetBIGNUM(t, "Square");
  bssl::UniquePtr<BIGNUM> zero(BN_new());
  if (!a || !square || !zero) {
    return false;
  }

  BN_zero(zero.get());

  bssl::UniquePtr<BIGNUM> ret(BN_new()), remainder(BN_new());
  if (!ret || !remainder ||
      !BN_sqr(ret.get(), a.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "A^2", square.get(), ret.get()) ||
      !BN_mul(ret.get(), a.get(), a.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "A * A", square.get(), ret.get()) ||
      !BN_div(ret.get(), remainder.get(), square.get(), a.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "Square / A", a.get(), ret.get()) ||
      !ExpectBIGNUMsEqual(t, "Square % A", zero.get(), remainder.get())) {
    return false;
  }

  BN_set_negative(a.get(), 0);
  if (!BN_sqrt(ret.get(), square.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "sqrt(Square)", a.get(), ret.get())) {
    return false;
  }

  // BN_sqrt should fail on non-squares and negative numbers.
  if (!BN_is_zero(square.get())) {
    bssl::UniquePtr<BIGNUM> tmp(BN_new());
    if (!tmp || !BN_copy(tmp.get(), square.get())) {
      return false;
    }
    BN_set_negative(tmp.get(), 1);

    if (BN_sqrt(ret.get(), tmp.get(), ctx)) {
      t->PrintLine("BN_sqrt succeeded on a negative number");
      return false;
    }
    ERR_clear_error();

    BN_set_negative(tmp.get(), 0);
    if (!BN_add(tmp.get(), tmp.get(), BN_value_one())) {
      return false;
    }
    if (BN_sqrt(ret.get(), tmp.get(), ctx)) {
      t->PrintLine("BN_sqrt succeeded on a non-square");
      return false;
    }
    ERR_clear_error();
  }

  return true;
}

static bool TestProduct(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> b = GetBIGNUM(t, "B");
  bssl::UniquePtr<BIGNUM> product = GetBIGNUM(t, "Product");
  bssl::UniquePtr<BIGNUM> zero(BN_new());
  if (!a || !b || !product || !zero) {
    return false;
  }

  BN_zero(zero.get());

  bssl::UniquePtr<BIGNUM> ret(BN_new()), remainder(BN_new());
  if (!ret || !remainder ||
      !BN_mul(ret.get(), a.get(), b.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "A * B", product.get(), ret.get()) ||
      !BN_div(ret.get(), remainder.get(), product.get(), a.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "Product / A", b.get(), ret.get()) ||
      !ExpectBIGNUMsEqual(t, "Product % A", zero.get(), remainder.get()) ||
      !BN_div(ret.get(), remainder.get(), product.get(), b.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "Product / B", a.get(), ret.get()) ||
      !ExpectBIGNUMsEqual(t, "Product % B", zero.get(), remainder.get())) {
    return false;
  }

  return true;
}

static bool TestQuotient(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> b = GetBIGNUM(t, "B");
  bssl::UniquePtr<BIGNUM> quotient = GetBIGNUM(t, "Quotient");
  bssl::UniquePtr<BIGNUM> remainder = GetBIGNUM(t, "Remainder");
  if (!a || !b || !quotient || !remainder) {
    return false;
  }

  bssl::UniquePtr<BIGNUM> ret(BN_new()), ret2(BN_new());
  if (!ret || !ret2 ||
      !BN_div(ret.get(), ret2.get(), a.get(), b.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "A / B", quotient.get(), ret.get()) ||
      !ExpectBIGNUMsEqual(t, "A % B", remainder.get(), ret2.get()) ||
      !BN_mul(ret.get(), quotient.get(), b.get(), ctx) ||
      !BN_add(ret.get(), ret.get(), remainder.get()) ||
      !ExpectBIGNUMsEqual(t, "Quotient * B + Remainder", a.get(), ret.get())) {
    return false;
  }

  // Test with |BN_mod_word| and |BN_div_word| if the divisor is small enough.
  BN_ULONG b_word = BN_get_word(b.get());
  if (!BN_is_negative(b.get()) && b_word != (BN_ULONG)-1) {
    BN_ULONG remainder_word = BN_get_word(remainder.get());
    assert(remainder_word != (BN_ULONG)-1);
    if (!BN_copy(ret.get(), a.get())) {
      return false;
    }
    BN_ULONG ret_word = BN_div_word(ret.get(), b_word);
    if (ret_word != remainder_word) {
      t->PrintLine("Got A %% B (word) = " BN_HEX_FMT1 ", wanted " BN_HEX_FMT1
                   "\n",
                   ret_word, remainder_word);
      return false;
    }
    if (!ExpectBIGNUMsEqual(t, "A / B (word)", quotient.get(), ret.get())) {
      return false;
    }

    ret_word = BN_mod_word(a.get(), b_word);
    if (ret_word != remainder_word) {
      t->PrintLine("Got A %% B (word) = " BN_HEX_FMT1 ", wanted " BN_HEX_FMT1
                   "\n",
                   ret_word, remainder_word);
      return false;
    }
  }

  // Test BN_nnmod.
  if (!BN_is_negative(b.get())) {
    bssl::UniquePtr<BIGNUM> nnmod(BN_new());
    if (!nnmod ||
        !BN_copy(nnmod.get(), remainder.get()) ||
        (BN_is_negative(nnmod.get()) &&
         !BN_add(nnmod.get(), nnmod.get(), b.get())) ||
        !BN_nnmod(ret.get(), a.get(), b.get(), ctx) ||
        !ExpectBIGNUMsEqual(t, "A % B (non-negative)", nnmod.get(),
                            ret.get())) {
      return false;
    }
  }

  return true;
}

static bool TestModMul(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> b = GetBIGNUM(t, "B");
  bssl::UniquePtr<BIGNUM> m = GetBIGNUM(t, "M");
  bssl::UniquePtr<BIGNUM> mod_mul = GetBIGNUM(t, "ModMul");
  if (!a || !b || !m || !mod_mul) {
    return false;
  }

  bssl::UniquePtr<BIGNUM> ret(BN_new());
  if (!ret ||
      !BN_mod_mul(ret.get(), a.get(), b.get(), m.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "A * B (mod M)", mod_mul.get(), ret.get())) {
    return false;
  }

  if (BN_is_odd(m.get())) {
    // Reduce |a| and |b| and test the Montgomery version.
    bssl::UniquePtr<BN_MONT_CTX> mont(BN_MONT_CTX_new());
    bssl::UniquePtr<BIGNUM> a_tmp(BN_new()), b_tmp(BN_new());
    if (!mont || !a_tmp || !b_tmp ||
        !BN_MONT_CTX_set(mont.get(), m.get(), ctx) ||
        !BN_nnmod(a_tmp.get(), a.get(), m.get(), ctx) ||
        !BN_nnmod(b_tmp.get(), b.get(), m.get(), ctx) ||
        !BN_to_montgomery(a_tmp.get(), a_tmp.get(), mont.get(), ctx) ||
        !BN_to_montgomery(b_tmp.get(), b_tmp.get(), mont.get(), ctx) ||
        !BN_mod_mul_montgomery(ret.get(), a_tmp.get(), b_tmp.get(), mont.get(),
                               ctx) ||
        !BN_from_montgomery(ret.get(), ret.get(), mont.get(), ctx) ||
        !ExpectBIGNUMsEqual(t, "A * B (mod M) (Montgomery)",
                            mod_mul.get(), ret.get())) {
      return false;
    }
  }

  return true;
}

static bool TestModSquare(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> m = GetBIGNUM(t, "M");
  bssl::UniquePtr<BIGNUM> mod_square = GetBIGNUM(t, "ModSquare");
  if (!a || !m || !mod_square) {
    return false;
  }

  bssl::UniquePtr<BIGNUM> a_copy(BN_new());
  bssl::UniquePtr<BIGNUM> ret(BN_new());
  if (!ret || !a_copy ||
      !BN_mod_mul(ret.get(), a.get(), a.get(), m.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "A * A (mod M)", mod_square.get(), ret.get()) ||
      // Repeat the operation with |a_copy|.
      !BN_copy(a_copy.get(), a.get()) ||
      !BN_mod_mul(ret.get(), a.get(), a_copy.get(), m.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "A * A_copy (mod M)", mod_square.get(),
                          ret.get())) {
    return false;
  }

  if (BN_is_odd(m.get())) {
    // Reduce |a| and test the Montgomery version.
    bssl::UniquePtr<BN_MONT_CTX> mont(BN_MONT_CTX_new());
    bssl::UniquePtr<BIGNUM> a_tmp(BN_new());
    if (!mont || !a_tmp ||
        !BN_MONT_CTX_set(mont.get(), m.get(), ctx) ||
        !BN_nnmod(a_tmp.get(), a.get(), m.get(), ctx) ||
        !BN_to_montgomery(a_tmp.get(), a_tmp.get(), mont.get(), ctx) ||
        !BN_mod_mul_montgomery(ret.get(), a_tmp.get(), a_tmp.get(), mont.get(),
                               ctx) ||
        !BN_from_montgomery(ret.get(), ret.get(), mont.get(), ctx) ||
        !ExpectBIGNUMsEqual(t, "A * A (mod M) (Montgomery)",
                            mod_square.get(), ret.get()) ||
        // Repeat the operation with |a_copy|.
        !BN_copy(a_copy.get(), a_tmp.get()) ||
        !BN_mod_mul_montgomery(ret.get(), a_tmp.get(), a_copy.get(), mont.get(),
                               ctx) ||
        !BN_from_montgomery(ret.get(), ret.get(), mont.get(), ctx) ||
        !ExpectBIGNUMsEqual(t, "A * A_copy (mod M) (Montgomery)",
                            mod_square.get(), ret.get())) {
      return false;
    }
  }

  return true;
}

static bool TestModExp(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> e = GetBIGNUM(t, "E");
  bssl::UniquePtr<BIGNUM> m = GetBIGNUM(t, "M");
  bssl::UniquePtr<BIGNUM> mod_exp = GetBIGNUM(t, "ModExp");
  if (!a || !e || !m || !mod_exp) {
    return false;
  }

  bssl::UniquePtr<BIGNUM> ret(BN_new());
  if (!ret ||
      !BN_mod_exp(ret.get(), a.get(), e.get(), m.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "A ^ E (mod M)", mod_exp.get(), ret.get())) {
    return false;
  }

  if (BN_is_odd(m.get())) {
    if (!BN_mod_exp_mont(ret.get(), a.get(), e.get(), m.get(), ctx, NULL) ||
        !ExpectBIGNUMsEqual(t, "A ^ E (mod M) (Montgomery)", mod_exp.get(),
                            ret.get()) ||
        !BN_mod_exp_mont_consttime(ret.get(), a.get(), e.get(), m.get(), ctx,
                                   NULL) ||
        !ExpectBIGNUMsEqual(t, "A ^ E (mod M) (constant-time)", mod_exp.get(),
                            ret.get())) {
      return false;
    }
  }

  return true;
}

static bool TestExp(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> e = GetBIGNUM(t, "E");
  bssl::UniquePtr<BIGNUM> exp = GetBIGNUM(t, "Exp");
  if (!a || !e || !exp) {
    return false;
  }

  bssl::UniquePtr<BIGNUM> ret(BN_new());
  if (!ret ||
      !BN_exp(ret.get(), a.get(), e.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "A ^ E", exp.get(), ret.get())) {
    return false;
  }

  return true;
}

static bool TestModSqrt(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> p = GetBIGNUM(t, "P");
  bssl::UniquePtr<BIGNUM> mod_sqrt = GetBIGNUM(t, "ModSqrt");
  bssl::UniquePtr<BIGNUM> mod_sqrt2(BN_new());
  if (!a || !p || !mod_sqrt || !mod_sqrt2 ||
      // There are two possible answers.
      !BN_sub(mod_sqrt2.get(), p.get(), mod_sqrt.get())) {
    return false;
  }

  // -0 is 0, not P.
  if (BN_is_zero(mod_sqrt.get())) {
    BN_zero(mod_sqrt2.get());
  }

  bssl::UniquePtr<BIGNUM> ret(BN_new());
  if (!ret ||
      !BN_mod_sqrt(ret.get(), a.get(), p.get(), ctx)) {
    return false;
  }

  if (BN_cmp(ret.get(), mod_sqrt2.get()) != 0 &&
      !ExpectBIGNUMsEqual(t, "sqrt(A) (mod P)", mod_sqrt.get(), ret.get())) {
    return false;
  }

  return true;
}

static bool TestNotModSquare(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> not_mod_square = GetBIGNUM(t, "NotModSquare");
  bssl::UniquePtr<BIGNUM> p = GetBIGNUM(t, "P");
  bssl::UniquePtr<BIGNUM> ret(BN_new());
  if (!not_mod_square || !p || !ret) {
    return false;
  }

  if (BN_mod_sqrt(ret.get(), not_mod_square.get(), p.get(), ctx)) {
    t->PrintLine("BN_mod_sqrt unexpectedly succeeded.");
    return false;
  }

  uint32_t err = ERR_peek_error();
  if (ERR_GET_LIB(err) == ERR_LIB_BN &&
      ERR_GET_REASON(err) == BN_R_NOT_A_SQUARE) {
    ERR_clear_error();
    return true;
  }

  return false;
}

static bool TestModInv(FileTest *t, BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a = GetBIGNUM(t, "A");
  bssl::UniquePtr<BIGNUM> m = GetBIGNUM(t, "M");
  bssl::UniquePtr<BIGNUM> mod_inv = GetBIGNUM(t, "ModInv");
  if (!a || !m || !mod_inv) {
    return false;
  }

  bssl::UniquePtr<BIGNUM> ret(BN_new());
  if (!ret ||
      !BN_mod_inverse(ret.get(), a.get(), m.get(), ctx) ||
      !ExpectBIGNUMsEqual(t, "inv(A) (mod M)", mod_inv.get(), ret.get())) {
    return false;
  }

  return true;
}

struct Test {
  const char *name;
  bool (*func)(FileTest *t, BN_CTX *ctx);
};

static const Test kTests[] = {
    {"Sum", TestSum},
    {"LShift1", TestLShift1},
    {"LShift", TestLShift},
    {"RShift", TestRShift},
    {"Square", TestSquare},
    {"Product", TestProduct},
    {"Quotient", TestQuotient},
    {"ModMul", TestModMul},
    {"ModSquare", TestModSquare},
    {"ModExp", TestModExp},
    {"Exp", TestExp},
    {"ModSqrt", TestModSqrt},
    {"NotModSquare", TestNotModSquare},
    {"ModInv", TestModInv},
};

static bool RunTest(FileTest *t, void *arg) {
  BN_CTX *ctx = reinterpret_cast<BN_CTX *>(arg);
  for (const Test &test : kTests) {
    if (t->GetType() != test.name) {
      continue;
    }
    return test.func(t, ctx);
  }
  t->PrintLine("Unknown test type: %s", t->GetType().c_str());
  return false;
}

static bool TestBN2BinPadded(BN_CTX *ctx) {
  uint8_t zeros[256], out[256], reference[128];

  OPENSSL_memset(zeros, 0, sizeof(zeros));

  // Test edge case at 0.
  bssl::UniquePtr<BIGNUM> n(BN_new());
  if (!n || !BN_bn2bin_padded(NULL, 0, n.get())) {
    fprintf(stderr,
            "BN_bn2bin_padded failed to encode 0 in an empty buffer.\n");
    return false;
  }
  OPENSSL_memset(out, -1, sizeof(out));
  if (!BN_bn2bin_padded(out, sizeof(out), n.get())) {
    fprintf(stderr,
            "BN_bn2bin_padded failed to encode 0 in a non-empty buffer.\n");
    return false;
  }
  if (OPENSSL_memcmp(zeros, out, sizeof(out))) {
    fprintf(stderr, "BN_bn2bin_padded did not zero buffer.\n");
    return false;
  }

  // Test a random numbers at various byte lengths.
  for (size_t bytes = 128 - 7; bytes <= 128; bytes++) {
    if (!BN_rand(n.get(), bytes * 8, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY)) {
      ERR_print_errors_fp(stderr);
      return false;
    }
    if (BN_num_bytes(n.get()) != bytes ||
        BN_bn2bin(n.get(), reference) != bytes) {
      fprintf(stderr, "Bad result from BN_rand; bytes.\n");
      return false;
    }
    // Empty buffer should fail.
    if (BN_bn2bin_padded(NULL, 0, n.get())) {
      fprintf(stderr,
              "BN_bn2bin_padded incorrectly succeeded on empty buffer.\n");
      return false;
    }
    // One byte short should fail.
    if (BN_bn2bin_padded(out, bytes - 1, n.get())) {
      fprintf(stderr, "BN_bn2bin_padded incorrectly succeeded on short.\n");
      return false;
    }
    // Exactly right size should encode.
    if (!BN_bn2bin_padded(out, bytes, n.get()) ||
        OPENSSL_memcmp(out, reference, bytes) != 0) {
      fprintf(stderr, "BN_bn2bin_padded gave a bad result.\n");
      return false;
    }
    // Pad up one byte extra.
    if (!BN_bn2bin_padded(out, bytes + 1, n.get()) ||
        OPENSSL_memcmp(out + 1, reference, bytes) ||
        OPENSSL_memcmp(out, zeros, 1)) {
      fprintf(stderr, "BN_bn2bin_padded gave a bad result.\n");
      return false;
    }
    // Pad up to 256.
    if (!BN_bn2bin_padded(out, sizeof(out), n.get()) ||
        OPENSSL_memcmp(out + sizeof(out) - bytes, reference, bytes) ||
        OPENSSL_memcmp(out, zeros, sizeof(out) - bytes)) {
      fprintf(stderr, "BN_bn2bin_padded gave a bad result.\n");
      return false;
    }
  }

  return true;
}

static bool TestLittleEndian() {
  bssl::UniquePtr<BIGNUM> x(BN_new());
  bssl::UniquePtr<BIGNUM> y(BN_new());
  if (!x || !y) {
    fprintf(stderr, "BN_new failed to malloc.\n");
    return false;
  }

  // Test edge case at 0. Fill |out| with garbage to ensure |BN_bn2le_padded|
  // wrote the result.
  uint8_t out[256], zeros[256];
  OPENSSL_memset(out, -1, sizeof(out));
  OPENSSL_memset(zeros, 0, sizeof(zeros));
  if (!BN_bn2le_padded(out, sizeof(out), x.get()) ||
      OPENSSL_memcmp(zeros, out, sizeof(out))) {
    fprintf(stderr, "BN_bn2le_padded failed to encode 0.\n");
    return false;
  }

  if (!BN_le2bn(out, sizeof(out), y.get()) ||
      BN_cmp(x.get(), y.get()) != 0) {
    fprintf(stderr, "BN_le2bn failed to decode 0 correctly.\n");
    return false;
  }

  // Test random numbers at various byte lengths.
  for (size_t bytes = 128 - 7; bytes <= 128; bytes++) {
    if (!BN_rand(x.get(), bytes * 8, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY)) {
      ERR_print_errors_fp(stderr);
      return false;
    }

    // Fill |out| with garbage to ensure |BN_bn2le_padded| wrote the result.
    OPENSSL_memset(out, -1, sizeof(out));
    if (!BN_bn2le_padded(out, sizeof(out), x.get())) {
      fprintf(stderr, "BN_bn2le_padded failed to encode random value.\n");
      return false;
    }

    // Compute the expected value by reversing the big-endian output.
    uint8_t expected[sizeof(out)];
    if (!BN_bn2bin_padded(expected, sizeof(expected), x.get())) {
      return false;
    }
    for (size_t i = 0; i < sizeof(expected) / 2; i++) {
      uint8_t tmp = expected[i];
      expected[i] = expected[sizeof(expected) - 1 - i];
      expected[sizeof(expected) - 1 - i] = tmp;
    }

    if (OPENSSL_memcmp(expected, out, sizeof(out))) {
      fprintf(stderr, "BN_bn2le_padded failed to encode value correctly.\n");
      hexdump(stderr, "Expected: ", expected, sizeof(expected));
      hexdump(stderr, "Got:      ", out, sizeof(out));
      return false;
    }

    // Make sure the decoding produces the same BIGNUM.
    if (!BN_le2bn(out, bytes, y.get()) ||
        BN_cmp(x.get(), y.get()) != 0) {
      bssl::UniquePtr<char> x_hex(BN_bn2hex(x.get())),
          y_hex(BN_bn2hex(y.get()));
      if (!x_hex || !y_hex) {
        return false;
      }
      fprintf(stderr, "BN_le2bn failed to decode value correctly.\n");
      fprintf(stderr, "Expected: %s\n", x_hex.get());
      hexdump(stderr, "Encoding: ", out, bytes);
      fprintf(stderr, "Got:      %s\n", y_hex.get());
      return false;
    }
  }

  return true;
}

static int DecimalToBIGNUM(bssl::UniquePtr<BIGNUM> *out, const char *in) {
  BIGNUM *raw = NULL;
  int ret = BN_dec2bn(&raw, in);
  out->reset(raw);
  return ret;
}

static bool TestDec2BN(BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> bn;
  int ret = DecimalToBIGNUM(&bn, "0");
  if (ret != 1 || !BN_is_zero(bn.get()) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_dec2bn gave a bad result.\n");
    return false;
  }

  ret = DecimalToBIGNUM(&bn, "256");
  if (ret != 3 || !BN_is_word(bn.get(), 256) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_dec2bn gave a bad result.\n");
    return false;
  }

  ret = DecimalToBIGNUM(&bn, "-42");
  if (ret != 3 || !BN_abs_is_word(bn.get(), 42) || !BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_dec2bn gave a bad result.\n");
    return false;
  }

  ret = DecimalToBIGNUM(&bn, "-0");
  if (ret != 2 || !BN_is_zero(bn.get()) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_dec2bn gave a bad result.\n");
    return false;
  }

  ret = DecimalToBIGNUM(&bn, "42trailing garbage is ignored");
  if (ret != 2 || !BN_abs_is_word(bn.get(), 42) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_dec2bn gave a bad result.\n");
    return false;
  }

  return true;
}

static bool TestHex2BN(BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> bn;
  int ret = HexToBIGNUM(&bn, "0");
  if (ret != 1 || !BN_is_zero(bn.get()) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_hex2bn gave a bad result.\n");
    return false;
  }

  ret = HexToBIGNUM(&bn, "256");
  if (ret != 3 || !BN_is_word(bn.get(), 0x256) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_hex2bn gave a bad result.\n");
    return false;
  }

  ret = HexToBIGNUM(&bn, "-42");
  if (ret != 3 || !BN_abs_is_word(bn.get(), 0x42) || !BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_hex2bn gave a bad result.\n");
    return false;
  }

  ret = HexToBIGNUM(&bn, "-0");
  if (ret != 2 || !BN_is_zero(bn.get()) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_hex2bn gave a bad result.\n");
    return false;
  }

  ret = HexToBIGNUM(&bn, "abctrailing garbage is ignored");
  if (ret != 3 || !BN_is_word(bn.get(), 0xabc) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_hex2bn gave a bad result.\n");
    return false;
  }

  return true;
}

static bssl::UniquePtr<BIGNUM> ASCIIToBIGNUM(const char *in) {
  BIGNUM *raw = NULL;
  if (!BN_asc2bn(&raw, in)) {
    return nullptr;
  }
  return bssl::UniquePtr<BIGNUM>(raw);
}

static bool TestASC2BN(BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> bn = ASCIIToBIGNUM("0");
  if (!bn || !BN_is_zero(bn.get()) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_asc2bn gave a bad result.\n");
    return false;
  }

  bn = ASCIIToBIGNUM("256");
  if (!bn || !BN_is_word(bn.get(), 256) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_asc2bn gave a bad result.\n");
    return false;
  }

  bn = ASCIIToBIGNUM("-42");
  if (!bn || !BN_abs_is_word(bn.get(), 42) || !BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_asc2bn gave a bad result.\n");
    return false;
  }

  bn = ASCIIToBIGNUM("0x1234");
  if (!bn || !BN_is_word(bn.get(), 0x1234) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_asc2bn gave a bad result.\n");
    return false;
  }

  bn = ASCIIToBIGNUM("0X1234");
  if (!bn || !BN_is_word(bn.get(), 0x1234) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_asc2bn gave a bad result.\n");
    return false;
  }

  bn = ASCIIToBIGNUM("-0xabcd");
  if (!bn || !BN_abs_is_word(bn.get(), 0xabcd) || !BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_asc2bn gave a bad result.\n");
    return false;
  }

  bn = ASCIIToBIGNUM("-0");
  if (!bn || !BN_is_zero(bn.get()) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_asc2bn gave a bad result.\n");
    return false;
  }

  bn = ASCIIToBIGNUM("123trailing garbage is ignored");
  if (!bn || !BN_is_word(bn.get(), 123) || BN_is_negative(bn.get())) {
    fprintf(stderr, "BN_asc2bn gave a bad result.\n");
    return false;
  }

  return true;
}

struct MPITest {
  const char *base10;
  const char *mpi;
  size_t mpi_len;
};

static const MPITest kMPITests[] = {
  { "0", "\x00\x00\x00\x00", 4 },
  { "1", "\x00\x00\x00\x01\x01", 5 },
  { "-1", "\x00\x00\x00\x01\x81", 5 },
  { "128", "\x00\x00\x00\x02\x00\x80", 6 },
  { "256", "\x00\x00\x00\x02\x01\x00", 6 },
  { "-256", "\x00\x00\x00\x02\x81\x00", 6 },
};

static bool TestMPI() {
  uint8_t scratch[8];

  for (size_t i = 0; i < OPENSSL_ARRAY_SIZE(kMPITests); i++) {
    const MPITest &test = kMPITests[i];
    bssl::UniquePtr<BIGNUM> bn(ASCIIToBIGNUM(test.base10));
    if (!bn) {
      return false;
    }

    const size_t mpi_len = BN_bn2mpi(bn.get(), NULL);
    if (mpi_len > sizeof(scratch)) {
      fprintf(stderr, "MPI test #%u: MPI size is too large to test.\n",
              (unsigned)i);
      return false;
    }

    const size_t mpi_len2 = BN_bn2mpi(bn.get(), scratch);
    if (mpi_len != mpi_len2) {
      fprintf(stderr, "MPI test #%u: length changes.\n", (unsigned)i);
      return false;
    }

    if (mpi_len != test.mpi_len ||
        OPENSSL_memcmp(test.mpi, scratch, mpi_len) != 0) {
      fprintf(stderr, "MPI test #%u failed:\n", (unsigned)i);
      hexdump(stderr, "Expected: ", test.mpi, test.mpi_len);
      hexdump(stderr, "Got:      ", scratch, mpi_len);
      return false;
    }

    bssl::UniquePtr<BIGNUM> bn2(BN_mpi2bn(scratch, mpi_len, NULL));
    if (bn2.get() == nullptr) {
      fprintf(stderr, "MPI test #%u: failed to parse\n", (unsigned)i);
      return false;
    }

    if (BN_cmp(bn.get(), bn2.get()) != 0) {
      fprintf(stderr, "MPI test #%u: wrong result\n", (unsigned)i);
      return false;
    }
  }

  return true;
}

static bool TestRand() {
  bssl::UniquePtr<BIGNUM> bn(BN_new());
  if (!bn) {
    return false;
  }

  // Test BN_rand accounts for degenerate cases with |top| and |bottom|
  // parameters.
  if (!BN_rand(bn.get(), 0, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY) ||
      !BN_is_zero(bn.get())) {
    fprintf(stderr, "BN_rand gave a bad result.\n");
    return false;
  }
  if (!BN_rand(bn.get(), 0, BN_RAND_TOP_TWO, BN_RAND_BOTTOM_ODD) ||
      !BN_is_zero(bn.get())) {
    fprintf(stderr, "BN_rand gave a bad result.\n");
    return false;
  }

  if (!BN_rand(bn.get(), 1, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY) ||
      !BN_is_word(bn.get(), 1)) {
    fprintf(stderr, "BN_rand gave a bad result.\n");
    return false;
  }
  if (!BN_rand(bn.get(), 1, BN_RAND_TOP_TWO, BN_RAND_BOTTOM_ANY) ||
      !BN_is_word(bn.get(), 1)) {
    fprintf(stderr, "BN_rand gave a bad result.\n");
    return false;
  }
  if (!BN_rand(bn.get(), 1, BN_RAND_TOP_ANY, BN_RAND_BOTTOM_ODD) ||
      !BN_is_word(bn.get(), 1)) {
    fprintf(stderr, "BN_rand gave a bad result.\n");
    return false;
  }

  if (!BN_rand(bn.get(), 2, BN_RAND_TOP_TWO, BN_RAND_BOTTOM_ANY) ||
      !BN_is_word(bn.get(), 3)) {
    fprintf(stderr, "BN_rand gave a bad result.\n");
    return false;
  }

  return true;
}

static bool TestRandRange() {
  bssl::UniquePtr<BIGNUM> bn(BN_new()), six(BN_new());
  if (!bn || !six ||
      !BN_set_word(six.get(), 6)) {
    return false;
  }

  // Generate 1,000 random numbers and ensure they all stay in range. This check
  // may flakily pass when it should have failed but will not flakily fail.
  bool seen[6] = {false, false, false, false, false};
  for (unsigned i = 0; i < 1000; i++) {
    if (!BN_rand_range_ex(bn.get(), 1, six.get())) {
      return false;
    }

    BN_ULONG word = BN_get_word(bn.get());
    if (BN_is_negative(bn.get()) ||
        word < 1 ||
        word >= 6) {
      fprintf(stderr,
              "BN_rand_range_ex generated invalid value: " BN_DEC_FMT1 "\n",
              word);
      return false;
    }

    seen[word] = true;
  }

  // Test that all numbers were accounted for. Note this test is probabilistic
  // and may flakily fail when it should have passed. As an upper-bound on the
  // failure probability, we'll never see any one number with probability
  // (4/5)^1000, so the probability of failure is at most 5*(4/5)^1000. This is
  // around 1 in 2^320.
  for (unsigned i = 1; i < 6; i++) {
    if (!seen[i]) {
      fprintf(stderr, "BN_rand_range failed to generate %u.\n", i);
      return false;
    }
  }

  return true;
}

struct ASN1Test {
  const char *value_ascii;
  const char *der;
  size_t der_len;
};

static const ASN1Test kASN1Tests[] = {
    {"0", "\x02\x01\x00", 3},
    {"1", "\x02\x01\x01", 3},
    {"127", "\x02\x01\x7f", 3},
    {"128", "\x02\x02\x00\x80", 4},
    {"0xdeadbeef", "\x02\x05\x00\xde\xad\xbe\xef", 7},
    {"0x0102030405060708",
     "\x02\x08\x01\x02\x03\x04\x05\x06\x07\x08", 10},
    {"0xffffffffffffffff",
      "\x02\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff", 11},
};

struct ASN1InvalidTest {
  const char *der;
  size_t der_len;
};

static const ASN1InvalidTest kASN1InvalidTests[] = {
    // Bad tag.
    {"\x03\x01\x00", 3},
    // Empty contents.
    {"\x02\x00", 2},
};

// kASN1BuggyTests contains incorrect encodings and the corresponding, expected
// results of |BN_parse_asn1_unsigned_buggy| given that input.
static const ASN1Test kASN1BuggyTests[] = {
    // Negative numbers.
    {"128", "\x02\x01\x80", 3},
    {"255", "\x02\x01\xff", 3},
    // Unnecessary leading zeros.
    {"1", "\x02\x02\x00\x01", 4},
};

static bool TestASN1() {
  for (const ASN1Test &test : kASN1Tests) {
    bssl::UniquePtr<BIGNUM> bn = ASCIIToBIGNUM(test.value_ascii);
    if (!bn) {
      return false;
    }

    // Test that the input is correctly parsed.
    bssl::UniquePtr<BIGNUM> bn2(BN_new());
    if (!bn2) {
      return false;
    }
    CBS cbs;
    CBS_init(&cbs, reinterpret_cast<const uint8_t*>(test.der), test.der_len);
    if (!BN_parse_asn1_unsigned(&cbs, bn2.get()) || CBS_len(&cbs) != 0) {
      fprintf(stderr, "Parsing ASN.1 INTEGER failed.\n");
      return false;
    }
    if (BN_cmp(bn.get(), bn2.get()) != 0) {
      fprintf(stderr, "Bad parse.\n");
      return false;
    }

    // Test the value serializes correctly.
    bssl::ScopedCBB cbb;
    uint8_t *der;
    size_t der_len;
    if (!CBB_init(cbb.get(), 0) ||
        !BN_marshal_asn1(cbb.get(), bn.get()) ||
        !CBB_finish(cbb.get(), &der, &der_len)) {
      return false;
    }
    bssl::UniquePtr<uint8_t> delete_der(der);
    if (der_len != test.der_len ||
        OPENSSL_memcmp(der, reinterpret_cast<const uint8_t *>(test.der),
                       der_len) != 0) {
      fprintf(stderr, "Bad serialization.\n");
      return false;
    }

    // |BN_parse_asn1_unsigned_buggy| parses all valid input.
    CBS_init(&cbs, reinterpret_cast<const uint8_t*>(test.der), test.der_len);
    if (!BN_parse_asn1_unsigned_buggy(&cbs, bn2.get()) || CBS_len(&cbs) != 0) {
      fprintf(stderr, "Parsing ASN.1 INTEGER failed.\n");
      return false;
    }
    if (BN_cmp(bn.get(), bn2.get()) != 0) {
      fprintf(stderr, "Bad parse.\n");
      return false;
    }
  }

  for (const ASN1InvalidTest &test : kASN1InvalidTests) {
    bssl::UniquePtr<BIGNUM> bn(BN_new());
    if (!bn) {
      return false;
    }
    CBS cbs;
    CBS_init(&cbs, reinterpret_cast<const uint8_t*>(test.der), test.der_len);
    if (BN_parse_asn1_unsigned(&cbs, bn.get())) {
      fprintf(stderr, "Parsed invalid input.\n");
      return false;
    }
    ERR_clear_error();

    // All tests in kASN1InvalidTests are also rejected by
    // |BN_parse_asn1_unsigned_buggy|.
    CBS_init(&cbs, reinterpret_cast<const uint8_t*>(test.der), test.der_len);
    if (BN_parse_asn1_unsigned_buggy(&cbs, bn.get())) {
      fprintf(stderr, "Parsed invalid input.\n");
      return false;
    }
    ERR_clear_error();
  }

  for (const ASN1Test &test : kASN1BuggyTests) {
    // These broken encodings are rejected by |BN_parse_asn1_unsigned|.
    bssl::UniquePtr<BIGNUM> bn(BN_new());
    if (!bn) {
      return false;
    }

    CBS cbs;
    CBS_init(&cbs, reinterpret_cast<const uint8_t*>(test.der), test.der_len);
    if (BN_parse_asn1_unsigned(&cbs, bn.get())) {
      fprintf(stderr, "Parsed invalid input.\n");
      return false;
    }
    ERR_clear_error();

    // However |BN_parse_asn1_unsigned_buggy| accepts them.
    bssl::UniquePtr<BIGNUM> bn2 = ASCIIToBIGNUM(test.value_ascii);
    if (!bn2) {
      return false;
    }

    CBS_init(&cbs, reinterpret_cast<const uint8_t*>(test.der), test.der_len);
    if (!BN_parse_asn1_unsigned_buggy(&cbs, bn.get()) || CBS_len(&cbs) != 0) {
      fprintf(stderr, "Parsing (invalid) ASN.1 INTEGER failed.\n");
      return false;
    }

    if (BN_cmp(bn.get(), bn2.get()) != 0) {
      fprintf(stderr, "\"Bad\" parse.\n");
      return false;
    }
  }

  // Serializing negative numbers is not supported.
  bssl::UniquePtr<BIGNUM> bn = ASCIIToBIGNUM("-1");
  if (!bn) {
    return false;
  }
  bssl::ScopedCBB cbb;
  if (!CBB_init(cbb.get(), 0) ||
      BN_marshal_asn1(cbb.get(), bn.get())) {
    fprintf(stderr, "Serialized negative number.\n");
    return false;
  }
  ERR_clear_error();

  return true;
}

static bool TestNegativeZero(BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a(BN_new());
  bssl::UniquePtr<BIGNUM> b(BN_new());
  bssl::UniquePtr<BIGNUM> c(BN_new());
  if (!a || !b || !c) {
    return false;
  }

  // Test that BN_mul never gives negative zero.
  if (!BN_set_word(a.get(), 1)) {
    return false;
  }
  BN_set_negative(a.get(), 1);
  BN_zero(b.get());
  if (!BN_mul(c.get(), a.get(), b.get(), ctx)) {
    return false;
  }
  if (!BN_is_zero(c.get()) || BN_is_negative(c.get())) {
    fprintf(stderr, "Multiplication test failed.\n");
    return false;
  }

  bssl::UniquePtr<BIGNUM> numerator(BN_new()), denominator(BN_new());
  if (!numerator || !denominator) {
    return false;
  }

  // Test that BN_div never gives negative zero in the quotient.
  if (!BN_set_word(numerator.get(), 1) ||
      !BN_set_word(denominator.get(), 2)) {
    return false;
  }
  BN_set_negative(numerator.get(), 1);
  if (!BN_div(a.get(), b.get(), numerator.get(), denominator.get(), ctx)) {
    return false;
  }
  if (!BN_is_zero(a.get()) || BN_is_negative(a.get())) {
    fprintf(stderr, "Incorrect quotient.\n");
    return false;
  }

  // Test that BN_div never gives negative zero in the remainder.
  if (!BN_set_word(denominator.get(), 1)) {
    return false;
  }
  if (!BN_div(a.get(), b.get(), numerator.get(), denominator.get(), ctx)) {
    return false;
  }
  if (!BN_is_zero(b.get()) || BN_is_negative(b.get())) {
    fprintf(stderr, "Incorrect remainder.\n");
    return false;
  }

  // Test that BN_set_negative will not produce a negative zero.
  BN_zero(a.get());
  BN_set_negative(a.get(), 1);
  if (BN_is_negative(a.get())) {
    fprintf(stderr, "BN_set_negative produced a negative zero.\n");
    return false;
  }

  // Test that forcibly creating a negative zero does not break |BN_bn2hex| or
  // |BN_bn2dec|.
  a->neg = 1;
  bssl::UniquePtr<char> dec(BN_bn2dec(a.get()));
  bssl::UniquePtr<char> hex(BN_bn2hex(a.get()));
  if (!dec || !hex ||
      strcmp(dec.get(), "-0") != 0 ||
      strcmp(hex.get(), "-0") != 0) {
    fprintf(stderr, "BN_bn2dec or BN_bn2hex failed with negative zero.\n");
    return false;
  }

  // Test that |BN_rshift| and |BN_rshift1| will not produce a negative zero.
  if (!BN_set_word(a.get(), 1)) {
    return false;
  }

  BN_set_negative(a.get(), 1);
  if (!BN_rshift(b.get(), a.get(), 1) ||
      !BN_rshift1(c.get(), a.get())) {
    return false;
  }

  if (!BN_is_zero(b.get()) || BN_is_negative(b.get())) {
    fprintf(stderr, "BN_rshift(-1, 1) produced the wrong result.\n");
    return false;
  }

  if (!BN_is_zero(c.get()) || BN_is_negative(c.get())) {
    fprintf(stderr, "BN_rshift1(-1) produced the wrong result.\n");
    return false;
  }

  // Test that |BN_div_word| will not produce a negative zero.
  if (BN_div_word(a.get(), 2) == (BN_ULONG)-1) {
    return false;
  }

  if (!BN_is_zero(a.get()) || BN_is_negative(a.get())) {
    fprintf(stderr, "BN_div_word(-1, 2) produced the wrong result.\n");
    return false;
  }

  return true;
}

static bool TestBadModulus(BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> a(BN_new());
  bssl::UniquePtr<BIGNUM> b(BN_new());
  bssl::UniquePtr<BIGNUM> zero(BN_new());
  bssl::UniquePtr<BN_MONT_CTX> mont(BN_MONT_CTX_new());
  if (!a || !b || !zero || !mont) {
    return false;
  }

  BN_zero(zero.get());

  if (BN_div(a.get(), b.get(), BN_value_one(), zero.get(), ctx)) {
    fprintf(stderr, "Division by zero unexpectedly succeeded.\n");
    return false;
  }
  ERR_clear_error();

  if (BN_mod_mul(a.get(), BN_value_one(), BN_value_one(), zero.get(), ctx)) {
    fprintf(stderr, "BN_mod_mul with zero modulus unexpectedly succeeded.\n");
    return false;
  }
  ERR_clear_error();

  if (BN_mod_exp(a.get(), BN_value_one(), BN_value_one(), zero.get(), ctx)) {
    fprintf(stderr, "BN_mod_exp with zero modulus unexpectedly succeeded.\n");
    return 0;
  }
  ERR_clear_error();

  if (BN_mod_exp_mont(a.get(), BN_value_one(), BN_value_one(), zero.get(), ctx,
                      NULL)) {
    fprintf(stderr,
            "BN_mod_exp_mont with zero modulus unexpectedly succeeded.\n");
    return 0;
  }
  ERR_clear_error();

  if (BN_mod_exp_mont_consttime(a.get(), BN_value_one(), BN_value_one(),
                                zero.get(), ctx, nullptr)) {
    fprintf(stderr,
            "BN_mod_exp_mont_consttime with zero modulus unexpectedly "
            "succeeded.\n");
    return 0;
  }
  ERR_clear_error();

  if (BN_MONT_CTX_set(mont.get(), zero.get(), ctx)) {
    fprintf(stderr,
            "BN_MONT_CTX_set unexpectedly succeeded for zero modulus.\n");
    return false;
  }
  ERR_clear_error();

  // Some operations also may not be used with an even modulus.

  if (!BN_set_word(b.get(), 16)) {
    return false;
  }

  if (BN_MONT_CTX_set(mont.get(), b.get(), ctx)) {
    fprintf(stderr,
            "BN_MONT_CTX_set unexpectedly succeeded for even modulus.\n");
    return false;
  }
  ERR_clear_error();

  if (BN_mod_exp_mont(a.get(), BN_value_one(), BN_value_one(), b.get(), ctx,
                      NULL)) {
    fprintf(stderr,
            "BN_mod_exp_mont with even modulus unexpectedly succeeded.\n");
    return 0;
  }
  ERR_clear_error();

  if (BN_mod_exp_mont_consttime(a.get(), BN_value_one(), BN_value_one(),
                                b.get(), ctx, nullptr)) {
    fprintf(stderr,
            "BN_mod_exp_mont_consttime with even modulus unexpectedly "
            "succeeded.\n");
    return 0;
  }
  ERR_clear_error();

  return true;
}

// TestExpModZero tests that 1**0 mod 1 == 0.
static bool TestExpModZero() {
  bssl::UniquePtr<BIGNUM> zero(BN_new()), a(BN_new()), r(BN_new());
  if (!zero || !a || !r ||
      !BN_rand(a.get(), 1024, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY)) {
    return false;
  }
  BN_zero(zero.get());

  if (!BN_mod_exp(r.get(), a.get(), zero.get(), BN_value_one(), nullptr) ||
      !BN_is_zero(r.get()) ||
      !BN_mod_exp_mont(r.get(), a.get(), zero.get(), BN_value_one(), nullptr,
                       nullptr) ||
      !BN_is_zero(r.get()) ||
      !BN_mod_exp_mont_consttime(r.get(), a.get(), zero.get(), BN_value_one(),
                                 nullptr, nullptr) ||
      !BN_is_zero(r.get()) ||
      !BN_mod_exp_mont_word(r.get(), 42, zero.get(), BN_value_one(), nullptr,
                            nullptr) ||
      !BN_is_zero(r.get())) {
    return false;
  }

  return true;
}

static bool TestSmallPrime(BN_CTX *ctx) {
  static const unsigned kBits = 10;

  bssl::UniquePtr<BIGNUM> r(BN_new());
  if (!r || !BN_generate_prime_ex(r.get(), static_cast<int>(kBits), 0, NULL,
                                  NULL, NULL)) {
    return false;
  }
  if (BN_num_bits(r.get()) != kBits) {
    fprintf(stderr, "Expected %u bit prime, got %u bit number\n", kBits,
            BN_num_bits(r.get()));
    return false;
  }

  return true;
}

static bool TestCmpWord() {
  static const BN_ULONG kMaxWord = (BN_ULONG)-1;

  bssl::UniquePtr<BIGNUM> r(BN_new());
  if (!r ||
      !BN_set_word(r.get(), 0)) {
    return false;
  }

  if (BN_cmp_word(r.get(), 0) != 0 ||
      BN_cmp_word(r.get(), 1) >= 0 ||
      BN_cmp_word(r.get(), kMaxWord) >= 0) {
    fprintf(stderr, "BN_cmp_word compared against 0 incorrectly.\n");
    return false;
  }

  if (!BN_set_word(r.get(), 100)) {
    return false;
  }

  if (BN_cmp_word(r.get(), 0) <= 0 ||
      BN_cmp_word(r.get(), 99) <= 0 ||
      BN_cmp_word(r.get(), 100) != 0 ||
      BN_cmp_word(r.get(), 101) >= 0 ||
      BN_cmp_word(r.get(), kMaxWord) >= 0) {
    fprintf(stderr, "BN_cmp_word compared against 100 incorrectly.\n");
    return false;
  }

  BN_set_negative(r.get(), 1);

  if (BN_cmp_word(r.get(), 0) >= 0 ||
      BN_cmp_word(r.get(), 100) >= 0 ||
      BN_cmp_word(r.get(), kMaxWord) >= 0) {
    fprintf(stderr, "BN_cmp_word compared against -100 incorrectly.\n");
    return false;
  }

  if (!BN_set_word(r.get(), kMaxWord)) {
    return false;
  }

  if (BN_cmp_word(r.get(), 0) <= 0 ||
      BN_cmp_word(r.get(), kMaxWord - 1) <= 0 ||
      BN_cmp_word(r.get(), kMaxWord) != 0) {
    fprintf(stderr, "BN_cmp_word compared against kMaxWord incorrectly.\n");
    return false;
  }

  if (!BN_add(r.get(), r.get(), BN_value_one())) {
    return false;
  }

  if (BN_cmp_word(r.get(), 0) <= 0 ||
      BN_cmp_word(r.get(), kMaxWord) <= 0) {
    fprintf(stderr, "BN_cmp_word compared against kMaxWord + 1 incorrectly.\n");
    return false;
  }

  BN_set_negative(r.get(), 1);

  if (BN_cmp_word(r.get(), 0) >= 0 ||
      BN_cmp_word(r.get(), kMaxWord) >= 0) {
    fprintf(stderr,
            "BN_cmp_word compared against -kMaxWord - 1 incorrectly.\n");
    return false;
  }

  return true;
}

static bool TestBN2Dec() {
  static const char *kBN2DecTests[] = {
      "0",
      "1",
      "-1",
      "100",
      "-100",
      "123456789012345678901234567890",
      "-123456789012345678901234567890",
      "123456789012345678901234567890123456789012345678901234567890",
      "-123456789012345678901234567890123456789012345678901234567890",
  };

  for (const char *test : kBN2DecTests) {
    bssl::UniquePtr<BIGNUM> bn;
    int ret = DecimalToBIGNUM(&bn, test);
    if (ret == 0) {
      return false;
    }

    bssl::UniquePtr<char> dec(BN_bn2dec(bn.get()));
    if (!dec) {
      fprintf(stderr, "BN_bn2dec failed on %s.\n", test);
      return false;
    }

    if (strcmp(dec.get(), test) != 0) {
      fprintf(stderr, "BN_bn2dec gave %s, wanted %s.\n", dec.get(), test);
      return false;
    }
  }

  return true;
}

static bool TestBNSetGetU64() {
  static const struct {
    const char *hex;
    uint64_t value;
  } kU64Tests[] = {
      {"0", UINT64_C(0x0)},
      {"1", UINT64_C(0x1)},
      {"ffffffff", UINT64_C(0xffffffff)},
      {"100000000", UINT64_C(0x100000000)},
      {"ffffffffffffffff", UINT64_C(0xffffffffffffffff)},
  };

  for (const auto& test : kU64Tests) {
    bssl::UniquePtr<BIGNUM> bn(BN_new()), expected;
    if (!bn ||
        !BN_set_u64(bn.get(), test.value) ||
        !HexToBIGNUM(&expected, test.hex) ||
        BN_cmp(bn.get(), expected.get()) != 0) {
      fprintf(stderr, "BN_set_u64 test failed for 0x%s.\n", test.hex);
      ERR_print_errors_fp(stderr);
      return false;
    }

    uint64_t tmp;
    if (!BN_get_u64(bn.get(), &tmp) || tmp != test.value) {
      fprintf(stderr, "BN_get_u64 test failed for 0x%s.\n", test.hex);
      return false;
    }

    BN_set_negative(bn.get(), 1);
    if (!BN_get_u64(bn.get(), &tmp) || tmp != test.value) {
      fprintf(stderr, "BN_get_u64 test failed for -0x%s.\n", test.hex);
      return false;
    }
  }

  // Test that BN_get_u64 fails on large numbers.
  bssl::UniquePtr<BIGNUM> bn(BN_new());
  if (!BN_lshift(bn.get(), BN_value_one(), 64)) {
    return false;
  }

  uint64_t tmp;
  if (BN_get_u64(bn.get(), &tmp)) {
    fprintf(stderr, "BN_get_u64 of 2^64 unexpectedly succeeded.\n");
    return false;
  }

  BN_set_negative(bn.get(), 1);
  if (BN_get_u64(bn.get(), &tmp)) {
    fprintf(stderr, "BN_get_u64 of -2^64 unexpectedly succeeded.\n");
    return false;
  }

  return true;
}

static bool TestBNPow2(BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM>
      power_of_two(BN_new()),
      random(BN_new()),
      expected(BN_new()),
      actual(BN_new());

  if (!power_of_two.get() ||
      !random.get() ||
      !expected.get() ||
      !actual.get()) {
    return false;
  }

  // Choose an exponent.
  for (size_t e = 3; e < 512; e += 11) {
    // Choose a bit length for our randoms.
    for (int len = 3; len < 512; len += 23) {
      // Set power_of_two = 2^e.
      if (!BN_lshift(power_of_two.get(), BN_value_one(), (int) e)) {
        fprintf(stderr, "Failed to shiftl.\n");
        return false;
      }

      // Test BN_is_pow2 on power_of_two.
      if (!BN_is_pow2(power_of_two.get())) {
        fprintf(stderr, "BN_is_pow2 returned false for a power of two.\n");
        hexdump(stderr, "Arg: ", power_of_two->d,
                power_of_two->top * sizeof(BN_ULONG));
        return false;
      }

      // Pick a large random value, ensuring it isn't a power of two.
      if (!BN_rand(random.get(), len, BN_RAND_TOP_TWO, BN_RAND_BOTTOM_ANY)) {
        fprintf(stderr, "Failed to generate random in TestBNPow2.\n");
        return false;
      }

      // Test BN_is_pow2 on |r|.
      if (BN_is_pow2(random.get())) {
        fprintf(stderr, "BN_is_pow2 returned true for a non-power of two.\n");
        hexdump(stderr, "Arg: ", random->d, random->top * sizeof(BN_ULONG));
        return false;
      }

      // Test BN_mod_pow2 on |r|.
      if (!BN_mod(expected.get(), random.get(), power_of_two.get(), ctx) ||
          !BN_mod_pow2(actual.get(), random.get(), e) ||
          BN_cmp(actual.get(), expected.get())) {
        fprintf(stderr, "BN_mod_pow2 returned the wrong value:\n");
        hexdump(stderr, "Expected: ", expected->d,
                expected->top * sizeof(BN_ULONG));
        hexdump(stderr, "Got:      ", actual->d,
                actual->top * sizeof(BN_ULONG));
        return false;
      }

      // Test BN_nnmod_pow2 on |r|.
      if (!BN_nnmod(expected.get(), random.get(), power_of_two.get(), ctx) ||
          !BN_nnmod_pow2(actual.get(), random.get(), e) ||
          BN_cmp(actual.get(), expected.get())) {
        fprintf(stderr, "BN_nnmod_pow2 failed on positive input:\n");
        hexdump(stderr, "Expected: ", expected->d,
                expected->top * sizeof(BN_ULONG));
        hexdump(stderr, "Got:      ", actual->d,
                actual->top * sizeof(BN_ULONG));
        return false;
      }

      // Test BN_nnmod_pow2 on -|r|.
      BN_set_negative(random.get(), 1);
      if (!BN_nnmod(expected.get(), random.get(), power_of_two.get(), ctx) ||
          !BN_nnmod_pow2(actual.get(), random.get(), e) ||
          BN_cmp(actual.get(), expected.get())) {
        fprintf(stderr, "BN_nnmod_pow2 failed on negative input:\n");
        hexdump(stderr, "Expected: ", expected->d,
                expected->top * sizeof(BN_ULONG));
        hexdump(stderr, "Got:      ", actual->d,
                actual->top * sizeof(BN_ULONG));
        return false;
      }
    }
  }

  return true;
}

static const int kPrimes[10000] = {
    2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71,
    73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,
    157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233,
    239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317,
    331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419,
    421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
    509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607,
    613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701,
    709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811,
    821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911,
    919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013,
    1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091,
    1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181,
    1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277,
    1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361,
    1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451,
    1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531,
    1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609,
    1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699,
    1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789,
    1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889,
    1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997,
    1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083,
    2087, 2089, 2099, 2111, 2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161,
    2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273,
    2281, 2287, 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357,
    2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441,
    2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551,
    2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663,
    2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729,
    2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819,
    2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917,
    2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023,
    3037, 3041, 3049, 3061, 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137,
    3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251,
    3253, 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331,
    3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449,
    3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533,
    3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617,
    3623, 3631, 3637, 3643, 3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709,
    3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821,
    3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917,
    3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989, 4001, 4003, 4007, 4013,
    4019, 4021, 4027, 4049, 4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111,
    4127, 4129, 4133, 4139, 4153, 4157, 4159, 4177, 4201, 4211, 4217, 4219,
    4229, 4231, 4241, 4243, 4253, 4259, 4261, 4271, 4273, 4283, 4289, 4297,
    4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409, 4421, 4423,
    4441, 4447, 4451, 4457, 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519,
    4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597, 4603, 4621, 4637, 4639,
    4643, 4649, 4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729,
    4733, 4751, 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813, 4817, 4831,
    4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937, 4943, 4951,
    4957, 4967, 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011, 5021, 5023,
    5039, 5051, 5059, 5077, 5081, 5087, 5099, 5101, 5107, 5113, 5119, 5147,
    5153, 5167, 5171, 5179, 5189, 5197, 5209, 5227, 5231, 5233, 5237, 5261,
    5273, 5279, 5281, 5297, 5303, 5309, 5323, 5333, 5347, 5351, 5381, 5387,
    5393, 5399, 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443, 5449, 5471,
    5477, 5479, 5483, 5501, 5503, 5507, 5519, 5521, 5527, 5531, 5557, 5563,
    5569, 5573, 5581, 5591, 5623, 5639, 5641, 5647, 5651, 5653, 5657, 5659,
    5669, 5683, 5689, 5693, 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779,
    5783, 5791, 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857,
    5861, 5867, 5869, 5879, 5881, 5897, 5903, 5923, 5927, 5939, 5953, 5981,
    5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073, 6079, 6089,
    6091, 6101, 6113, 6121, 6131, 6133, 6143, 6151, 6163, 6173, 6197, 6199,
    6203, 6211, 6217, 6221, 6229, 6247, 6257, 6263, 6269, 6271, 6277, 6287,
    6299, 6301, 6311, 6317, 6323, 6329, 6337, 6343, 6353, 6359, 6361, 6367,
    6373, 6379, 6389, 6397, 6421, 6427, 6449, 6451, 6469, 6473, 6481, 6491,
    6521, 6529, 6547, 6551, 6553, 6563, 6569, 6571, 6577, 6581, 6599, 6607,
    6619, 6637, 6653, 6659, 6661, 6673, 6679, 6689, 6691, 6701, 6703, 6709,
    6719, 6733, 6737, 6761, 6763, 6779, 6781, 6791, 6793, 6803, 6823, 6827,
    6829, 6833, 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917,
    6947, 6949, 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, 7001, 7013,
    7019, 7027, 7039, 7043, 7057, 7069, 7079, 7103, 7109, 7121, 7127, 7129,
    7151, 7159, 7177, 7187, 7193, 7207, 7211, 7213, 7219, 7229, 7237, 7243,
    7247, 7253, 7283, 7297, 7307, 7309, 7321, 7331, 7333, 7349, 7351, 7369,
    7393, 7411, 7417, 7433, 7451, 7457, 7459, 7477, 7481, 7487, 7489, 7499,
    7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561, 7573, 7577,
    7583, 7589, 7591, 7603, 7607, 7621, 7639, 7643, 7649, 7669, 7673, 7681,
    7687, 7691, 7699, 7703, 7717, 7723, 7727, 7741, 7753, 7757, 7759, 7789,
    7793, 7817, 7823, 7829, 7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901,
    7907, 7919, 7927, 7933, 7937, 7949, 7951, 7963, 7993, 8009, 8011, 8017,
    8039, 8053, 8059, 8069, 8081, 8087, 8089, 8093, 8101, 8111, 8117, 8123,
    8147, 8161, 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231, 8233, 8237,
    8243, 8263, 8269, 8273, 8287, 8291, 8293, 8297, 8311, 8317, 8329, 8353,
    8363, 8369, 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443, 8447, 8461,
    8467, 8501, 8513, 8521, 8527, 8537, 8539, 8543, 8563, 8573, 8581, 8597,
    8599, 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677, 8681, 8689,
    8693, 8699, 8707, 8713, 8719, 8731, 8737, 8741, 8747, 8753, 8761, 8779,
    8783, 8803, 8807, 8819, 8821, 8831, 8837, 8839, 8849, 8861, 8863, 8867,
    8887, 8893, 8923, 8929, 8933, 8941, 8951, 8963, 8969, 8971, 8999, 9001,
    9007, 9011, 9013, 9029, 9041, 9043, 9049, 9059, 9067, 9091, 9103, 9109,
    9127, 9133, 9137, 9151, 9157, 9161, 9173, 9181, 9187, 9199, 9203, 9209,
    9221, 9227, 9239, 9241, 9257, 9277, 9281, 9283, 9293, 9311, 9319, 9323,
    9337, 9341, 9343, 9349, 9371, 9377, 9391, 9397, 9403, 9413, 9419, 9421,
    9431, 9433, 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491, 9497, 9511,
    9521, 9533, 9539, 9547, 9551, 9587, 9601, 9613, 9619, 9623, 9629, 9631,
    9643, 9649, 9661, 9677, 9679, 9689, 9697, 9719, 9721, 9733, 9739, 9743,
    9749, 9767, 9769, 9781, 9787, 9791, 9803, 9811, 9817, 9829, 9833, 9839,
    9851, 9857, 9859, 9871, 9883, 9887, 9901, 9907, 9923, 9929, 9931, 9941,
    9949, 9967, 9973, 10007, 10009, 10037, 10039, 10061, 10067, 10069, 10079,
    10091, 10093, 10099, 10103, 10111, 10133, 10139, 10141, 10151, 10159, 10163,
    10169, 10177, 10181, 10193, 10211, 10223, 10243, 10247, 10253, 10259, 10267,
    10271, 10273, 10289, 10301, 10303, 10313, 10321, 10331, 10333, 10337, 10343,
    10357, 10369, 10391, 10399, 10427, 10429, 10433, 10453, 10457, 10459, 10463,
    10477, 10487, 10499, 10501, 10513, 10529, 10531, 10559, 10567, 10589, 10597,
    10601, 10607, 10613, 10627, 10631, 10639, 10651, 10657, 10663, 10667, 10687,
    10691, 10709, 10711, 10723, 10729, 10733, 10739, 10753, 10771, 10781, 10789,
    10799, 10831, 10837, 10847, 10853, 10859, 10861, 10867, 10883, 10889, 10891,
    10903, 10909, 10937, 10939, 10949, 10957, 10973, 10979, 10987, 10993, 11003,
    11027, 11047, 11057, 11059, 11069, 11071, 11083, 11087, 11093, 11113, 11117,
    11119, 11131, 11149, 11159, 11161, 11171, 11173, 11177, 11197, 11213, 11239,
    11243, 11251, 11257, 11261, 11273, 11279, 11287, 11299, 11311, 11317, 11321,
    11329, 11351, 11353, 11369, 11383, 11393, 11399, 11411, 11423, 11437, 11443,
    11447, 11467, 11471, 11483, 11489, 11491, 11497, 11503, 11519, 11527, 11549,
    11551, 11579, 11587, 11593, 11597, 11617, 11621, 11633, 11657, 11677, 11681,
    11689, 11699, 11701, 11717, 11719, 11731, 11743, 11777, 11779, 11783, 11789,
    11801, 11807, 11813, 11821, 11827, 11831, 11833, 11839, 11863, 11867, 11887,
    11897, 11903, 11909, 11923, 11927, 11933, 11939, 11941, 11953, 11959, 11969,
    11971, 11981, 11987, 12007, 12011, 12037, 12041, 12043, 12049, 12071, 12073,
    12097, 12101, 12107, 12109, 12113, 12119, 12143, 12149, 12157, 12161, 12163,
    12197, 12203, 12211, 12227, 12239, 12241, 12251, 12253, 12263, 12269, 12277,
    12281, 12289, 12301, 12323, 12329, 12343, 12347, 12373, 12377, 12379, 12391,
    12401, 12409, 12413, 12421, 12433, 12437, 12451, 12457, 12473, 12479, 12487,
    12491, 12497, 12503, 12511, 12517, 12527, 12539, 12541, 12547, 12553, 12569,
    12577, 12583, 12589, 12601, 12611, 12613, 12619, 12637, 12641, 12647, 12653,
    12659, 12671, 12689, 12697, 12703, 12713, 12721, 12739, 12743, 12757, 12763,
    12781, 12791, 12799, 12809, 12821, 12823, 12829, 12841, 12853, 12889, 12893,
    12899, 12907, 12911, 12917, 12919, 12923, 12941, 12953, 12959, 12967, 12973,
    12979, 12983, 13001, 13003, 13007, 13009, 13033, 13037, 13043, 13049, 13063,
    13093, 13099, 13103, 13109, 13121, 13127, 13147, 13151, 13159, 13163, 13171,
    13177, 13183, 13187, 13217, 13219, 13229, 13241, 13249, 13259, 13267, 13291,
    13297, 13309, 13313, 13327, 13331, 13337, 13339, 13367, 13381, 13397, 13399,
    13411, 13417, 13421, 13441, 13451, 13457, 13463, 13469, 13477, 13487, 13499,
    13513, 13523, 13537, 13553, 13567, 13577, 13591, 13597, 13613, 13619, 13627,
    13633, 13649, 13669, 13679, 13681, 13687, 13691, 13693, 13697, 13709, 13711,
    13721, 13723, 13729, 13751, 13757, 13759, 13763, 13781, 13789, 13799, 13807,
    13829, 13831, 13841, 13859, 13873, 13877, 13879, 13883, 13901, 13903, 13907,
    13913, 13921, 13931, 13933, 13963, 13967, 13997, 13999, 14009, 14011, 14029,
    14033, 14051, 14057, 14071, 14081, 14083, 14087, 14107, 14143, 14149, 14153,
    14159, 14173, 14177, 14197, 14207, 14221, 14243, 14249, 14251, 14281, 14293,
    14303, 14321, 14323, 14327, 14341, 14347, 14369, 14387, 14389, 14401, 14407,
    14411, 14419, 14423, 14431, 14437, 14447, 14449, 14461, 14479, 14489, 14503,
    14519, 14533, 14537, 14543, 14549, 14551, 14557, 14561, 14563, 14591, 14593,
    14621, 14627, 14629, 14633, 14639, 14653, 14657, 14669, 14683, 14699, 14713,
    14717, 14723, 14731, 14737, 14741, 14747, 14753, 14759, 14767, 14771, 14779,
    14783, 14797, 14813, 14821, 14827, 14831, 14843, 14851, 14867, 14869, 14879,
    14887, 14891, 14897, 14923, 14929, 14939, 14947, 14951, 14957, 14969, 14983,
    15013, 15017, 15031, 15053, 15061, 15073, 15077, 15083, 15091, 15101, 15107,
    15121, 15131, 15137, 15139, 15149, 15161, 15173, 15187, 15193, 15199, 15217,
    15227, 15233, 15241, 15259, 15263, 15269, 15271, 15277, 15287, 15289, 15299,
    15307, 15313, 15319, 15329, 15331, 15349, 15359, 15361, 15373, 15377, 15383,
    15391, 15401, 15413, 15427, 15439, 15443, 15451, 15461, 15467, 15473, 15493,
    15497, 15511, 15527, 15541, 15551, 15559, 15569, 15581, 15583, 15601, 15607,
    15619, 15629, 15641, 15643, 15647, 15649, 15661, 15667, 15671, 15679, 15683,
    15727, 15731, 15733, 15737, 15739, 15749, 15761, 15767, 15773, 15787, 15791,
    15797, 15803, 15809, 15817, 15823, 15859, 15877, 15881, 15887, 15889, 15901,
    15907, 15913, 15919, 15923, 15937, 15959, 15971, 15973, 15991, 16001, 16007,
    16033, 16057, 16061, 16063, 16067, 16069, 16073, 16087, 16091, 16097, 16103,
    16111, 16127, 16139, 16141, 16183, 16187, 16189, 16193, 16217, 16223, 16229,
    16231, 16249, 16253, 16267, 16273, 16301, 16319, 16333, 16339, 16349, 16361,
    16363, 16369, 16381, 16411, 16417, 16421, 16427, 16433, 16447, 16451, 16453,
    16477, 16481, 16487, 16493, 16519, 16529, 16547, 16553, 16561, 16567, 16573,
    16603, 16607, 16619, 16631, 16633, 16649, 16651, 16657, 16661, 16673, 16691,
    16693, 16699, 16703, 16729, 16741, 16747, 16759, 16763, 16787, 16811, 16823,
    16829, 16831, 16843, 16871, 16879, 16883, 16889, 16901, 16903, 16921, 16927,
    16931, 16937, 16943, 16963, 16979, 16981, 16987, 16993, 17011, 17021, 17027,
    17029, 17033, 17041, 17047, 17053, 17077, 17093, 17099, 17107, 17117, 17123,
    17137, 17159, 17167, 17183, 17189, 17191, 17203, 17207, 17209, 17231, 17239,
    17257, 17291, 17293, 17299, 17317, 17321, 17327, 17333, 17341, 17351, 17359,
    17377, 17383, 17387, 17389, 17393, 17401, 17417, 17419, 17431, 17443, 17449,
    17467, 17471, 17477, 17483, 17489, 17491, 17497, 17509, 17519, 17539, 17551,
    17569, 17573, 17579, 17581, 17597, 17599, 17609, 17623, 17627, 17657, 17659,
    17669, 17681, 17683, 17707, 17713, 17729, 17737, 17747, 17749, 17761, 17783,
    17789, 17791, 17807, 17827, 17837, 17839, 17851, 17863, 17881, 17891, 17903,
    17909, 17911, 17921, 17923, 17929, 17939, 17957, 17959, 17971, 17977, 17981,
    17987, 17989, 18013, 18041, 18043, 18047, 18049, 18059, 18061, 18077, 18089,
    18097, 18119, 18121, 18127, 18131, 18133, 18143, 18149, 18169, 18181, 18191,
    18199, 18211, 18217, 18223, 18229, 18233, 18251, 18253, 18257, 18269, 18287,
    18289, 18301, 18307, 18311, 18313, 18329, 18341, 18353, 18367, 18371, 18379,
    18397, 18401, 18413, 18427, 18433, 18439, 18443, 18451, 18457, 18461, 18481,
    18493, 18503, 18517, 18521, 18523, 18539, 18541, 18553, 18583, 18587, 18593,
    18617, 18637, 18661, 18671, 18679, 18691, 18701, 18713, 18719, 18731, 18743,
    18749, 18757, 18773, 18787, 18793, 18797, 18803, 18839, 18859, 18869, 18899,
    18911, 18913, 18917, 18919, 18947, 18959, 18973, 18979, 19001, 19009, 19013,
    19031, 19037, 19051, 19069, 19073, 19079, 19081, 19087, 19121, 19139, 19141,
    19157, 19163, 19181, 19183, 19207, 19211, 19213, 19219, 19231, 19237, 19249,
    19259, 19267, 19273, 19289, 19301, 19309, 19319, 19333, 19373, 19379, 19381,
    19387, 19391, 19403, 19417, 19421, 19423, 19427, 19429, 19433, 19441, 19447,
    19457, 19463, 19469, 19471, 19477, 19483, 19489, 19501, 19507, 19531, 19541,
    19543, 19553, 19559, 19571, 19577, 19583, 19597, 19603, 19609, 19661, 19681,
    19687, 19697, 19699, 19709, 19717, 19727, 19739, 19751, 19753, 19759, 19763,
    19777, 19793, 19801, 19813, 19819, 19841, 19843, 19853, 19861, 19867, 19889,
    19891, 19913, 19919, 19927, 19937, 19949, 19961, 19963, 19973, 19979, 19991,
    19993, 19997, 20011, 20021, 20023, 20029, 20047, 20051, 20063, 20071, 20089,
    20101, 20107, 20113, 20117, 20123, 20129, 20143, 20147, 20149, 20161, 20173,
    20177, 20183, 20201, 20219, 20231, 20233, 20249, 20261, 20269, 20287, 20297,
    20323, 20327, 20333, 20341, 20347, 20353, 20357, 20359, 20369, 20389, 20393,
    20399, 20407, 20411, 20431, 20441, 20443, 20477, 20479, 20483, 20507, 20509,
    20521, 20533, 20543, 20549, 20551, 20563, 20593, 20599, 20611, 20627, 20639,
    20641, 20663, 20681, 20693, 20707, 20717, 20719, 20731, 20743, 20747, 20749,
    20753, 20759, 20771, 20773, 20789, 20807, 20809, 20849, 20857, 20873, 20879,
    20887, 20897, 20899, 20903, 20921, 20929, 20939, 20947, 20959, 20963, 20981,
    20983, 21001, 21011, 21013, 21017, 21019, 21023, 21031, 21059, 21061, 21067,
    21089, 21101, 21107, 21121, 21139, 21143, 21149, 21157, 21163, 21169, 21179,
    21187, 21191, 21193, 21211, 21221, 21227, 21247, 21269, 21277, 21283, 21313,
    21317, 21319, 21323, 21341, 21347, 21377, 21379, 21383, 21391, 21397, 21401,
    21407, 21419, 21433, 21467, 21481, 21487, 21491, 21493, 21499, 21503, 21517,
    21521, 21523, 21529, 21557, 21559, 21563, 21569, 21577, 21587, 21589, 21599,
    21601, 21611, 21613, 21617, 21647, 21649, 21661, 21673, 21683, 21701, 21713,
    21727, 21737, 21739, 21751, 21757, 21767, 21773, 21787, 21799, 21803, 21817,
    21821, 21839, 21841, 21851, 21859, 21863, 21871, 21881, 21893, 21911, 21929,
    21937, 21943, 21961, 21977, 21991, 21997, 22003, 22013, 22027, 22031, 22037,
    22039, 22051, 22063, 22067, 22073, 22079, 22091, 22093, 22109, 22111, 22123,
    22129, 22133, 22147, 22153, 22157, 22159, 22171, 22189, 22193, 22229, 22247,
    22259, 22271, 22273, 22277, 22279, 22283, 22291, 22303, 22307, 22343, 22349,
    22367, 22369, 22381, 22391, 22397, 22409, 22433, 22441, 22447, 22453, 22469,
    22481, 22483, 22501, 22511, 22531, 22541, 22543, 22549, 22567, 22571, 22573,
    22613, 22619, 22621, 22637, 22639, 22643, 22651, 22669, 22679, 22691, 22697,
    22699, 22709, 22717, 22721, 22727, 22739, 22741, 22751, 22769, 22777, 22783,
    22787, 22807, 22811, 22817, 22853, 22859, 22861, 22871, 22877, 22901, 22907,
    22921, 22937, 22943, 22961, 22963, 22973, 22993, 23003, 23011, 23017, 23021,
    23027, 23029, 23039, 23041, 23053, 23057, 23059, 23063, 23071, 23081, 23087,
    23099, 23117, 23131, 23143, 23159, 23167, 23173, 23189, 23197, 23201, 23203,
    23209, 23227, 23251, 23269, 23279, 23291, 23293, 23297, 23311, 23321, 23327,
    23333, 23339, 23357, 23369, 23371, 23399, 23417, 23431, 23447, 23459, 23473,
    23497, 23509, 23531, 23537, 23539, 23549, 23557, 23561, 23563, 23567, 23581,
    23593, 23599, 23603, 23609, 23623, 23627, 23629, 23633, 23663, 23669, 23671,
    23677, 23687, 23689, 23719, 23741, 23743, 23747, 23753, 23761, 23767, 23773,
    23789, 23801, 23813, 23819, 23827, 23831, 23833, 23857, 23869, 23873, 23879,
    23887, 23893, 23899, 23909, 23911, 23917, 23929, 23957, 23971, 23977, 23981,
    23993, 24001, 24007, 24019, 24023, 24029, 24043, 24049, 24061, 24071, 24077,
    24083, 24091, 24097, 24103, 24107, 24109, 24113, 24121, 24133, 24137, 24151,
    24169, 24179, 24181, 24197, 24203, 24223, 24229, 24239, 24247, 24251, 24281,
    24317, 24329, 24337, 24359, 24371, 24373, 24379, 24391, 24407, 24413, 24419,
    24421, 24439, 24443, 24469, 24473, 24481, 24499, 24509, 24517, 24527, 24533,
    24547, 24551, 24571, 24593, 24611, 24623, 24631, 24659, 24671, 24677, 24683,
    24691, 24697, 24709, 24733, 24749, 24763, 24767, 24781, 24793, 24799, 24809,
    24821, 24841, 24847, 24851, 24859, 24877, 24889, 24907, 24917, 24919, 24923,
    24943, 24953, 24967, 24971, 24977, 24979, 24989, 25013, 25031, 25033, 25037,
    25057, 25073, 25087, 25097, 25111, 25117, 25121, 25127, 25147, 25153, 25163,
    25169, 25171, 25183, 25189, 25219, 25229, 25237, 25243, 25247, 25253, 25261,
    25301, 25303, 25307, 25309, 25321, 25339, 25343, 25349, 25357, 25367, 25373,
    25391, 25409, 25411, 25423, 25439, 25447, 25453, 25457, 25463, 25469, 25471,
    25523, 25537, 25541, 25561, 25577, 25579, 25583, 25589, 25601, 25603, 25609,
    25621, 25633, 25639, 25643, 25657, 25667, 25673, 25679, 25693, 25703, 25717,
    25733, 25741, 25747, 25759, 25763, 25771, 25793, 25799, 25801, 25819, 25841,
    25847, 25849, 25867, 25873, 25889, 25903, 25913, 25919, 25931, 25933, 25939,
    25943, 25951, 25969, 25981, 25997, 25999, 26003, 26017, 26021, 26029, 26041,
    26053, 26083, 26099, 26107, 26111, 26113, 26119, 26141, 26153, 26161, 26171,
    26177, 26183, 26189, 26203, 26209, 26227, 26237, 26249, 26251, 26261, 26263,
    26267, 26293, 26297, 26309, 26317, 26321, 26339, 26347, 26357, 26371, 26387,
    26393, 26399, 26407, 26417, 26423, 26431, 26437, 26449, 26459, 26479, 26489,
    26497, 26501, 26513, 26539, 26557, 26561, 26573, 26591, 26597, 26627, 26633,
    26641, 26647, 26669, 26681, 26683, 26687, 26693, 26699, 26701, 26711, 26713,
    26717, 26723, 26729, 26731, 26737, 26759, 26777, 26783, 26801, 26813, 26821,
    26833, 26839, 26849, 26861, 26863, 26879, 26881, 26891, 26893, 26903, 26921,
    26927, 26947, 26951, 26953, 26959, 26981, 26987, 26993, 27011, 27017, 27031,
    27043, 27059, 27061, 27067, 27073, 27077, 27091, 27103, 27107, 27109, 27127,
    27143, 27179, 27191, 27197, 27211, 27239, 27241, 27253, 27259, 27271, 27277,
    27281, 27283, 27299, 27329, 27337, 27361, 27367, 27397, 27407, 27409, 27427,
    27431, 27437, 27449, 27457, 27479, 27481, 27487, 27509, 27527, 27529, 27539,
    27541, 27551, 27581, 27583, 27611, 27617, 27631, 27647, 27653, 27673, 27689,
    27691, 27697, 27701, 27733, 27737, 27739, 27743, 27749, 27751, 27763, 27767,
    27773, 27779, 27791, 27793, 27799, 27803, 27809, 27817, 27823, 27827, 27847,
    27851, 27883, 27893, 27901, 27917, 27919, 27941, 27943, 27947, 27953, 27961,
    27967, 27983, 27997, 28001, 28019, 28027, 28031, 28051, 28057, 28069, 28081,
    28087, 28097, 28099, 28109, 28111, 28123, 28151, 28163, 28181, 28183, 28201,
    28211, 28219, 28229, 28277, 28279, 28283, 28289, 28297, 28307, 28309, 28319,
    28349, 28351, 28387, 28393, 28403, 28409, 28411, 28429, 28433, 28439, 28447,
    28463, 28477, 28493, 28499, 28513, 28517, 28537, 28541, 28547, 28549, 28559,
    28571, 28573, 28579, 28591, 28597, 28603, 28607, 28619, 28621, 28627, 28631,
    28643, 28649, 28657, 28661, 28663, 28669, 28687, 28697, 28703, 28711, 28723,
    28729, 28751, 28753, 28759, 28771, 28789, 28793, 28807, 28813, 28817, 28837,
    28843, 28859, 28867, 28871, 28879, 28901, 28909, 28921, 28927, 28933, 28949,
    28961, 28979, 29009, 29017, 29021, 29023, 29027, 29033, 29059, 29063, 29077,
    29101, 29123, 29129, 29131, 29137, 29147, 29153, 29167, 29173, 29179, 29191,
    29201, 29207, 29209, 29221, 29231, 29243, 29251, 29269, 29287, 29297, 29303,
    29311, 29327, 29333, 29339, 29347, 29363, 29383, 29387, 29389, 29399, 29401,
    29411, 29423, 29429, 29437, 29443, 29453, 29473, 29483, 29501, 29527, 29531,
    29537, 29567, 29569, 29573, 29581, 29587, 29599, 29611, 29629, 29633, 29641,
    29663, 29669, 29671, 29683, 29717, 29723, 29741, 29753, 29759, 29761, 29789,
    29803, 29819, 29833, 29837, 29851, 29863, 29867, 29873, 29879, 29881, 29917,
    29921, 29927, 29947, 29959, 29983, 29989, 30011, 30013, 30029, 30047, 30059,
    30071, 30089, 30091, 30097, 30103, 30109, 30113, 30119, 30133, 30137, 30139,
    30161, 30169, 30181, 30187, 30197, 30203, 30211, 30223, 30241, 30253, 30259,
    30269, 30271, 30293, 30307, 30313, 30319, 30323, 30341, 30347, 30367, 30389,
    30391, 30403, 30427, 30431, 30449, 30467, 30469, 30491, 30493, 30497, 30509,
    30517, 30529, 30539, 30553, 30557, 30559, 30577, 30593, 30631, 30637, 30643,
    30649, 30661, 30671, 30677, 30689, 30697, 30703, 30707, 30713, 30727, 30757,
    30763, 30773, 30781, 30803, 30809, 30817, 30829, 30839, 30841, 30851, 30853,
    30859, 30869, 30871, 30881, 30893, 30911, 30931, 30937, 30941, 30949, 30971,
    30977, 30983, 31013, 31019, 31033, 31039, 31051, 31063, 31069, 31079, 31081,
    31091, 31121, 31123, 31139, 31147, 31151, 31153, 31159, 31177, 31181, 31183,
    31189, 31193, 31219, 31223, 31231, 31237, 31247, 31249, 31253, 31259, 31267,
    31271, 31277, 31307, 31319, 31321, 31327, 31333, 31337, 31357, 31379, 31387,
    31391, 31393, 31397, 31469, 31477, 31481, 31489, 31511, 31513, 31517, 31531,
    31541, 31543, 31547, 31567, 31573, 31583, 31601, 31607, 31627, 31643, 31649,
    31657, 31663, 31667, 31687, 31699, 31721, 31723, 31727, 31729, 31741, 31751,
    31769, 31771, 31793, 31799, 31817, 31847, 31849, 31859, 31873, 31883, 31891,
    31907, 31957, 31963, 31973, 31981, 31991, 32003, 32009, 32027, 32029, 32051,
    32057, 32059, 32063, 32069, 32077, 32083, 32089, 32099, 32117, 32119, 32141,
    32143, 32159, 32173, 32183, 32189, 32191, 32203, 32213, 32233, 32237, 32251,
    32257, 32261, 32297, 32299, 32303, 32309, 32321, 32323, 32327, 32341, 32353,
    32359, 32363, 32369, 32371, 32377, 32381, 32401, 32411, 32413, 32423, 32429,
    32441, 32443, 32467, 32479, 32491, 32497, 32503, 32507, 32531, 32533, 32537,
    32561, 32563, 32569, 32573, 32579, 32587, 32603, 32609, 32611, 32621, 32633,
    32647, 32653, 32687, 32693, 32707, 32713, 32717, 32719, 32749, 32771, 32779,
    32783, 32789, 32797, 32801, 32803, 32831, 32833, 32839, 32843, 32869, 32887,
    32909, 32911, 32917, 32933, 32939, 32941, 32957, 32969, 32971, 32983, 32987,
    32993, 32999, 33013, 33023, 33029, 33037, 33049, 33053, 33071, 33073, 33083,
    33091, 33107, 33113, 33119, 33149, 33151, 33161, 33179, 33181, 33191, 33199,
    33203, 33211, 33223, 33247, 33287, 33289, 33301, 33311, 33317, 33329, 33331,
    33343, 33347, 33349, 33353, 33359, 33377, 33391, 33403, 33409, 33413, 33427,
    33457, 33461, 33469, 33479, 33487, 33493, 33503, 33521, 33529, 33533, 33547,
    33563, 33569, 33577, 33581, 33587, 33589, 33599, 33601, 33613, 33617, 33619,
    33623, 33629, 33637, 33641, 33647, 33679, 33703, 33713, 33721, 33739, 33749,
    33751, 33757, 33767, 33769, 33773, 33791, 33797, 33809, 33811, 33827, 33829,
    33851, 33857, 33863, 33871, 33889, 33893, 33911, 33923, 33931, 33937, 33941,
    33961, 33967, 33997, 34019, 34031, 34033, 34039, 34057, 34061, 34123, 34127,
    34129, 34141, 34147, 34157, 34159, 34171, 34183, 34211, 34213, 34217, 34231,
    34253, 34259, 34261, 34267, 34273, 34283, 34297, 34301, 34303, 34313, 34319,
    34327, 34337, 34351, 34361, 34367, 34369, 34381, 34403, 34421, 34429, 34439,
    34457, 34469, 34471, 34483, 34487, 34499, 34501, 34511, 34513, 34519, 34537,
    34543, 34549, 34583, 34589, 34591, 34603, 34607, 34613, 34631, 34649, 34651,
    34667, 34673, 34679, 34687, 34693, 34703, 34721, 34729, 34739, 34747, 34757,
    34759, 34763, 34781, 34807, 34819, 34841, 34843, 34847, 34849, 34871, 34877,
    34883, 34897, 34913, 34919, 34939, 34949, 34961, 34963, 34981, 35023, 35027,
    35051, 35053, 35059, 35069, 35081, 35083, 35089, 35099, 35107, 35111, 35117,
    35129, 35141, 35149, 35153, 35159, 35171, 35201, 35221, 35227, 35251, 35257,
    35267, 35279, 35281, 35291, 35311, 35317, 35323, 35327, 35339, 35353, 35363,
    35381, 35393, 35401, 35407, 35419, 35423, 35437, 35447, 35449, 35461, 35491,
    35507, 35509, 35521, 35527, 35531, 35533, 35537, 35543, 35569, 35573, 35591,
    35593, 35597, 35603, 35617, 35671, 35677, 35729, 35731, 35747, 35753, 35759,
    35771, 35797, 35801, 35803, 35809, 35831, 35837, 35839, 35851, 35863, 35869,
    35879, 35897, 35899, 35911, 35923, 35933, 35951, 35963, 35969, 35977, 35983,
    35993, 35999, 36007, 36011, 36013, 36017, 36037, 36061, 36067, 36073, 36083,
    36097, 36107, 36109, 36131, 36137, 36151, 36161, 36187, 36191, 36209, 36217,
    36229, 36241, 36251, 36263, 36269, 36277, 36293, 36299, 36307, 36313, 36319,
    36341, 36343, 36353, 36373, 36383, 36389, 36433, 36451, 36457, 36467, 36469,
    36473, 36479, 36493, 36497, 36523, 36527, 36529, 36541, 36551, 36559, 36563,
    36571, 36583, 36587, 36599, 36607, 36629, 36637, 36643, 36653, 36671, 36677,
    36683, 36691, 36697, 36709, 36713, 36721, 36739, 36749, 36761, 36767, 36779,
    36781, 36787, 36791, 36793, 36809, 36821, 36833, 36847, 36857, 36871, 36877,
    36887, 36899, 36901, 36913, 36919, 36923, 36929, 36931, 36943, 36947, 36973,
    36979, 36997, 37003, 37013, 37019, 37021, 37039, 37049, 37057, 37061, 37087,
    37097, 37117, 37123, 37139, 37159, 37171, 37181, 37189, 37199, 37201, 37217,
    37223, 37243, 37253, 37273, 37277, 37307, 37309, 37313, 37321, 37337, 37339,
    37357, 37361, 37363, 37369, 37379, 37397, 37409, 37423, 37441, 37447, 37463,
    37483, 37489, 37493, 37501, 37507, 37511, 37517, 37529, 37537, 37547, 37549,
    37561, 37567, 37571, 37573, 37579, 37589, 37591, 37607, 37619, 37633, 37643,
    37649, 37657, 37663, 37691, 37693, 37699, 37717, 37747, 37781, 37783, 37799,
    37811, 37813, 37831, 37847, 37853, 37861, 37871, 37879, 37889, 37897, 37907,
    37951, 37957, 37963, 37967, 37987, 37991, 37993, 37997, 38011, 38039, 38047,
    38053, 38069, 38083, 38113, 38119, 38149, 38153, 38167, 38177, 38183, 38189,
    38197, 38201, 38219, 38231, 38237, 38239, 38261, 38273, 38281, 38287, 38299,
    38303, 38317, 38321, 38327, 38329, 38333, 38351, 38371, 38377, 38393, 38431,
    38447, 38449, 38453, 38459, 38461, 38501, 38543, 38557, 38561, 38567, 38569,
    38593, 38603, 38609, 38611, 38629, 38639, 38651, 38653, 38669, 38671, 38677,
    38693, 38699, 38707, 38711, 38713, 38723, 38729, 38737, 38747, 38749, 38767,
    38783, 38791, 38803, 38821, 38833, 38839, 38851, 38861, 38867, 38873, 38891,
    38903, 38917, 38921, 38923, 38933, 38953, 38959, 38971, 38977, 38993, 39019,
    39023, 39041, 39043, 39047, 39079, 39089, 39097, 39103, 39107, 39113, 39119,
    39133, 39139, 39157, 39161, 39163, 39181, 39191, 39199, 39209, 39217, 39227,
    39229, 39233, 39239, 39241, 39251, 39293, 39301, 39313, 39317, 39323, 39341,
    39343, 39359, 39367, 39371, 39373, 39383, 39397, 39409, 39419, 39439, 39443,
    39451, 39461, 39499, 39503, 39509, 39511, 39521, 39541, 39551, 39563, 39569,
    39581, 39607, 39619, 39623, 39631, 39659, 39667, 39671, 39679, 39703, 39709,
    39719, 39727, 39733, 39749, 39761, 39769, 39779, 39791, 39799, 39821, 39827,
    39829, 39839, 39841, 39847, 39857, 39863, 39869, 39877, 39883, 39887, 39901,
    39929, 39937, 39953, 39971, 39979, 39983, 39989, 40009, 40013, 40031, 40037,
    40039, 40063, 40087, 40093, 40099, 40111, 40123, 40127, 40129, 40151, 40153,
    40163, 40169, 40177, 40189, 40193, 40213, 40231, 40237, 40241, 40253, 40277,
    40283, 40289, 40343, 40351, 40357, 40361, 40387, 40423, 40427, 40429, 40433,
    40459, 40471, 40483, 40487, 40493, 40499, 40507, 40519, 40529, 40531, 40543,
    40559, 40577, 40583, 40591, 40597, 40609, 40627, 40637, 40639, 40693, 40697,
    40699, 40709, 40739, 40751, 40759, 40763, 40771, 40787, 40801, 40813, 40819,
    40823, 40829, 40841, 40847, 40849, 40853, 40867, 40879, 40883, 40897, 40903,
    40927, 40933, 40939, 40949, 40961, 40973, 40993, 41011, 41017, 41023, 41039,
    41047, 41051, 41057, 41077, 41081, 41113, 41117, 41131, 41141, 41143, 41149,
    41161, 41177, 41179, 41183, 41189, 41201, 41203, 41213, 41221, 41227, 41231,
    41233, 41243, 41257, 41263, 41269, 41281, 41299, 41333, 41341, 41351, 41357,
    41381, 41387, 41389, 41399, 41411, 41413, 41443, 41453, 41467, 41479, 41491,
    41507, 41513, 41519, 41521, 41539, 41543, 41549, 41579, 41593, 41597, 41603,
    41609, 41611, 41617, 41621, 41627, 41641, 41647, 41651, 41659, 41669, 41681,
    41687, 41719, 41729, 41737, 41759, 41761, 41771, 41777, 41801, 41809, 41813,
    41843, 41849, 41851, 41863, 41879, 41887, 41893, 41897, 41903, 41911, 41927,
    41941, 41947, 41953, 41957, 41959, 41969, 41981, 41983, 41999, 42013, 42017,
    42019, 42023, 42043, 42061, 42071, 42073, 42083, 42089, 42101, 42131, 42139,
    42157, 42169, 42179, 42181, 42187, 42193, 42197, 42209, 42221, 42223, 42227,
    42239, 42257, 42281, 42283, 42293, 42299, 42307, 42323, 42331, 42337, 42349,
    42359, 42373, 42379, 42391, 42397, 42403, 42407, 42409, 42433, 42437, 42443,
    42451, 42457, 42461, 42463, 42467, 42473, 42487, 42491, 42499, 42509, 42533,
    42557, 42569, 42571, 42577, 42589, 42611, 42641, 42643, 42649, 42667, 42677,
    42683, 42689, 42697, 42701, 42703, 42709, 42719, 42727, 42737, 42743, 42751,
    42767, 42773, 42787, 42793, 42797, 42821, 42829, 42839, 42841, 42853, 42859,
    42863, 42899, 42901, 42923, 42929, 42937, 42943, 42953, 42961, 42967, 42979,
    42989, 43003, 43013, 43019, 43037, 43049, 43051, 43063, 43067, 43093, 43103,
    43117, 43133, 43151, 43159, 43177, 43189, 43201, 43207, 43223, 43237, 43261,
    43271, 43283, 43291, 43313, 43319, 43321, 43331, 43391, 43397, 43399, 43403,
    43411, 43427, 43441, 43451, 43457, 43481, 43487, 43499, 43517, 43541, 43543,
    43573, 43577, 43579, 43591, 43597, 43607, 43609, 43613, 43627, 43633, 43649,
    43651, 43661, 43669, 43691, 43711, 43717, 43721, 43753, 43759, 43777, 43781,
    43783, 43787, 43789, 43793, 43801, 43853, 43867, 43889, 43891, 43913, 43933,
    43943, 43951, 43961, 43963, 43969, 43973, 43987, 43991, 43997, 44017, 44021,
    44027, 44029, 44041, 44053, 44059, 44071, 44087, 44089, 44101, 44111, 44119,
    44123, 44129, 44131, 44159, 44171, 44179, 44189, 44201, 44203, 44207, 44221,
    44249, 44257, 44263, 44267, 44269, 44273, 44279, 44281, 44293, 44351, 44357,
    44371, 44381, 44383, 44389, 44417, 44449, 44453, 44483, 44491, 44497, 44501,
    44507, 44519, 44531, 44533, 44537, 44543, 44549, 44563, 44579, 44587, 44617,
    44621, 44623, 44633, 44641, 44647, 44651, 44657, 44683, 44687, 44699, 44701,
    44711, 44729, 44741, 44753, 44771, 44773, 44777, 44789, 44797, 44809, 44819,
    44839, 44843, 44851, 44867, 44879, 44887, 44893, 44909, 44917, 44927, 44939,
    44953, 44959, 44963, 44971, 44983, 44987, 45007, 45013, 45053, 45061, 45077,
    45083, 45119, 45121, 45127, 45131, 45137, 45139, 45161, 45179, 45181, 45191,
    45197, 45233, 45247, 45259, 45263, 45281, 45289, 45293, 45307, 45317, 45319,
    45329, 45337, 45341, 45343, 45361, 45377, 45389, 45403, 45413, 45427, 45433,
    45439, 45481, 45491, 45497, 45503, 45523, 45533, 45541, 45553, 45557, 45569,
    45587, 45589, 45599, 45613, 45631, 45641, 45659, 45667, 45673, 45677, 45691,
    45697, 45707, 45737, 45751, 45757, 45763, 45767, 45779, 45817, 45821, 45823,
    45827, 45833, 45841, 45853, 45863, 45869, 45887, 45893, 45943, 45949, 45953,
    45959, 45971, 45979, 45989, 46021, 46027, 46049, 46051, 46061, 46073, 46091,
    46093, 46099, 46103, 46133, 46141, 46147, 46153, 46171, 46181, 46183, 46187,
    46199, 46219, 46229, 46237, 46261, 46271, 46273, 46279, 46301, 46307, 46309,
    46327, 46337, 46349, 46351, 46381, 46399, 46411, 46439, 46441, 46447, 46451,
    46457, 46471, 46477, 46489, 46499, 46507, 46511, 46523, 46549, 46559, 46567,
    46573, 46589, 46591, 46601, 46619, 46633, 46639, 46643, 46649, 46663, 46679,
    46681, 46687, 46691, 46703, 46723, 46727, 46747, 46751, 46757, 46769, 46771,
    46807, 46811, 46817, 46819, 46829, 46831, 46853, 46861, 46867, 46877, 46889,
    46901, 46919, 46933, 46957, 46993, 46997, 47017, 47041, 47051, 47057, 47059,
    47087, 47093, 47111, 47119, 47123, 47129, 47137, 47143, 47147, 47149, 47161,
    47189, 47207, 47221, 47237, 47251, 47269, 47279, 47287, 47293, 47297, 47303,
    47309, 47317, 47339, 47351, 47353, 47363, 47381, 47387, 47389, 47407, 47417,
    47419, 47431, 47441, 47459, 47491, 47497, 47501, 47507, 47513, 47521, 47527,
    47533, 47543, 47563, 47569, 47581, 47591, 47599, 47609, 47623, 47629, 47639,
    47653, 47657, 47659, 47681, 47699, 47701, 47711, 47713, 47717, 47737, 47741,
    47743, 47777, 47779, 47791, 47797, 47807, 47809, 47819, 47837, 47843, 47857,
    47869, 47881, 47903, 47911, 47917, 47933, 47939, 47947, 47951, 47963, 47969,
    47977, 47981, 48017, 48023, 48029, 48049, 48073, 48079, 48091, 48109, 48119,
    48121, 48131, 48157, 48163, 48179, 48187, 48193, 48197, 48221, 48239, 48247,
    48259, 48271, 48281, 48299, 48311, 48313, 48337, 48341, 48353, 48371, 48383,
    48397, 48407, 48409, 48413, 48437, 48449, 48463, 48473, 48479, 48481, 48487,
    48491, 48497, 48523, 48527, 48533, 48539, 48541, 48563, 48571, 48589, 48593,
    48611, 48619, 48623, 48647, 48649, 48661, 48673, 48677, 48679, 48731, 48733,
    48751, 48757, 48761, 48767, 48779, 48781, 48787, 48799, 48809, 48817, 48821,
    48823, 48847, 48857, 48859, 48869, 48871, 48883, 48889, 48907, 48947, 48953,
    48973, 48989, 48991, 49003, 49009, 49019, 49031, 49033, 49037, 49043, 49057,
    49069, 49081, 49103, 49109, 49117, 49121, 49123, 49139, 49157, 49169, 49171,
    49177, 49193, 49199, 49201, 49207, 49211, 49223, 49253, 49261, 49277, 49279,
    49297, 49307, 49331, 49333, 49339, 49363, 49367, 49369, 49391, 49393, 49409,
    49411, 49417, 49429, 49433, 49451, 49459, 49463, 49477, 49481, 49499, 49523,
    49529, 49531, 49537, 49547, 49549, 49559, 49597, 49603, 49613, 49627, 49633,
    49639, 49663, 49667, 49669, 49681, 49697, 49711, 49727, 49739, 49741, 49747,
    49757, 49783, 49787, 49789, 49801, 49807, 49811, 49823, 49831, 49843, 49853,
    49871, 49877, 49891, 49919, 49921, 49927, 49937, 49939, 49943, 49957, 49991,
    49993, 49999, 50021, 50023, 50033, 50047, 50051, 50053, 50069, 50077, 50087,
    50093, 50101, 50111, 50119, 50123, 50129, 50131, 50147, 50153, 50159, 50177,
    50207, 50221, 50227, 50231, 50261, 50263, 50273, 50287, 50291, 50311, 50321,
    50329, 50333, 50341, 50359, 50363, 50377, 50383, 50387, 50411, 50417, 50423,
    50441, 50459, 50461, 50497, 50503, 50513, 50527, 50539, 50543, 50549, 50551,
    50581, 50587, 50591, 50593, 50599, 50627, 50647, 50651, 50671, 50683, 50707,
    50723, 50741, 50753, 50767, 50773, 50777, 50789, 50821, 50833, 50839, 50849,
    50857, 50867, 50873, 50891, 50893, 50909, 50923, 50929, 50951, 50957, 50969,
    50971, 50989, 50993, 51001, 51031, 51043, 51047, 51059, 51061, 51071, 51109,
    51131, 51133, 51137, 51151, 51157, 51169, 51193, 51197, 51199, 51203, 51217,
    51229, 51239, 51241, 51257, 51263, 51283, 51287, 51307, 51329, 51341, 51343,
    51347, 51349, 51361, 51383, 51407, 51413, 51419, 51421, 51427, 51431, 51437,
    51439, 51449, 51461, 51473, 51479, 51481, 51487, 51503, 51511, 51517, 51521,
    51539, 51551, 51563, 51577, 51581, 51593, 51599, 51607, 51613, 51631, 51637,
    51647, 51659, 51673, 51679, 51683, 51691, 51713, 51719, 51721, 51749, 51767,
    51769, 51787, 51797, 51803, 51817, 51827, 51829, 51839, 51853, 51859, 51869,
    51871, 51893, 51899, 51907, 51913, 51929, 51941, 51949, 51971, 51973, 51977,
    51991, 52009, 52021, 52027, 52051, 52057, 52067, 52069, 52081, 52103, 52121,
    52127, 52147, 52153, 52163, 52177, 52181, 52183, 52189, 52201, 52223, 52237,
    52249, 52253, 52259, 52267, 52289, 52291, 52301, 52313, 52321, 52361, 52363,
    52369, 52379, 52387, 52391, 52433, 52453, 52457, 52489, 52501, 52511, 52517,
    52529, 52541, 52543, 52553, 52561, 52567, 52571, 52579, 52583, 52609, 52627,
    52631, 52639, 52667, 52673, 52691, 52697, 52709, 52711, 52721, 52727, 52733,
    52747, 52757, 52769, 52783, 52807, 52813, 52817, 52837, 52859, 52861, 52879,
    52883, 52889, 52901, 52903, 52919, 52937, 52951, 52957, 52963, 52967, 52973,
    52981, 52999, 53003, 53017, 53047, 53051, 53069, 53077, 53087, 53089, 53093,
    53101, 53113, 53117, 53129, 53147, 53149, 53161, 53171, 53173, 53189, 53197,
    53201, 53231, 53233, 53239, 53267, 53269, 53279, 53281, 53299, 53309, 53323,
    53327, 53353, 53359, 53377, 53381, 53401, 53407, 53411, 53419, 53437, 53441,
    53453, 53479, 53503, 53507, 53527, 53549, 53551, 53569, 53591, 53593, 53597,
    53609, 53611, 53617, 53623, 53629, 53633, 53639, 53653, 53657, 53681, 53693,
    53699, 53717, 53719, 53731, 53759, 53773, 53777, 53783, 53791, 53813, 53819,
    53831, 53849, 53857, 53861, 53881, 53887, 53891, 53897, 53899, 53917, 53923,
    53927, 53939, 53951, 53959, 53987, 53993, 54001, 54011, 54013, 54037, 54049,
    54059, 54083, 54091, 54101, 54121, 54133, 54139, 54151, 54163, 54167, 54181,
    54193, 54217, 54251, 54269, 54277, 54287, 54293, 54311, 54319, 54323, 54331,
    54347, 54361, 54367, 54371, 54377, 54401, 54403, 54409, 54413, 54419, 54421,
    54437, 54443, 54449, 54469, 54493, 54497, 54499, 54503, 54517, 54521, 54539,
    54541, 54547, 54559, 54563, 54577, 54581, 54583, 54601, 54617, 54623, 54629,
    54631, 54647, 54667, 54673, 54679, 54709, 54713, 54721, 54727, 54751, 54767,
    54773, 54779, 54787, 54799, 54829, 54833, 54851, 54869, 54877, 54881, 54907,
    54917, 54919, 54941, 54949, 54959, 54973, 54979, 54983, 55001, 55009, 55021,
    55049, 55051, 55057, 55061, 55073, 55079, 55103, 55109, 55117, 55127, 55147,
    55163, 55171, 55201, 55207, 55213, 55217, 55219, 55229, 55243, 55249, 55259,
    55291, 55313, 55331, 55333, 55337, 55339, 55343, 55351, 55373, 55381, 55399,
    55411, 55439, 55441, 55457, 55469, 55487, 55501, 55511, 55529, 55541, 55547,
    55579, 55589, 55603, 55609, 55619, 55621, 55631, 55633, 55639, 55661, 55663,
    55667, 55673, 55681, 55691, 55697, 55711, 55717, 55721, 55733, 55763, 55787,
    55793, 55799, 55807, 55813, 55817, 55819, 55823, 55829, 55837, 55843, 55849,
    55871, 55889, 55897, 55901, 55903, 55921, 55927, 55931, 55933, 55949, 55967,
    55987, 55997, 56003, 56009, 56039, 56041, 56053, 56081, 56087, 56093, 56099,
    56101, 56113, 56123, 56131, 56149, 56167, 56171, 56179, 56197, 56207, 56209,
    56237, 56239, 56249, 56263, 56267, 56269, 56299, 56311, 56333, 56359, 56369,
    56377, 56383, 56393, 56401, 56417, 56431, 56437, 56443, 56453, 56467, 56473,
    56477, 56479, 56489, 56501, 56503, 56509, 56519, 56527, 56531, 56533, 56543,
    56569, 56591, 56597, 56599, 56611, 56629, 56633, 56659, 56663, 56671, 56681,
    56687, 56701, 56711, 56713, 56731, 56737, 56747, 56767, 56773, 56779, 56783,
    56807, 56809, 56813, 56821, 56827, 56843, 56857, 56873, 56891, 56893, 56897,
    56909, 56911, 56921, 56923, 56929, 56941, 56951, 56957, 56963, 56983, 56989,
    56993, 56999, 57037, 57041, 57047, 57059, 57073, 57077, 57089, 57097, 57107,
    57119, 57131, 57139, 57143, 57149, 57163, 57173, 57179, 57191, 57193, 57203,
    57221, 57223, 57241, 57251, 57259, 57269, 57271, 57283, 57287, 57301, 57329,
    57331, 57347, 57349, 57367, 57373, 57383, 57389, 57397, 57413, 57427, 57457,
    57467, 57487, 57493, 57503, 57527, 57529, 57557, 57559, 57571, 57587, 57593,
    57601, 57637, 57641, 57649, 57653, 57667, 57679, 57689, 57697, 57709, 57713,
    57719, 57727, 57731, 57737, 57751, 57773, 57781, 57787, 57791, 57793, 57803,
    57809, 57829, 57839, 57847, 57853, 57859, 57881, 57899, 57901, 57917, 57923,
    57943, 57947, 57973, 57977, 57991, 58013, 58027, 58031, 58043, 58049, 58057,
    58061, 58067, 58073, 58099, 58109, 58111, 58129, 58147, 58151, 58153, 58169,
    58171, 58189, 58193, 58199, 58207, 58211, 58217, 58229, 58231, 58237, 58243,
    58271, 58309, 58313, 58321, 58337, 58363, 58367, 58369, 58379, 58391, 58393,
    58403, 58411, 58417, 58427, 58439, 58441, 58451, 58453, 58477, 58481, 58511,
    58537, 58543, 58549, 58567, 58573, 58579, 58601, 58603, 58613, 58631, 58657,
    58661, 58679, 58687, 58693, 58699, 58711, 58727, 58733, 58741, 58757, 58763,
    58771, 58787, 58789, 58831, 58889, 58897, 58901, 58907, 58909, 58913, 58921,
    58937, 58943, 58963, 58967, 58979, 58991, 58997, 59009, 59011, 59021, 59023,
    59029, 59051, 59053, 59063, 59069, 59077, 59083, 59093, 59107, 59113, 59119,
    59123, 59141, 59149, 59159, 59167, 59183, 59197, 59207, 59209, 59219, 59221,
    59233, 59239, 59243, 59263, 59273, 59281, 59333, 59341, 59351, 59357, 59359,
    59369, 59377, 59387, 59393, 59399, 59407, 59417, 59419, 59441, 59443, 59447,
    59453, 59467, 59471, 59473, 59497, 59509, 59513, 59539, 59557, 59561, 59567,
    59581, 59611, 59617, 59621, 59627, 59629, 59651, 59659, 59663, 59669, 59671,
    59693, 59699, 59707, 59723, 59729, 59743, 59747, 59753, 59771, 59779, 59791,
    59797, 59809, 59833, 59863, 59879, 59887, 59921, 59929, 59951, 59957, 59971,
    59981, 59999, 60013, 60017, 60029, 60037, 60041, 60077, 60083, 60089, 60091,
    60101, 60103, 60107, 60127, 60133, 60139, 60149, 60161, 60167, 60169, 60209,
    60217, 60223, 60251, 60257, 60259, 60271, 60289, 60293, 60317, 60331, 60337,
    60343, 60353, 60373, 60383, 60397, 60413, 60427, 60443, 60449, 60457, 60493,
    60497, 60509, 60521, 60527, 60539, 60589, 60601, 60607, 60611, 60617, 60623,
    60631, 60637, 60647, 60649, 60659, 60661, 60679, 60689, 60703, 60719, 60727,
    60733, 60737, 60757, 60761, 60763, 60773, 60779, 60793, 60811, 60821, 60859,
    60869, 60887, 60889, 60899, 60901, 60913, 60917, 60919, 60923, 60937, 60943,
    60953, 60961, 61001, 61007, 61027, 61031, 61043, 61051, 61057, 61091, 61099,
    61121, 61129, 61141, 61151, 61153, 61169, 61211, 61223, 61231, 61253, 61261,
    61283, 61291, 61297, 61331, 61333, 61339, 61343, 61357, 61363, 61379, 61381,
    61403, 61409, 61417, 61441, 61463, 61469, 61471, 61483, 61487, 61493, 61507,
    61511, 61519, 61543, 61547, 61553, 61559, 61561, 61583, 61603, 61609, 61613,
    61627, 61631, 61637, 61643, 61651, 61657, 61667, 61673, 61681, 61687, 61703,
    61717, 61723, 61729, 61751, 61757, 61781, 61813, 61819, 61837, 61843, 61861,
    61871, 61879, 61909, 61927, 61933, 61949, 61961, 61967, 61979, 61981, 61987,
    61991, 62003, 62011, 62017, 62039, 62047, 62053, 62057, 62071, 62081, 62099,
    62119, 62129, 62131, 62137, 62141, 62143, 62171, 62189, 62191, 62201, 62207,
    62213, 62219, 62233, 62273, 62297, 62299, 62303, 62311, 62323, 62327, 62347,
    62351, 62383, 62401, 62417, 62423, 62459, 62467, 62473, 62477, 62483, 62497,
    62501, 62507, 62533, 62539, 62549, 62563, 62581, 62591, 62597, 62603, 62617,
    62627, 62633, 62639, 62653, 62659, 62683, 62687, 62701, 62723, 62731, 62743,
    62753, 62761, 62773, 62791, 62801, 62819, 62827, 62851, 62861, 62869, 62873,
    62897, 62903, 62921, 62927, 62929, 62939, 62969, 62971, 62981, 62983, 62987,
    62989, 63029, 63031, 63059, 63067, 63073, 63079, 63097, 63103, 63113, 63127,
    63131, 63149, 63179, 63197, 63199, 63211, 63241, 63247, 63277, 63281, 63299,
    63311, 63313, 63317, 63331, 63337, 63347, 63353, 63361, 63367, 63377, 63389,
    63391, 63397, 63409, 63419, 63421, 63439, 63443, 63463, 63467, 63473, 63487,
    63493, 63499, 63521, 63527, 63533, 63541, 63559, 63577, 63587, 63589, 63599,
    63601, 63607, 63611, 63617, 63629, 63647, 63649, 63659, 63667, 63671, 63689,
    63691, 63697, 63703, 63709, 63719, 63727, 63737, 63743, 63761, 63773, 63781,
    63793, 63799, 63803, 63809, 63823, 63839, 63841, 63853, 63857, 63863, 63901,
    63907, 63913, 63929, 63949, 63977, 63997, 64007, 64013, 64019, 64033, 64037,
    64063, 64067, 64081, 64091, 64109, 64123, 64151, 64153, 64157, 64171, 64187,
    64189, 64217, 64223, 64231, 64237, 64271, 64279, 64283, 64301, 64303, 64319,
    64327, 64333, 64373, 64381, 64399, 64403, 64433, 64439, 64451, 64453, 64483,
    64489, 64499, 64513, 64553, 64567, 64577, 64579, 64591, 64601, 64609, 64613,
    64621, 64627, 64633, 64661, 64663, 64667, 64679, 64693, 64709, 64717, 64747,
    64763, 64781, 64783, 64793, 64811, 64817, 64849, 64853, 64871, 64877, 64879,
    64891, 64901, 64919, 64921, 64927, 64937, 64951, 64969, 64997, 65003, 65011,
    65027, 65029, 65033, 65053, 65063, 65071, 65089, 65099, 65101, 65111, 65119,
    65123, 65129, 65141, 65147, 65167, 65171, 65173, 65179, 65183, 65203, 65213,
    65239, 65257, 65267, 65269, 65287, 65293, 65309, 65323, 65327, 65353, 65357,
    65371, 65381, 65393, 65407, 65413, 65419, 65423, 65437, 65447, 65449, 65479,
    65497, 65519, 65521, 65537, 65539, 65543, 65551, 65557, 65563, 65579, 65581,
    65587, 65599, 65609, 65617, 65629, 65633, 65647, 65651, 65657, 65677, 65687,
    65699, 65701, 65707, 65713, 65717, 65719, 65729, 65731, 65761, 65777, 65789,
    65809, 65827, 65831, 65837, 65839, 65843, 65851, 65867, 65881, 65899, 65921,
    65927, 65929, 65951, 65957, 65963, 65981, 65983, 65993, 66029, 66037, 66041,
    66047, 66067, 66071, 66083, 66089, 66103, 66107, 66109, 66137, 66161, 66169,
    66173, 66179, 66191, 66221, 66239, 66271, 66293, 66301, 66337, 66343, 66347,
    66359, 66361, 66373, 66377, 66383, 66403, 66413, 66431, 66449, 66457, 66463,
    66467, 66491, 66499, 66509, 66523, 66529, 66533, 66541, 66553, 66569, 66571,
    66587, 66593, 66601, 66617, 66629, 66643, 66653, 66683, 66697, 66701, 66713,
    66721, 66733, 66739, 66749, 66751, 66763, 66791, 66797, 66809, 66821, 66841,
    66851, 66853, 66863, 66877, 66883, 66889, 66919, 66923, 66931, 66943, 66947,
    66949, 66959, 66973, 66977, 67003, 67021, 67033, 67043, 67049, 67057, 67061,
    67073, 67079, 67103, 67121, 67129, 67139, 67141, 67153, 67157, 67169, 67181,
    67187, 67189, 67211, 67213, 67217, 67219, 67231, 67247, 67261, 67271, 67273,
    67289, 67307, 67339, 67343, 67349, 67369, 67391, 67399, 67409, 67411, 67421,
    67427, 67429, 67433, 67447, 67453, 67477, 67481, 67489, 67493, 67499, 67511,
    67523, 67531, 67537, 67547, 67559, 67567, 67577, 67579, 67589, 67601, 67607,
    67619, 67631, 67651, 67679, 67699, 67709, 67723, 67733, 67741, 67751, 67757,
    67759, 67763, 67777, 67783, 67789, 67801, 67807, 67819, 67829, 67843, 67853,
    67867, 67883, 67891, 67901, 67927, 67931, 67933, 67939, 67943, 67957, 67961,
    67967, 67979, 67987, 67993, 68023, 68041, 68053, 68059, 68071, 68087, 68099,
    68111, 68113, 68141, 68147, 68161, 68171, 68207, 68209, 68213, 68219, 68227,
    68239, 68261, 68279, 68281, 68311, 68329, 68351, 68371, 68389, 68399, 68437,
    68443, 68447, 68449, 68473, 68477, 68483, 68489, 68491, 68501, 68507, 68521,
    68531, 68539, 68543, 68567, 68581, 68597, 68611, 68633, 68639, 68659, 68669,
    68683, 68687, 68699, 68711, 68713, 68729, 68737, 68743, 68749, 68767, 68771,
    68777, 68791, 68813, 68819, 68821, 68863, 68879, 68881, 68891, 68897, 68899,
    68903, 68909, 68917, 68927, 68947, 68963, 68993, 69001, 69011, 69019, 69029,
    69031, 69061, 69067, 69073, 69109, 69119, 69127, 69143, 69149, 69151, 69163,
    69191, 69193, 69197, 69203, 69221, 69233, 69239, 69247, 69257, 69259, 69263,
    69313, 69317, 69337, 69341, 69371, 69379, 69383, 69389, 69401, 69403, 69427,
    69431, 69439, 69457, 69463, 69467, 69473, 69481, 69491, 69493, 69497, 69499,
    69539, 69557, 69593, 69623, 69653, 69661, 69677, 69691, 69697, 69709, 69737,
    69739, 69761, 69763, 69767, 69779, 69809, 69821, 69827, 69829, 69833, 69847,
    69857, 69859, 69877, 69899, 69911, 69929, 69931, 69941, 69959, 69991, 69997,
    70001, 70003, 70009, 70019, 70039, 70051, 70061, 70067, 70079, 70099, 70111,
    70117, 70121, 70123, 70139, 70141, 70157, 70163, 70177, 70181, 70183, 70199,
    70201, 70207, 70223, 70229, 70237, 70241, 70249, 70271, 70289, 70297, 70309,
    70313, 70321, 70327, 70351, 70373, 70379, 70381, 70393, 70423, 70429, 70439,
    70451, 70457, 70459, 70481, 70487, 70489, 70501, 70507, 70529, 70537, 70549,
    70571, 70573, 70583, 70589, 70607, 70619, 70621, 70627, 70639, 70657, 70663,
    70667, 70687, 70709, 70717, 70729, 70753, 70769, 70783, 70793, 70823, 70841,
    70843, 70849, 70853, 70867, 70877, 70879, 70891, 70901, 70913, 70919, 70921,
    70937, 70949, 70951, 70957, 70969, 70979, 70981, 70991, 70997, 70999, 71011,
    71023, 71039, 71059, 71069, 71081, 71089, 71119, 71129, 71143, 71147, 71153,
    71161, 71167, 71171, 71191, 71209, 71233, 71237, 71249, 71257, 71261, 71263,
    71287, 71293, 71317, 71327, 71329, 71333, 71339, 71341, 71347, 71353, 71359,
    71363, 71387, 71389, 71399, 71411, 71413, 71419, 71429, 71437, 71443, 71453,
    71471, 71473, 71479, 71483, 71503, 71527, 71537, 71549, 71551, 71563, 71569,
    71593, 71597, 71633, 71647, 71663, 71671, 71693, 71699, 71707, 71711, 71713,
    71719, 71741, 71761, 71777, 71789, 71807, 71809, 71821, 71837, 71843, 71849,
    71861, 71867, 71879, 71881, 71887, 71899, 71909, 71917, 71933, 71941, 71947,
    71963, 71971, 71983, 71987, 71993, 71999, 72019, 72031, 72043, 72047, 72053,
    72073, 72077, 72089, 72091, 72101, 72103, 72109, 72139, 72161, 72167, 72169,
    72173, 72211, 72221, 72223, 72227, 72229, 72251, 72253, 72269, 72271, 72277,
    72287, 72307, 72313, 72337, 72341, 72353, 72367, 72379, 72383, 72421, 72431,
    72461, 72467, 72469, 72481, 72493, 72497, 72503, 72533, 72547, 72551, 72559,
    72577, 72613, 72617, 72623, 72643, 72647, 72649, 72661, 72671, 72673, 72679,
    72689, 72701, 72707, 72719, 72727, 72733, 72739, 72763, 72767, 72797, 72817,
    72823, 72859, 72869, 72871, 72883, 72889, 72893, 72901, 72907, 72911, 72923,
    72931, 72937, 72949, 72953, 72959, 72973, 72977, 72997, 73009, 73013, 73019,
    73037, 73039, 73043, 73061, 73063, 73079, 73091, 73121, 73127, 73133, 73141,
    73181, 73189, 73237, 73243, 73259, 73277, 73291, 73303, 73309, 73327, 73331,
    73351, 73361, 73363, 73369, 73379, 73387, 73417, 73421, 73433, 73453, 73459,
    73471, 73477, 73483, 73517, 73523, 73529, 73547, 73553, 73561, 73571, 73583,
    73589, 73597, 73607, 73609, 73613, 73637, 73643, 73651, 73673, 73679, 73681,
    73693, 73699, 73709, 73721, 73727, 73751, 73757, 73771, 73783, 73819, 73823,
    73847, 73849, 73859, 73867, 73877, 73883, 73897, 73907, 73939, 73943, 73951,
    73961, 73973, 73999, 74017, 74021, 74027, 74047, 74051, 74071, 74077, 74093,
    74099, 74101, 74131, 74143, 74149, 74159, 74161, 74167, 74177, 74189, 74197,
    74201, 74203, 74209, 74219, 74231, 74257, 74279, 74287, 74293, 74297, 74311,
    74317, 74323, 74353, 74357, 74363, 74377, 74381, 74383, 74411, 74413, 74419,
    74441, 74449, 74453, 74471, 74489, 74507, 74509, 74521, 74527, 74531, 74551,
    74561, 74567, 74573, 74587, 74597, 74609, 74611, 74623, 74653, 74687, 74699,
    74707, 74713, 74717, 74719, 74729, 74731, 74747, 74759, 74761, 74771, 74779,
    74797, 74821, 74827, 74831, 74843, 74857, 74861, 74869, 74873, 74887, 74891,
    74897, 74903, 74923, 74929, 74933, 74941, 74959, 75011, 75013, 75017, 75029,
    75037, 75041, 75079, 75083, 75109, 75133, 75149, 75161, 75167, 75169, 75181,
    75193, 75209, 75211, 75217, 75223, 75227, 75239, 75253, 75269, 75277, 75289,
    75307, 75323, 75329, 75337, 75347, 75353, 75367, 75377, 75389, 75391, 75401,
    75403, 75407, 75431, 75437, 75479, 75503, 75511, 75521, 75527, 75533, 75539,
    75541, 75553, 75557, 75571, 75577, 75583, 75611, 75617, 75619, 75629, 75641,
    75653, 75659, 75679, 75683, 75689, 75703, 75707, 75709, 75721, 75731, 75743,
    75767, 75773, 75781, 75787, 75793, 75797, 75821, 75833, 75853, 75869, 75883,
    75913, 75931, 75937, 75941, 75967, 75979, 75983, 75989, 75991, 75997, 76001,
    76003, 76031, 76039, 76079, 76081, 76091, 76099, 76103, 76123, 76129, 76147,
    76157, 76159, 76163, 76207, 76213, 76231, 76243, 76249, 76253, 76259, 76261,
    76283, 76289, 76303, 76333, 76343, 76367, 76369, 76379, 76387, 76403, 76421,
    76423, 76441, 76463, 76471, 76481, 76487, 76493, 76507, 76511, 76519, 76537,
    76541, 76543, 76561, 76579, 76597, 76603, 76607, 76631, 76649, 76651, 76667,
    76673, 76679, 76697, 76717, 76733, 76753, 76757, 76771, 76777, 76781, 76801,
    76819, 76829, 76831, 76837, 76847, 76871, 76873, 76883, 76907, 76913, 76919,
    76943, 76949, 76961, 76963, 76991, 77003, 77017, 77023, 77029, 77041, 77047,
    77069, 77081, 77093, 77101, 77137, 77141, 77153, 77167, 77171, 77191, 77201,
    77213, 77237, 77239, 77243, 77249, 77261, 77263, 77267, 77269, 77279, 77291,
    77317, 77323, 77339, 77347, 77351, 77359, 77369, 77377, 77383, 77417, 77419,
    77431, 77447, 77471, 77477, 77479, 77489, 77491, 77509, 77513, 77521, 77527,
    77543, 77549, 77551, 77557, 77563, 77569, 77573, 77587, 77591, 77611, 77617,
    77621, 77641, 77647, 77659, 77681, 77687, 77689, 77699, 77711, 77713, 77719,
    77723, 77731, 77743, 77747, 77761, 77773, 77783, 77797, 77801, 77813, 77839,
    77849, 77863, 77867, 77893, 77899, 77929, 77933, 77951, 77969, 77977, 77983,
    77999, 78007, 78017, 78031, 78041, 78049, 78059, 78079, 78101, 78121, 78137,
    78139, 78157, 78163, 78167, 78173, 78179, 78191, 78193, 78203, 78229, 78233,
    78241, 78259, 78277, 78283, 78301, 78307, 78311, 78317, 78341, 78347, 78367,
    78401, 78427, 78437, 78439, 78467, 78479, 78487, 78497, 78509, 78511, 78517,
    78539, 78541, 78553, 78569, 78571, 78577, 78583, 78593, 78607, 78623, 78643,
    78649, 78653, 78691, 78697, 78707, 78713, 78721, 78737, 78779, 78781, 78787,
    78791, 78797, 78803, 78809, 78823, 78839, 78853, 78857, 78877, 78887, 78889,
    78893, 78901, 78919, 78929, 78941, 78977, 78979, 78989, 79031, 79039, 79043,
    79063, 79087, 79103, 79111, 79133, 79139, 79147, 79151, 79153, 79159, 79181,
    79187, 79193, 79201, 79229, 79231, 79241, 79259, 79273, 79279, 79283, 79301,
    79309, 79319, 79333, 79337, 79349, 79357, 79367, 79379, 79393, 79397, 79399,
    79411, 79423, 79427, 79433, 79451, 79481, 79493, 79531, 79537, 79549, 79559,
    79561, 79579, 79589, 79601, 79609, 79613, 79621, 79627, 79631, 79633, 79657,
    79669, 79687, 79691, 79693, 79697, 79699, 79757, 79769, 79777, 79801, 79811,
    79813, 79817, 79823, 79829, 79841, 79843, 79847, 79861, 79867, 79873, 79889,
    79901, 79903, 79907, 79939, 79943, 79967, 79973, 79979, 79987, 79997, 79999,
    80021, 80039, 80051, 80071, 80077, 80107, 80111, 80141, 80147, 80149, 80153,
    80167, 80173, 80177, 80191, 80207, 80209, 80221, 80231, 80233, 80239, 80251,
    80263, 80273, 80279, 80287, 80309, 80317, 80329, 80341, 80347, 80363, 80369,
    80387, 80407, 80429, 80447, 80449, 80471, 80473, 80489, 80491, 80513, 80527,
    80537, 80557, 80567, 80599, 80603, 80611, 80621, 80627, 80629, 80651, 80657,
    80669, 80671, 80677, 80681, 80683, 80687, 80701, 80713, 80737, 80747, 80749,
    80761, 80777, 80779, 80783, 80789, 80803, 80809, 80819, 80831, 80833, 80849,
    80863, 80897, 80909, 80911, 80917, 80923, 80929, 80933, 80953, 80963, 80989,
    81001, 81013, 81017, 81019, 81023, 81031, 81041, 81043, 81047, 81049, 81071,
    81077, 81083, 81097, 81101, 81119, 81131, 81157, 81163, 81173, 81181, 81197,
    81199, 81203, 81223, 81233, 81239, 81281, 81283, 81293, 81299, 81307, 81331,
    81343, 81349, 81353, 81359, 81371, 81373, 81401, 81409, 81421, 81439, 81457,
    81463, 81509, 81517, 81527, 81533, 81547, 81551, 81553, 81559, 81563, 81569,
    81611, 81619, 81629, 81637, 81647, 81649, 81667, 81671, 81677, 81689, 81701,
    81703, 81707, 81727, 81737, 81749, 81761, 81769, 81773, 81799, 81817, 81839,
    81847, 81853, 81869, 81883, 81899, 81901, 81919, 81929, 81931, 81937, 81943,
    81953, 81967, 81971, 81973, 82003, 82007, 82009, 82013, 82021, 82031, 82037,
    82039, 82051, 82067, 82073, 82129, 82139, 82141, 82153, 82163, 82171, 82183,
    82189, 82193, 82207, 82217, 82219, 82223, 82231, 82237, 82241, 82261, 82267,
    82279, 82301, 82307, 82339, 82349, 82351, 82361, 82373, 82387, 82393, 82421,
    82457, 82463, 82469, 82471, 82483, 82487, 82493, 82499, 82507, 82529, 82531,
    82549, 82559, 82561, 82567, 82571, 82591, 82601, 82609, 82613, 82619, 82633,
    82651, 82657, 82699, 82721, 82723, 82727, 82729, 82757, 82759, 82763, 82781,
    82787, 82793, 82799, 82811, 82813, 82837, 82847, 82883, 82889, 82891, 82903,
    82913, 82939, 82963, 82981, 82997, 83003, 83009, 83023, 83047, 83059, 83063,
    83071, 83077, 83089, 83093, 83101, 83117, 83137, 83177, 83203, 83207, 83219,
    83221, 83227, 83231, 83233, 83243, 83257, 83267, 83269, 83273, 83299, 83311,
    83339, 83341, 83357, 83383, 83389, 83399, 83401, 83407, 83417, 83423, 83431,
    83437, 83443, 83449, 83459, 83471, 83477, 83497, 83537, 83557, 83561, 83563,
    83579, 83591, 83597, 83609, 83617, 83621, 83639, 83641, 83653, 83663, 83689,
    83701, 83717, 83719, 83737, 83761, 83773, 83777, 83791, 83813, 83833, 83843,
    83857, 83869, 83873, 83891, 83903, 83911, 83921, 83933, 83939, 83969, 83983,
    83987, 84011, 84017, 84047, 84053, 84059, 84061, 84067, 84089, 84121, 84127,
    84131, 84137, 84143, 84163, 84179, 84181, 84191, 84199, 84211, 84221, 84223,
    84229, 84239, 84247, 84263, 84299, 84307, 84313, 84317, 84319, 84347, 84349,
    84377, 84389, 84391, 84401, 84407, 84421, 84431, 84437, 84443, 84449, 84457,
    84463, 84467, 84481, 84499, 84503, 84509, 84521, 84523, 84533, 84551, 84559,
    84589, 84629, 84631, 84649, 84653, 84659, 84673, 84691, 84697, 84701, 84713,
    84719, 84731, 84737, 84751, 84761, 84787, 84793, 84809, 84811, 84827, 84857,
    84859, 84869, 84871, 84913, 84919, 84947, 84961, 84967, 84977, 84979, 84991,
    85009, 85021, 85027, 85037, 85049, 85061, 85081, 85087, 85091, 85093, 85103,
    85109, 85121, 85133, 85147, 85159, 85193, 85199, 85201, 85213, 85223, 85229,
    85237, 85243, 85247, 85259, 85297, 85303, 85313, 85331, 85333, 85361, 85363,
    85369, 85381, 85411, 85427, 85429, 85439, 85447, 85451, 85453, 85469, 85487,
    85513, 85517, 85523, 85531, 85549, 85571, 85577, 85597, 85601, 85607, 85619,
    85621, 85627, 85639, 85643, 85661, 85667, 85669, 85691, 85703, 85711, 85717,
    85733, 85751, 85781, 85793, 85817, 85819, 85829, 85831, 85837, 85843, 85847,
    85853, 85889, 85903, 85909, 85931, 85933, 85991, 85999, 86011, 86017, 86027,
    86029, 86069, 86077, 86083, 86111, 86113, 86117, 86131, 86137, 86143, 86161,
    86171, 86179, 86183, 86197, 86201, 86209, 86239, 86243, 86249, 86257, 86263,
    86269, 86287, 86291, 86293, 86297, 86311, 86323, 86341, 86351, 86353, 86357,
    86369, 86371, 86381, 86389, 86399, 86413, 86423, 86441, 86453, 86461, 86467,
    86477, 86491, 86501, 86509, 86531, 86533, 86539, 86561, 86573, 86579, 86587,
    86599, 86627, 86629, 86677, 86689, 86693, 86711, 86719, 86729, 86743, 86753,
    86767, 86771, 86783, 86813, 86837, 86843, 86851, 86857, 86861, 86869, 86923,
    86927, 86929, 86939, 86951, 86959, 86969, 86981, 86993, 87011, 87013, 87037,
    87041, 87049, 87071, 87083, 87103, 87107, 87119, 87121, 87133, 87149, 87151,
    87179, 87181, 87187, 87211, 87221, 87223, 87251, 87253, 87257, 87277, 87281,
    87293, 87299, 87313, 87317, 87323, 87337, 87359, 87383, 87403, 87407, 87421,
    87427, 87433, 87443, 87473, 87481, 87491, 87509, 87511, 87517, 87523, 87539,
    87541, 87547, 87553, 87557, 87559, 87583, 87587, 87589, 87613, 87623, 87629,
    87631, 87641, 87643, 87649, 87671, 87679, 87683, 87691, 87697, 87701, 87719,
    87721, 87739, 87743, 87751, 87767, 87793, 87797, 87803, 87811, 87833, 87853,
    87869, 87877, 87881, 87887, 87911, 87917, 87931, 87943, 87959, 87961, 87973,
    87977, 87991, 88001, 88003, 88007, 88019, 88037, 88069, 88079, 88093, 88117,
    88129, 88169, 88177, 88211, 88223, 88237, 88241, 88259, 88261, 88289, 88301,
    88321, 88327, 88337, 88339, 88379, 88397, 88411, 88423, 88427, 88463, 88469,
    88471, 88493, 88499, 88513, 88523, 88547, 88589, 88591, 88607, 88609, 88643,
    88651, 88657, 88661, 88663, 88667, 88681, 88721, 88729, 88741, 88747, 88771,
    88789, 88793, 88799, 88801, 88807, 88811, 88813, 88817, 88819, 88843, 88853,
    88861, 88867, 88873, 88883, 88897, 88903, 88919, 88937, 88951, 88969, 88993,
    88997, 89003, 89009, 89017, 89021, 89041, 89051, 89057, 89069, 89071, 89083,
    89087, 89101, 89107, 89113, 89119, 89123, 89137, 89153, 89189, 89203, 89209,
    89213, 89227, 89231, 89237, 89261, 89269, 89273, 89293, 89303, 89317, 89329,
    89363, 89371, 89381, 89387, 89393, 89399, 89413, 89417, 89431, 89443, 89449,
    89459, 89477, 89491, 89501, 89513, 89519, 89521, 89527, 89533, 89561, 89563,
    89567, 89591, 89597, 89599, 89603, 89611, 89627, 89633, 89653, 89657, 89659,
    89669, 89671, 89681, 89689, 89753, 89759, 89767, 89779, 89783, 89797, 89809,
    89819, 89821, 89833, 89839, 89849, 89867, 89891, 89897, 89899, 89909, 89917,
    89923, 89939, 89959, 89963, 89977, 89983, 89989, 90001, 90007, 90011, 90017,
    90019, 90023, 90031, 90053, 90059, 90067, 90071, 90073, 90089, 90107, 90121,
    90127, 90149, 90163, 90173, 90187, 90191, 90197, 90199, 90203, 90217, 90227,
    90239, 90247, 90263, 90271, 90281, 90289, 90313, 90353, 90359, 90371, 90373,
    90379, 90397, 90401, 90403, 90407, 90437, 90439, 90469, 90473, 90481, 90499,
    90511, 90523, 90527, 90529, 90533, 90547, 90583, 90599, 90617, 90619, 90631,
    90641, 90647, 90659, 90677, 90679, 90697, 90703, 90709, 90731, 90749, 90787,
    90793, 90803, 90821, 90823, 90833, 90841, 90847, 90863, 90887, 90901, 90907,
    90911, 90917, 90931, 90947, 90971, 90977, 90989, 90997, 91009, 91019, 91033,
    91079, 91081, 91097, 91099, 91121, 91127, 91129, 91139, 91141, 91151, 91153,
    91159, 91163, 91183, 91193, 91199, 91229, 91237, 91243, 91249, 91253, 91283,
    91291, 91297, 91303, 91309, 91331, 91367, 91369, 91373, 91381, 91387, 91393,
    91397, 91411, 91423, 91433, 91453, 91457, 91459, 91463, 91493, 91499, 91513,
    91529, 91541, 91571, 91573, 91577, 91583, 91591, 91621, 91631, 91639, 91673,
    91691, 91703, 91711, 91733, 91753, 91757, 91771, 91781, 91801, 91807, 91811,
    91813, 91823, 91837, 91841, 91867, 91873, 91909, 91921, 91939, 91943, 91951,
    91957, 91961, 91967, 91969, 91997, 92003, 92009, 92033, 92041, 92051, 92077,
    92083, 92107, 92111, 92119, 92143, 92153, 92173, 92177, 92179, 92189, 92203,
    92219, 92221, 92227, 92233, 92237, 92243, 92251, 92269, 92297, 92311, 92317,
    92333, 92347, 92353, 92357, 92363, 92369, 92377, 92381, 92383, 92387, 92399,
    92401, 92413, 92419, 92431, 92459, 92461, 92467, 92479, 92489, 92503, 92507,
    92551, 92557, 92567, 92569, 92581, 92593, 92623, 92627, 92639, 92641, 92647,
    92657, 92669, 92671, 92681, 92683, 92693, 92699, 92707, 92717, 92723, 92737,
    92753, 92761, 92767, 92779, 92789, 92791, 92801, 92809, 92821, 92831, 92849,
    92857, 92861, 92863, 92867, 92893, 92899, 92921, 92927, 92941, 92951, 92957,
    92959, 92987, 92993, 93001, 93047, 93053, 93059, 93077, 93083, 93089, 93097,
    93103, 93113, 93131, 93133, 93139, 93151, 93169, 93179, 93187, 93199, 93229,
    93239, 93241, 93251, 93253, 93257, 93263, 93281, 93283, 93287, 93307, 93319,
    93323, 93329, 93337, 93371, 93377, 93383, 93407, 93419, 93427, 93463, 93479,
    93481, 93487, 93491, 93493, 93497, 93503, 93523, 93529, 93553, 93557, 93559,
    93563, 93581, 93601, 93607, 93629, 93637, 93683, 93701, 93703, 93719, 93739,
    93761, 93763, 93787, 93809, 93811, 93827, 93851, 93871, 93887, 93889, 93893,
    93901, 93911, 93913, 93923, 93937, 93941, 93949, 93967, 93971, 93979, 93983,
    93997, 94007, 94009, 94033, 94049, 94057, 94063, 94079, 94099, 94109, 94111,
    94117, 94121, 94151, 94153, 94169, 94201, 94207, 94219, 94229, 94253, 94261,
    94273, 94291, 94307, 94309, 94321, 94327, 94331, 94343, 94349, 94351, 94379,
    94397, 94399, 94421, 94427, 94433, 94439, 94441, 94447, 94463, 94477, 94483,
    94513, 94529, 94531, 94541, 94543, 94547, 94559, 94561, 94573, 94583, 94597,
    94603, 94613, 94621, 94649, 94651, 94687, 94693, 94709, 94723, 94727, 94747,
    94771, 94777, 94781, 94789, 94793, 94811, 94819, 94823, 94837, 94841, 94847,
    94849, 94873, 94889, 94903, 94907, 94933, 94949, 94951, 94961, 94993, 94999,
    95003, 95009, 95021, 95027, 95063, 95071, 95083, 95087, 95089, 95093, 95101,
    95107, 95111, 95131, 95143, 95153, 95177, 95189, 95191, 95203, 95213, 95219,
    95231, 95233, 95239, 95257, 95261, 95267, 95273, 95279, 95287, 95311, 95317,
    95327, 95339, 95369, 95383, 95393, 95401, 95413, 95419, 95429, 95441, 95443,
    95461, 95467, 95471, 95479, 95483, 95507, 95527, 95531, 95539, 95549, 95561,
    95569, 95581, 95597, 95603, 95617, 95621, 95629, 95633, 95651, 95701, 95707,
    95713, 95717, 95723, 95731, 95737, 95747, 95773, 95783, 95789, 95791, 95801,
    95803, 95813, 95819, 95857, 95869, 95873, 95881, 95891, 95911, 95917, 95923,
    95929, 95947, 95957, 95959, 95971, 95987, 95989, 96001, 96013, 96017, 96043,
    96053, 96059, 96079, 96097, 96137, 96149, 96157, 96167, 96179, 96181, 96199,
    96211, 96221, 96223, 96233, 96259, 96263, 96269, 96281, 96289, 96293, 96323,
    96329, 96331, 96337, 96353, 96377, 96401, 96419, 96431, 96443, 96451, 96457,
    96461, 96469, 96479, 96487, 96493, 96497, 96517, 96527, 96553, 96557, 96581,
    96587, 96589, 96601, 96643, 96661, 96667, 96671, 96697, 96703, 96731, 96737,
    96739, 96749, 96757, 96763, 96769, 96779, 96787, 96797, 96799, 96821, 96823,
    96827, 96847, 96851, 96857, 96893, 96907, 96911, 96931, 96953, 96959, 96973,
    96979, 96989, 96997, 97001, 97003, 97007, 97021, 97039, 97073, 97081, 97103,
    97117, 97127, 97151, 97157, 97159, 97169, 97171, 97177, 97187, 97213, 97231,
    97241, 97259, 97283, 97301, 97303, 97327, 97367, 97369, 97373, 97379, 97381,
    97387, 97397, 97423, 97429, 97441, 97453, 97459, 97463, 97499, 97501, 97511,
    97523, 97547, 97549, 97553, 97561, 97571, 97577, 97579, 97583, 97607, 97609,
    97613, 97649, 97651, 97673, 97687, 97711, 97729, 97771, 97777, 97787, 97789,
    97813, 97829, 97841, 97843, 97847, 97849, 97859, 97861, 97871, 97879, 97883,
    97919, 97927, 97931, 97943, 97961, 97967, 97973, 97987, 98009, 98011, 98017,
    98041, 98047, 98057, 98081, 98101, 98123, 98129, 98143, 98179, 98207, 98213,
    98221, 98227, 98251, 98257, 98269, 98297, 98299, 98317, 98321, 98323, 98327,
    98347, 98369, 98377, 98387, 98389, 98407, 98411, 98419, 98429, 98443, 98453,
    98459, 98467, 98473, 98479, 98491, 98507, 98519, 98533, 98543, 98561, 98563,
    98573, 98597, 98621, 98627, 98639, 98641, 98663, 98669, 98689, 98711, 98713,
    98717, 98729, 98731, 98737, 98773, 98779, 98801, 98807, 98809, 98837, 98849,
    98867, 98869, 98873, 98887, 98893, 98897, 98899, 98909, 98911, 98927, 98929,
    98939, 98947, 98953, 98963, 98981, 98993, 98999, 99013, 99017, 99023, 99041,
    99053, 99079, 99083, 99089, 99103, 99109, 99119, 99131, 99133, 99137, 99139,
    99149, 99173, 99181, 99191, 99223, 99233, 99241, 99251, 99257, 99259, 99277,
    99289, 99317, 99347, 99349, 99367, 99371, 99377, 99391, 99397, 99401, 99409,
    99431, 99439, 99469, 99487, 99497, 99523, 99527, 99529, 99551, 99559, 99563,
    99571, 99577, 99581, 99607, 99611, 99623, 99643, 99661, 99667, 99679, 99689,
    99707, 99709, 99713, 99719, 99721, 99733, 99761, 99767, 99787, 99793, 99809,
    99817, 99823, 99829, 99833, 99839, 99859, 99871, 99877, 99881, 99901, 99907,
    99923, 99929, 99961, 99971, 99989, 99991, 100003, 100019, 100043, 100049,
    100057, 100069, 100103, 100109, 100129, 100151, 100153, 100169, 100183,
    100189, 100193, 100207, 100213, 100237, 100267, 100271, 100279, 100291,
    100297, 100313, 100333, 100343, 100357, 100361, 100363, 100379, 100391,
    100393, 100403, 100411, 100417, 100447, 100459, 100469, 100483, 100493,
    100501, 100511, 100517, 100519, 100523, 100537, 100547, 100549, 100559,
    100591, 100609, 100613, 100621, 100649, 100669, 100673, 100693, 100699,
    100703, 100733, 100741, 100747, 100769, 100787, 100799, 100801, 100811,
    100823, 100829, 100847, 100853, 100907, 100913, 100927, 100931, 100937,
    100943, 100957, 100981, 100987, 100999, 101009, 101021, 101027, 101051,
    101063, 101081, 101089, 101107, 101111, 101113, 101117, 101119, 101141,
    101149, 101159, 101161, 101173, 101183, 101197, 101203, 101207, 101209,
    101221, 101267, 101273, 101279, 101281, 101287, 101293, 101323, 101333,
    101341, 101347, 101359, 101363, 101377, 101383, 101399, 101411, 101419,
    101429, 101449, 101467, 101477, 101483, 101489, 101501, 101503, 101513,
    101527, 101531, 101533, 101537, 101561, 101573, 101581, 101599, 101603,
    101611, 101627, 101641, 101653, 101663, 101681, 101693, 101701, 101719,
    101723, 101737, 101741, 101747, 101749, 101771, 101789, 101797, 101807,
    101833, 101837, 101839, 101863, 101869, 101873, 101879, 101891, 101917,
    101921, 101929, 101939, 101957, 101963, 101977, 101987, 101999, 102001,
    102013, 102019, 102023, 102031, 102043, 102059, 102061, 102071, 102077,
    102079, 102101, 102103, 102107, 102121, 102139, 102149, 102161, 102181,
    102191, 102197, 102199, 102203, 102217, 102229, 102233, 102241, 102251,
    102253, 102259, 102293, 102299, 102301, 102317, 102329, 102337, 102359,
    102367, 102397, 102407, 102409, 102433, 102437, 102451, 102461, 102481,
    102497, 102499, 102503, 102523, 102533, 102539, 102547, 102551, 102559,
    102563, 102587, 102593, 102607, 102611, 102643, 102647, 102653, 102667,
    102673, 102677, 102679, 102701, 102761, 102763, 102769, 102793, 102797,
    102811, 102829, 102841, 102859, 102871, 102877, 102881, 102911, 102913,
    102929, 102931, 102953, 102967, 102983, 103001, 103007, 103043, 103049,
    103067, 103069, 103079, 103087, 103091, 103093, 103099, 103123, 103141,
    103171, 103177, 103183, 103217, 103231, 103237, 103289, 103291, 103307,
    103319, 103333, 103349, 103357, 103387, 103391, 103393, 103399, 103409,
    103421, 103423, 103451, 103457, 103471, 103483, 103511, 103529, 103549,
    103553, 103561, 103567, 103573, 103577, 103583, 103591, 103613, 103619,
    103643, 103651, 103657, 103669, 103681, 103687, 103699, 103703, 103723,
    103769, 103787, 103801, 103811, 103813, 103837, 103841, 103843, 103867,
    103889, 103903, 103913, 103919, 103951, 103963, 103967, 103969, 103979,
    103981, 103991, 103993, 103997, 104003, 104009, 104021, 104033, 104047,
    104053, 104059, 104087, 104089, 104107, 104113, 104119, 104123, 104147,
    104149, 104161, 104173, 104179, 104183, 104207, 104231, 104233, 104239,
    104243, 104281, 104287, 104297, 104309, 104311, 104323, 104327, 104347,
    104369, 104381, 104383, 104393, 104399, 104417, 104459, 104471, 104473,
    104479, 104491, 104513, 104527, 104537, 104543, 104549, 104551, 104561,
    104579, 104593, 104597, 104623, 104639, 104651, 104659, 104677, 104681,
    104683, 104693, 104701, 104707, 104711, 104717, 104723, 104729,
};

static bool TestPrimeChecking(BN_CTX *ctx) {
  bssl::UniquePtr<BIGNUM> p(BN_new());
  int is_probably_prime_1 = 0, is_probably_prime_2 = 0;

  const int max_prime = kPrimes[OPENSSL_ARRAY_SIZE(kPrimes)-1];
  size_t next_prime_index = 0;

  for (int i = 0; i <= max_prime; i++) {
    bool is_prime = false;

    if (i == kPrimes[next_prime_index]) {
      is_prime = true;
      next_prime_index++;
    }

    if (!BN_set_word(p.get(), i) ||
        !BN_primality_test(&is_probably_prime_1, p.get(), BN_prime_checks, ctx,
                           false /* do_trial_division */,
                           nullptr /* callback */) ||
        is_probably_prime_1 != (is_prime ? 1 : 0) ||
        !BN_primality_test(&is_probably_prime_2, p.get(), BN_prime_checks, ctx,
                           true /* do_trial_division */,
                           nullptr /* callback */) ||
        is_probably_prime_2 != (is_prime ? 1 : 0)) {
      fprintf(stderr,
              "TestPrimeChecking failed for %d (is_prime: %d vs %d without "
              "trial division vs %d with it)\n",
              i, static_cast<int>(is_prime), is_probably_prime_1,
              is_probably_prime_2);
      return false;
    }
  }

  return true;
}

int main(int argc, char *argv[]) {
  CRYPTO_library_init();

  if (argc != 2) {
    fprintf(stderr, "%s TEST_FILE\n", argv[0]);
    return 1;
  }

  bssl::UniquePtr<BN_CTX> ctx(BN_CTX_new());
  if (!ctx) {
    return 1;
  }

  if (!TestBN2BinPadded(ctx.get()) ||
      !TestDec2BN(ctx.get()) ||
      !TestHex2BN(ctx.get()) ||
      !TestASC2BN(ctx.get()) ||
      !TestLittleEndian() ||
      !TestMPI() ||
      !TestRand() ||
      !TestRandRange() ||
      !TestASN1() ||
      !TestNegativeZero(ctx.get()) ||
      !TestBadModulus(ctx.get()) ||
      !TestExpModZero() ||
      !TestSmallPrime(ctx.get()) ||
      !TestCmpWord() ||
      !TestBN2Dec() ||
      !TestBNSetGetU64() ||
      !TestBNPow2(ctx.get()) ||
      !TestPrimeChecking(ctx.get())) {
    ERR_print_errors_fp(stderr);
    return 1;
  }

  return FileTestMain(RunTest, ctx.get(), argv[1]);
}
