hxp 36C3 CTF: numb_theory (and dumb_theory)

crypto (769 points, 4 solves)

This task asked for a forgery in a homebrew RSA-like signature scheme over a number field. Sadly, it seems that everyone who solved it during the CTF circumvented the most interesting bits of the intended solution by applying more brute force (poor souls :-)), so I will discuss my own solution here just in case anyone cares.

Let us first have a look at the challenge source code:

#!/usr/bin/env python3
import random, struct, re, sys, hashlib, gmpy2

num_problems_i_got = 99  # but a forgery ain't one
r = 4
e = 0x6878703c33796f75002d
target = 'Hello hxp! I would like the flag, please. Thank you.'

while True:
    p = int(gmpy2.next_prime(random.randrange(1 << 444)))
    q = int(gmpy2.next_prime(random.randrange(1 << 444)))
    u = (p**r-1) * (q**r-1)
    g,d,_ = map(int, gmpy2.gcdext(e,u))
    if g == 1: break

d %= u
n = p*q
print(n)

################################################################

class No(Exception): pass

def mul(a, b):
    z = [0,0]*r
    for i in range(r):
        for j in range(r):
            z[i+j] += a[i]*b[j]
    while len(z) > r:
        y = z.pop()
        z[-r] += sum(map(eval, 'yyyyyyy'))
    return tuple(t%n for t in z)

def exp(x, k):
    y = [not i for i in range(r)]
    for i in range(k.bit_length()):
        if (k>>i)&1: y = mul(y,x)
        x = mul(x,x)
    return y

def H(msg):
    h = hashlib.sha256(msg.encode()).digest()
    v = tuple(c+1 for c in struct.unpack(f'>{r}H', h[:r+r]))
    if v in H.seen: raise No()  # NO COLLISION, OBSTRUCTION!
    H.seen.add(v)
    return v
H.seen = set()

################################################################

flag = open('flag.txt').read().strip()

for it in range(num_problems_i_got):

    print(f'{it:03}> ', end=''); sys.stdout.flush()
    try:
        data = input()
    except EOFError:
        exit()

    if 'flag' not in data:
        print('|'.join(map(str, exp(H(data), d))))
        continue

    try:

        m = re.match(f'({target}) Signature: ([0-9|]+)', data)
        if m is None: raise No()
        if m.groups()[1].count('|') != r-1: raise No()

        msg, sig = m.groups()[0], tuple(map(int, m.groups()[1].split('|')))
        if exp(sig,e) == H(msg):
            print(f'Absolutely no problem at all Sir! Here you go: {flag}')
        else:
            print('Sorry, it looks like you need to do some more work...')

    except No:
        print('OOPSIE WOOPSIE!! Uwu')

From the very beginning on, this looks a lot like RSA: There is a product $n=pq$ of primes $p,q$ together with a public/secret pair $(e,d)$ such that $ed\equiv 1\pmod u$ where $u=(p^4-1)(q^4-1)$ looks a bit like a $4$-dimensional variant of $\varphi(n)=(p-1)(q-1)$.

Looking at the operations that are being done, one should be able to see that the code implements:

  • Exponentiation in the quotient ring $\mathcal O_n=\mathbb Z[x]/(x^4-7,n)$;
  • A hash function $H$ from byte strings to $\mathcal O_n$, which aborts whenever it produces a collision;
  • and an implementation of a forgery game where one has to produce a fake signature after about a hundred queries.

Although it might at first look like one has to find a signature for a specific message, there’s a hidden subtlety: The two dots . in the target message are wildcards and can be replaced by any unicode character, so the forger actually has quite a bit of freedom in selecting the message.

Solution

In a nutshell, the intended solution for numb_theory was a number-field variant of an index-calculus attack on textbook RSA signatures, where the hash that’s being signed is sufficiently short. Unfortunately, it seems that I didn’t quite balance the sizes of some things properly, so (according to the packet dumps) everybody who solved the task during the CTF did so by trading off some of the beautiful math below for more brute-force work.

I will first describe the textbook version of the attack: The core observation is that the RSA trapdoor function \[ x \mapsto x^d \bmod n \] is homomorphic with respect to multiplication. What this means is that an attacker who manages to find (for instance) three messages $a,b,c$ such that $H(a)=H(b)\cdot H({c})$ together with the signatures $s_b=H(b)^d\bmod n$ and $s_c=H({c})^d\bmod n$ can simply compute the the signature $s_a=H(a)^d\bmod n$ of $a$ as $s_a=s_b\cdot s_c\bmod n$, without bothering the signing oracle. In other words, the pair $(a,s_a)$ forms an existential forgery for the signature scheme. Note that the “hard” part of the attack is to find the triple $(a,b,c)$; if $H$ is a secure hash function then it seems the best one can do is a generic collision-finding thing on values of the right size. (It looks like this is what all solvers did during the CTF.)

For an asymptotically faster algorithm, observe that the homomorphism attack immediately generalizes to other product combinations $H(a) = H(b_1)^{e_1}\cdots H(b_k)^{e_k}$, which can systematically be found using index-calculus techniques: Fix a “small” bound $B$, find “enough” messages $b_1,\dots,b_k$ such that all prime factors of the $H(b_i)$ are less than $B$, and finally search for a $H(b_j)$ among them that is a product of powers of the other $H(b_i)$ using linear algebra in the exponent space of the hashes’ prime decomposition. (Those exponents were historically called “indices”, hence the name index calculus.) A linear dependence among the $H(b_i)$ is guaranteed to exist as soon as their number exceeds the number of primes in use.


Now, in the numb_theory challenge, the signature scheme in use was basically RSA, except that the ring $\mathbb Z/n$ was replaced by the ring \[ \mathbb Z[x]/(x^4-7,n) \;\cong\; \mathbb Z\big[\!\sqrt[4]7\big] / (n) \,\text. \] Hence to apply the same attack of finding a suitable combination of message hashes in characteristic zero, then combining given signatures modulo $n$, we need to use factorization theory in the ring $\mathcal O=\mathbb Z\big[\!\sqrt[4]7\big]$. Note that $\mathcal O$ is the ring of integers of its field of fractions and has class number two and unit-group rank two — therefore there is no unique factorization into elements in $\mathcal O$, and there are infinitely many units (rather than only two — $\{\pm1\}$ — in $\mathbb Z$). What remains true, however, is that principal ideals in $\mathcal O$ factor uniquely into prime ideals of $\mathcal O$, and on this level an index-calculus attack is possible (and in fact quite a common technique in number-field algorithms). Clearly, moving to the level of ideals forgets about the units contained in the hash values, hence we will later need an additional fix-up step to correct the unit part when crafting the final forgery.

In short, the algorithm I used for the sample solution consists of the following steps:

  1. Fix a “small” bound $B$ and compute all distinct prime ideals $\mathfrak p_1,\dots,\mathfrak p_s$ contained in factorizations of prime integers $\leq B$; this set is called the factor base.
  2. Find $k=s+\varepsilon$ random messages $b_1,…,b_k$ such that (the principal ideal generated by) the hash value $H(b_i)$ splits as a product of the $s$ ideals $\mathfrak p_j$, i.e., \[ H(b_i)\cdot\mathcal O = \mathfrak p_1^{e_{i1}}\cdots\mathfrak p_s^{e_{is}} \,\text. \]
  3. Find a target message $m$, i.e., one that matches the regex Hello hxp! I would like the flag, please. Thank you., such that $H(m)$ also splits over the factor base.
  4. Using linear algebra on the exponents of the factor-base decompositions of $m$ and the $b_i$, find a small product combination of some ideals $H(b_i)\cdot\mathcal O$ that equals $H(m)\cdot\mathcal O$. This can be represented as a short integer vector $v=(v_1\ …\ v_k)\in\mathbb Z^k$ such that \[ \begin{equation} \label{eq:target} \tag{*} H(m)\cdot\mathcal O = \prod_{i=1}^k H(b_i)^{v_i}\cdot\mathcal O \,\text. \end{equation} \]
  5. The left- and right-hand side of $\eqref{eq:target}$ are equal principal ideals — thus their generators must differ by a unit. Correct the unit part by computing \[ \eta = H(m) \Big/ \prod_{i=1}^k H(b_i)^{v_i} \;\in\mathcal O^\times \] and finding (through some more linear algebra and a few discrete-logarithm computations in the two-dimensional unit group of $\mathcal O$) another product combination $u=(u_1\ …\ u_k)\in\mathbb Z^k$ of the $H(b_i)$ that equals $\eta$. Hence \[ H(m) = \prod_{i=1}^k H(b_i)^{v_i+u_i} \,\text. \]   (The condition in the previous step that the vector $v$ be short is to make sure we can even write down the unit $\eta$: This step must be done without reduction modulo $n$, hence the representation size of $\eta$ is roughly linear in the $1$-norm of $v$.)
  6. Finally, ask the oracle for all the signatures $s_i$ of the messages $b_i$ and compute the signature $s$ of $m$ using the product combination $v+u$ obtained before; more specifically, we have \[ s \equiv H(m)^d \equiv \Big(\prod_{i=1}^k H(b_i)^{v_i+u_i}\Big)^d \equiv \prod_{i=1}^k \big(H(b_i)^d\big)^{v_i+u_i} \equiv \prod_{i=1}^k s_i^{v_i+u_i} \pmod{(n)} \text. \] Note that the last expression can be used to compute $s$, and that at this point all the intermediate results can be reduced modulo $n$ if desired.

I will attach my implementation of this attack at the end, after a bit of discussion about the much related dumb_theory challenge.

About dumb_theory

crypto (455 points, 13 solves)

The only difference between the numb_theory and dumb_theory challenges was that the value r = 4 above was replaced by r = 3. One consequence of this is that the basic $H(a)=H(b)\cdot H({c})$ attack is even cheaper, which some teams exploited, but the intention behind the challenge was different: When replacing the ring $\mathbb Z[x]/(x^4-7)=\mathbb Z\big[\!\sqrt[4]7\big]$ by the ring $R=\mathbb Z[x]/(x^3-7)=\mathbb Z\big[\!\sqrt[3]7\big]$, it no longer remains true in all cases that $u=(p^3-1)(q^3-1)$ is a multiple of the exponent of the unit group of the RSA-like quotient $R/(n)$! This implies that the signature scheme in the dumb_theory challenge does not even work in some cases, depending on the values of $p$ and $q$, with quite severe security implications: Modulo a prime $p$, the polynomial $x^3-7$ can have either zero, one, or three roots; these choices correspond via the Chinese Remainder Theorem to ring isomorphisms \[ R/(p) \;\cong\; \mathbb F_{p^3} \qquad\text{or}\qquad R/(p) \;\cong\; \mathbb F_p\times\mathbb F_{p^2} \qquad\text{or}\qquad R/(p) \;\cong\; \mathbb F_p\times\mathbb F_p\times\mathbb F_p \,\text. \] Note that in the $1\times 2$ case, the size of the multiplicative group $(R/(p))^\times$ is $(p-1)(p^2-1)$, which is not a divisor of $p^3-1$! Hence, in dumb_theory’s signature scheme, it sometimes occurs that the value of $u$ is a multiple of $(R/(p))^\times$ but not of $(R/(q))^\times$, which is fatal: This implies that the verification equation — a polynomial expression in public values — is correct modulo $p$ but not modulo $q$. This allows an attacker to factor $n$ by asking for any message-signature pair $(m,s)$ and plugging the verification equation into a simple $\gcd$ computation: Since $s^e\equiv m \bmod p$ but not $\bmod q$, we can recover \[ p = \gcd(\text{[any coefficient of $s^e-m$]},n) \] and this solves the challenge.

Why doesn’t this happen for r = 4?

Someone approached me at the CTF afterparty and asked why no “bad” splitting occurs for $r=4$: A priori, it seems that the polynomial $f=x^4-7$ could split modulo a prime $p$ into a linear times a cubic, which would allow factoring $n$ analogously to the r = 3 example. However, this cannot happen: Note that $x\mapsto -x$ is an automorphism of $x^4-7$, hence whenever $\alpha$ is a root of $f$ then $-\alpha$ is as well. Thus, $f$ cannot split as $1\times 3$: Any $1$ implies another $1$, so the only possible splittings are $4$ (irreducible), $1\times1\times2$, and $1\times1\times1\times1$; In particular, cubic factors are impossible, and in every possible case the exponent of the unit group of the quotient ring $R/(p)$ is a divisor of $p^4-1=\operatorname{lcm}\{p{-}1,p^2{-}1,p^4{-}1\}$.


Code

#!/usr/bin/env sage
#coding: utf8
import hashlib, struct, time

proof.all(False)

B = 195

r = 4
e = 0x6878703c33796f75002d


R.<x> = QQ[]
K.<t> = NumberField(x**r - 7)
O = K.maximal_order()
U = K.unit_group()

########################################

def H(msg):
    v = struct.unpack('>4H', hashlib.sha256(msg).digest()[:8])
    v = sum((c+1)*t**i for i,c in enumerate(v))
    return v

def red(el):
    return sum((c%n)*t**i for i,c in enumerate(el))

def exp(el,k):
    assert k in ZZ and k >= 0
    ret = O(1)
    while k:
        if k&1:
            ret = red(ret * el)
        el = red(el * el)
        k >>= 1
    ret = red(ret)
    return ret


# precomputed random messages with smooth hash values
# found using a fast C++ program that filters for smooth norms
# (email me if you have any use for this)

ms = '''
hxp_UECBKPGRECLXJAHHNYRVSZASHJCN
hxp_JRMQGERZTUYRHJLSHNTZKOMHAEJQ
hxp_RLIVMZBVZTTMJTZYYXMCLTBKNNOG
hxp_BCDUNZDYDOVXOWDYPDPCOJAQSIXU
hxp_FDZHVSUBZMZOLPUBCNEMCMBUSDBD
hxp_APTTOLVITJQPRRPVYGXLHFYKDKNI
hxp_EIDXOPXMEUCYBNQTWGLXXCWHHCYP
hxp_JODFATVRXNHITPURHPEEIDNSUAYW
hxp_OKMMDUYSZQBDQVRMKMCAIPVYCWYO
hxp_DHSUCJCMHIPQQRXCQGJCRCEIEMJS
hxp_AQOQCUIMGZOCCYRHSQMAHBHMFAPA
hxp_KYBKTECYHQKGJRLUUZCBOVXRIESN
hxp_SATZTRLLOZUOEPZZODXTVMDUBLHV
hxp_GTZHPIHGGBVNUWDMUAOCUWVWOEDD
hxp_MXPCAKHLROALKVTEOIITSLRZRFKW
hxp_BNRPKWCMHTBYMRQJFXKMICHKMOFM
hxp_SKZJHWTYXVDJAYYIDRTCKUNHQFYC
hxp_YKHHUUHVJPVGSRAYBXZTHAHYTYYW
hxp_JEYPTFVWMXRRLGYCHOXJFNMPXMHA
hxp_PIZKHEDHBEUTBXSZKOIJIXEQHXEP
hxp_AZYFYLCGEKSTKLJAFGSIMHBLGPGI
hxp_XSAGUXNTTXVRTQIVNNWBMJDCSBSD
hxp_MAETRUHOITRRZZTAIERNOXCYWAKA
hxp_LRXTPIGABLWKXAIINTGVJCZBTTQD
hxp_UTPEDMMBRHGBEGPURLMJLCUEFGTB
hxp_NDZHCXCDBSFURSIURKSBTNCWNBAK
hxp_TACIVPUGFHLWWHIOUNLYBDVOWOHR
hxp_VOXLXVUKARNNTHCCMNWSXHXCKBYO
hxp_OQLRFXXPUICXOMKCEEOMBKFKDMSN
hxp_ELOTPBGUYECERKGAIMYPRPCFATPJ
hxp_NJSRIOQAZZHYAOJFVARJHYZXKEYH
hxp_IQFOLGRCOKKFYJINHXCBZVPKTOYH
hxp_UOAIVIQPUBLGLKJZCZYZDRHRCUOT
hxp_JCKUHSZXFEULTGSZYNJDIIRSLOMN
hxp_VSNVCCJGBYRBEXIORBCRCOWMXCHG
hxp_RKTAIYPCJTJTKLXYMXLRMRGTODWD
hxp_WHIHJQSIKECFWBDIVTTVCXVFHJKI
hxp_KOSYGRJSWXBIMTGLEYOJIIEXNMZZ
hxp_SMPTGTBXBKNCQNIESBTLZFYKCCYU
hxp_IGPLMOWWDSLOCAMYTDRFXTZQVQIL
hxp_LILYAPBIKURGFQQMHJGXAOXLGPBK
hxp_OANBASGYIVREYQNCHSNJRCFLOALI
hxp_NOWYIPWPYENEYXITDTIJUZZOMOTY
hxp_JRHUUOVAOFSRWVVSDLEYUTTIDFCD
hxp_WNRJDFRBNTGOOSNBFEMWQILTJIRH
hxp_YPVFMDTLVWZKQORZQDYPROVZRGJU
hxp_IOXWYIMAJGLCPSZDQRSTEIASBLZR
hxp_JRROHFNFOBDENMYVKDQLMLGBOSJO
hxp_XQXXZSPREXWTSZWFYVNKPTDSMPJN
hxp_LLZQKWWOYODWXQMYKGIHFHCNBXFT
hxp_GMEJTWBBKWGHKYDZNUSRVMURKTXJ
hxp_KBSPRPOTWHVCCICOMILMYWJKBTEP
hxp_NIRTNZERITHXQEPYRMCCKISQGCXN
hxp_VAXFUYBYPFZCFGZJZTKRLOBFFNDB
hxp_IRKKPHKEAGDYPYJREWYVHYQLQTZH
hxp_LWZTYKXYLHAUNYCWFOYMQPLOYLNJ
hxp_CTXRLUQILLLURVGUDUNIXEBGIPPZ
hxp_MVASQLJUEZRVZLKAZEKOTQXECRQT
hxp_YZABFJPDBPOWGZYZZLYKNRFLZNXP
hxp_JKTEQQNJIMZBBERDGZCVGNWFINVL
hxp_VHRHNQDHMZABUXEELTYVKCONYBPY
hxp_TAGLEZQNMHXNCXXKXEUERXLLYUYN
hxp_NMOSIYVQOVERRECFLPYYQIJRGEUW
hxp_FNHSGGIBUBJZBIPUMDTBEXIIPVAQ
hxp_ALRIJGQXVTBURWRXXPCNOWMLSGJS
hxp_BKEVHNFARAALWXSZSCDGEBXWSUQC
hxp_SMLKPJVSSEISYIAFMXIOKBNEVCLE
hxp_IAUSDZGJONEPLSVVNMSGDVJUNBYB
hxp_EZGTULSESGOYOYJXZYKEVIFGXXAX
hxp_HHFTQWEVABKCRIHELGIZMDWAFXBF
hxp_NAAWJJKGZBNKFOLIRWODDPJYFUDS
hxp_HZKRTHLWKGVPVWCQOHYCANPTVDQF
hxp_UQRSQNKEVQELZMNSRPKYIUHWORDE
hxp_HPGVNXJJDNCXVOCDXPUYULZRBTOT
hxp_BXOKNPOODHBDIZFGCUKNZDHCMGAV
hxp_SBCTADHNCUHSRPHGXCQVYNFNMSDA
hxp_UKFEJNIHDVPXLAPZWFEHVIVKABNC
hxp_YIIACQFTDILMNBURPYTDMTDZNGQY
hxp_JSCKXXTFBAWPGSZKAWOYMEGGMVNL
hxp_GJLUUHJKXUEJEKFFUMGDQQEKZRRD
hxp_ENICFKIYSHZESHNYGWSJYFNIDCGM
hxp_YDIMBCYJVTDMIVBBLWGZCFPYHWST
hxp_ZKSXFHESEQRYDWMIQWHEJSPTBMQN
hxp_JFLTTGSFENIBMKEJMAFSPTUXTVJY
hxp_RVPFCHWXJCZKPNSPWTJKCDXXBETS
hxp_QFUYMIFKYGPBPLXQUIRGFJSRAFRO
hxp_QCYXLVPMEOPUHSJJXUWSIBGUISSW
hxp_QTMZWIHIFIHOEUUUYPBODZVZCZNQ
hxp_BLQUOOEENRXUPELWINNNCWVCFUBG
hxp_PVJLACIUNPDHOJEWOAYTHXQXUCKT
'''.strip().split('\n')

# precomputed target messages with smooth hash values
# found using a fast C++ program that filters for smooth norms
# (email me if you have any use for this)

targets = '''
Hello hxp! I would like the flag, please𬒯 Thank you𠳣
Hello hxp! I would like the flag, pleaseయ Thank you𮛣
Hello hxp! I would like the flag, please Thank you𓍿
Hello hxp! I would like the flag, please츴 Thank you𠉒
Hello hxp! I would like the flag, please𜚏 Thank you𤩙
Hello hxp! I would like the flag, please𜨸 Thank you𣩴
Hello hxp! I would like the flag, please𔩑 Thank you𮈅
Hello hxp! I would like the flag, please𞳔 Thank you𘆀
Hello hxp! I would like the flag, please𖱭 Thank you𥹑
Hello hxp! I would like the flag, please Thank you㏤
Hello hxp! I would like the flag, please𐎸 Thank you𕱍
Hello hxp! I would like the flag, please𓊂 Thank you뉰
Hello hxp! I would like the flag, please𪉋 Thank you𔞯
Hello hxp! I would like the flag, please𡻂 Thank you
Hello hxp! I would like the flag, please𞼳 Thank you𓘡
'''.strip().split('\n')

########################################

F = list(sorted({pp for p in primes(B) for pp,_ in factor(O.ideal(p))}))

def vectorize(el):
    fs = dict(O.ideal(el).factor())
    assert all(all(p < B for p,_ in pp.norm().factor()) for pp in fs)
    vec = vector(fs[f] if f in fs else 0 for f in F)
    chk = prod(l**c for l,c in zip(F,vec))
    assert chk == O.ideal(el)
    return vec

mat = matrix(0, len(F))
for m in ms:
    vec = vectorize(H(m))
    mat = mat.stack(vec)

print('\x1b[35mdims: {}, rk: {}, nzcol: {}\x1b[0m'.format(mat.dimensions(), mat.rank(), sum(map(bool, mat.columns()))))
#for row in mat.rows():
#    print(''.join('{:2}'.format(c) for c in row))

########################################

M,T = mat.hermite_form(transformation=True)
assert T*mat == M

for target in targets:
    msg, vec = target, vectorize(H(target))

    try:
        zol = M.solve_left(vec)
        break
    except ValueError:
        print(repr(target.decode('utf8')))
else:
    print('\x1b[31moops\x1b[0m')
    exit()

print('\x1b[33m{}\x1b[0m'.format(msg))

print('\x1b[34m{}\x1b[0m'.format(zol))

sol = zol*T
print('\x1b[36m{}\x1b[0m'.format(sol))

########################################

plat = matrix([b*T for b in M.left_kernel().basis()])
plat = plat.augment(vector([0]*plat.nrows()))
plat = plat.stack(vector(list(sol) + [1]))
S = diagonal_matrix([1]*(plat.ncols()-1) + [10**100])
plat = ((plat * S).LLL() * S**-1).change_ring(ZZ)

ulat = []
for row in plat.rows():
    u = prod(H(m)**c for c,m in zip(row[:-1],ms))
    if row[-1]:
        assert row[-1] == 1
        u = u / H(msg)
    ulat.append(U.log(u))
ulat = matrix(ulat).augment(plat)
S = block_diagonal_matrix(diagonal_matrix([10**10]*len(U.gens())), S)
ulat = ((ulat * S).LLL() * S**-1).change_ring(ZZ)

for row in ulat:
    if row[:len(U.gens())] or not row[-1]: continue
    assert row[-1] == 1
    sol = list(row[len(U.gens()):-1])
    break
else: assert False

########################################

print('\x1b[32m{}\x1b[0m'.format(sol))

the_hash = prod(H(m)**c for c,m in zip(sol,ms))
print('--> \x1b[31m{}\x1b[0m'.format(the_hash))
the_unit = U.log(H(msg) / the_hash)
print('--> \x1b[31m{}\x1b[0m'.format(the_unit))
print

########################################

import socket, telnetlib

sock = socket.socket()
sock.connect((sys.argv[1], int(sys.argv[2])))

class ufail(Exception): pass
def until(s):
    if type(s) == str: s = s.encode()
    r = b''
    while s not in r:
        try: tmp = sock.recv(0x100)
        except socket.error as e: tmp = b''
        if not tmp: raise fail(s, r)
        r += tmp
    return r

n = int(until('000>').strip().split()[0])

def oracle(m):
    sock.sendall('{}\n'.format(m).encode())
    s = until('> ').strip().split()[0]
    s = sum(int(c)*t**i for i,c in enumerate(s.split('|')))
    print('({:3}) \x1b[34m{}\x1b[0m ~> {}'.format(ms.index(m), m, s))
    return s

########################################

sig = 1
for c,m in zip(sol,ms):
    if not c: continue
    s = oracle(m)
    sig *= s**c
    sig = red(sig)

print('\x1b[35m{}\x1b[0m'.format('-'*40))
print('\x1b[36msig: {}\x1b[0m'.format(sig))
print('\x1b[36mhash: {}\x1b[0m'.format(H(msg)))
print('\x1b[36msig^e: {}\x1b[0m'.format(exp(sig,e)))
print('\x1b[35m{}\x1b[0m'.format('-'*40))

pwn = '{} Signature: {}'.format(msg, '|'.join(map(str, sig)))
print('--> \x1b[33m{}\x1b[0m'.format(repr(pwn)))
sock.sendall(pwn + '\n')

res = until('> ')
print('')
print('--> \x1b[32m{}\x1b[0m'.format(res))
print('')

Running this against the challenge server prints quite a bit of status output, and recovers the flag at the end!

dims: (90, 94), rk: 68, nzcol: 69
Hello hxp! I would like the flag, please𬒯 Thank you𠳣
(7, 0, 0, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11300395585608853, 11194740656736021, 11312166326463719, 2242978130371247, -10059235171112020, 15518096908126743, 1980982008097017, 18072405800167552, 2327129590250024, 1342850710094961, 10360191068929376, -30407466306064021, -3318551525369161, -33651043518944937, -2236930267401648, -7074045279040233, 0, 3017595627551805, 14437615525965467, 0, 9216814514789718, 0, 0, 15620327376021492, -15958873120632166, -24539503098551104, 12928060487833031, 1141022192811919, -33506666268464225, 34286384106878068, -2327129590250024, -16716235450611221, -11404513341419889, 0, -20425071121460976, 14454394725591069, -2242978130371247, 1095908074589729, -7945522273863509, 28020149402611697, -4736906117016823, 10843749408018566, 0, -9013373246691077, 0, -5294011815006989, 0, -9341709772745407, -12682172676509996, -449541873019993, 0, 0, 4768909918094758, 4646706794168447, 0, -13170430916507283, -14298035767962493, 23690978701494155, 45576194924906999, 0, -646366201569736, -16235386061002391, -12335762849547940, 6736257065683234)
[1, 1, 0, 6, -2, 0, -9, 3, -2, -3, -6, -5, 0, 3, -5, -3, 0, 9, 1, -2, 0, 0, -1, -4, -3, -1, -5, 9, -1, -3, -4, 1, -4, -2, 4, -7, 1, 7, -2, 6, 6, -1, 0, 8, -1, 0, 2, 3, 0, -9, -5, 0, -6, 0, 0, -1, -4, 4, 0, 0, 1, -2, 2, 2, 5, -9, -3, 9, 0, 2, 0, 4, 0, -2, 2, 2, 0, 10, -6, 0, 0, -1, 9, 1, -4, 0, 2, -2, 0, 2]
--> 10166*t^3 + 7194*t^2 + 26478*t + 23806
--> (0, 0, 0)

