Last active
March 26, 2019 18:27
-
-
Save hellman/45406937a064597b6b85bd10c0920cb9 to your computer and use it in GitHub Desktop.
0CTF 2019 Quals - zer0mi (Crypto 611 pts)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env sage | |
| ''' | |
| Multivariate Public Key Cryptosystems by Jintai Ding et al., Chapter 2 | |
| Explains attack by Jacques Patarin. | |
| The idea is to find a relation of plaintext-ciphertext bytes such that | |
| when ciphertext is fixed, the relation is linear in plaintext. | |
| Patarin showed that a sufficient amount of such relations exists. | |
| ''' | |
| from sage.all import * | |
| import re | |
| F = GF(2**8, name='z8') | |
| toF = F.fetch_int | |
| fromF = lambda v: v.integer_representation() | |
| if 0: | |
| print "GO REAL" | |
| s = open("output").read() | |
| N = 63 | |
| f = open("data", "w") | |
| DATA = N**2 + 100 | |
| PT = None | |
| else: | |
| print "GO LOCAL" | |
| s = open("output_local").read() | |
| N = 11 | |
| f = open("data_local", "w") | |
| DATA = N**2 + 100 | |
| PT = map(toF, map(ord, "flag{abcde}")) | |
| s = s.replace("[", "") | |
| s = s.replace("]", "") | |
| def parse_gf256(m): | |
| s = m.group(1) | |
| res = 0 | |
| for t in s.split(" + "): | |
| if t == "1": | |
| res ^= 1 | |
| elif t == "z8": | |
| res ^= 2 | |
| else: | |
| v, e = t.split("^") | |
| assert v == "z8" | |
| res ^= 2**int(e) | |
| return str(res) | |
| # parse polynomial.. | |
| pub = s.strip().splitlines()[:-1] | |
| ct = s.strip().splitlines()[-1] | |
| polys = [] | |
| strexp = [] | |
| for line in pub: | |
| line = line.strip().strip(",") | |
| strexp.append(line) | |
| line = re.sub(r"\((.*?)\)", parse_gf256, line) | |
| # print line | |
| poly = [] | |
| for t in line.split(" + "): | |
| parts = t.split("*") | |
| cur = [] | |
| c = 1 | |
| try: | |
| c = int(parts[0]) | |
| parts = parts[1:] | |
| except: | |
| pass | |
| cur.append(c) | |
| for p in parts: | |
| assert p[0] == "x" | |
| p = p[1:] | |
| if p.endswith("^2"): | |
| cur.append(int(p[:-2])) | |
| cur.append(int(p[:-2])) | |
| else: | |
| cur.append(int(p)) | |
| poly.append(tuple(cur)) | |
| # print t, "->", cur | |
| polys.append(tuple(poly)) | |
| def eval_poly(poly, xs): | |
| out = 0 | |
| for t in poly: | |
| res = toF(t[0]) | |
| res *= xs[t[1]] | |
| res *= xs[t[2]] | |
| out += res | |
| return out | |
| CT = [eval_poly(poly, PT) for poly in polys] | |
| print "LOCAL FLAG ENCRYPTION:", ''.join(chr(fromF(x)) for x in CT).encode("hex"), | |
| print "VS", ct | |
| msg = map(toF, range(100, 100 + 2*N, 2)) | |
| for i in xrange(DATA): | |
| if i % 16 == 0: | |
| print "encrypt..", i | |
| msg = [F.random_element() for _ in xrange(N)] | |
| if 1: # if a part is known, that's good | |
| # useful when Q is not irreducible.. | |
| msg[:5] = map(toF, map(ord, "flag{")) | |
| res = [eval_poly(poly, msg) for poly in polys] | |
| pt = ''.join(chr(fromF(x)) for x in msg) | |
| ct = ''.join(chr(fromF(x)) for x in res) | |
| f.write(pt.encode("hex") + " " + ct.encode("hex") + "\n") | |
| f.flush() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from sage.all import * | |
| import re | |
| F = GF(2**8, name='z8') | |
| toF = F.fetch_int | |
| fromF = lambda v: v.integer_representation() | |
| if 0: | |
| print "GO REAL" | |
| s = open("data").read() | |
| out = open("output").read() | |
| N = 63 | |
| else: | |
| print "GO LOCAL" | |
| s = open("data_local").read() | |
| out = open("output_local").read() | |
| N = 11 | |
| PT = map(toF, map(ord, "flag{abcde}")) | |
| CT = out.strip().splitlines()[-1].decode("hex") | |
| CT = map(toF, map(ord, CT)) | |
| pairs = [] | |
| for line in s.strip().splitlines()[:4500]: | |
| pt, ct = line.split() | |
| pt = [toF(ord(ch)) for ch in pt.decode("hex")] | |
| ct = [toF(ord(ch)) for ch in ct.decode("hex")] | |
| pairs.append((pt, ct)) | |
| from itertools import product | |
| VX = range(N) | |
| VY = range(N, 2*N) | |
| unknowns = [] | |
| unknowns += [()] | |
| unknowns += list(map(tuple, Combinations(VX, 1))) # x_i | |
| unknowns += list(map(tuple, Combinations(VY, 1))) # y_i | |
| unknowns += list(map(tuple, product(VX, VY))) # x_i y_j | |
| m = matrix(F, len(pairs), len(unknowns)) | |
| for ieq, (pt, ct) in enumerate(pairs): | |
| inp = pt + ct | |
| for i, unk in enumerate(unknowns): | |
| if len(unk) == 0: | |
| res = 1 | |
| elif len(unk) == 1: | |
| res = inp[unk[0]] | |
| else: | |
| res = inp[unk[0]] * inp[unk[1]] | |
| m[ieq,i] = res | |
| print "first matrix..." | |
| print m.nrows(), "x", m.ncols(), "rank", m.rank() | |
| ct = CT | |
| lineqs = [] | |
| target = [] | |
| # each row in kernel describes a relation on monomials | |
| # that is true for all generated pairs | |
| # by substituting y for known ciphertext, we get a linear equation on the plaintext! | |
| for row in m.right_kernel().matrix(): | |
| vec = vector(F, N) | |
| b = 0 | |
| for unk, coef in zip(unknowns, row): | |
| if not coef: continue | |
| if len(unk) == 0: | |
| b += coef | |
| elif len(unk) == 1: | |
| vi = unk[0] | |
| if vi < N: | |
| vec[vi] += coef | |
| elif N <= vi <= 2*N: | |
| b += coef * ct[vi-N] | |
| else: | |
| assert 0 | |
| elif len(unk) == 2: | |
| vi, vj = unk | |
| assert vi < N | |
| assert vj >= N | |
| vec[vi] += coef * ct[vj-N] | |
| lineqs.append(vec) | |
| target.append(b) | |
| m = matrix(F, lineqs) | |
| print "second matrix..." | |
| print m.nrows(), "x", m.ncols(), "rank", m.rank() | |
| target = vector(F, target) | |
| sol = m.solve_right(target) | |
| print "Solutions:" | |
| for z in m.right_kernel()[:500]: | |
| print `"".join(chr(fromF(v)) for v in sol+z)` | |
| print "2^%d" % (m.right_kernel().dimension() * 8), "solutions" | |
| #flag{E$t-ce_qu3_Le_c!3l_m0uRra,_Mourr4_?} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Failed attempt with sage, so write my own | |
| # Sorry for the slow implementation. If you want to test with smaller N you should change Polynomial.Q as well. | |
| # Using pypy and a small th would also be helpful. | |
| from os import urandom | |
| from random import randrange | |
| from fractions import gcd | |
| from copy import copy, deepcopy | |
| class NotImplemented(Exception): | |
| pass | |
| B = 8 | |
| class GF256(object): | |
| def __init__(self, n=0): | |
| assert n>=0 and n<256 | |
| self.v = [] | |
| for _ in range(B): | |
| self.v.append(n%2) | |
| n/=2 | |
| def int(self): | |
| res = 0 | |
| for i in reversed(self.v): | |
| res = res*2+i | |
| return res | |
| def __add__(self, x): | |
| if isinstance(x, GF256): | |
| res = deepcopy(self) | |
| for i in range(B): | |
| res.v[i] ^= x.v[i] | |
| return res | |
| else: | |
| raise NotImplemented | |
| def __mul__(self, x): | |
| def mul2x(v, i): | |
| v = [0]*i + v | |
| for i in reversed(range(B, len(v))): | |
| if v[i]!=0: | |
| v[i]^=1 | |
| v[i-4]^=1 | |
| v[i-5]^=1 | |
| v[i-6]^=1 | |
| v[i-8]^=1 | |
| return v[:B] | |
| if isinstance(x, GF256): | |
| res = GF256() | |
| for i in range(B): | |
| if self.v[i]==0: | |
| continue | |
| tmp = mul2x(x.v, i) | |
| for j in range(B): | |
| res.v[j] ^= tmp[j] | |
| return res | |
| elif isinstance(x, Expression): | |
| return x*self | |
| else: | |
| raise NotImplemented | |
| def __repr__(self): | |
| res = map(lambda (a,_):"z8^%d"%a if a>1 else "z8" if a==1 else "1", filter(lambda (_,a):a!=0, enumerate(self.v))) | |
| if len(res)>0: | |
| return ' + '.join(reversed(res)) | |
| else: | |
| return '0' | |
| N = 63 | |
| class Expression(object): | |
| # For each term, we have at most two variables | |
| # So we represent a*xi^b*xj^c as (a,i,b,j,c) (i<j), | |
| # a*xi^b as (a,-1,-1,i,b), | |
| # and a as (a,-1,-1,-1,-1) | |
| def __init__(self, v=[]): | |
| self.v = deepcopy(v) | |
| @staticmethod | |
| def cmp_term(t0, t1): | |
| if t0[1]<t1[1]: | |
| return 1 | |
| elif t0[1]>t1[1]: | |
| return -1 | |
| elif t0[3]<t1[3]: | |
| return 1 | |
| elif t0[3]>t1[3]: | |
| return -1 | |
| elif t0[2]<t1[2]: | |
| return 1 | |
| elif t0[2]>t1[2]: | |
| return -1 | |
| elif t0[4]<t1[4]: | |
| return 1 | |
| elif t0[4]>t1[4]: | |
| return -1 | |
| else: | |
| return 0 | |
| @staticmethod | |
| def mult_term(t0, t1): | |
| if t0[1]!=-1 or t1[1]!=-1: | |
| raise NotImplemented | |
| if t0[3]<t1[3]: | |
| return (t0[0]*t1[0], t0[3], t0[4], t1[3], t1[4]) | |
| elif t0[3]>t1[3]: | |
| return (t0[0]*t1[0], t1[3], t1[4], t0[3], t0[4]) | |
| else: | |
| return (t0[0]*t1[0], -1, -1, t0[3], (t0[4]+t1[4])%255) | |
| @staticmethod | |
| def eliminate_term(ts): | |
| res = [] | |
| v = [False]*len(ts) | |
| for i in range(len(ts)): | |
| if v[i]: | |
| continue | |
| coef = ts[i][0] | |
| for j in range(i+1,len(ts)): | |
| if ts[i][1]==ts[j][1] and ts[i][2]==ts[j][2] and ts[i][3]==ts[j][3] and ts[i][4]==ts[j][4]: | |
| coef += ts[j][0] | |
| v[j] = True | |
| if coef.int()!=0: | |
| res.append((coef,ts[i][1],ts[i][2],ts[i][3],ts[i][4])) | |
| return res | |
| @staticmethod | |
| def repr_term(t): | |
| coef = repr(t[0]) | |
| if coef=='0': | |
| return coef | |
| term = '('+coef+')*' | |
| if t[1]!=-1: | |
| term += 'x%d^%d*' % (t[1], t[2]) if t[2]!=1 else 'x%d*' % t[1] | |
| if t[3]!=-1: | |
| term += 'x%d^%d' % (t[3], t[4]) if t[4]!=1 else 'x%d' % t[3] | |
| return term.strip('*') | |
| def square(self): | |
| res = [] | |
| for i in range(len(self.v)): | |
| if self.v[i][1]!=-1: | |
| raise NotImplemented | |
| res.append((self.v[i][0]*self.v[i][0],-1,-1,self.v[i][3],(self.v[i][4]*2)%255)) | |
| return Expression(res) | |
| def subs(self, x): | |
| assert len(x)==N | |
| res = GF256() | |
| for t in self.v: | |
| tmp = deepcopy(t[0]) | |
| for _ in range(t[2]): | |
| tmp *= x[t[1]] | |
| for _ in range(t[4]): | |
| tmp *= x[t[3]] | |
| res += tmp | |
| return res | |
| def __add__(self, x): | |
| if isinstance(x, Expression): | |
| res = [] | |
| i = 0 | |
| j = 0 | |
| while i<len(self.v) or j<len(x.v): | |
| if i>=len(self.v): | |
| res.append(copy(x.v[j])) | |
| j+=1 | |
| continue | |
| if j>=len(x.v): | |
| res.append(copy(self.v[i])) | |
| i+=1 | |
| continue | |
| order = self.cmp_term(self.v[i],x.v[j]) | |
| if order==1: | |
| res.append(copy(self.v[i])) | |
| i+=1 | |
| elif order==-1: | |
| res.append(copy(x.v[j])) | |
| j+=1 | |
| else: | |
| t0 = self.v[i] | |
| t1 = x.v[j] | |
| res.append((t0[0]+t1[0],t0[1],t0[2],t0[3],t0[4])) | |
| i+=1 | |
| j+=1 | |
| return Expression(res) | |
| else: | |
| raise NotImplemented | |
| def __mul__(self, x): | |
| if isinstance(x, Expression): | |
| res = [] | |
| for t0 in self.v: | |
| for t1 in x.v: | |
| res.append(self.mult_term(t0, t1)) | |
| res = self.eliminate_term(res) | |
| return Expression(res) | |
| elif isinstance(x, GF256): | |
| res = [] | |
| for t0 in self.v: | |
| res.append((t0[0]*x,t0[1],t0[2],t0[3],t0[4])) | |
| return Expression(res) | |
| else: | |
| raise NotImplemented | |
| def __repr__(self): | |
| res = filter(lambda x:x!='0',map(self.repr_term, self.v)) | |
| if len(res)>0: | |
| return ' + '.join(res) | |
| else: | |
| return '0' | |
| class Polynomial(object): | |
| # quotient as x^63 + z8^5*x^62 + (z8^7 + z8)*x^61 + z8*x^60 + (z8^7 + z8^6 + z8^5 + z8^4 + z8)*x^59 + (z8^6 + z8^5 + z8^3 + z8 + 1)*x^58 + (z8^6 + z8^5 + z8^3 + z8 + 1)*x^57 + (z8^7 + z8^6 + z8^3)*x^56 + (z8^3 + z8 + 1)*x^55 + (z8^4 + z8)*x^54 + (z8^5 + z8^3)*x^53 + (z8^7 + z8^6 + z8^2 + z8)*x^52 + (z8^5 + 1)*x^51 + (z8^6 + z8^2 + z8)*x^50 + (z8^5 + z8 + 1)*x^49 + (z8^5 + z8^4 + z8^3 + 1)*x^48 + (z8^7 + z8^3 + z8^2 + z8 + 1)*x^47 + (z8^7 + z8^6 + z8^5 + z8^3 + 1)*x^46 + z8^4*x^45 + (z8^3 + 1)*x^44 + (z8^4 + z8^2 + z8)*x^43 + (z8^5 + 1)*x^42 + (z8^5 + z8^4 + z8)*x^41 + (z8^7 + z8^5 + z8^2)*x^40 + (z8^6 + z8^5 + z8^3 + z8 + 1)*x^39 + (z8^7 + z8^5 + z8^4 + z8^2)*x^38 + (z8^6 + z8^5 + z8^4 + z8^3 + z8^2)*x^37 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8)*x^36 + (z8^6 + z8^3 + 1)*x^35 + z8^3*x^34 + (z8^4 + z8^3 + z8^2)*x^33 + (z8^7 + z8^5 + z8)*x^32 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2)*x^31 + (z8^6 + z8^5 + 1)*x^30 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x^29 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8)*x^28 + (z8^6 + z8^5 + z8^4 + z8^3)*x^27 + (z8^7 + z8^5 + z8^4 + 1)*x^26 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2)*x^25 + (z8^5 + z8^2 + z8 + 1)*x^24 + z8^7*x^23 + (z8^7 + z8^6 + z8)*x^22 + (z8^7 + 1)*x^21 + (z8^6 + z8^4 + z8^2)*x^20 + (z8^5 + 1)*x^19 + (z8^2 + 1)*x^18 + (z8^7 + z8^5 + z8^4 + z8^2 + z8 + 1)*x^17 + (z8^7 + z8^6 + z8^5 + z8^4)*x^16 + (z8^7 + z8^5 + z8^4 + z8^2 + z8)*x^15 + (z8^7 + z8^3 + z8)*x^14 + (z8^7 + z8^4 + z8^3 + z8)*x^13 + (z8^3 + z8^2 + 1)*x^12 + (z8^7 + z8^5 + z8^2)*x^11 + (z8^7 + z8^3 + z8 + 1)*x^10 + (z8^7 + z8^5 + z8^3 + 1)*x^9 + (z8^5 + z8^4 + z8^2 + z8)*x^8 + (z8^7 + z8^5 + z8^4 + z8^2 + z8 + 1)*x^7 + (z8^6 + z8^2 + 1)*x^6 + z8^6*x^5 + (z8^7 + z8)*x^4 + (z8^7 + z8^5 + z8^2)*x^3 + (z8^7 + z8^4)*x^2 + (z8^7 + z8^5 + z8^3)*x + z8^7 | |
| Q = map(lambda x:GF256(x), [128, 168, 144, 164, 130, 64, 69, 183, 54, 169, 139, 164, 13, 154, 138, 182, 240, 183, 5, 33, 84, 129, 194, 128, 39, 244, 177, 120, 254, 255, 97, 220, 162, 28, 8, 73, 254, 124, 180, 107, 164, 50, 33, 22, 9, 16, 233, 143, 57, 35, 70, 33, 198, 40, 18, 11, 200, 107, 107, 242, 2, 130, 32]) | |
| def __init__(self, v): | |
| self.v = [] | |
| for i in range(N): | |
| if i<len(v): | |
| assert isinstance(v[i], Expression) | |
| self.v.append(deepcopy(v[i])) | |
| else: | |
| self.v.append(Expression()) | |
| @staticmethod | |
| def mod(v): | |
| for i in reversed(range(N, len(v))): | |
| for j in range(1, N+1): | |
| v[i-j] += v[i]*Polynomial.Q[N-j] | |
| return v[:N] | |
| def export(self): | |
| return deepcopy(self.v) | |
| def square(self): | |
| res = [] | |
| for i in range(N): | |
| res.append(self.v[i].square()) | |
| res.append(Expression()) | |
| self.v = self.mod(res) | |
| def __add__(self, x): | |
| if isinstance(x, Polynomial): | |
| res = deepcopy(self) | |
| for i in range(N): | |
| res.v[i] += x.v[i] | |
| return res | |
| else: | |
| raise NotImplemented | |
| def __mul__(self, x): | |
| if isinstance(x, Polynomial): | |
| res = [] | |
| for _ in range(2*N): | |
| res.append(Expression()) | |
| for i in range(N): | |
| for j in range(N): | |
| res[i+j] += self.v[i]*x.v[j] | |
| return Polynomial(self.mod(res)) | |
| else: | |
| raise NotImplemented | |
| def __repr__(self): | |
| res = filter(lambda (_,x):x!='0',enumerate(map(repr, self.v))) | |
| res = map(lambda (a,b):"(%s)*x^%d"%(b,a) if a>1 else "(%s)*x"%b if a==1 else b, reversed(res)) | |
| if len(res)>0: | |
| return ' + '.join(res) | |
| else: | |
| return '0' | |
| def gen_affine(): | |
| mat = [] | |
| for _ in range(N): | |
| row = [] | |
| for _ in range(N): | |
| row.append(GF256(randrange(0,256))) | |
| mat.append(row) | |
| # should check whether the matrix is inversible | |
| return mat | |
| def mat_mult(mat, vec): | |
| assert len(mat)>0 and len(mat[0])==len(vec) | |
| res = [] | |
| for i in range(len(mat)): | |
| tmp = Expression() | |
| for j in range(len(vec)): | |
| tmp += mat[i][j]*vec[j] | |
| res.append(tmp) | |
| return res | |
| def main(): | |
| # with open('flag') as f: | |
| # flag = f.read() | |
| a = map(lambda x:GF256(x), map(ord, flag)+map(ord, urandom(N-len(flag)))) | |
| q = 2**B | |
| th = randrange(1,N) | |
| while gcd(q**th+1,q**N-1)!=1: | |
| th = randrange(1,N) | |
| l1 = gen_affine() | |
| l2 = gen_affine() | |
| v = [Expression([(GF256(1),-1,-1,i,1)]) for i in range(N)] | |
| v = mat_mult(l2, v) | |
| p1 = Polynomial(v) | |
| for i in range(B*th): | |
| p1.square() | |
| p = Polynomial(v)*p1 | |
| pubkey = mat_mult(l1, p.export()) | |
| print pubkey | |
| ct = map(lambda x:x.subs(a), pubkey) | |
| ct = ''.join(map(lambda x:chr(x.int()), ct)) | |
| print ct.encode('hex') | |
| with open("output_local", "w") as f: | |
| f.write(`pubkey`.replace(",",",\n")+"\n") | |
| f.write(ct.encode('hex')) | |
| # for local fast encryption | |
| flag = "flag{abcde}" | |
| N = 11 | |
| Polynomial.Q = Polynomial.Q[:N] # not irreducible probably, but still OK if we know some bytes of plaintext | |
| if __name__ == '__main__': | |
| main() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [(z8^7 + z8^6 + z8^3 + z8)*x0^2 + (z8^7 + z8^5 + z8^4 + 1)*x0*x1 + (z8^6 + z8^3 + z8 + 1)*x0*x2 + (z8^7 + z8^3)*x0*x3 + (z8^6 + z8^4 + z8^3 + z8)*x0*x4 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2 + z8 + 1)*x0*x5 + (z8^7 + z8^5 + z8^3 + z8^2 + z8)*x0*x6 + (z8^7 + z8^6)*x0*x7 + (z8^7 + z8^4 + z8^3 + z8^2 + z8 + 1)*x0*x8 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x0*x9 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3)*x1^2 + (z8^4 + z8^3 + 1)*x0*x10 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2 + z8 + 1)*x1^2 + (z8^3 + z8^2 + z8 + 1)*x1*x2 + (z8^5 + z8^4 + z8^3 + z8 + 1)*x1*x3 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x1*x4 + (z8^4 + z8^3 + z8^2 + z8 + 1)*x1*x5 + (z8^7 + z8^6 + z8^4 + z8^3 + 1)*x1*x6 + (z8^7 + z8^5 + z8^2 + z8 + 1)*x1*x7 + (z8^7 + z8^6 + z8^4 + z8^3 + z8)*x1*x8 + (z8^7 + z8^6 + z8^5 + z8^3 + z8)*x1*x9 + (z8^6 + z8^5 + z8^2 + z8)*x1*x10 + (z8^6 + z8^4 + z8^2 + z8)*x2^2 + (z8^7 + z8^5 + z8^4 + z8^3)*x2*x3 + (z8^5 + z8^4 + z8^3)*x2*x4 + (z8^5 + z8^4 + z8^2 + z8 + 1)*x2*x5 + (z8^7 + z8^5 + z8^2)*x2*x6 + (z8^5 + z8)*x2*x7 + (z8^7 + z8^4 + z8^3 + z8^2)*x2*x8 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + z8)*x2*x9 + (z8^6 + z8^2 + 1)*x2*x10 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2 + z8 + 1)*x3^2 + (z8^4 + z8^3 + z8^2)*x3*x4 + (z8^7 + z8^6 + z8^2 + 1)*x3*x5 + (z8^7 + z8^5 + z8^4 + z8^2 + z8)*x3*x6 + (z8^7 + z8^4 + z8^3)*x3*x7 + (z8^6 + z8^4 + z8 + 1)*x3*x8 + (z8^7 + z8^6 + z8^4 + z8^2 + z8)*x3*x9 + (z8^7 + z8^6 + z8^3 + z8^2 + 1)*x4^2 + (z8^6 + z8^3 + z8)*x3*x10 + (z8^7 + z8^3 + z8^2 + 1)*x4^2 + (z8^4 + z8^3 + z8^2 + z8 + 1)*x4*x5 + (z8^7 + z8^6 + z8^4 + z8)*x4*x6 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x4*x7 + (z8^6 + z8^3 + z8^2 + z8 + 1)*x4*x8 + (z8^3 + z8 + 1)*x4*x9 + (z8^7 + z8^3 + z8^2 + z8 + 1)*x4*x10 + (z8^7 + z8^2 + 1)*x5^2 + (z8^5 + z8^2)*x5*x6 + (z8^7 + z8^4 + z8^3 + z8^2 + 1)*x5*x7 + (z8^7 + z8^5 + z8^4 + z8^3)*x5*x8 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2)*x5*x9 + (z8^6 + z8^5 + z8^3 + z8 + 1)*x5*x10 + (z8^3 + 1)*x6^2 + (z8^7 + z8^5 + z8^3 + z8^2)*x6*x7 + (z8^6 + z8^5)*x6*x8 + (z8^5 + z8^4)*x6*x9 + (z8^7 + z8^5 + z8^3 + 1)*x6*x10 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8)*x7^2 + (z8^7 + z8^5 + z8^4 + z8^3 + 1)*x7*x8 + (z8^6 + z8^5 + z8 + 1)*x7*x9 + (z8^7 + z8^5 + z8^3 + z8^2 + z8 + 1)*x7*x10 + (z8^5 + z8)*x8^2 + (z8^7 + z8^2 + z8)*x8*x9 + (z8^6 + z8^5 + z8^3)*x8*x10 + (z8^4 + z8^2)*x9^2 + (z8^7 + z8^6 + z8)*x10^2 + (z8^7 + z8^6 + z8^2 + z8)*x9*x10 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x10^2, | |
| (z8^5 + z8^3)*x0^2 + (z8^6 + z8^5 + z8^4 + z8^3 + z8)*x0*x1 + (z8^6 + z8^5 + z8^2)*x0*x2 + (z8^7 + z8^2 + z8 + 1)*x0*x3 + (z8^6 + z8^5 + z8^4 + 1)*x0*x4 + (z8^6 + z8^5 + z8^3 + z8 + 1)*x0*x5 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8)*x0*x6 + (z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8)*x0*x7 + (z8^5 + z8^3 + z8)*x0*x8 + (z8^6 + z8^5 + z8^4 + z8^3 + 1)*x0*x9 + (z8^7 + z8^4 + z8^3)*x1^2 + (z8^5 + z8^4 + z8^2)*x0*x10 + (z8^7 + z8^6 + z8^4 + z8^2 + z8 + 1)*x1^2 + (z8^7 + z8^6 + z8^3 + z8^2 + z8)*x1*x2 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2 + 1)*x1*x3 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + z8)*x1*x4 + (z8^5 + z8^3 + 1)*x1*x5 + (z8^5 + z8^3 + 1)*x1*x6 + (z8^7 + z8^6 + z8^5 + z8^4 + 1)*x1*x7 + (z8^4 + 1)*x1*x8 + (z8^7 + z8^5 + z8 + 1)*x1*x9 + (z8^7 + z8^6 + 1)*x1*x10 + (z8^7 + z8^4 + z8^3)*x2^2 + (z8^7 + z8^4 + z8^3 + 1)*x2*x3 + (z8^7 + z8^6 + z8^5 + z8 + 1)*x2*x4 + (z8^6 + z8^4 + z8 + 1)*x2*x5 + (z8^6 + z8^5 + z8^4 + z8^3)*x2*x6 + (z8^4)*x2*x7 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + 1)*x2*x8 + (z8^5 + z8^4 + z8)*x2*x9 + (z8^7 + z8^4 + z8^2 + 1)*x2*x10 + (z8^6 + z8^5 + z8^4 + z8^3 + z8^2)*x3^2 + (z8^4 + z8^3 + z8)*x3*x4 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2)*x3*x5 + (z8^7 + z8^6 + z8^5 + z8^3 + z8 + 1)*x3*x6 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2 + z8 + 1)*x3*x7 + (z8^6 + z8^5 + z8^4 + z8^3 + 1)*x3*x8 + (z8^6 + z8^5 + z8^4 + z8^3 + z8 + 1)*x3*x9 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2 + z8 + 1)*x4^2 + (z8^7 + z8^3 + z8^2 + z8)*x3*x10 + (z8^4 + z8)*x4^2 + (z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x4*x5 + (z8^7 + z8^6 + z8^3 + z8^2 + 1)*x4*x6 + (z8^6 + z8^5 + z8^3 + z8 + 1)*x4*x7 + (z8^2)*x4*x8 + (z8^7 + z8^4 + z8^2 + 1)*x4*x9 + (z8^6 + z8^4 + z8 + 1)*x4*x10 + (z8^6 + z8^4)*x5^2 + (z8^6 + z8^5 + z8)*x5*x6 + (z8^7 + z8^6 + z8^2 + z8 + 1)*x5*x7 + (z8^5)*x5*x8 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8)*x5*x9 + (z8^6 + z8^3 + z8^2 + 1)*x5*x10 + (z8^7 + z8^5 + z8^4 + z8^2 + z8)*x6^2 + (z8^7 + z8^5 + z8 + 1)*x6*x7 + (z8^7 + z8^5 + z8^4 + z8)*x6*x8 + (z8^3 + z8^2 + 1)*x6*x9 + (z8^6 + z8^4 + z8^3 + z8)*x6*x10 + (z8^2 + 1)*x7^2 + (z8^5 + z8^4)*x7*x8 + (z8^2)*x7*x9 + (z8^5 + z8 + 1)*x7*x10 + (z8^4 + z8^3 + z8^2 + z8 + 1)*x8^2 + (z8^7 + z8^6 + z8^5 + 1)*x8*x9 + (z8^7 + z8^6 + z8^5 + z8^4 + z8 + 1)*x8*x10 + (z8^7 + z8^5 + z8^4 + z8^3 + 1)*x9^2 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2 + z8)*x10^2 + (z8^6 + z8^5 + z8^3 + z8^2 + z8 + 1)*x9*x10 + (z8^7 + z8^4 + z8^3 + 1)*x10^2, | |
| (z8^7 + z8^6 + z8^5 + z8^3 + z8)*x0^2 + (z8^3 + z8^2)*x0*x1 + (z8^6 + z8^5 + z8^2 + z8)*x0*x2 + (z8^6 + z8^2 + z8)*x0*x3 + (z8^6 + z8^5 + z8^4 + z8^3 + z8)*x0*x4 + (z8^7 + z8^4 + z8^3 + z8 + 1)*x0*x5 + (z8^6 + z8^4 + z8^3 + z8^2)*x0*x6 + (z8^6 + z8^4 + z8^2 + z8)*x0*x7 + (z8^6 + z8^2 + z8 + 1)*x0*x8 + (z8^7 + z8^5 + z8^3 + z8 + 1)*x0*x9 + (z8)*x1^2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8)*x0*x10 + (z8^4 + z8^3)*x1^2 + (z8^7 + z8^6 + z8^5 + z8)*x1*x2 + (z8^7 + z8^6 + z8^4 + z8^2 + 1)*x1*x3 + (z8^4 + z8 + 1)*x1*x4 + (z8^6 + z8^5 + z8^2 + z8 + 1)*x1*x5 + (z8^7 + z8^3 + z8^2 + z8 + 1)*x1*x6 + (z8^5 + z8)*x1*x7 + (z8^6 + z8^4 + z8^3 + z8 + 1)*x1*x8 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x1*x9 + (z8^6 + z8^5 + z8^4 + z8^2 + 1)*x1*x10 + (z8^4 + z8^3 + z8)*x2^2 + (z8^7 + z8^6 + z8^5 + z8^2)*x2*x3 + (z8^7 + z8^5 + z8^3 + z8^2 + 1)*x2*x4 + (z8^6 + z8^5 + z8^3 + z8^2 + z8 + 1)*x2*x5 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2)*x2*x6 + (z8^6 + z8^5 + z8^3)*x2*x7 + (z8^7 + z8^5 + 1)*x2*x8 + (z8^7 + z8^3)*x2*x9 + (z8^7 + z8^6 + z8^5 + 1)*x2*x10 + (z8^6 + z8^2 + z8)*x3^2 + (z8^7 + z8^6 + z8^4 + z8^2)*x3*x4 + (z8^6 + z8^4 + z8^3)*x3*x5 + (z8^7 + z8^6 + 1)*x3*x6 + (z8^6 + z8^5 + z8^4 + z8^3 + 1)*x3*x7 + (z8^7 + z8^4 + z8 + 1)*x3*x8 + (z8^5 + z8^4 + z8)*x3*x9 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2 + 1)*x4^2 + (z8^7 + z8^5 + z8^4 + z8^3)*x3*x10 + (z8^7 + z8^6 + z8^5 + z8^3 + z8 + 1)*x4^2 + (z8^7 + z8^3 + z8 + 1)*x4*x5 + (z8^7 + z8^6 + z8^5 + z8^2 + z8)*x4*x6 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2 + z8 + 1)*x4*x7 + (z8^6 + z8^4 + z8^2 + z8)*x4*x8 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2)*x4*x9 + (z8^7 + z8^5 + z8^4 + 1)*x4*x10 + (z8^6 + z8^4 + z8^3 + z8^2 + 1)*x5^2 + (z8^7 + z8^5 + z8^4 + z8 + 1)*x5*x6 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x5*x7 + (z8^3)*x5*x8 + (z8 + 1)*x5*x9 + (z8^7 + z8^4 + z8^3 + z8 + 1)*x5*x10 + (z8^6 + z8^3 + z8^2 + 1)*x6^2 + (z8^7 + z8^5 + z8^3 + z8)*x6*x7 + (z8^7 + z8^5 + z8^3)*x6*x8 + (z8^6 + z8^3 + z8^2 + z8 + 1)*x6*x9 + (z8^7 + z8^4 + z8 + 1)*x6*x10 + (z8^6 + z8^5 + z8^2 + z8)*x7^2 + (z8^7 + z8^6 + z8^4 + z8^3 + z8 + 1)*x7*x8 + (z8^4 + z8^2 + 1)*x7*x9 + (z8^6 + z8^5 + z8^3 + 1)*x7*x10 + (z8^6 + z8^5 + z8^3 + z8 + 1)*x8^2 + (z8^7 + z8^4 + z8^2)*x8*x9 + (z8^5 + z8^4 + z8^3 + z8 + 1)*x8*x10 + (z8^6 + z8^3 + z8^2 + z8 + 1)*x9^2 + (z8^7 + z8^4 + 1)*x10^2 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2 + 1)*x9*x10 + (z8^2 + z8)*x10^2, | |
| (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8 + 1)*x0^2 + (z8^7 + z8^6 + z8^5 + 1)*x0*x1 + (z8^6 + z8^5 + z8^3 + z8^2)*x0*x2 + (z8^7 + z8^6 + z8^5 + z8)*x0*x3 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x0*x4 + (z8^7 + z8^3 + z8 + 1)*x0*x5 + (z8^7 + z8^5 + z8^4 + z8^2 + 1)*x0*x6 + (z8^6 + z8^5 + z8^4 + z8^3)*x0*x7 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2 + z8)*x0*x8 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + 1)*x0*x9 + (z8^7 + z8^4 + z8^2 + z8)*x1^2 + (z8^6 + z8^5 + z8^4 + z8^3 + z8^2)*x0*x10 + (z8^5 + 1)*x1^2 + (z8^6)*x1*x2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x1*x3 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x1*x4 + (z8^5 + z8^2)*x1*x5 + (z8^7 + z8^6 + z8^5 + z8)*x1*x6 + (z8^6 + z8^4 + z8^2)*x1*x7 + (z8^4 + z8^3 + 1)*x1*x8 + (z8^7 + z8^5 + z8^4 + z8^3 + z8)*x1*x9 + (z8^5 + z8^4 + z8^3 + z8)*x1*x10 + (z8^5 + z8^4 + z8^3)*x2^2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x2*x3 + (z8^6 + z8^5 + z8^3 + z8^2)*x2*x4 + (z8^6 + z8^4 + z8^3 + z8^2 + 1)*x2*x5 + (z8^6 + z8^2 + 1)*x2*x6 + (z8^5 + z8^4 + z8^3 + z8)*x2*x7 + (z8^4 + z8^3 + z8^2 + z8)*x2*x8 + (z8^7 + z8^5 + z8^3)*x2*x9 + (z8^7 + z8^6 + z8^4 + z8)*x2*x10 + (z8^7 + z8^5 + z8^3 + z8^2 + z8 + 1)*x3^2 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x3*x4 + (z8^7 + z8^6 + z8^5 + z8^2 + z8 + 1)*x3*x5 + (z8^6 + z8^3 + z8 + 1)*x3*x6 + (z8^2 + z8)*x3*x7 + (z8^7 + z8^6 + z8^4 + z8^2 + 1)*x3*x8 + (z8^7 + z8^4 + z8^3 + z8)*x3*x9 + (z8^7 + z8^5 + z8^4)*x4^2 + (z8^7 + z8^4 + z8^3 + 1)*x3*x10 + (z8^5 + z8)*x4^2 + (z8^7 + z8^4 + z8^3 + 1)*x4*x5 + (z8^6 + z8^5 + z8^4 + z8^3)*x4*x6 + (z8^7 + z8^4 + z8^3 + z8^2 + 1)*x4*x7 + (z8^7 + z8^6 + z8^5 + z8^2 + z8)*x4*x8 + (z8^7 + z8^6 + z8^5)*x4*x9 + (z8^5 + z8^3 + z8^2 + z8 + 1)*x4*x10 + (z8^6 + z8^4 + z8^3 + z8^2)*x5^2 + (z8^7 + z8^5 + z8^2 + z8)*x5*x6 + (z8^6 + z8^4 + z8^3 + z8^2 + z8)*x5*x7 + (z8^7 + z8^5 + z8^4 + z8^2)*x5*x8 + (z8^3 + z8^2 + z8 + 1)*x5*x9 + (z8^6 + z8^5 + z8^4 + z8^2 + z8 + 1)*x5*x10 + (z8^5 + z8^3 + z8^2)*x6^2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8 + 1)*x6*x7 + (z8)*x6*x8 + (z8^6 + z8^4 + z8^3 + z8^2 + z8)*x6*x9 + (z8^5 + z8^4 + z8^3 + z8 + 1)*x6*x10 + (z8^7 + z8^4 + 1)*x7^2 + (z8^7 + z8^5 + z8^4 + z8)*x7*x8 + (z8^7 + z8^6 + z8^5 + z8^4 + z8)*x7*x9 + (z8^3 + z8 + 1)*x7*x10 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2)*x8^2 + (z8^7 + z8^6 + z8^2 + z8 + 1)*x8*x9 + (z8^6 + z8^5 + z8^4 + z8^3 + z8 + 1)*x8*x10 + (z8^5 + z8^2 + 1)*x9^2 + (z8^7 + z8^5 + z8^2)*x10^2 + (z8^7 + z8^5 + z8^4 + z8 + 1)*x9*x10 + (z8^6 + z8^4 + z8^3 + z8)*x10^2, | |
| (z8^7 + z8^6 + z8^5 + z8^4 + 1)*x0^2 + (z8^7 + z8^5 + z8^3 + z8)*x0*x1 + (z8^6 + z8^2 + 1)*x0*x2 + (z8^7 + z8^4 + z8^2 + 1)*x0*x3 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8 + 1)*x0*x4 + (z8^6 + z8^5 + z8^4 + z8^2)*x0*x5 + (z8^7 + z8^6 + z8^5 + z8^3 + z8 + 1)*x0*x6 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2)*x0*x7 + (z8^7 + z8^6 + z8^4 + z8^2)*x0*x8 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2)*x0*x9 + (z8^7 + z8^5 + 1)*x1^2 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2 + 1)*x0*x10 + (z8^6 + z8^4 + z8^3 + z8^2)*x1^2 + (z8^6 + z8^5 + z8^4 + z8^3 + 1)*x1*x2 + (z8^5 + 1)*x1*x3 + (z8^2)*x1*x4 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2 + z8)*x1*x5 + (z8^7)*x1*x6 + (z8^6 + z8^5 + z8^4 + z8^3 + z8 + 1)*x1*x7 + (z8^7 + z8^5 + 1)*x1*x8 + (z8^6 + z8^2 + z8 + 1)*x1*x9 + (z8^7 + z8^5)*x1*x10 + (z8^2 + 1)*x2^2 + (z8^5 + z8^4 + z8^2)*x2*x3 + (z8^7 + z8^5 + z8^4 + z8^3)*x2*x4 + (z8^6 + z8^3 + z8 + 1)*x2*x5 + (z8^6 + z8^5 + z8)*x2*x6 + (z8^4)*x2*x7 + (z8^7 + z8^6 + z8^5)*x2*x8 + (z8^7 + z8^3 + z8 + 1)*x2*x9 + (z8^6 + z8^5 + z8^4 + z8^2 + 1)*x2*x10 + (z8^5 + z8^3 + z8^2)*x3^2 + (z8^6)*x3*x4 + (z8^4 + z8^3 + 1)*x3*x5 + (z8^7 + z8^5 + z8^4 + z8 + 1)*x3*x6 + (z8^7 + z8^6 + z8^3 + z8)*x3*x7 + (z8^4 + z8^3 + z8)*x3*x8 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8 + 1)*x3*x9 + (z8^4 + z8^3 + z8 + 1)*x4^2 + (z8^6 + z8^5 + z8^2)*x3*x10 + (z8^7 + z8^6 + z8^4 + z8^3 + 1)*x4^2 + (z8^6 + z8^3 + z8^2 + 1)*x4*x5 + (z8^6 + z8)*x4*x6 + (z8^7 + z8^5 + z8^3 + z8^2 + 1)*x4*x7 + (z8^6 + z8^2)*x4*x8 + (z8^6 + z8^5 + z8^4 + z8 + 1)*x4*x9 + (z8^7 + z8^5 + z8^4 + z8^3 + z8)*x4*x10 + (z8^7 + z8^4)*x5^2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8)*x5*x6 + (z8^6 + z8^3 + z8^2 + z8)*x5*x7 + (z8^7 + z8^5 + z8^4)*x5*x8 + (z8^5 + z8^3 + 1)*x5*x9 + (z8^7 + z8^6)*x5*x10 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + 1)*x6^2 + (z8^7 + z8^5 + z8^2)*x6*x7 + (z8^7 + z8^4 + z8^3 + z8 + 1)*x6*x8 + (z8^4 + 1)*x6*x9 + (z8^7 + z8^2 + z8 + 1)*x6*x10 + (z8^7 + z8^5 + z8^4 + z8^2 + z8 + 1)*x7^2 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2)*x7*x8 + (z8^7 + z8^6 + z8^5 + z8^3 + z8 + 1)*x7*x9 + (z8^5 + z8^4 + z8^3 + z8^2 + z8)*x7*x10 + (z8^6 + z8^2 + z8)*x8^2 + (z8^6 + z8^5 + z8^3 + z8 + 1)*x8*x9 + (z8^7 + z8^5 + z8^3 + z8 + 1)*x8*x10 + (z8^7 + z8^6 + z8^2 + z8 + 1)*x9^2 + (z8^5 + z8^3 + z8^2 + z8)*x10^2 + (z8)*x9*x10 + (z8^5 + z8^3 + z8^2)*x10^2, | |
| (z8^6 + z8^5 + z8^4 + z8^2 + 1)*x0^2 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2 + z8)*x0*x1 + (z8^7 + z8^6 + z8^5 + z8^4 + 1)*x0*x2 + (z8^7 + z8 + 1)*x0*x3 + (z8^6 + z8^3 + 1)*x0*x4 + (z8^7 + z8^6 + z8^5 + z8^4)*x0*x5 + (z8^4 + z8^2 + 1)*x0*x6 + (z8^5 + z8^4)*x0*x7 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x0*x8 + (z8^4 + z8^3)*x0*x9 + (z8^7 + z8)*x1^2 + (z8^5 + z8^3 + z8)*x0*x10 + (z8^6 + z8^5 + z8 + 1)*x1^2 + (z8^6 + z8^3 + z8^2 + z8 + 1)*x1*x2 + (z8^6 + z8^4 + z8^3 + 1)*x1*x3 + (z8^7 + z8^2)*x1*x4 + (z8^6 + z8^5 + z8^4 + z8^2 + z8 + 1)*x1*x5 + (z8^5 + z8^4)*x1*x6 + (z8^6 + z8^5 + z8^3)*x1*x7 + (z8^6 + z8^4 + z8)*x1*x8 + (z8^6 + z8^3 + 1)*x1*x9 + (z8^6 + z8^5 + z8^3 + z8^2 + z8)*x1*x10 + (z8^7 + z8^6 + z8^3 + z8^2)*x2^2 + (z8^2 + 1)*x2*x3 + (z8^5 + z8^3 + z8 + 1)*x2*x4 + (z8^5 + z8^4 + z8 + 1)*x2*x5 + (z8^4 + z8^3 + z8^2 + z8 + 1)*x2*x6 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2 + z8 + 1)*x2*x7 + (z8^5 + z8^3 + z8^2 + z8)*x2*x8 + (z8^7 + 1)*x2*x9 + (z8^5 + z8^4 + z8^2)*x2*x10 + (z8^6 + z8^3 + z8^2)*x3^2 + (z8^7 + z8^6 + z8)*x3*x4 + (z8^6 + z8^3 + z8)*x3*x5 + (z8^7 + z8^6 + z8^4 + z8^3)*x3*x6 + (z8^7 + z8^4 + z8^3 + z8 + 1)*x3*x7 + (z8^7 + z8^4 + z8^3 + z8^2 + z8 + 1)*x3*x8 + (z8^5 + z8^3 + z8^2 + z8)*x3*x9 + (z8^7 + z8^2 + z8 + 1)*x4^2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8)*x3*x10 + (z8^2 + 1)*x4^2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8 + 1)*x4*x5 + (z8^7 + z8^6 + z8^2)*x4*x6 + (z8^6 + z8^5 + z8^4)*x4*x7 + (z8^7 + z8^5 + z8^4 + z8^2 + z8)*x4*x8 + (z8^6 + z8^5 + z8^4 + z8^3 + z8^2)*x4*x9 + (z8^5 + z8^4 + z8^3 + z8^2 + 1)*x4*x10 + (z8^6 + z8^4 + 1)*x5^2 + (z8^7 + z8^6 + z8^4 + z8^2 + z8 + 1)*x5*x6 + (z8^4 + z8)*x5*x7 + (z8^7 + z8^5 + z8^2 + 1)*x5*x8 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2 + 1)*x5*x9 + (z8^7 + z8^5 + z8^4)*x5*x10 + (z8^6 + z8^2 + z8 + 1)*x6^2 + (z8^6 + z8^3 + z8^2 + 1)*x6*x7 + (z8^7 + z8 + 1)*x6*x8 + (z8^4 + z8^2 + z8 + 1)*x6*x9 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2 + z8 + 1)*x6*x10 + (z8^7 + z8^4 + z8 + 1)*x7^2 + (z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8)*x7*x8 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8)*x7*x9 + (z8^7 + z8^4 + z8^3 + 1)*x7*x10 + (z8^7 + z8^6 + z8^4 + z8 + 1)*x8^2 + (z8^3 + z8 + 1)*x8*x9 + (z8^7 + z8^6 + z8^4 + z8 + 1)*x8*x10 + (z8^7 + z8^5 + 1)*x9^2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2)*x10^2 + (z8^6 + z8^3 + z8 + 1)*x9*x10 + (z8^5 + z8^2)*x10^2, | |
| (z8^5 + z8^3 + z8^2 + 1)*x0^2 + (z8^6 + z8^5 + z8)*x0*x1 + (z8^5 + 1)*x0*x2 + (z8^6 + z8^5 + z8^4 + z8^2 + z8)*x0*x3 + (z8^6 + z8^3)*x0*x4 + (z8^5 + z8^4 + z8^3 + z8^2)*x0*x6 + (z8^6 + z8^4 + z8^3 + z8^2 + z8 + 1)*x0*x7 + (z8^7 + z8^6 + z8^5 + z8^2 + 1)*x0*x8 + (z8^7 + z8^5 + z8^3 + z8 + 1)*x0*x9 + (z8^5 + z8^2 + 1)*x1^2 + (z8^7 + z8^5 + z8^3 + z8)*x0*x10 + (z8^6 + z8^5 + z8^3)*x1^2 + (z8^6 + z8^2)*x1*x2 + (z8^7 + z8^6 + z8^4 + z8)*x1*x3 + (z8^7 + z8^3 + z8^2 + 1)*x1*x4 + (z8^7 + z8^6 + z8^3 + z8 + 1)*x1*x5 + (z8^7 + z8^4 + z8^2 + z8 + 1)*x1*x6 + (z8^3 + z8^2)*x1*x7 + (z8^6)*x1*x8 + (z8^7 + z8^3 + z8^2)*x1*x9 + (z8^5 + z8^3)*x1*x10 + (z8^3 + z8^2 + 1)*x2^2 + (z8^7 + z8^5 + z8^3 + 1)*x2*x3 + (z8^6 + z8^5 + z8^3)*x2*x4 + (z8^2 + 1)*x2*x5 + (z8^7 + z8^6 + z8)*x2*x6 + (z8^5 + z8^3 + z8^2)*x2*x8 + (z8^6 + z8^3 + z8)*x2*x9 + (z8^4 + z8^3 + z8^2 + 1)*x2*x10 + (z8^7 + z8^5 + z8^3 + z8)*x3^2 + (z8^7 + z8^3)*x3*x4 + (z8^7 + z8^5 + z8^4 + 1)*x3*x5 + (z8^6 + z8^5 + z8^2 + z8)*x3*x6 + (z8^7 + z8 + 1)*x3*x7 + (z8^7 + z8^5 + z8^2)*x3*x8 + (z8^6 + z8^5 + z8^3 + z8^2)*x3*x9 + (z8^6 + z8^5 + z8^4 + z8)*x4^2 + (z8^7 + z8^6 + z8^5 + z8^2 + z8 + 1)*x3*x10 + (z8^6 + z8^4 + 1)*x4^2 + (z8^7 + z8^3 + z8^2)*x4*x5 + (z8^7 + z8^3 + z8^2 + z8)*x4*x6 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2 + 1)*x4*x7 + (z8^7 + z8^6 + z8^4 + z8^3 + 1)*x4*x8 + (z8^5 + z8^4 + z8^3 + z8^2 + 1)*x4*x9 + (z8^6 + z8^3 + z8^2 + z8 + 1)*x4*x10 + (z8^5 + z8^4 + z8^2 + 1)*x5^2 + (z8^5 + z8 + 1)*x5*x6 + (z8^6 + z8^2 + z8)*x5*x7 + (z8^7 + z8^5 + z8^4 + z8^2 + 1)*x5*x8 + (z8^7 + z8^4 + z8)*x5*x9 + (z8^7 + z8^6 + z8^3 + z8^2 + z8)*x5*x10 + (z8^5 + 1)*x6^2 + (z8^6 + z8^4 + z8^3 + z8^2 + z8)*x6*x7 + (z8^6 + z8^5 + z8^4 + z8^2 + z8)*x6*x8 + (z8^7 + z8^6 + z8^5 + z8^3)*x6*x9 + (z8^6 + z8^2 + z8)*x6*x10 + (z8^7 + z8^6 + z8^5)*x7^2 + (z8^5 + z8^3)*x7*x8 + (z8^6 + z8^4 + z8^2 + z8 + 1)*x7*x9 + (z8^7 + z8^5 + z8)*x7*x10 + (z8^6 + z8^4 + z8^3 + z8^2 + z8)*x8^2 + (z8^5 + z8^2 + 1)*x8*x9 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2)*x8*x10 + (z8^7 + z8^6 + z8^3 + z8^2 + z8 + 1)*x9^2 + (z8^4 + z8^3 + 1)*x10^2 + (z8^5 + z8^4 + z8^3 + z8^2 + 1)*x9*x10 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x10^2, | |
| (z8^5 + z8^4 + z8^3 + z8)*x0^2 + (z8^6 + z8^4 + z8^3)*x0*x1 + (z8^4 + z8^3 + z8^2 + z8 + 1)*x0*x2 + (z8^7 + z8^5 + z8^2 + z8 + 1)*x0*x3 + (z8^4 + z8^2 + 1)*x0*x4 + (z8^7 + z8^5 + z8^3 + z8^2 + z8 + 1)*x0*x5 + (z8^7 + z8^4 + z8^3 + z8 + 1)*x0*x6 + (z8^5 + z8^2 + z8)*x0*x7 + (z8^6 + z8^5 + z8 + 1)*x0*x8 + (z8^7 + z8^6 + z8^4 + 1)*x0*x9 + (z8^7 + z8^6 + z8^4 + z8^2 + z8 + 1)*x1^2 + (z8^5 + z8^4 + z8)*x0*x10 + (z8^7 + z8^5 + z8^4 + z8^3)*x1^2 + (z8^4 + z8^3)*x1*x2 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x1*x3 + (z8^4 + z8)*x1*x4 + (z8^6 + 1)*x1*x5 + (z8^7 + z8^6 + z8^4 + z8 + 1)*x1*x6 + (z8^3 + z8^2)*x1*x7 + (z8^7 + z8^5 + z8^4 + z8^2 + 1)*x1*x8 + (z8^6 + z8^2 + z8)*x1*x9 + (z8^7 + z8^5 + z8^3)*x1*x10 + (z8^7 + z8^6 + z8^2 + z8 + 1)*x2^2 + (z8^7 + z8^6 + z8^4 + z8^3 + z8 + 1)*x2*x3 + (z8^3 + z8)*x2*x4 + (z8^7 + z8^4 + z8^3 + z8 + 1)*x2*x5 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2 + z8)*x2*x6 + (z8^6 + z8^4 + z8^3 + z8 + 1)*x2*x7 + (z8^7 + 1)*x2*x8 + (z8^7 + z8^6 + z8^3)*x2*x9 + (z8^5 + z8^4 + z8)*x2*x10 + (z8^7 + z8^6 + z8^4 + z8^2)*x3^2 + (z8^6 + z8^5 + z8^2 + z8)*x3*x4 + (z8^6 + z8^5 + z8^4 + z8^3 + 1)*x3*x5 + (z8^6 + z8^4 + z8^3 + z8^2 + z8)*x3*x6 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x3*x7 + (z8^6 + z8^4 + z8^3 + z8)*x3*x8 + (z8^7 + z8^5 + z8^4 + z8^3 + 1)*x3*x9 + (z8^7 + z8^6 + z8^4 + z8^2 + z8 + 1)*x4^2 + (z8^4 + z8^3 + z8^2)*x3*x10 + (z8^6 + z8^5 + z8)*x4^2 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x4*x5 + (z8^4 + z8^3 + z8)*x4*x6 + (z8^6 + z8^5 + z8^3 + z8)*x4*x7 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3)*x4*x8 + (z8^5 + z8^2)*x4*x9 + (1)*x4*x10 + (z8^7 + z8^6 + z8^5)*x5^2 + (z8^7 + z8^5 + z8^3 + z8^2 + z8)*x5*x6 + (z8^6 + z8^4 + z8^2 + z8 + 1)*x5*x7 + (z8^5 + 1)*x5*x8 + (z8^6 + z8^5 + z8^4 + z8^2 + 1)*x5*x9 + (z8^6 + z8^5 + z8^2)*x5*x10 + (z8^7)*x6^2 + (z8^7 + z8^6 + z8^4 + 1)*x6*x7 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2 + 1)*x6*x8 + (z8^7 + z8^5 + z8^4 + z8^3 + z8 + 1)*x6*x9 + (z8^6 + z8^5 + z8^3 + z8)*x6*x10 + (z8^5 + z8^2 + z8)*x7^2 + (z8^4 + z8^2 + 1)*x7*x8 + (z8^7 + z8^6)*x7*x9 + (z8^7 + z8^3 + z8)*x7*x10 + (z8^6 + z8^4 + z8^2)*x8^2 + (z8 + 1)*x8*x9 + (z8^7 + z8^6 + z8^5 + z8^3)*x8*x10 + (z8^3 + z8 + 1)*x9^2 + (z8^7 + z8^5 + z8^2 + z8)*x10^2 + (z8^7 + z8^5 + z8^2 + z8)*x9*x10 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2 + z8)*x10^2, | |
| (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8 + 1)*x0^2 + (z8^5)*x0*x1 + (z8^7 + z8^3 + z8^2 + z8 + 1)*x0*x2 + (z8^5 + z8 + 1)*x0*x3 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8)*x0*x4 + (z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x0*x5 + (z8^7 + z8^6 + 1)*x0*x6 + (z8^7 + z8^3 + 1)*x0*x7 + (z8^7 + z8^6 + z8^5 + z8^3 + 1)*x0*x8 + (z8^7 + z8^5 + z8^3 + z8^2)*x0*x9 + (z8^6 + z8^5 + z8^4 + z8^3 + z8 + 1)*x1^2 + (z8^7 + z8^5 + z8^3 + z8^2)*x0*x10 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2)*x1^2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2 + 1)*x1*x2 + (z8^5 + z8^4 + z8^3)*x1*x3 + (z8^4 + z8^2 + z8 + 1)*x1*x4 + (z8^7 + z8^6 + z8^3 + z8^2)*x1*x5 + (z8^7 + z8^6 + z8 + 1)*x1*x6 + (z8^4 + z8^3 + 1)*x1*x7 + (z8^7 + z8^5 + z8^2)*x1*x8 + (z8^4 + z8^2 + 1)*x1*x9 + (z8^2 + z8 + 1)*x1*x10 + (z8^5 + z8^3)*x2^2 + (z8^4 + z8^2)*x2*x3 + (z8^6 + z8^3 + z8^2 + 1)*x2*x4 + (z8^6 + z8^5 + z8^4 + z8^2 + 1)*x2*x5 + (z8^5 + z8^4 + 1)*x2*x6 + (z8^7 + z8^6 + z8^3 + z8 + 1)*x2*x7 + (z8^7 + z8^5 + z8^4 + 1)*x2*x8 + (z8^7 + z8^3 + z8)*x2*x9 + (z8^7 + z8^5 + z8^4 + z8^2)*x2*x10 + (z8^7 + z8^4 + z8^3 + z8^2 + z8)*x3^2 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2 + 1)*x3*x4 + (z8^7 + z8^4 + z8^3 + z8^2 + z8 + 1)*x3*x5 + (z8^6 + z8^4 + z8 + 1)*x3*x6 + (z8^6 + z8^5 + z8^4 + z8 + 1)*x3*x7 + (z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x3*x8 + (z8^6 + z8^5 + z8^4 + z8^3 + z8^2)*x3*x9 + (z8^6 + z8^5 + z8^4 + z8^2 + z8)*x4^2 + (z8^4 + z8^2)*x3*x10 + (z8^6 + z8^4 + z8^2)*x4^2 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x4*x5 + (z8^6 + z8^5 + 1)*x4*x6 + (z8^6 + z8^4 + z8^3 + z8^2 + z8 + 1)*x4*x7 + (z8^7 + z8^5 + z8^3 + z8)*x4*x8 + (z8^7 + z8^6 + z8^5 + z8^2)*x4*x9 + (z8^6 + z8^4 + z8^3 + z8)*x4*x10 + (z8^7 + z8^6 + z8^4 + z8^3 + z8 + 1)*x5^2 + (z8^3 + z8 + 1)*x5*x6 + (z8^5 + z8^4 + z8^3 + z8^2)*x5*x7 + (z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x5*x8 + (z8^7 + z8^4 + z8^2 + z8)*x5*x9 + (z8^5 + z8^4 + z8^3)*x5*x10 + (z8^7 + z8^4 + z8)*x6^2 + (z8^7 + z8^4 + z8^3 + z8^2 + 1)*x6*x7 + (z8^7 + z8^5 + z8^4 + z8)*x6*x8 + (z8^5 + z8^3 + z8 + 1)*x6*x9 + (z8^7 + z8^5 + z8^2 + z8)*x6*x10 + (z8^5 + z8^3 + z8^2 + z8 + 1)*x7^2 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x7*x8 + (z8^7 + z8^6 + z8^4 + 1)*x7*x9 + (z8^6 + z8^5 + z8^3 + z8 + 1)*x7*x10 + (z8^6 + z8^5 + z8^3)*x8^2 + (z8^5 + z8^4 + z8)*x8*x9 + (z8^4 + 1)*x8*x10 + (z8^6 + z8^2)*x9^2 + (z8^7 + z8^5 + z8^3 + z8^2)*x10^2 + (z8^4 + z8^3)*x9*x10 + (z8^5 + z8^4 + z8^2)*x10^2, | |
| (z8^7 + z8^4 + z8^2 + z8 + 1)*x0^2 + (z8^7 + z8^6 + z8^5 + z8^3 + 1)*x0*x1 + (z8^4 + z8^2 + z8 + 1)*x0*x2 + (z8^6 + z8^4 + z8^2 + z8 + 1)*x0*x3 + (z8^7 + z8^6 + z8^4 + z8^3 + z8 + 1)*x0*x4 + (z8^7 + z8^6 + z8^5 + z8^3 + z8)*x0*x5 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3)*x0*x6 + (z8^5 + z8)*x0*x7 + (z8^7 + z8^3 + z8)*x0*x8 + (z8^5 + z8^3 + z8^2 + 1)*x0*x9 + (z8^7 + z8^5 + z8^4)*x1^2 + (z8^7 + z8^6 + z8^2)*x0*x10 + (z8^7 + z8^6 + z8^2 + 1)*x1^2 + (z8^6 + z8^5 + z8^3 + z8)*x1*x2 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2 + z8)*x1*x3 + (z8^6 + z8^4 + 1)*x1*x4 + (z8^5 + z8^4 + z8^3 + z8)*x1*x5 + (z8^3 + z8)*x1*x6 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2)*x1*x7 + (z8^7 + z8^3 + z8^2 + z8 + 1)*x1*x8 + (z8^7 + z8^6 + z8^4 + z8^2 + z8)*x1*x9 + (z8^7 + z8^6 + z8^2 + 1)*x1*x10 + (z8^6 + z8^5 + z8^4 + z8 + 1)*x2^2 + (z8^6 + z8^5 + z8^2 + 1)*x2*x3 + (z8^5)*x2*x4 + (z8^7 + z8^2)*x2*x5 + (z8^6 + z8^3 + z8^2 + z8 + 1)*x2*x6 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + 1)*x2*x7 + (z8^5 + z8^4 + z8^3 + z8^2 + 1)*x2*x8 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8 + 1)*x2*x9 + (z8^7 + z8^5 + z8^4 + z8^3)*x2*x10 + (z8^7 + z8^4 + z8^2 + z8)*x3^2 + (z8^6 + z8^3 + z8^2 + z8)*x3*x4 + (z8^7 + z8^5 + z8)*x3*x5 + (z8^7 + z8^5 + z8^4 + z8^3 + z8)*x3*x6 + (z8^6 + z8^5 + z8^4 + z8^2)*x3*x7 + (z8^7 + z8^6 + z8^5 + z8^3 + z8)*x3*x8 + (z8^6 + z8^4 + z8^3 + z8^2 + z8 + 1)*x3*x9 + (z8^6 + z8^5 + z8^4 + z8^3 + 1)*x4^2 + (z8^7 + z8^5 + z8^4 + z8 + 1)*x3*x10 + (z8^7 + z8^4 + z8^2 + 1)*x4^2 + (z8^6 + z8^2 + z8)*x4*x5 + (z8^6 + z8^5 + z8^4)*x4*x6 + (z8^7 + z8^4 + z8^3 + z8^2 + 1)*x4*x7 + (z8^6 + z8^4 + z8^3 + z8 + 1)*x4*x8 + (z8^5 + z8^4)*x4*x9 + (z8^7 + z8^5 + z8^3 + z8^2 + z8 + 1)*x4*x10 + (z8^6 + z8^4 + z8^2)*x5^2 + (z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x5*x6 + (z8^7 + z8^6 + z8^3 + z8^2 + z8)*x5*x7 + (z8^7 + z8^4 + z8^3 + z8^2)*x5*x8 + (z8^7 + z8^4 + 1)*x5*x9 + (z8^7 + z8^6 + z8^5 + z8^2 + z8 + 1)*x5*x10 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + z8)*x6^2 + (z8^5 + z8^4 + z8)*x6*x7 + (z8^6 + z8^5 + z8)*x6*x8 + (z8^7 + z8^6 + z8^5 + z8^3 + z8^2 + 1)*x6*x9 + (z8^7 + z8^5 + z8^2 + z8)*x6*x10 + (z8^4 + z8^3 + z8 + 1)*x7^2 + (z8^7 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x7*x8 + (z8^5 + z8^4 + z8^2 + z8 + 1)*x7*x9 + (z8^5 + z8)*x7*x10 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8)*x8^2 + (z8^5 + z8^4 + z8 + 1)*x8*x9 + (z8^7 + z8^5 + z8^4 + z8^3 + z8 + 1)*x8*x10 + (z8^6 + z8^4 + z8^3 + z8^2 + z8 + 1)*x9^2 + (z8^5 + z8^4 + z8^3 + z8 + 1)*x10^2 + (z8^7 + z8)*x9*x10 + (z8^7 + z8^6 + z8^4 + z8^3)*x10^2, | |
| (z8^7 + z8^2 + 1)*x0^2 + (z8^7 + z8^5 + z8^3 + z8^2 + z8 + 1)*x0*x1 + (z8^7 + z8^4)*x0*x2 + (z8^5 + z8^4 + z8^3 + z8)*x0*x3 + (z8^7 + z8^3 + z8^2 + z8 + 1)*x0*x4 + (z8^7 + z8^5 + z8^3 + z8)*x0*x5 + (z8^4 + z8^3 + z8^2 + z8)*x0*x6 + (z8^7 + z8^6 + z8^2 + 1)*x0*x7 + (z8^6 + z8^5 + z8 + 1)*x0*x8 + (z8^7 + 1)*x0*x9 + (z8^6 + z8^5 + z8^4 + z8^2)*x1^2 + (z8^7 + z8^6)*x0*x10 + (z8^7 + z8^6 + z8^4 + z8^3 + z8^2 + 1)*x1^2 + (z8^7 + z8^6 + z8^3 + 1)*x1*x2 + (z8^5 + z8^3)*x1*x4 + (z8^7 + z8^6 + z8^3 + z8^2 + z8 + 1)*x1*x5 + (z8^6 + z8^4 + z8^3 + z8^2)*x1*x6 + (z8^5 + z8^3 + z8)*x1*x7 + (z8^7 + z8^5 + z8^2 + 1)*x1*x8 + (z8^7 + z8^5)*x1*x9 + (z8^7 + z8^5 + z8^3 + z8^2 + 1)*x1*x10 + (z8^7 + z8^5 + z8^4 + z8)*x2^2 + (z8^5)*x2*x3 + (z8^5 + z8^4 + z8^3 + z8^2)*x2*x4 + (z8^4 + z8^2 + 1)*x2*x5 + (z8^7 + z8^6 + z8^3 + z8)*x2*x6 + (z8^7 + z8^6)*x2*x7 + (z8^7 + z8^4 + 1)*x2*x8 + (z8^7 + z8^6 + z8^4 + z8 + 1)*x2*x9 + (z8^7 + z8^6 + z8^2 + 1)*x2*x10 + (z8^7 + z8^6 + z8^5 + z8^2 + 1)*x3^2 + (z8^5 + 1)*x3*x4 + (z8^3 + z8 + 1)*x3*x5 + (z8)*x3*x6 + (z8^6 + z8^5 + z8^3)*x3*x7 + (z8^7 + z8^5)*x3*x8 + (z8^7 + z8^6 + 1)*x3*x9 + (z8^4 + 1)*x4^2 + (z8^6 + 1)*x3*x10 + (z8^6 + z8 + 1)*x4^2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8)*x4*x5 + (z8^5 + z8^4 + z8^3 + z8^2 + 1)*x4*x6 + (z8^7 + z8^6 + z8^2)*x4*x7 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^3 + z8^2 + z8 + 1)*x4*x8 + (z8^4 + z8^3 + z8^2)*x4*x9 + (z8^6 + z8^5 + z8 + 1)*x4*x10 + (z8^6 + z8^5 + z8^2)*x5^2 + (z8^4 + z8^3 + z8^2 + 1)*x5*x6 + (z8^5 + z8^4 + 1)*x5*x7 + (z8^6 + z8^4 + z8^3 + z8^2 + z8)*x5*x8 + (z8^6 + z8^4 + z8)*x5*x9 + (z8^6 + z8^5 + z8^2 + z8 + 1)*x5*x10 + (z8^6 + z8^4 + z8^2 + z8 + 1)*x6^2 + (z8^7 + z8^6 + z8^2)*x6*x7 + (z8^4 + z8^3 + z8^2 + 1)*x6*x8 + (z8^7 + z8^5 + z8^3)*x6*x9 + (z8^7 + z8^3 + z8^2)*x6*x10 + (z8^7 + z8^6 + z8^5 + z8^3 + z8 + 1)*x7^2 + (z8^7 + z8^6 + z8^5 + z8^4 + z8^2 + z8 + 1)*x7*x8 + (z8^3 + z8^2)*x7*x9 + (z8^6 + z8^5 + 1)*x7*x10 + (z8^7 + z8^3 + z8^2 + 1)*x8^2 + (z8^5 + z8^4 + z8^3 + z8)*x8*x9 + (z8^6 + z8^4 + z8^2)*x8*x10 + (z8^7 + z8^5 + z8^3 + z8^2 + 1)*x9^2 + (z8^7 + z8^5 + z8^4 + z8 + 1)*x10^2 + (z8^7 + z8^3)*x9*x10 + (z8^7 + z8^5 + 1)*x10^2] | |
| 1d22c7c2491f889d417728 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment