def METHOD_NAME(self, line):
    (
        timestamp,
        mod_type,
        tests,
        tries,
        size,
        generator,
        modulus,
    ) = line.split()
    mod_type = int(mod_type)
    tests = int(tests)
    tries = int(tries)
    size = int(size)
    generator = int(generator)
    modulus = int(modulus, 16)
    # weed out primes that aren't at least:
    # type 2 (meets basic structural requirements)
    # test 4 (more than just a small-prime sieve)
    # tries < 100 if test & 4 (at least 100 tries of miller-rabin)
    if (
        mod_type < 2
        or tests < 4
        or (tests & 4 and tests < 8 and tries < 100)
    ):
        self.discarded.append(
            (modulus, "does not meet basic requirements")
        )
        return
    if generator == 0:
        generator = 2
    # there's a bug in the ssh "moduli" file (yeah, i know: shock! dismay!
    # call cnn!) where it understates the bit lengths of these primes by 1.
    # this is okay.
    bl = util.bit_length(modulus)
    if (bl != size) and (bl != size + 1):
        self.discarded.append(
            (modulus, "incorrectly reported bit length {}".format(size))
        )
        return
    if bl not in self.pack:
        self.pack[bl] = []
    self.pack[bl].append((generator, modulus))