(  0) hxp_UECBKPGRECLXJAHHNYRVSZASHJCN ~> 631759633515860432208462161719827167261195826402423511418307691642926398855289709074078516113206868081424179829874459331038441555776185105420940978418486391178570728579981102486234702768174541936456620897078097184728457479289809566461146329675115556838284259182872614*t^3 + 86003270919429168529665694103419923114007173228079693517402649966580325081280495700174616784224477053191607880105434162046775561810958663679698683408749865468654903393759802575713541818117529513739453584391034837437701488768257072048042259586187669154733654876434299*t^2 + 1637983673667637251725153036193584070881495519129452037964395888261758183130344359212425035923170272947597881240693284917227479593581193880951495799118036302534986546327754939427392369734734309756071562424087453288783007124771624459820372408421110241591586916282715275*t + 1130905080992955749030740092533613237157731838254190863269849879587501301336273199512239530949404434667704659007644995492192424993513370768618953629156274171340576836898784429302769423922275607073488267157538002319363233881934481954129018990717308675935899963015119795
(  1) hxp_JRMQGERZTUYRHJLSHNTZKOMHAEJQ ~> 1424257760724012869633847834703389312366187182172252224415652545465796766161001813591473724949342097403112609380387482521902121361249273979712502027994899048751722892151300161755330054756545469084689948005249401994088399771044422209624761706138686081722588816536359276*t^3 + 715568976635617227797943784413825200128294916319921428651356631625026041462790808913594419246516237759109325599577045150881986891865991266175758044061364413532072898223229845859799902169372311923726997811456724955273916854208866778039841580831297188445225306510157575*t^2 + 1482847960936678575141146420947464439524483091837281620742396359215841466485404499451672921906794188164708052114181181251719638313541812226925892048466008650230558050470502841273111683595463926224459567273598463702954240139698648114971633603377192421532843015631205519*t + 1244819742732537805555413877034220764894239616474496535977434719321928289663620451002506035723053474257161454404926613590480568810005248984231871091818482990478805169081233095647049185527588162632213161620836635525777474404467879359461915351130316976227768134348450015
(  3) hxp_BCDUNZDYDOVXOWDYPDPCOJAQSIXU ~> 545338452024936656793143303718959866149000137208211113299117259899792164011338013285194887141537857094462319893367649242978890260107336405470700590479766005231333487060638350808185716041425317782774263328962883810277356621459787723876262446800397883431030132928617178*t^3 + 1244991422134015149658862525188122812000765177108011648197929308964135863409634984403499269270643048464693059637142373645949167134999859600159427889932585736953955153967558668015414956608755471124653577277492606784326053421033414573440995252089716766364326535629561616*t^2 + 172037338112867676779757398674995440787834992625926352967753439379782021944225490936683305000895549368283853786874389082000156158095565045420810213176962853769887325781484285392693624223924799993642337183426212180243099742893877648044520240636712693553352707885689796*t + 1006530612509031489364845536958064567681613383061654218370237178294159224238875703306406122744997481469031583562736261932192313665440286267350194807582742846039919620907669523305481155801658784774503687133454031618071196067257519231704468453304415462702595693068121787
(  4) hxp_FDZHVSUBZMZOLPUBCNEMCMBUSDBD ~> 700716684253129416753834157841176228735851025092699780649869808234212166083783167077962558085359552511532727135792921373465265422494927653088234518459396011329826836356443813172275143715768149396602978351832717822180307727298965453529642238487421892614160228500869838*t^3 + 81648309428256466652654617533029381580351083651748048617870208161835102968643596314328846193278314986598423736370235844676660164755379828080405641297727395682944229369059904735736589767119475333383215401475609515014332121888028029022337657004991794841949646815089201*t^2 + 618167944789253855952694675125094528739346031171556326639507927402818477455265934989395407833206544802309672303365765804681869881289781879288225408444218482570135807231698468830319533773206659428497500025858038102250496126069398132307146583164405516295698985231414082*t + 1339385660748056187302938333067711837464271048448532074564350414343179068460323396616781997706665491447817025724705032732422979417933242634937823447738003068468367918353788685302263742094684453476676891817857933170707124784494430123288607789762368647354864999167102077
(  6) hxp_EIDXOPXMEUCYBNQTWGLXXCWHHCYP ~> 302708930003874469516884311755140106695121498821868999116594574187737575064771016490340751191999251915196054465820213039067681910789924623043022320242667405942667631507789449929170777294475394164846586316059153605047518867456183266541174836636879309643218799827136917*t^3 + 1442606570696620794412994680296319166035335519544157964997932045080189672576133050031217622147586096159339426490284435123157749273024234842599219094317418056267123293805177312619239861186749772229549723232990833833384982186323768945999291008632354788762027446687077889*t^2 + 378091745884155960654294845765752010306239858201562349494862115529590366992721564665656634691133175280679386943516216647759849457149711450428644531529200424938282154665768830348888678526525704883630831808930797117518789273112824255876010917987703985235107179192454751*t + 1220391484434731326102954766668628565665922049128891559924358634937544163070403819438318203766789390587259294210804704512498865181961171864009780591897381430174422292007812866259096237482311064099243031256461838555322258803328893770573633653096943500178988395567126704
(  7) hxp_JODFATVRXNHITPURHPEEIDNSUAYW ~> 1404254472390734689822142888868187218280635663704754054023224153346777129528406336644002395179708252881196777963474663285714392295751110255195219631790310537350875401802295956113465065477537212659650483516310394135113165482283092613035864257981513952878458393113685081*t^3 + 1461573203587978245512525886940728605340625199998230156976089050565672830599180658865169843378426984883624170684870124842477701221090270803209685523866420410174784964704823638153840579766452670756309666725264395798925552925843203232345052547557062628079670918062644739*t^2 + 1644208097479655750189720465872807551406053206253553128971585387541226992804895182770885097489080888408915743606479476298015015472198755122831997953448024106232256983522662765795636383407727959245635259556372254955644245491276114180260478969719578530796104024759209001*t + 654788170805733185682890283236286213005137509773295436799054657713554675906257562982128960568389608261901019616726049369852036039864374988516149019143898430009601648864585505175442328085989083131225474882758237274301900127128031151251819191485351378497346557702817566
(  8) hxp_OKMMDUYSZQBDQVRMKMCAIPVYCWYO ~> 1235442158322302778005611649073780441439266885345123655823287368932519345554189442191737885387631220832798533524278162561985336628317607422105321551459390346832793987245543706690536554525532090071168106677394232060314359235370826277895243047739722515859895634327807809*t^3 + 491197090217212816991689281454801438609035669875800445679603771978469157495615096364364428090009805051247003260686877532872340201925773276847871992312098884495266144564236832690899864436582899371829155816165789490218547427139326625505328139285311507374219558947264210*t^2 + 702308235974437809687726862740668280811541804362893273685433951415172960136240478272435314388463310342408836653073236416853765003877708173320816630240006152015683412382139383596960369550206011222036563245009960808704825440105313472522354526197509190443521016338210389*t + 237770512101992146178309187991206016756694252279286660604065863435617944559743029483776954678355624753202530464894040886284540424102979835388435355465254196156109590032231692791070870838672951369120157441650479158154160473121087301979969310169554703164698122771336900
(  9) hxp_DHSUCJCMHIPQQRXCQGJCRCEIEMJS ~> 1116524687919289114620161884619249161502835328669422537769943676832961703754242312726824648938545540101245588839715659703265755810826894772685518532926930019907462801145679086039075126168566491489378273365234670048538286291669286977317626735439047185961200364867580270*t^3 + 1290144698022492394158882293721530531804334992825746026722467350558000155215338154627847420983344700160491477679910383679544892513797447941926462116649777238314826677822352415005707570464175961132126370111001786122165545958627254359777695962702468804743323703170257271*t^2 + 1335621077289793652296277320775685407489999298208305965908875769666513766906311129836198100151258707215729600594152056092416409899059418449775711207092836621661274030319358080754598627489391092390984869469148084928890439792524371545697245238037845429868533537583433428*t + 116150684992119448116461628867271780130114658764078417651261958555018215837429335704597025372042373683856369471983722090263684551800754498023774189821606420002463973769085224186627450640870151365054414731139940865785999738012007282253643440890773074592958856138378185
( 10) hxp_AQOQCUIMGZOCCYRHSQMAHBHMFAPA ~> 153066303621681209517330341409231807257182168525985554512486816222587351610740087084447351224614672941753529268295876373024513996558505881153206587656956393237738616669021554567647471457316758023014541713781545971252397873441364703302403429770780041153554526068935072*t^3 + 1588797448708434363399429395876133496353558662099948637516664197024029773712060440439925205343341533974855770720733139726512766746483530717553681057415153886731582621899651227396093063715270206112112092361202236740374869179183285858890222560558490083986686383353203188*t^2 + 892461197842783005417361370189380393503334243301044651522390935007359075088492264947916159365989098373812740304621260939967192281548515107633180608528763863257714545698272458956961518471934333125030912972474107630101125917587261390099428823578297928918325333891621204*t + 449085624891213958094253770043909066518245087590439316881072918087792408027608150626706882454104292052050558750559786636558043360590466668775373007435393350691955741084816898201169150336293697847388049925880636720930824924595110171988629886077199777939769976899284666
( 11) hxp_KYBKTECYHQKGJRLUUZCBOVXRIESN ~> 89994780838480805850021776191573250203490954992794832844799909454237744541624501990161441323749299314980187304585605561726912897296044070267030972109531820760422767447050101785855918359542887935936480393319615330266478755180244671957023870699794014293476523669938504*t^3 + 1288142191944496272599885713831985627774514351262245203205056515843216537963441495070308077256857439617667359302006635478758264897092675560978229039325835018893797805540977479883099438003269192103172084133637980895371897530301440538550662761646547419489621452467322505*t^2 + 1153047074849829923354055268092234841309201925362582483277148804431443968497811485563506666832773530856074652005062512050390151979385534013640052802310940021731085549269384577893403977457477765834374618215195208410619148612846889494103765229152905282397064947129767204*t + 927367160420764661378371557302069102884032252048989277151999704305817171549831668472288341655298104780677200444565693467556092731275042419221140090125819525750443552997294830775658959093189843510285439173846918419359983429549064535676072002028732931399932198982105347
( 13) hxp_GTZHPIHGGBVNUWDMUAOCUWVWOEDD ~> 1180073624755334868917267626022593662617168166135473070831489669301612822109986432363048869478569413941518691002487429935577385263599504226022827525522300150115579986637635372788346399054841477328042092169977436764363114546872542496301718544916399051958474280076362354*t^3 + 646004580723872226262429406854377704242877357225581808176234925033856274484700327879430092525632629616657025445743757740563064435240296008117646425167521927005805041216583506215343755133001807462762220680766661517290821060728092182488037327686874488891158545217943029*t^2 + 1113518751031841566113154172218860253786932849105657023704152366593003499168517714397531878542923517305573127917750052870248854169106708555223991300202881513850232738643363339322727684900554433159149752929406354596634016265934865296425757662212253569088660380892856254*t + 1093839066636607881996407249939039761757573793120108361592643612528564922649945361883767439346553768312607956838509511028547062994516810704705246223048840724380765777386396187811230900482053273250358054276429563164439775347823464286391496902995320418341239020055375465
( 14) hxp_MXPCAKHLROALKVTEOIITSLRZRFKW ~> 1491982439438513505550859436664794773385407490981805766745478886135859538082666975530048024306052904097020555103157719069938269489750040620625207352049393538178479859889036039028303185246739760230420344894212596173659065663722737274874459824313125780894091282805139464*t^3 + 1096278587008534083855190362989296134816286301540991536346002315204025257043974685542433372798030781701142666697089452190079671795432312003765461240661183063737091724749036861494344258925227507802049168528519040358756468145113908246577257112982880961085560557286473987*t^2 + 846119097563166087946562673067527005087344609268220371043894735979639786879028529749600095174777311802212595654353385570280128867351250815456040821036036596761631329259624381294227348314927488435951326234230656328877779416593582925834644895567997835679239400207773579*t + 386318383130524261662119374512436473642663979775144907454190395227557977152691985535284756133758050532581527903168965750744794766427145705746866962880261738783732941859407381725801137300528885747350519274849471218519596743036793280806713997295567371160800308176317579
( 15) hxp_BNRPKWCMHTBYMRQJFXKMICHKMOFM ~> 330742040171460300794174262277600724341227977412617959550517252418276319828998240320050787564152436046778363693299861832600364399096085397223487264784827588163811546891723459093622196233899934110042748138598288576254911442586261043687576121778269901936942879317823719*t^3 + 1073815846639367343479460668164983941492140452717179094506652509500376142452679889682319792230771074260910387098294983337514826564780064790247458154099198824871051826655880132402533468366345143544587011466964405415305049435817287902930176566426726874645781832542195275*t^2 + 478545992515953353968682786001725052852549625945051223962841046923301871597203320847709283118873418187267874321096753049819916286884157414690980599131768597533333123149693222531655297005330618737682206948151642794304369171743175823388485902270568311441064582075009032*t + 1121600494831211135577702214973193186348878850885568078945335436158613182826306400831928081816250321165788434053537679232549740719314553162523409064063856535030456909133707942388605709172661865657079313679152835345705359212996085400024701581571185713493917765400919172
( 17) hxp_YKHHUUHVJPVGSRAYBXZTHAHYTYYW ~> 662902258351862611105587727205191934169030162793101272572220766095065576119896505622528649994319979860976439424828608228781948345951848571085735533017813723216366330664715665510306360013527861165034190124739714833910593593372274193391370188718569801805844531007635495*t^3 + 500972615824239778989337528121765839212271730702898640642572789961811151998491936353862502873648054209156621364004390077761755599687887331360326162779372115768813316134443058121329960673963599740000003354155385963506906637963472166585303673717037816116789894770291293*t^2 + 1451664113430530248419486967309282391750527519572677394896383210822828262307031816903932440091533865537401241578541600403985582181855528200827849739972855399141773314609698730581714268615451354606711113624836080739630854474048829246112523830591601697212696834047849937*t + 288208735854805767391684842740660245164604902345673922399897870126166869705137896554066428467505468821859270550178585046761214680129018739562682526979049917197040202058188171235776056610446070792031411347247255934573872778697191101429098259436644147719495514301840298
( 18) hxp_JEYPTFVWMXRRLGYCHOXJFNMPXMHA ~> 570820953263479495842679079357005278513846959384277648706226496500829308347803417477534135954266350446475134854525925955773601567227540316869883925913226148072261889137387765495041553177850750832159975706251893426649089281386439623613191778616133847264833761947900635*t^3 + 1206443513662393869868339784032583881272325843801494566670718333415414456180594017219391260672219868945730550299945015974916619245860670565281777420638739048417768654623877827379250503294213237750603413125341683260353447573483695376617064714222619829910004992972613904*t^2 + 977927951135637696217519457731624411006035781323845462113135698052795002202850911417491035910617175595719501895713126477713950661087397534201924185334576522791857568633136463879526761206039634526372640887372025846410834095956594125127902640472374849446282564825501783*t + 1044444062353569760074453762525998994408954805154050672437561099185638211893727651051964496097076223231758624237453330889947241865782961604985747133155264837025955222762294696045956130076473670777659350658496717481485187933742340914256798176713565997196123507311188440
( 19) hxp_PIZKHEDHBEUTBXSZKOIJIXEQHXEP ~> 524617203199348518337359471620042519444964809137216206007152214662693321177717075730058846669989673029201519914782531303224625089816809723270033364201006397826032264844318094274942764567695533373484523931506736118966300170082661031782092068303406973167310891629970611*t^3 + 772806131325360000040164807938261013809623701369199304582346161239255757415071329736094688098339976079498143348836965892412169487610144588888174359254584895870314447774784849588058765767216699086353929489981072984924899262379842896164360658638914414976642400694917602*t^2 + 852786032713679109885046300983042631545942234023331352155581465923020228175481636975104149323934366632544873898119694926919365313801809351268969065939358930782250686209236586322475736796203378802657435534113830409195515016942938716001620363731451865239734067433995786*t + 428273405314801026537750865869041425726406173801625065154809693772567942730279666418813847505553613713364839208296422633265948581839763798826744033628979164254584470951013774155655160222355465383338349101398065864692803936618136120854022756171595460998168936004190337
( 22) hxp_MAETRUHOITRRZZTAIERNOXCYWAKA ~> 1432930799237116304957422287447528986706557232427287788043311708589765396550006384478128423404272141288156606980389142610759802571962095145326031676764374619081322652028193989935470394973739352500345929294431459380628149803949234487058286792105710006006525181595390595*t^3 + 666181463073452427976994571022775881647780534828898244531433352696695959530000298595286417730496346836595703673143067181009611644430460099535523945579727502348802365286210118514317567383407509389834375196800077636999508024407571485323130443657052846725537483682275527*t^2 + 1108925628490610563586831052029459161519211117264965784177167458334183233280464142652208832373122237849111112671765362946985582043805843804602439487789396090252575272876830847310476533405746582986649359377003715311901433606169802160950475999077499792318373617193547147*t + 377278091703306179284790712690659252471647570328937364360950105637684093430096047619039408278098412892797755738934645768433483187659963023276739969103664735508197232523978729928133253371959955495123170455981414806835595870856610225025489201389261252470408737764450726
( 23) hxp_LRXTPIGABLWKXAIINTGVJCZBTTQD ~> 208649468856719322433186873564336312782203841553424021904179671076615691537792968119424234409926713849685498501847248957598332293866321572852694380208117712856868873305443566837090952215854636946540343112356154608197809221652728314251481330342830613489099797694015573*t^3 + 110259481391261581997969232722357496949161380573639566779369576886006837437302406421247806719890944811275176723693222327588922065275565713743131642769180727294666720391470406473903805647653903964977288518301946788536115173956377845208883713871855108045493196833986964*t^2 + 25307157829204418789549444025880154889284792662679364859379918045023420164119676892403871973964643064713332344396728973094689818469124192123030062858788184545063000297238267301233998680308872960626624098927338109151153775833449202733828166733823730091632516308668317*t + 335564864754626617661470421555773382694129234056480240529375469072366896548081477588356997878236950340184368762164544799329154332495278384647980977159472335011413451729502564815332541753992023576685892164250425952900283808088449167004720636197813783176719170940812051
( 24) hxp_UTPEDMMBRHGBEGPURLMJLCUEFGTB ~> 206866091828132374753629723277711350708474558849337525975384633590599367604990267748958176696875487068710959754290978388917275800306630749124067274141779672799392356227376408324552233077576226006145639712954197380689177737171534476606691074818189929363549512816729857*t^3 + 1100242221517449749677727303478461179592381894542969312502057611330110676318876827641735458432898748152791323781590477655741822384874238432724400046785148076242472739548757904511964221390902472216230458526175326650814236899414316388319101937408840645562454552986333758*t^2 + 29690507365418827388449499060314079209753948508659319595899943982198381245680560205396692132759773604943245143515833086894959268606609757891094776591703273226805139627231028496237375479758303270433817045121364207388538934540260851832662764407384986383740540382406507*t + 1244672082729741244329846709397004522271420145961391215180754501134126763264937634370661741481940758374471531112749146232107029211191361965790460809153163633816516053900090714676473011447939004296978260101364214704059882388997219548049282367154107093387450300254336801
( 25) hxp_NDZHCXCDBSFURSIURKSBTNCWNBAK ~> 1701535865490849026387702918498044849823315970168834169336432262329313207318149768168376454183168049342431226392426897141812004913163937680491374579797575512318528625022036611900511459207857087662396853923195827911100267382223911236277200263867536990663247420946791185*t^3 + 1008181568325621192882356581795818616157954080575289275679028309077684883335744668829971931865374144126272153287605609252553697738297348145248758392236402891812638249786271485236457646555004734779122653030735853149337639650408400071471829561896096711341049737201716240*t^2 + 1502796103397771065988288289573949648963454388825351497216917158724123650976447139046315370978501453710209006663445865226330191748849380823400322961639708192384868508320638441161944950108332702458343994958215564328810157997956105553630418147308518808427558807881297485*t + 329745412437961464113357811639721215984406211249650438268239625179955978833554465562334412867401279954137785088424662917054175370138873932729726189958662991852060736889946527025215654236484800208553347347278221218309444907971292553230831635881690124085614782159994573
( 26) hxp_TACIVPUGFHLWWHIOUNLYBDVOWOHR ~> 1349034750618639973622395708985759770594026313358051907271221077155754599174735393087942984589373189266541945028096502034602971002614122818104864264303042843881932058679751449551635603314861806510749883556535850549387702323797027282415076631783672071480275303168694146*t^3 + 542338026683311953113116121106892567924064982350486566403350574392508148724462549546463999842585279558285449117737793596943781558511947912527905619198155991860921678601244358558291145095530157932156609434462358207810528603864048431142116702688328229951126513797828677*t^2 + 411600288739885016664928413655626089619759279653114582507538539760310803912625106640061691233956378537826496588436091174881916217574954194594261916020059765508063218314798480910151646049947919304225826466362243676139115450278603646654588438634622061496596579701138995*t + 1250547932926670321470438049117842525915206085232495400349543666406154487008322854326572325308850278243141451530084703974143739855391169678812687641989934613235139743360255980817500247076813308183465190980684166562202271497964101259954526980531983170185096797031643410
( 27) hxp_VOXLXVUKARNNTHCCMNWSXHXCKBYO ~> 1709742517100352227747302089233001440927264575833289791528760219989930691440653467390504430946892632156233530737872733356036503634838646757788934271538389679187773429422275649235049121375544351970714237884167381075774989937127660376777496403916249926049323525636012360*t^3 + 1380537133902050013356403117022909129826724319755202491177308640350912445425109625149535816703902982027067888802983493118689048679255367665541347223198070357990037307425960548554714150141812028378754904179984955796388814290718451490847058578314495199652180583179332607*t^2 + 73026020373898653820596566250309109780508462848235144771031339631676977136802718533778744067415103835318025375706198141758365631032200700544586353244008240367861435440323751340845237285492085092856456859888795254857146740675112352223679642755940058277870254689001806*t + 1304721568369790719877516469184129518626194925324411192778069876970759708485394525124998647713484888177053546743741009268210306237614789741621695424745416037560603542648157876984739204047503394353106824912204909220929413604556624697779328004168309694295361368553954567
( 28) hxp_OQLRFXXPUICXOMKCEEOMBKFKDMSN ~> 1095366358414609630070130166123666136084163716788078179821288848491388210237645058448662973223393479751551728582344105407151759561985307439327774716948067588337027521518294407334742367789141839704716973461817239640492547856807081880208535998019277720794087210484602332*t^3 + 1072959752076113320644409998382765118104397080938511110346525259749594274724753736915443551055055085153735811712378672832706990150111476726639926340226284399928031010366869391692333769144911775258327560402547803755777290994548717767931377315689547384887897073321144668*t^2 + 298299715715652434631862702968660216471295971429360254030310289663697139708161515996503009786046092518271655988421934118039021216064800327474610930335995605578472821761799240650624828005696123182431427445852476814056740339129202489268653791284394008344821963757680470*t + 1608361923985101690445549183848870142574728862355586436748226109960218558252691069287437401328069305275429245674176326683345304445522550993616539569160566972489295056313968182343645092023221706385925281277979494114670580574823412499197768399765420219703219883426388425
( 29) hxp_ELOTPBGUYECERKGAIMYPRPCFATPJ ~> 1173762981034662460639109240597548788649747501296139703320085007859519573041428375415486398889638006922111055716198235555962557429107893851813428746642503427815244092113432802590615434022553129608368651033271551484801454322054844491772481179682603810375300653493429030*t^3 + 1504835896481486365599587876626856105969195304694485283183013424054396114208936442924292255280509024154898582454259707353432009328220590916708382948376086010856877651512861845434609183631717919529611287808875559713969582973440258878426236517592657875830398154632281936*t^2 + 1130200061424440073823653371016450623599572326783156205090327902253249006865963730217784227112428625855578680395746905727387391685551675266803022833107142828850904828786569239244194745254508941276039729689676194299620934010455676300589866582602058826060889662210346362*t + 1654859993260857322021757795043780224364207593714378533248625425176257659609008025274237090008679674506202692926177678940046636268128224326032475200899997255212669525333711260437716734462406885287500515032607152802453028729273152252168263235097966534459747887552346215
( 30) hxp_NJSRIOQAZZHYAOJFVARJHYZXKEYH ~> 1158162089651030622293321820547088530771215851291309489116184928926353629954221113195435641500509483033320221654473356766408209273584149312328850935550666786482000977326708776700538843016753752870686701402576879966774155604652447130074267158478971158297018507258482911*t^3 + 514524243195735598439070999131605616566412439195901140915136076407239464802740092069890184745284309111494575225645801633784166352379871645252068556367573070846399560233056629714172201681956962796752865327328023472817082347626944573485359507500156579754579168244074150*t^2 + 652751298676793895324727873362487924851227071237969170478333310057255750913181558123901063046492772343755955682860695213953616380803685408354494568865886259572426255750867337721817897063784352194739478569489064312810132064504771152970756301454345192644151269052157617*t + 1051978121928265813262954307212602889744219266924168631170247600011360098966469491980001737889569792246291588391099687692174760209435197582480319666019585660262756398386865976375977509068706965163751610600306653614696662276905730481719499411167311881189633917678565765
( 31) hxp_IQFOLGRCOKKFYJINHXCBZVPKTOYH ~> 297186406426134631171982642325596396045409311885286768739327283567961021888548943487000298931650703199444243285889395435951426605947653553326113783898369795810679774936179108113323834610036683346246359417640606792956432522187029741299232207550593159494002642695785283*t^3 + 977817115119436410124392252790954714125267039799531065040245796824787947190090152339546527334732453731528596796115776985572815741239988875755454976015843973549258727868894375531854858241454629762051742832758559586255446747527918708922091225135006482529463437547224070*t^2 + 813084667925087994046754299622389572566684798769420273749736921154883835975860562698918133667969588901612029088155255105449586269215920282759054589991691621871234211519757199102104744107541455924953654702809266500270658069135737056517115598688411010493783332841820021*t + 1225737269217977086098431447019767701234363097779892975850880890773808834083022738621653210254470887416325151809251531191183952553836376485204349962835404794544764794251915729018207408367069444887732017457524230537865456424995247343828158824417462649275845672812780449
( 32) hxp_UOAIVIQPUBLGLKJZCZYZDRHRCUOT ~> 944625712105100955625439378324297739491306953120993411797377191156851037299096329933344314054165210211689246069785792659747955987102992415131600875316081487117176635921602264243553244694103885935228744468185088017690897386178064545212663298429748252704113682491837858*t^3 + 508526698135411121117479392822476040769908622766082566090055408567696458390043829913467863406921549902828102951377051388422586554059123918934655015170221332104126271093794854270788730559801761843796641337856428076977689973683101855192523347165926369061701373158097787*t^2 + 995679349426595986096032368067631545425646062309630345426534116657893491913540652492352238945992242153215300917302437986798857473968501504687754926885757736588788213278823867230565618741850987246886428567922430933014904287300968447750977013250657527224471898049164738*t + 360939597059439379275485551305015270979195675359025982942325981272046436960765266047311699048521374066020245656736077390622250639871171621493265887898086111291873937144028538274342859325689171310590897122210748508916429847564771026833143808263940006145307067245415597
( 33) hxp_JCKUHSZXFEULTGSZYNJDIIRSLOMN ~> 570391076881441027088475347437391247098749986110573687057064957732823086286272491075890645162079530509120523580756753860565761706334606609139413743267241559540440564834223633957191489329591603172749341855931222638279101675098992038437357384340808069754582328206159370*t^3 + 207637897989663180337564919087911396192017411944577849608334153450613850807524703115433699207546859453978805674880276913780124220923882785200879847487463347829565515044083680505301307413090921806348995939995318638597898140791357298828115439489301470775321963086397638*t^2 + 338913299047577946020247590231602958208421639655409216133969865884618853518893561913887158470000821810478113738987709235762770603928944922395471308611476726355997277441946746138795669519492913347307324313564408606780590672390192967690372023519847509738379538680154288*t + 1315834127470747052691968940627897286465435136943083789930673686473911431106819493310313142405155466795218561293165556156719088263608114102514552450965274581342495202521233599452893841934021927809276567049848676604370716927288499948023987567004818634172340279138537640
( 34) hxp_VSNVCCJGBYRBEXIORBCRCOWMXCHG ~> 1056338589363788806381728496660963814509881937068994267916969794456307445104854297874030567936428604705081317064500109436110850380953126657999268690139426160586718719996784443716313933424128148189908763085981535024829748720222940842216337472110987415356689939695695315*t^3 + 841407128275397776383417124074613130875367565175577696463782202014409060777428888718624184741829385426268172021422782856136145306142918645269855019275896927566532372034115977928895334165436432274105497622007846942119613694039532005689688256831013792893225461036973050*t^2 + 746899973783046871253222205833244526183740676032800527927953229044678399223441831091837859882409688193216953622172203740853870366240015394357180883740832116487629336678308244150945249932920253607341842568375191801141907635656627204949384076024422088977000322302087433*t + 1304556265674775291988539557759921205811349027609206598049976229561975024349349918079934879000351640957131635707522802099741284226000418006588871862037459179260517805192188257887341515981732775936087140578703337677745001885047880829547302405855431939776484063848057940
( 35) hxp_RKTAIYPCJTJTKLXYMXLRMRGTODWD ~> 726635869797111085148672493431186826109714980948706300063394552107673154845160482764919905273958568691776117085798416180238006240267012001748894188431182471179014565505850514989316084478292483551181557782094162711447472142436237729906920773918039941895062128857449799*t^3 + 1009118855510505908206168446125636231904075804927603455735437306182135745353760255503075880314385029488142512171313570018387714071251094031084739742046821424423482973894606882650233268389825178499126829536448022538056575693858821784817906828030039280054493985513192318*t^2 + 1126078418444889393114908689682414370915181533836836375255240335104663521077634390626167316623104782298148108704126451623039512780001174192218843349195327125013937381590801817713556303154605259467021601975849652533180783544486953204740252394905456449069426518974506443*t + 1723565540565176259401646523891863286486724302139249531482338968739692771167699683423748993867253823174980405487195100174888991161000761790660666401018791064378188700856464280778644349084265505141157984973957311385194623178810703684468028911031049700618990939874110033
( 36) hxp_WHIHJQSIKECFWBDIVTTVCXVFHJKI ~> 784582248924512828978181615568005051531562635424980938858266998379039422802991846501791999582119958262939324418896337586832001271261884864625129142358085711896254947608347470115900510647107111142970200994057078764050932049520674487415409419610397794386972998173929534*t^3 + 1145724731701611651981455405671467571721042218363735188396568870667825275864669236545084538075568139263290677481619030060712514121687569182987194013633143285411736870507997627070432858502813637673162614639999857664432602495746716774885809092297343691126413522099913447*t^2 + 518334988184397854349875088665214171301944352960383168603356982623394743286712657462385893789614613617648051573320209462075671321918727127715988344485180318347543945827646769854304364273356676998024847970719398629100631353706340030127114410702227880348021223348992187*t + 612035796096718435120595288747144218768325087250625482248789759130565613794226961334797555209762555970912213344598213759638321111348657511800505465023206392612750332940284744698468160006239358948356249631304624219286954649507200825615495481014188921142491448119555516
( 37) hxp_KOSYGRJSWXBIMTGLEYOJIIEXNMZZ ~> 1442019568559905410868699099082571867621535578978535239168346813864935155104708595103257074194011726044757407145379083532811577510176802806752414278705928914061394756287864341466470078893004456314776236268450215040691723575555539233859539679358055055736648044250703439*t^3 + 1247324276483218155132049204770016935690531366925545633671873900188616010631426752554107795318910307719328254888011190687852863720696136920571909450139394511095747894231925849320384817848911449772386342985581705436767445099830055034397592042318787510191487461155314995*t^2 + 72978246525112617985282241733712192391505907221026055451939621165548041517336742315344297968005084700265198553792370884386459480728250717899930859203616062690451636213939253353734455382246568989843587233241962467788999401579366127542443161509946608470379033338403114*t + 1250478587959365586776496071952770809945017524399340679526876644154613674393474166083539462262787654631077902122309188160153992863916196798494146420234072087784898810180326513329553884580388163072810983317378266798627582534210124732321443941218764829943432952834299718
( 38) hxp_SMPTGTBXBKNCQNIESBTLZFYKCCYU ~> 270490058991562159435081650260031254831026021443973063349880674587664800623537758071319764766131720903470317742461762353489114324320577784115532800369780529783574881906983396076958544274786423806696069501502910448841768135857452701931625192259992350464227576523338264*t^3 + 1714442239038435436224995801941762710790359130941547346953632832005881375476643559171188634075715231121073340794025787360149247772681111782194362863839737201665434994541042617886642302100496713798447048148416151702265820867681652639455706282334970161793576742299553521*t^2 + 1657131942760451761052848757079022409955119416676627343198861791682839644648437806284673077589558811548171432398294018128380583181311270672196477528513743314532020853433002652053466739981785709557896291763479208261047943493085745734100381325094755858811945375724158121*t + 1616292244579784933939768924131943541579521258364139538850437721816072314505290249768365932702648452924873276308190821511325887168962787627574941798403135340618887026852891990336682339608423488297082487389778429430474969374657168944667262417482113111185016915408734484
( 39) hxp_IGPLMOWWDSLOCAMYTDRFXTZQVQIL ~> 836673081123486729160823222180260264846118556334712495405490340209275797377209405650082644111807606071977370987759349870191606517000013163689113406103863979412170452300446242973914116851190087923917747171039013687678970957364269361963042542313079664799959056462558956*t^3 + 1238191511592528929833282041919504243842879378611725431300197181465634656374203237885232359319459806897830784256465054455915471093721453160794316418290848327514100354555274918983931714914428502211940565283116230863877611192642616013624847195176197267054738429872034078*t^2 + 460813522741527205207364217061202789080676579777588828555840970524524136326919886747341214239447173919328293833861984238456254628173518578776484653036635740011953770816157549410689079133252144248906813423648231398496697435708549523708604163898197371638419398901194205*t + 1516735506309972070222781573811330948035422573364792715276550171542827343670133627675525942651886013148840474052174321726276988048390756829328233937240353231319413691692449763287737844734761278116036405791956247018712237226925628055861703208533939754583431500597039084
( 40) hxp_LILYAPBIKURGFQQMHJGXAOXLGPBK ~> 1340076367326081049316509200706239886573915079808442976414169591323131113790116311571248686122166188401246435290284209080430131195209217510080839649790009014225028174346419344842120761008984190912970018997748556250961247703301232334690966521750152468455784792108461968*t^3 + 795293899480802405747880567959726501682076953313261843208943764337402116971706588726284903779358766844948158953436118194604287675941993360506853327894023604845026650934142614661927293601183416055116743291583564102671293656912906552929584134701149765417743205001959122*t^2 + 379864859023218549211805138970986075613200048124303527066965142211398262871760749732315243090766579515973962363606423442734025733700457594843192969649173277954224097748607770117818347808062145558872437293777282673030382953387982862417502651841822649264229504910366546*t + 896728019973959647827881656128568915169410458555527478500761295241034770538057939232780005245923622814650659220472557114106843108934229839559433706842819080356061340740417488842799258749972172214910104331148007922367327355924055472734787650556828817930108301130699382
( 41) hxp_OANBASGYIVREYQNCHSNJRCFLOALI ~> 1362638281509697879385009767129571557199617521173843071833693428822271670126430005270149827804625778556488834228740278126122287326088857910675486188593784462102126033125069841389160999800855423755401575950693296941050348382977837187344478636244434788951357538636376935*t^3 + 108931517780757039730716676702456972180685016416506796362536375352965372791140780185705802540475995780240489283060575397841099252141209884894828683500725000926536928880412024497861304506418154538694757890901197850045625664265028770158033601963717830159279080821720088*t^2 + 933932488622793131188810912359737450626824934465215002094335425521908862088149552158917752673049499116725704868089179865984839784585986786344710013135824971992841745512154812230168888845860450506096480586609328107712293180831175759256449422914892823365718600666881198*t + 967976323665225039287757226901826031070370519022713869242818693494871709724072656240100108986819652442424460677308975883407951260227863320769445534731766203728423662700193081180019842872916821354512276447566463751293960021687489542292645282685739224489512632090308751
( 43) hxp_JRHUUOVAOFSRWVVSDLEYUTTIDFCD ~> 647659399986330899417112460856091171042962057252165187890091129694661883697467992747804902575585625015822010190707043129426801110374587422523244369895470380171875593988826240663162789493967423775486083816211504877132501632005756160513934732969186212734605760056528417*t^3 + 1037951700973280211777955878976753252863979309239846334227393189711972822097922746380250859475595333918118659089925198910180601334585458118717774265035746485657232697520493043927587978980575709083608169646200055295097847011606711878199480527582643576559676538008982933*t^2 + 396586254694630102679371236580138436854747853186223635215459799680145514413396317186512663210406271020365299181885568586337657830332118730801670712151057531731595088366250941987976517317940467591269247341213188996570269288870557618305438819537620499439577596746480329*t + 766360581909279383349501984742682376263323835539695486174636679330507305520298849016557327129187123893576370073963155776439214763207832894194653378696956686389987670978715950689439091830346630031558792402608694092463717421684588810183910038970329065425225758717097934
( 44) hxp_WNRJDFRBNTGOOSNBFEMWQILTJIRH ~> 420535604779906320924244256089520417964607973256203613473509364174983604303821937629078729276555734109964976265458922537393315531635970256824921431114614545564925789411958734838783055912028095211014829464407247562135129066613275488466147942036216146700039253042077270*t^3 + 1221459247871030227545998855781303896963483437093497344192868425858453131605347412744687087131512233069987507208021097790846850484138782356470216893509168427561974290999950280635312220773667412229999436580315966941345511580235035173407491694770387381205403742579955932*t^2 + 872192054094664400064558841266994219534959394830159200637556098523384119207756564211096640673415093679564699723097089685592936412294131769535592943573063710830582864152231200786816320684876524809642406022785492506701946745792986816964991259694631703653311899420807248*t + 43303709181886823101440886643472972440598624672334676716995573025533885474752937022363762569494513178064330837731618778419740134584432412840187256589888281659824784164591342133627214302534879842946931041627639191087465602437603435228820306999902736429068187392242475
( 46) hxp_IOXWYIMAJGLCPSZDQRSTEIASBLZR ~> 624135336223900592132720598714131980485759770033212882917081678463853298730724800852236377563106368931102832999597191259771737169490025489688612737894128004475039414380143147959909165586669234077067316042126166248569542863725002242441840393797322784545425292264932115*t^3 + 1415270821185129688418360993570705838872105464079327081884724552626645776663283406575546338022054965011013525542182847577791895639212988324808030649964287150028655858088864209661798762825148917319041270293515200624019290215937958433927696848505272643962584390404426326*t^2 + 973492804030885093554313357659398959445670302825175126790627328783080441633181705266393114977588109111122308256692502576476095220700598109843575893920177492512615425669966448365484317271136370356498892603278234844654764753905400563551578999848823468819467679117674790*t + 157351597182585258839741719658529938035054653761805128777294625059049920433550268694756293257335338481653713529262745444932510271358941498650047904348025695414128963672338312184511167327265301132966395816432537433429569966663315813065520490704601055967992426652804991
( 47) hxp_JRROHFNFOBDENMYVKDQLMLGBOSJO ~> 1045790926299803534463338496168393825585005487322351803951083605431055662933265865980668149050447737909765677611866241087532898185311849301483687026849430498406053538276534516658380052366466991655304477234747376213781982649359961465016120951333212948077476785036080511*t^3 + 604240659375475150699663484483263693735652240735661174255675982784163777242613712423344084328306252661343431721631564234655420867891041445728768237270769619509843424088859947047868292631938588516851477408846266545255898285835410229970156596754170328072769372295111006*t^2 + 101820112192522403247199221514487371621013615761185809528294219916792536216175203033720120263313222915244840259944346824630085379434094126129460550189748051583805021472563405096209941250783514978885482944156022049663907845139370639455322920129231767269844778274572480*t + 75594554504650629585095082937469409228399682877166216038631802510802372739282948776872077735950827025278601425351447423473906331164146756902852895226661838006240106933560202089911577709305280541729241472772598836300019640851709394024147823418710258852099614078999148
( 49) hxp_LLZQKWWOYODWXQMYKGIHFHCNBXFT ~> 321560010621538044022497673490646789430016853384300056277803360647916449254558811037209286695177099936980314895687911514242095654114642518121324641783240813827263066428718057040129522077515930052998947793488561478660615708607311993540018525627471898138407801859957210*t^3 + 1318943474658162247322777836429780224771301225706253949609950359632406505111668853686765091385500955102017413949086016011340983003550040470667145817202277870877973662721177059320777263871340793230342425195846322437007778875171668515629050710621910438055657885224280642*t^2 + 1181411503764568591140554901279113545946569462395365966876183190518867353336978768178682233224756951736443964822093652936259038512520471324321698416177681112400219550640174499457806985639607240663852693708742634518719296056433630014663715828872858299861558977768914117*t + 633518694648974373482015504673800316749194530850803252338611849307516155878064819544824523372666916991139684607128672568070333225419596923733735760543247402737377644204018099075395951519281518470301489933052732041508975876550200704239398376833955141327144144699393397
( 50) hxp_GMEJTWBBKWGHKYDZNUSRVMURKTXJ ~> 790179424889029437743560725328419954781990203637624644109489571223750761474620057938826121102489936741311277627504941254818634616898517327021282909316346983030456490860250616364147198721918912607733879353919678684510818922795982442171870710293077413860003785704059376*t^3 + 656464200970912308236444800558718316981766143305493873270620542102363064511191684613064342335657057636301879163453883004834828920133602532223960355116527267686136459377198427695088624667908467187001553773599402175659542557172072874067526932841581699325578340147348532*t^2 + 558394156792045639515269735291772953054554590694553172865747040868349904571954372921165288183080078122660479944867405056004674793437945985457013964993988010926724104132164366259473810420198902544057512470535981854608308262001486255981349678169584684388546840806668913*t + 1216693958340808098224733772918863583702684814245315350852565245828774076891120307826490851363097122660693387198327494049078540951128135515032557995057696185674094762297674157018457358638067217424168553935693131860737802481963391944449317080096399054028095927456615959
( 52) hxp_NIRTNZERITHXQEPYRMCCKISQGCXN ~> 1698571106052459910076486125053171037403901196279280480153158106267712895577084446362292072535363762725587482082196492868140598774271790618335164396211412837054138983828032191901780186602647520262860951022278778433100368157117756424086494806217151813830623616310134743*t^3 + 369400114356864855654679957592444279576033110025228182281298762292407144583652125252720495003827019425335259647476907853201926041582950516212789606653126328208763812020855733074887071360948112716140825967936817383560904335694325546897271046034449383513751756444725013*t^2 + 670734820996871027050615487557914374400366164165858168877060490635346708613745548562365927294893385198096978353504868300634881662887328505411138320061814125092502791009128198384735976945259301852826353735029903912097729789163196175719314360467232226561743973750855230*t + 304424147428792127920359132182857564812786852214618101400331257352612898832910970384509106437658241313434850443149310094550984628473537640804243416378886931920660845551611893162051719761440387070206943052205859950320675759206094570836381219438296853829019376672588250
( 55) hxp_LWZTYKXYLHAUNYCWFOYMQPLOYLNJ ~> 1280837089584734621400510437690483525375683894458326260762937789959163704364106115955179417573221578920408580741434490606880851664068878453504535049484578183224555908523020036310132762465828803117882413878285089663392974845486606656130720211595234267776301338749128346*t^3 + 570890963324917782871230051371772540966449296751947074018235372925394159917632901079615651359608780988942015834124731058887442157426590641562317193032438776534659948351984432267694488721680408042476110080178412073812189346917292236485361651922985994569200998107440337*t^2 + 311488085530777299741117302026984060611538260990940843932444071879129873542209406119737834176387489258197848515033467266461129005367836580550005844827447964275914790943088036074485605714487991716794881601180968381913888713405441294026183567439190452733512313870715529*t + 536473564252945101078149544795213652072813043669584205651778927595167679657370767604405231294136278509354076795701743697441671230369764613079931998204120802377811858253528604643408092217829214043229378366934288149066739695864265800837335817844308585017836213709842076
( 56) hxp_CTXRLUQILLLURVGUDUNIXEBGIPPZ ~> 498559903488314819914203864186517811480713864289778739649031091902826175299026125782758468013646187935855704303730766619605085278337453853960999933904595848020052199071728208602541807181422251232349256232424217252385187680342362116294572899407737309110757584652864998*t^3 + 814232264742645049690840015465374520131150888934978107259340063639130025400674269465143658505801900209240986984980599553533229164185708443312447429900292995246508115099920524394203928062071057757066158821257965474153236597151004428747092486417811178560328990442020199*t^2 + 570976535701068733801615734400237270242222094461568294923466744317340950638003924604318739262096480954276719863792549690293577578940119404211061576645697334894689915724571821678162086812933315156844677613721612600801446996453513375942098005859960109643830148089695392*t + 100256418178885378564877102933309211446157016581157131164762324390685845357685873740122893546648014211472429110026707898546557058543252859199363006914758867261438279758798151764646814645431883419974241642717898442397193070695974112112822541369909881845695237457524691
( 57) hxp_MVASQLJUEZRVZLKAZEKOTQXECRQT ~> 1027646758054434848162943542098489705752504564043126455491301438944959528022762896081176566416905139324578075824505601546644246749653624232882095339084607417919841632401365752022573522408197731540899600732515893094391632057814282076204120708127247041949523886151541585*t^3 + 521165006055291374892389534347134440533570587017107138774376134656681089081307349282339559959354658405197419405675304515038983870267916302918734239382704597011304598600224057343872698809805510338907052093108110839029738930470293008116502258366955686531161838044469542*t^2 + 1700480560437903848479946393709113844342701072999187192247782496980728224496184551514047894086252740688263951989533446495360619778129334018313046259766225109832559554787231313402080973701458940495559324009078820513282601832378895739312816190351575276162055606527541789*t + 1306507769024222096945567327161325558789691039582097273313621128013277993779338384570539067950972068974083168549525853064906081742687749162201190135759518025849315569292123921662492609340236321424216743394744993564395536577519147505228427513976360165574525428437863660
( 60) hxp_VHRHNQDHMZABUXEELTYVKCONYBPY ~> 326452100898373960816553383185858609186987780787655907828514704718919390474850811558487509244965207005233137289104569005594026437349998624445108117766507870996375041124469604098537424982022438628893959449657401342857966957464887958569970828109390737652495208374105042*t^3 + 474786741553622614427984592119763858489675032583576548028197149479147533855317515333992712098970573976335515340331828121766673874274925690880386927634339807633861646290368220839631638370186844285952887529719879359535466828487756207743871159238725819702455947596588727*t^2 + 483319165156996668032237083363470047474296600338695269559200522343373665810565396652598654501253158472087431823407801346085326961377015151773901972262892259971698568755529251503704010922374312136596302419248902928631470544465862204974985242744095259855273406746047180*t + 1053905919107315123127435388545702423112195083097301363723787435289724031545794140388471217126286303518029199558525941457475689931562238947013324366020691159772457863992455146913879289833091325662185004215325620877611288295125316473870825664312076653875905001410116218
( 61) hxp_TAGLEZQNMHXNCXXKXEUERXLLYUYN ~> 1078717954047360987069340783633488120387295036319456159317137498711689804744564181885826075255385689431437798753607015271861464002456126122679113634738983693879530310268908483800288757533389994226181089048407122270497948426445728571779455826098763873383712206447841376*t^3 + 1283078477232858370524480483991199441332389785069867831108902186415846024712683312203788198592306110923834566232699181154475644974925274200954862431588254665488849186975435473590570144204137881754023618634432990867045460381726974969154393709750787812765061728874197488*t^2 + 934763665941352894924066991463186517289917892151771333570300384532567625700608359448801669235571897751458042208292582831578402943167625635373601165759869084931389881358605551760277298273596680226905692087895661738077439546061088353154596859316826769288408771755347324*t + 153489555242483635089570818382497370696717389888560438227509274676089802847795418556642594669495760157550764263714431285018888185348841317291046094843114074715767402430452648698133765379018925239643841946280369554915667840998926443354562394160836829078720613282614616
( 62) hxp_NMOSIYVQOVERRECFLPYYQIJRGEUW ~> 434057283473356751927107497548915693688374402381859512254938160366255478308015014890887329987863711764783754511608844867949975098120211804688912973581628370568173828502999287164762999805585042409861485697621095392940550387167766603576430908439443858153965421641451154*t^3 + 436394027350344169708524097433231458442256964938321414086099904061491899139755263410376859542462709920139492375077827460727930253778464229894505781383889804633515389694435842892648516725743043105456024295160522546042435266577456596719369139296315681364334054765604598*t^2 + 795926698255891769145568549608688998063063801056630768443648485076472930761527010895707544053743966969064750017917274662257934984709712948052824162684085358438817243341356366115861095741060430204899143684751929675924479387286319217932100839117899740674587908960114600*t + 885573292124274116427028867782258101922759972074278303249543278329949072346892148633979056116078261665152344227388938290631908179024506304364481472204869061560436468540834007430145284156102342615229208803699402131721782047359248070308764777047378048427597784400192676
( 63) hxp_FNHSGGIBUBJZBIPUMDTBEXIIPVAQ ~> 472790278344055555516771928830404844851650261610860291134394264545243916018070069912801754524521571477663666311418818386963882955670338248774570256949602052388252031303481887543958167861729937468447228554072017712481003352156022525017383153986039290486913134929060130*t^3 + 1008254901860906035823245708728038768090162421126505843502393221033537428380379474593938463078089840292079016213744092651469484842913491836077432832763588473856418054601473598031798151690794992319089015907144574348639762458615346957663137028704536998093135654831033857*t^2 + 1655233364806638635111338667468342521694175869853792836526405579884269873755208007114121129151394399737783612946059092185498742261805770014017117661617259123382846273069980565927895979389421266331327257449728351782083526697801133411109520805895593212623018689935949591*t + 1339196710263046819319169953962125363224817420135519702519912108986890240952439981244706843825988347239879126440382095205863684270873759521109964405439096435225372053747597166062055131386088846709566216758586022100545454529075747384732214238063361301224099187897969526
( 64) hxp_ALRIJGQXVTBURWRXXPCNOWMLSGJS ~> 769022568654299479406251716179785233322296415319133700356425098629234320407849050849523534215204728418244402838304949098798612940913996189140743079016217290781506702823097170078904917595168177697604267130919217512532802402817041540426097049797332765043714589083946468*t^3 + 1144516639888555857785734915753197520750527880605944577730820657952356643168213497668496556366069608303901770510889915737803846746926097455267627354006404309840217694273901409463369577718818053905087765156243977377436199308185677003444543391331080615848538542309103846*t^2 + 1125861170965890178581096255164379181822001200498240107767797938989124889829933972948844335084836955237753929045802703881220917546780303549545065019347931335360560133713111245817701042888411656586640584980385090392691557340707763217106956591164944756982612268239125373*t + 395063493353319617910114280987947897921840884368355219796670947803286494118939946968991514697114179779150382997111788589963548102924926433734383901390456083457803454222491283935440158683098153197910227926549606789678007632308436047888830764936384447549585313860655182
( 65) hxp_BKEVHNFARAALWXSZSCDGEBXWSUQC ~> 200433183099352569531011144284688810520139821176570579769747461530611623428111664055357089291733673353910731462217337453745456728393265922947996408715507868729151285142295047525128718527394948117838459659364084341151695583831747492240226175733730684074155853163320449*t^3 + 391686739246241024828131983898983751898080654581822443777224589479304864096386938729984630042245529913142917596558657667685186868502817884104329909838800645940461119805869468429384563348758218927260659307768005031958495834227440296224863376038345038663001479672230349*t^2 + 881362455478313180529371316626801199742048314670280226585948970562821540286810050421864764743708632257535396644047475110134252217107489179793050938571076586785776805319789116515456668386078955367277660236887790342131336412638441925679796728456206109520209425508151611*t + 363148650504054015215191442201566134842255231179064191281224226152928747488168713153312834022529376631896662073701556339115951252660746822604445006408787977357156061252353601812775931278155601211557641959315820212384164724641948502934167614015814244455213272978320990
( 66) hxp_SMLKPJVSSEISYIAFMXIOKBNEVCLE ~> 1017298544426903389141287163925602312363698720856884572543043310386569029142152937634946775060074448512211658759848925898025758413710872268349506710220389995458999912399941160893036034266552162926965042624170337412920538875503088636970956539884786255634012143270013415*t^3 + 1035965341461324617017822957050326895044058639339759690658481797500147307498906837048869361065347788305129552328208550877901059342843468071304611526139669539544525088197839154244264124576480871178830719438732147600133503688147721999891718080181967717802472121857520738*t^2 + 1370514025052196498464498182742105782019369491508340465786997152132355508392906690933129105919814668430358518633604138874096386223515111907167520630074701961622616084968844522424249086046722188898855971308141471864353417667916596034108876419670521416151284151592170110*t + 888693319354340273900938729764921872904552707527065853526759008684963718002501340884376781955287663336771883233192179064852553632408305649882835253849478551301490176538594062691484268704780765085203764134307119773899887868420912833895023234227913615265101799560221371
( 67) hxp_IAUSDZGJONEPLSVVNMSGDVJUNBYB ~> 762443860310641270459134783474002541660781525531754812901947973935240974674434821469599223829382544418290253406423046128217567089383593817997408221624319913448127989427081222583798661714652851590653517203308527960924177439504117522924582801700605304753705367398155504*t^3 + 125683241232372553241929223425387221836899372093499730979013405643788779196727405448158521027070837254879075673219283403733518399636202111354868077902671727431397486123600014910454171486164401652393471957144819601326469751748320318441885503348361228853285543364955208*t^2 + 1314239632533300067552295179123841239720817243573185607839378591893010796045797975073776302379732303134944235274149965345929509072219174068308504107548518641152847782760103895328201130043532346632112169755971552079742213909186791167710592674880795926209274767590008597*t + 985222623692329968660912023520009874844880627761940175374746504383243368200079251604591076553749719972366476092596910974948668912347165238864356106428831847507832859084782953559133497060209985247473498594698547386430456577189822092384461838271928832625652883255407093
( 69) hxp_HHFTQWEVABKCRIHELGIZMDWAFXBF ~> 914210295085991480763510607734152494941445041655613476674340194643668290228981082738300749239352392943772516566500601224515246159827155565250240939522819424491699907113005581325924515339554922646111005009590271044526248659826769807807399733251027759420209845697097247*t^3 + 1682929362657384389022223590390218070101276147123915170582511918747640385586960303026407455838861232067105329549543521977364515185230444032191429375701240986320097710887136241315936856150851856122924984142477282464406460564704786743325761100904632849051149198631945887*t^2 + 558609122332047579812055742464013516422878518926530668610783126849786174043935775778448964600007791603514254945291443220746023680591252438359685506120608244182989683845888919421712432108351003335071958325141055312721734333727729975553127243810300407199719555828603437*t + 1255134189757938201925030485710839712686350089671083717926312870934228534060209524138579990423693367146683980121774994148188800253750893886620797582611307173972528959650281431933284239353806839366307489850704367780177400964304668508706604644344364078544581115010436423
( 71) hxp_HZKRTHLWKGVPVWCQOHYCANPTVDQF ~> 1056888812276360112708094951702875764855010343059594431231872541940655108356818358384256426727610375035110446938416081838116330112390602238666216989026888395057966640258663178900216699378706231920041287475419511857296118196241647245561806736433751036974532670680373309*t^3 + 28890005196728229716647598044128617109724131364891329895419861344403314540181663041045944478956361530820082580464445399050125175648260671113575323125715639448375980611261805819388009181314250213498731041340437452839465464276828952848867603573652016679585556344738991*t^2 + 235372302079828370838991113957951397441531682605170495870589880057385598435159886370834094131532104046595083180772089642067390105160036538079600491543201630461383778014438923250209663565376239589153042656197774267261673262807028167839437086668818760195648555145816917*t + 635779960899140923237331897248813453278335731683048005807304850836684901837475595410818202917736763956525308804562274639097297552831550756865732959587327669506810883708913850256080253085479520839750585468081426509571903336315291759119809125519660610726324027190980506
( 73) hxp_HPGVNXJJDNCXVOCDXPUYULZRBTOT ~> 62403125693358189800878578550939847295851765648498218234427211974320946700213499884069076146198569225488280410026342952259000004220311104665817446433736474428465266279472045356080956903778665341620129076206455256064240759755223487601466043213030813217292967074619942*t^3 + 1913058585802589798198361213900849115149829513698994066093112129075882242822467800218767697878050225098939197542990362781915012586707110751972716269589547140237560681519321259576080256278804438156797103054929085726255408758186086805983135122014717063629261312796935*t^2 + 732779996425413096164398220790197042073674110564077927049951073176207946820943104256575890996492858241457251239321901961348473443621369808019012465344770494710579302406732491016493922271540977252075046767270073075077069461725985862577883687996684144442989769145605332*t + 1152702069599503936526218025212429501389031530673361772555621499857577028136661023483387431966636436851702013773718495053280120505040407090388633332492337186707111892274438192323005910562356492856968840425743514074011074063335276492253343485621581517313411346916696554
( 74) hxp_BXOKNPOODHBDIZFGCUKNZDHCMGAV ~> 1611516837642299954637828984929074825637122803566766405255669912506378052892232713048803581695598639611951900107924042191724279344321072136454552002953127146295139606470875373612001719491805104831547862983018619453381094357348970992592345478225772123758925096522974306*t^3 + 489441985462186466202553268822121195217080561231736036135806741193900923740998700592050816352902457865271454269430142730487499929773991187161571078019985033561303358679010708080198591826724340687446225040826780356830829830154981189020469420223183051569037755822689971*t^2 + 1579592303027635481102811388046619404267465415597313278004023804491846050043728016052496891694689927001233408606758982398501982311044965116584880882615649630951700240433764083311136864860177636821503060366002345543273378924540166823396692865617786304518928193188819684*t + 147159047265387763081536287779149780044621723090800518514525149171526385440354330283207890904576855180400151773472752902020281917478783025083114787406953850486020984923886291276836166095964774443478898733565855439261039844997014607478629552913140174947145501298438461
( 75) hxp_SBCTADHNCUHSRPHGXCQVYNFNMSDA ~> 958159617499851448413608499585856567132661099565629888877883289186692170292887957598092813533069127353993862151074798760988118720777999320475035804371699512696576832550420666936969701992935766673910600549985147516457549904464040013532812302947263206330575165866710703*t^3 + 1463232939360560407442289437512100055296802426120273736666527147657472877545797434581853336451357950201127239335770976708080293718852887940662896663547659007456517738463082567232762236729883119206887124488640237663559214629905408112897291838815714863024558268751203311*t^2 + 125594818764997417469025204656467454842640540923587768654612580844274669632408635246127056982618630694490049389003740590261831828283304385506308650959584486273540603903431815892952234354319234628082052934418157950882207783992618637632128568316563099956391774823628076*t + 207234076599276276525779252521506309305068282715332645706776153053772259077571250689395912624162703242694628200321239409740505201134975007280983962630888659746218358154847203871307910514810653226684985453594245669763202107178105695007234540001140736691396719419067748
( 77) hxp_YIIACQFTDILMNBURPYTDMTDZNGQY ~> 753336882454764344528607123272144536176062875185559811649312957467911490061242233117470523982668623968535100617631181848577941571994102841474805621987151752431394961533155937718770668284676375679260563722420547879073980727890488018774274851630014762357354735077903783*t^3 + 305596353945190550752809740520700370607120978794147512105472458034146454876765689588486962276320214508229794308005559228141085955910113057043862746712440026896079017238121987083378539444407371590871660298372250968591186164603536340144881685896645907419604789375854851*t^2 + 1234889878638024939353128890285727510129828180385900094759122414888042109386784496254053735214492534628918298532654068730161193079328985734019228707477786973749386972836383167445271055761193022983104352579115073410337572694383400045864253006699639577760738407255266180*t + 926542274221112121248269201844645600183024977192156551233285035711064465349375069887868803094910217983347044855913950597708198787181350640601130538570024955085511772388863439750919840267707693451909453671265200700591377563909553693151159503026474922535609609626834993
( 78) hxp_JSCKXXTFBAWPGSZKAWOYMEGGMVNL ~> 721637486869337110505365334790988281153963199952231362562918732398897550508184883838155443244395771557941730770598199755296401261391428753120709078560546530064088511583025873533497806638207618043660326375626135573807326145010375178520787324008882595850553369064013043*t^3 + 17937477500239212326165139512619147967521209906228603938022483623372327975738779649253045749095708336036696937073994913583389282614238267014100360660821851061746580029207841670264225495650332444781358699902281798078452093168172883511520479325164076732797496005631283*t^2 + 990639643502907926621634893450247003257262479557838752213587528767813249965322545132115707167824197612820724046782049943036034409291182606301378119307101754184989588758982689495032237743229847979184105923401705614901134762676078714092869255520629197823395171513757966*t + 1103522540815866100671334618682244437622016243736831174127937563532609987458399975396028979542523746275327732000845769343143044272239275015020404520532057592837821509128242153506481868268419178880822058439296423059194706848226349051077138946307615513867586397092709582
( 81) hxp_YDIMBCYJVTDMIVBBLWGZCFPYHWST ~> 637425591193282902495992793463393366451188059689833515653498126861652506084008680375187839779420360449555485109595742029767084236113244982009552132480745861477398758169994020784820174840288878149016347936698586965214206157672215025521210035323831876609199260672770656*t^3 + 1674277856058911724545459534202863298082483557970682270459981401575740194083010343539873401319684338814229799934082724203196779992151594565107312855402983017778455649678157028985841685746576234984891448667302909617628931456405222162938483004713491786873525846863052678*t^2 + 784224695684745031206462840591647593339606537024207707334880911626200461268102151282169470269443848675743095123233843519001135963788830912366320740352600878352499821194072531026378988969501586002047413815903863834060691716043146963280834227057076335539212419916570538*t + 726113990872971817301251057238174953343516133610220025645357084136148562675287357842489305252041186450966544341722454004158651867921426416755595907382805802368398347738379940732678304612596444743796754290755306986662896473416614976153413669334434443561229790265844623
( 82) hxp_ZKSXFHESEQRYDWMIQWHEJSPTBMQN ~> 202857754238419377351255161090866767141633689216488980431959299880051955841342227751012721376367877633006269078082034716390241824785278286427356408412136881632572068227230960576910475466599250592191809744839589424421125450060944360849565657326252546761500014772167336*t^3 + 1139740729135372409342781646711454827630143333134950272614460923183049735114492889412102798825736058267599320635216607686640571551510863975922044938047813370921169911671275737854341251846693517691487716873665206177695572194464142224229381408958452902136170701731797292*t^2 + 57295394368155801534987525493907102387995555948456636482551210610934220711623088052667475598525410660230199456379975931235180335114414119243507481733170099317509328703357431488566537542702646845929113624436622109658993732767367296993836051336499066255837507423852141*t + 23761365329825359150730951180373213112980511667939601652430452270990045146741663075306493294649897015098724989758336401705657428912975474200255317979796488390710226930852683293637363915937541070358974715666848919862867499714571359709552267788485472048108222685103478
( 83) hxp_JFLTTGSFENIBMKEJMAFSPTUXTVJY ~> 1649629070405267520920559190880399322321027091815678278262283672040318224704506236517202858590297282970862593599550492619680976088761681323260713228322054760891261882695489237925232034851286062529668195484924398528656338145347321937054750892811500206420859390546800665*t^3 + 1166158167804529294449035503615409466326276410421483805983621627610030088559586747159938688744098410729951589658797018015101063580860708047988688797234773030285570606412099445207246839651893945676731806112279195378036715816189589451164723141631129266789121873435311378*t^2 + 1616818416854666416793534101664277703629667208454548408133675190254071135122342672600986156346737207393784465675652646803383785296196354440518608114396841612778866219164320970625195101198926871922691954700907361743671544621733453600469756069191180750644880758533691157*t + 684043200620277929514333209356444695313367925872085669370880920859075616218695906506194580798168535364539393923432718761674209919008302980111061317238878001548164184696554677315198406071122124011646696308323299106435130082937824785093235907430297575042563723865611404
( 84) hxp_RVPFCHWXJCZKPNSPWTJKCDXXBETS ~> 783625863771608705079403964650100035006423340664233795425252551312376585029823532738527950699186494750021605417740251797333406436262355098773045313432564651971905943239463702913271269828278522597847939086523712949820124252032871112879810754633953797527119124369041042*t^3 + 358138741616567904918946487777215440601546591271922604884762833796344615860461356755554131949417492796328975696106317850074091609389979762499090997572722754168883691917304591182614699403249451140862842001104699730646775341322647352924694028463207594755038742243113478*t^2 + 440051837669189378472014191954533429441696661077024762558210020846390162201729075331448069843453932667234028412614778540994248457892319187908023089509009585316851974838010880910359832367817328808051949130616183920927317087440099700420336406580617199894530328136369599*t + 1233281372590612498579251804409165608748832527844233237345294514430774942695421570143830836866992796989918650821686594193225198676610313484036142508371341413562697637298020419613118882871969076761126647134524698866232610659494814824450716686985474773100037886512300684
( 86) hxp_QCYXLVPMEOPUHSJJXUWSIBGUISSW ~> 92698289600334746431031686006446589739232566140011506947446505460094178801402737545787366119510518012762104615771530220434164233953480849306317847671467167343494703555104632710562093914816816085553767473812563690442594856617098774575472460928044193429142258925341269*t^3 + 554699443507003476407991634256413407763218587380317686692385192313337154353144886734914837641689775247253794620237381728793310385997344020706652579284980364148908266896413872282475946339340189958336884205908774718916241465518241159161508232068244222818568918565204658*t^2 + 416493857228078572901937912070102485024022516858288086535019192881875325065323033338568636291228114203383351682701597879770705848379054136785781966076765149816166411762986850894389045010507449160599296001576054304303200059399461348197057670412262869396211408955824841*t + 684398914796078586710427462668220027252368541692982821841548267466641716064612510284922618858317299305970846678646174548233018880564690728912839092628533942663592195153482003740414502467799841155943064262420393869175576143360025287622356135089265621463887438491665763
( 87) hxp_QTMZWIHIFIHOEUUUYPBODZVZCZNQ ~> 1555141308286644040795205925499076435216920591741546431234757569063585154743592730778530506231701886845591344231496732969862104187620762799186558673339117959359563023829385672587952364343423520230218640690123952915352729080130175936446522164726922273836475758145999067*t^3 + 820253945811158163298540718605418448597150547568056750147923350780110771499995309517843438884508224109519451538429950583984703877459934268256406912828722308923962991434778448659766499582004255596708631777591647834536605885198493956847314332228721061263651876245677286*t^2 + 211772733012406765319273556560976519554091990421579290711277250803852040247489088223044984303064856891576316059992398284308337278826813363436686554885467363522096258988451147872790008419415984481368192633381302145686342131990581717289334371341437819593492564262251974*t + 1492206015428614110137616445005234519027218026359707740476295014620987668553372167723961426290205377049533553063187648340013677454126903447680408509289305250369125243337970026714993787719842712064004536933871067286869770525034494728292786446092128371274019777049688658
( 89) hxp_PVJLACIUNPDHOJEWOAYTHXQXUCKT ~> 543034243038617584634281847650583330500187406259895745239950689103649088455674648756232002512751952119751387906255015078901749559241328173351892025895251846163916179634392507382321764957030682002932586027188477789079119190097266902586499703927582998802287812904012515*t^3 + 647285265730557474561317679790891707818519674605419513842537002584607581665961862884577722110683751154609807111306474168088860666212102047363544766465538886980713688976441771727516105707309890979943911556739464388878006372507119146806038125468515418623847636262958332*t^2 + 867820443600846608885475170416612464993181385900115809598379892850649928144099651710642592489700710349158271135892163152791135526682334957267076116799703170490562755068618558072059906088557480478875940011399319127470253605866159672230591606669737074790100235105529195*t + 1323596841410982951814233786791623690624592712211671916393646586254608190422055679701944202001005422756794612732682349862133348092323120875089578052599554447876101310936850866942762154770239182101692431097136558659666277520082828472383627852457933916117289668533326980
----------------------------------------
sig: 574441459113534421927139913609168224228501541229897693205534788344789196590965539060461476939684870599830362187577024266448923265804819827263798762579661495155175497231945915062188253730580659904871252085057853429202900562183239593195100882553485241374590494954624151*t^3 + 1338028984256690386855595754160063008031677835336729119817644931052531986991030631722725512951545879454096053104494146427887258762936797697836784804003747757632677536233160828361774938423299617416297672762039545479937334687097284902077408898623064634344671032676319418*t^2 + 1441229200534390173527883798446228632637300086908452226066635985029444953157721450041958188256545100863808605794034119970750490920471731888008858266765079652109199066711091366950242952613470035201726795510125823692683833825122346360454386362686642073431109244900862880*t + 15577598946485244575667932351313149598181574331816655516353436285039865548890439719741950967904697261052528822707277891447904109101894745366253981716698093367345047786339979050033438765168828702406553607159782478742855473004122139777315520646226722655339478233230771
hash: 10166*t^3 + 7194*t^2 + 26478*t + 23806
sig^e: 10166*t^3 + 7194*t^2 + 26478*t + 23806
----------------------------------------
--> 'Hello hxp! I would like the flag, please\xf0\xac\x92\xaf Thank you\xf0\xa0\xb3\xa3 Signature: 15577598946485244575667932351313149598181574331816655516353436285039865548890439719741950967904697261052528822707277891447904109101894745366253981716698093367345047786339979050033438765168828702406553607159782478742855473004122139777315520646226722655339478233230771|1441229200534390173527883798446228632637300086908452226066635985029444953157721450041958188256545100863808605794034119970750490920471731888008858266765079652109199066711091366950242952613470035201726795510125823692683833825122346360454386362686642073431109244900862880|1338028984256690386855595754160063008031677835336729119817644931052531986991030631722725512951545879454096053104494146427887258762936797697836784804003747757632677536233160828361774938423299617416297672762039545479937334687097284902077408898623064634344671032676319418|574441459113534421927139913609168224228501541229897693205534788344789196590965539060461476939684870599830362187577024266448923265804819827263798762579661495155175497231945915062188253730580659904871252085057853429202900562183239593195100882553485241374590494954624151'

--> Absolutely no problem at all Sir! Here you go: hxp{Num6er_Th30Ry_m4ke5_mY_Br41n_g0_nUmb}
069>