const bigInt = require("big-integer"); const __P__ = new bigInt("21888242871839275222246405745257275088696311157297823662689037894645226208583"); const __MASK__ = new bigInt(2).pow(253).minus(1); const circuit = {}; module.exports = circuit; circuit.signals={ "one": { "fullName": "one", "value": "1", "equivalence": "", "direction": "", "id": 0 }, "main.inp[0][0]": { "fullName": "main.inp[0][0]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[0][0]" ], "id": 1 }, "main.inp[0][1]": { "fullName": "main.inp[0][1]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[0][1]" ], "id": 2 }, "main.inp[0][2]": { "fullName": "main.inp[0][2]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[0][2]" ], "id": 3 }, "main.inp[0][3]": { "fullName": "main.inp[0][3]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[0][3]" ], "id": 4 }, "main.inp[0][4]": { "fullName": "main.inp[0][4]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[0][4]" ], "id": 5 }, "main.inp[0][5]": { "fullName": "main.inp[0][5]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[0][5]" ], "id": 6 }, "main.inp[0][6]": { "fullName": "main.inp[0][6]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[0][6]" ], "id": 7 }, "main.inp[0][7]": { "fullName": "main.inp[0][7]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[0][7]" ], "id": 8 }, "main.inp[1][0]": { "fullName": "main.inp[1][0]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[1][0]" ], "id": 9 }, "main.inp[1][1]": { "fullName": "main.inp[1][1]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[1][1]" ], "id": 10 }, "main.inp[1][2]": { "fullName": "main.inp[1][2]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[1][2]" ], "id": 11 }, "main.inp[1][3]": { "fullName": "main.inp[1][3]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[1][3]" ], "id": 12 }, "main.inp[1][4]": { "fullName": "main.inp[1][4]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[1][4]" ], "id": 13 }, "main.inp[1][5]": { "fullName": "main.inp[1][5]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[1][5]" ], "id": 14 }, "main.inp[1][6]": { "fullName": "main.inp[1][6]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[1][6]" ], "id": 15 }, "main.inp[1][7]": { "fullName": "main.inp[1][7]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[1][7]" ], "id": 16 }, "main.inp[2][0]": { "fullName": "main.inp[2][0]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[2][0]" ], "id": 17 }, "main.inp[2][1]": { "fullName": "main.inp[2][1]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[2][1]" ], "id": 18 }, "main.inp[2][2]": { "fullName": "main.inp[2][2]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[2][2]" ], "id": 19 }, "main.inp[2][3]": { "fullName": "main.inp[2][3]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[2][3]" ], "id": 20 }, "main.inp[2][4]": { "fullName": "main.inp[2][4]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[2][4]" ], "id": 21 }, "main.inp[2][5]": { "fullName": "main.inp[2][5]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[2][5]" ], "id": 22 }, "main.inp[2][6]": { "fullName": "main.inp[2][6]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[2][6]" ], "id": 23 }, "main.inp[2][7]": { "fullName": "main.inp[2][7]", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.inp[2][7]" ], "id": 24 }, "main.sel": { "fullName": "main.sel", "direction": "IN", "component": "main", "equivalence": "", "alias": [ "main.sel" ], "id": 25 }, "main.out[0]": { "fullName": "main.out[0]", "direction": "OUT", "component": "main", "equivalence": "main.ep[0].out", "alias": [ "main.out[0]", null ], "id": 26 }, "main.out[1]": { "fullName": "main.out[1]", "direction": "OUT", "component": "main", "equivalence": "main.ep[1].out", "alias": [ "main.out[1]", null ], "id": 27 }, "main.out[2]": { "fullName": "main.out[2]", "direction": "OUT", "component": "main", "equivalence": "main.ep[2].out", "alias": [ "main.out[2]", null ], "id": 28 }, "main.out[3]": { "fullName": "main.out[3]", "direction": "OUT", "component": "main", "equivalence": "main.ep[3].out", "alias": [ "main.out[3]", null ], "id": 29 }, "main.out[4]": { "fullName": "main.out[4]", "direction": "OUT", "component": "main", "equivalence": "main.ep[4].out", "alias": [ "main.out[4]", null ], "id": 30 }, "main.out[5]": { "fullName": "main.out[5]", "direction": "OUT", "component": "main", "equivalence": "main.ep[5].out", "alias": [ "main.out[5]", null ], "id": 31 }, "main.out[6]": { "fullName": "main.out[6]", "direction": "OUT", "component": "main", "equivalence": "main.ep[6].out", "alias": [ "main.out[6]", null ], "id": 32 }, "main.out[7]": { "fullName": "main.out[7]", "direction": "OUT", "component": "main", "equivalence": "main.ep[7].out", "alias": [ "main.out[7]", null ], "id": 33 }, "main.dec.inp": { "fullName": "main.dec.inp", "direction": "IN", "component": "main.dec", "equivalence": "main.sel", "alias": [ "main.dec.inp", null ], "id": 25 }, "main.dec.out[0]": { "fullName": "main.dec.out[0]", "direction": "OUT", "component": "main.dec", "equivalence": "", "alias": [ "main.dec.out[0]" ], "id": 34 }, "main.dec.out[1]": { "fullName": "main.dec.out[1]", "direction": "OUT", "component": "main.dec", "equivalence": "", "alias": [ "main.dec.out[1]" ], "id": 35 }, "main.dec.out[2]": { "fullName": "main.dec.out[2]", "direction": "OUT", "component": "main.dec", "equivalence": "", "alias": [ "main.dec.out[2]" ], "id": 36 }, "main.dec.success": { "fullName": "main.dec.success", "direction": "OUT", "component": "main.dec", "equivalence": "", "alias": [ "main.dec.success" ], "id": 37 }, "main.ep[0].in1[0]": { "fullName": "main.ep[0].in1[0]", "direction": "IN", "component": "main.ep[0]", "equivalence": "main.inp[0][0]", "alias": [ "main.ep[0].in1[0]", null ], "id": 1 }, "main.ep[0].in1[1]": { "fullName": "main.ep[0].in1[1]", "direction": "IN", "component": "main.ep[0]", "equivalence": "main.inp[1][0]", "alias": [ "main.ep[0].in1[1]", null ], "id": 9 }, "main.ep[0].in1[2]": { "fullName": "main.ep[0].in1[2]", "direction": "IN", "component": "main.ep[0]", "equivalence": "main.inp[2][0]", "alias": [ "main.ep[0].in1[2]", null ], "id": 17 }, "main.ep[0].in2[0]": { "fullName": "main.ep[0].in2[0]", "direction": "IN", "component": "main.ep[0]", "equivalence": "main.dec.out[0]", "alias": [ "main.ep[0].in2[0]", null ], "id": 34 }, "main.ep[0].in2[1]": { "fullName": "main.ep[0].in2[1]", "direction": "IN", "component": "main.ep[0]", "equivalence": "main.dec.out[1]", "alias": [ "main.ep[0].in2[1]", null ], "id": 35 }, "main.ep[0].in2[2]": { "fullName": "main.ep[0].in2[2]", "direction": "IN", "component": "main.ep[0]", "equivalence": "main.dec.out[2]", "alias": [ "main.ep[0].in2[2]", null ], "id": 36 }, "main.ep[0].out": { "fullName": "main.ep[0].out", "direction": "OUT", "component": "main.ep[0]", "equivalence": "", "alias": [ "main.ep[0].out" ], "id": 26 }, "main.ep[0].aux[0]": { "fullName": "main.ep[0].aux[0]", "direction": "", "component": "main.ep[0]", "equivalence": "", "alias": [ "main.ep[0].aux[0]" ], "id": 38 }, "main.ep[0].aux[1]": { "fullName": "main.ep[0].aux[1]", "direction": "", "component": "main.ep[0]", "equivalence": "", "alias": [ "main.ep[0].aux[1]" ], "id": 39 }, "main.ep[0].aux[2]": { "fullName": "main.ep[0].aux[2]", "direction": "", "component": "main.ep[0]", "equivalence": "", "alias": [ "main.ep[0].aux[2]" ], "id": 40 }, "main.ep[1].in1[0]": { "fullName": "main.ep[1].in1[0]", "direction": "IN", "component": "main.ep[1]", "equivalence": "main.inp[0][1]", "alias": [ "main.ep[1].in1[0]", null ], "id": 2 }, "main.ep[1].in1[1]": { "fullName": "main.ep[1].in1[1]", "direction": "IN", "component": "main.ep[1]", "equivalence": "main.inp[1][1]", "alias": [ "main.ep[1].in1[1]", null ], "id": 10 }, "main.ep[1].in1[2]": { "fullName": "main.ep[1].in1[2]", "direction": "IN", "component": "main.ep[1]", "equivalence": "main.inp[2][1]", "alias": [ "main.ep[1].in1[2]", null ], "id": 18 }, "main.ep[1].in2[0]": { "fullName": "main.ep[1].in2[0]", "direction": "IN", "component": "main.ep[1]", "equivalence": "main.dec.out[0]", "alias": [ "main.ep[1].in2[0]", null ], "id": 34 }, "main.ep[1].in2[1]": { "fullName": "main.ep[1].in2[1]", "direction": "IN", "component": "main.ep[1]", "equivalence": "main.dec.out[1]", "alias": [ "main.ep[1].in2[1]", null ], "id": 35 }, "main.ep[1].in2[2]": { "fullName": "main.ep[1].in2[2]", "direction": "IN", "component": "main.ep[1]", "equivalence": "main.dec.out[2]", "alias": [ "main.ep[1].in2[2]", null ], "id": 36 }, "main.ep[1].out": { "fullName": "main.ep[1].out", "direction": "OUT", "component": "main.ep[1]", "equivalence": "", "alias": [ "main.ep[1].out" ], "id": 27 }, "main.ep[1].aux[0]": { "fullName": "main.ep[1].aux[0]", "direction": "", "component": "main.ep[1]", "equivalence": "", "alias": [ "main.ep[1].aux[0]" ], "id": 41 }, "main.ep[1].aux[1]": { "fullName": "main.ep[1].aux[1]", "direction": "", "component": "main.ep[1]", "equivalence": "", "alias": [ "main.ep[1].aux[1]" ], "id": 42 }, "main.ep[1].aux[2]": { "fullName": "main.ep[1].aux[2]", "direction": "", "component": "main.ep[1]", "equivalence": "", "alias": [ "main.ep[1].aux[2]" ], "id": 43 }, "main.ep[2].in1[0]": { "fullName": "main.ep[2].in1[0]", "direction": "IN", "component": "main.ep[2]", "equivalence": "main.inp[0][2]", "alias": [ "main.ep[2].in1[0]", null ], "id": 3 }, "main.ep[2].in1[1]": { "fullName": "main.ep[2].in1[1]", "direction": "IN", "component": "main.ep[2]", "equivalence": "main.inp[1][2]", "alias": [ "main.ep[2].in1[1]", null ], "id": 11 }, "main.ep[2].in1[2]": { "fullName": "main.ep[2].in1[2]", "direction": "IN", "component": "main.ep[2]", "equivalence": "main.inp[2][2]", "alias": [ "main.ep[2].in1[2]", null ], "id": 19 }, "main.ep[2].in2[0]": { "fullName": "main.ep[2].in2[0]", "direction": "IN", "component": "main.ep[2]", "equivalence": "main.dec.out[0]", "alias": [ "main.ep[2].in2[0]", null ], "id": 34 }, "main.ep[2].in2[1]": { "fullName": "main.ep[2].in2[1]", "direction": "IN", "component": "main.ep[2]", "equivalence": "main.dec.out[1]", "alias": [ "main.ep[2].in2[1]", null ], "id": 35 }, "main.ep[2].in2[2]": { "fullName": "main.ep[2].in2[2]", "direction": "IN", "component": "main.ep[2]", "equivalence": "main.dec.out[2]", "alias": [ "main.ep[2].in2[2]", null ], "id": 36 }, "main.ep[2].out": { "fullName": "main.ep[2].out", "direction": "OUT", "component": "main.ep[2]", "equivalence": "", "alias": [ "main.ep[2].out" ], "id": 28 }, "main.ep[2].aux[0]": { "fullName": "main.ep[2].aux[0]", "direction": "", "component": "main.ep[2]", "equivalence": "", "alias": [ "main.ep[2].aux[0]" ], "id": 44 }, "main.ep[2].aux[1]": { "fullName": "main.ep[2].aux[1]", "direction": "", "component": "main.ep[2]", "equivalence": "", "alias": [ "main.ep[2].aux[1]" ], "id": 45 }, "main.ep[2].aux[2]": { "fullName": "main.ep[2].aux[2]", "direction": "", "component": "main.ep[2]", "equivalence": "", "alias": [ "main.ep[2].aux[2]" ], "id": 46 }, "main.ep[3].in1[0]": { "fullName": "main.ep[3].in1[0]", "direction": "IN", "component": "main.ep[3]", "equivalence": "main.inp[0][3]", "alias": [ "main.ep[3].in1[0]", null ], "id": 4 }, "main.ep[3].in1[1]": { "fullName": "main.ep[3].in1[1]", "direction": "IN", "component": "main.ep[3]", "equivalence": "main.inp[1][3]", "alias": [ "main.ep[3].in1[1]", null ], "id": 12 }, "main.ep[3].in1[2]": { "fullName": "main.ep[3].in1[2]", "direction": "IN", "component": "main.ep[3]", "equivalence": "main.inp[2][3]", "alias": [ "main.ep[3].in1[2]", null ], "id": 20 }, "main.ep[3].in2[0]": { "fullName": "main.ep[3].in2[0]", "direction": "IN", "component": "main.ep[3]", "equivalence": "main.dec.out[0]", "alias": [ "main.ep[3].in2[0]", null ], "id": 34 }, "main.ep[3].in2[1]": { "fullName": "main.ep[3].in2[1]", "direction": "IN", "component": "main.ep[3]", "equivalence": "main.dec.out[1]", "alias": [ "main.ep[3].in2[1]", null ], "id": 35 }, "main.ep[3].in2[2]": { "fullName": "main.ep[3].in2[2]", "direction": "IN", "component": "main.ep[3]", "equivalence": "main.dec.out[2]", "alias": [ "main.ep[3].in2[2]", null ], "id": 36 }, "main.ep[3].out": { "fullName": "main.ep[3].out", "direction": "OUT", "component": "main.ep[3]", "equivalence": "", "alias": [ "main.ep[3].out" ], "id": 29 }, "main.ep[3].aux[0]": { "fullName": "main.ep[3].aux[0]", "direction": "", "component": "main.ep[3]", "equivalence": "", "alias": [ "main.ep[3].aux[0]" ], "id": 47 }, "main.ep[3].aux[1]": { "fullName": "main.ep[3].aux[1]", "direction": "", "component": "main.ep[3]", "equivalence": "", "alias": [ "main.ep[3].aux[1]" ], "id": 48 }, "main.ep[3].aux[2]": { "fullName": "main.ep[3].aux[2]", "direction": "", "component": "main.ep[3]", "equivalence": "", "alias": [ "main.ep[3].aux[2]" ], "id": 49 }, "main.ep[4].in1[0]": { "fullName": "main.ep[4].in1[0]", "direction": "IN", "component": "main.ep[4]", "equivalence": "main.inp[0][4]", "alias": [ "main.ep[4].in1[0]", null ], "id": 5 }, "main.ep[4].in1[1]": { "fullName": "main.ep[4].in1[1]", "direction": "IN", "component": "main.ep[4]", "equivalence": "main.inp[1][4]", "alias": [ "main.ep[4].in1[1]", null ], "id": 13 }, "main.ep[4].in1[2]": { "fullName": "main.ep[4].in1[2]", "direction": "IN", "component": "main.ep[4]", "equivalence": "main.inp[2][4]", "alias": [ "main.ep[4].in1[2]", null ], "id": 21 }, "main.ep[4].in2[0]": { "fullName": "main.ep[4].in2[0]", "direction": "IN", "component": "main.ep[4]", "equivalence": "main.dec.out[0]", "alias": [ "main.ep[4].in2[0]", null ], "id": 34 }, "main.ep[4].in2[1]": { "fullName": "main.ep[4].in2[1]", "direction": "IN", "component": "main.ep[4]", "equivalence": "main.dec.out[1]", "alias": [ "main.ep[4].in2[1]", null ], "id": 35 }, "main.ep[4].in2[2]": { "fullName": "main.ep[4].in2[2]", "direction": "IN", "component": "main.ep[4]", "equivalence": "main.dec.out[2]", "alias": [ "main.ep[4].in2[2]", null ], "id": 36 }, "main.ep[4].out": { "fullName": "main.ep[4].out", "direction": "OUT", "component": "main.ep[4]", "equivalence": "", "alias": [ "main.ep[4].out" ], "id": 30 }, "main.ep[4].aux[0]": { "fullName": "main.ep[4].aux[0]", "direction": "", "component": "main.ep[4]", "equivalence": "", "alias": [ "main.ep[4].aux[0]" ], "id": 50 }, "main.ep[4].aux[1]": { "fullName": "main.ep[4].aux[1]", "direction": "", "component": "main.ep[4]", "equivalence": "", "alias": [ "main.ep[4].aux[1]" ], "id": 51 }, "main.ep[4].aux[2]": { "fullName": "main.ep[4].aux[2]", "direction": "", "component": "main.ep[4]", "equivalence": "", "alias": [ "main.ep[4].aux[2]" ], "id": 52 }, "main.ep[5].in1[0]": { "fullName": "main.ep[5].in1[0]", "direction": "IN", "component": "main.ep[5]", "equivalence": "main.inp[0][5]", "alias": [ "main.ep[5].in1[0]", null ], "id": 6 }, "main.ep[5].in1[1]": { "fullName": "main.ep[5].in1[1]", "direction": "IN", "component": "main.ep[5]", "equivalence": "main.inp[1][5]", "alias": [ "main.ep[5].in1[1]", null ], "id": 14 }, "main.ep[5].in1[2]": { "fullName": "main.ep[5].in1[2]", "direction": "IN", "component": "main.ep[5]", "equivalence": "main.inp[2][5]", "alias": [ "main.ep[5].in1[2]", null ], "id": 22 }, "main.ep[5].in2[0]": { "fullName": "main.ep[5].in2[0]", "direction": "IN", "component": "main.ep[5]", "equivalence": "main.dec.out[0]", "alias": [ "main.ep[5].in2[0]", null ], "id": 34 }, "main.ep[5].in2[1]": { "fullName": "main.ep[5].in2[1]", "direction": "IN", "component": "main.ep[5]", "equivalence": "main.dec.out[1]", "alias": [ "main.ep[5].in2[1]", null ], "id": 35 }, "main.ep[5].in2[2]": { "fullName": "main.ep[5].in2[2]", "direction": "IN", "component": "main.ep[5]", "equivalence": "main.dec.out[2]", "alias": [ "main.ep[5].in2[2]", null ], "id": 36 }, "main.ep[5].out": { "fullName": "main.ep[5].out", "direction": "OUT", "component": "main.ep[5]", "equivalence": "", "alias": [ "main.ep[5].out" ], "id": 31 }, "main.ep[5].aux[0]": { "fullName": "main.ep[5].aux[0]", "direction": "", "component": "main.ep[5]", "equivalence": "", "alias": [ "main.ep[5].aux[0]" ], "id": 53 }, "main.ep[5].aux[1]": { "fullName": "main.ep[5].aux[1]", "direction": "", "component": "main.ep[5]", "equivalence": "", "alias": [ "main.ep[5].aux[1]" ], "id": 54 }, "main.ep[5].aux[2]": { "fullName": "main.ep[5].aux[2]", "direction": "", "component": "main.ep[5]", "equivalence": "", "alias": [ "main.ep[5].aux[2]" ], "id": 55 }, "main.ep[6].in1[0]": { "fullName": "main.ep[6].in1[0]", "direction": "IN", "component": "main.ep[6]", "equivalence": "main.inp[0][6]", "alias": [ "main.ep[6].in1[0]", null ], "id": 7 }, "main.ep[6].in1[1]": { "fullName": "main.ep[6].in1[1]", "direction": "IN", "component": "main.ep[6]", "equivalence": "main.inp[1][6]", "alias": [ "main.ep[6].in1[1]", null ], "id": 15 }, "main.ep[6].in1[2]": { "fullName": "main.ep[6].in1[2]", "direction": "IN", "component": "main.ep[6]", "equivalence": "main.inp[2][6]", "alias": [ "main.ep[6].in1[2]", null ], "id": 23 }, "main.ep[6].in2[0]": { "fullName": "main.ep[6].in2[0]", "direction": "IN", "component": "main.ep[6]", "equivalence": "main.dec.out[0]", "alias": [ "main.ep[6].in2[0]", null ], "id": 34 }, "main.ep[6].in2[1]": { "fullName": "main.ep[6].in2[1]", "direction": "IN", "component": "main.ep[6]", "equivalence": "main.dec.out[1]", "alias": [ "main.ep[6].in2[1]", null ], "id": 35 }, "main.ep[6].in2[2]": { "fullName": "main.ep[6].in2[2]", "direction": "IN", "component": "main.ep[6]", "equivalence": "main.dec.out[2]", "alias": [ "main.ep[6].in2[2]", null ], "id": 36 }, "main.ep[6].out": { "fullName": "main.ep[6].out", "direction": "OUT", "component": "main.ep[6]", "equivalence": "", "alias": [ "main.ep[6].out" ], "id": 32 }, "main.ep[6].aux[0]": { "fullName": "main.ep[6].aux[0]", "direction": "", "component": "main.ep[6]", "equivalence": "", "alias": [ "main.ep[6].aux[0]" ], "id": 56 }, "main.ep[6].aux[1]": { "fullName": "main.ep[6].aux[1]", "direction": "", "component": "main.ep[6]", "equivalence": "", "alias": [ "main.ep[6].aux[1]" ], "id": 57 }, "main.ep[6].aux[2]": { "fullName": "main.ep[6].aux[2]", "direction": "", "component": "main.ep[6]", "equivalence": "", "alias": [ "main.ep[6].aux[2]" ], "id": 58 }, "main.ep[7].in1[0]": { "fullName": "main.ep[7].in1[0]", "direction": "IN", "component": "main.ep[7]", "equivalence": "main.inp[0][7]", "alias": [ "main.ep[7].in1[0]", null ], "id": 8 }, "main.ep[7].in1[1]": { "fullName": "main.ep[7].in1[1]", "direction": "IN", "component": "main.ep[7]", "equivalence": "main.inp[1][7]", "alias": [ "main.ep[7].in1[1]", null ], "id": 16 }, "main.ep[7].in1[2]": { "fullName": "main.ep[7].in1[2]", "direction": "IN", "component": "main.ep[7]", "equivalence": "main.inp[2][7]", "alias": [ "main.ep[7].in1[2]", null ], "id": 24 }, "main.ep[7].in2[0]": { "fullName": "main.ep[7].in2[0]", "direction": "IN", "component": "main.ep[7]", "equivalence": "main.dec.out[0]", "alias": [ "main.ep[7].in2[0]", null ], "id": 34 }, "main.ep[7].in2[1]": { "fullName": "main.ep[7].in2[1]", "direction": "IN", "component": "main.ep[7]", "equivalence": "main.dec.out[1]", "alias": [ "main.ep[7].in2[1]", null ], "id": 35 }, "main.ep[7].in2[2]": { "fullName": "main.ep[7].in2[2]", "direction": "IN", "component": "main.ep[7]", "equivalence": "main.dec.out[2]", "alias": [ "main.ep[7].in2[2]", null ], "id": 36 }, "main.ep[7].out": { "fullName": "main.ep[7].out", "direction": "OUT", "component": "main.ep[7]", "equivalence": "", "alias": [ "main.ep[7].out" ], "id": 33 }, "main.ep[7].aux[0]": { "fullName": "main.ep[7].aux[0]", "direction": "", "component": "main.ep[7]", "equivalence": "", "alias": [ "main.ep[7].aux[0]" ], "id": 59 }, "main.ep[7].aux[1]": { "fullName": "main.ep[7].aux[1]", "direction": "", "component": "main.ep[7]", "equivalence": "", "alias": [ "main.ep[7].aux[1]" ], "id": 60 }, "main.ep[7].aux[2]": { "fullName": "main.ep[7].aux[2]", "direction": "", "component": "main.ep[7]", "equivalence": "", "alias": [ "main.ep[7].aux[2]" ], "id": 61 } }; circuit.components={ "main": { "signals": [ "main.inp[0][0]", "main.inp[0][1]", "main.inp[0][2]", "main.inp[0][3]", "main.inp[0][4]", "main.inp[0][5]", "main.inp[0][6]", "main.inp[0][7]", "main.inp[1][0]", "main.inp[1][1]", "main.inp[1][2]", "main.inp[1][3]", "main.inp[1][4]", "main.inp[1][5]", "main.inp[1][6]", "main.inp[1][7]", "main.inp[2][0]", "main.inp[2][1]", "main.inp[2][2]", "main.inp[2][3]", "main.inp[2][4]", "main.inp[2][5]", "main.inp[2][6]", "main.inp[2][7]", "main.sel", "main.out[0]", "main.out[1]", "main.out[2]", "main.out[3]", "main.out[4]", "main.out[5]", "main.out[6]", "main.out[7]" ], "params": { "wIn": "8", "nIn": "3" }, "template": "Multiplexor", "inputSignals": 25 }, "main.dec": { "signals": [ "main.dec.inp", "main.dec.out[0]", "main.dec.out[1]", "main.dec.out[2]", "main.dec.success" ], "params": { "w": "3" }, "template": "Decoder", "inputSignals": 1 }, "main.ep[0]": { "signals": [ "main.ep[0].in1[0]", "main.ep[0].in1[1]", "main.ep[0].in1[2]", "main.ep[0].in2[0]", "main.ep[0].in2[1]", "main.ep[0].in2[2]", "main.ep[0].out", "main.ep[0].aux[0]", "main.ep[0].aux[1]", "main.ep[0].aux[2]" ], "params": { "w": "3" }, "template": "EscalarProduct", "inputSignals": 6 }, "main.ep[1]": { "signals": [ "main.ep[1].in1[0]", "main.ep[1].in1[1]", "main.ep[1].in1[2]", "main.ep[1].in2[0]", "main.ep[1].in2[1]", "main.ep[1].in2[2]", "main.ep[1].out", "main.ep[1].aux[0]", "main.ep[1].aux[1]", "main.ep[1].aux[2]" ], "params": { "w": "3" }, "template": "EscalarProduct", "inputSignals": 6 }, "main.ep[2]": { "signals": [ "main.ep[2].in1[0]", "main.ep[2].in1[1]", "main.ep[2].in1[2]", "main.ep[2].in2[0]", "main.ep[2].in2[1]", "main.ep[2].in2[2]", "main.ep[2].out", "main.ep[2].aux[0]", "main.ep[2].aux[1]", "main.ep[2].aux[2]" ], "params": { "w": "3" }, "template": "EscalarProduct", "inputSignals": 6 }, "main.ep[3]": { "signals": [ "main.ep[3].in1[0]", "main.ep[3].in1[1]", "main.ep[3].in1[2]", "main.ep[3].in2[0]", "main.ep[3].in2[1]", "main.ep[3].in2[2]", "main.ep[3].out", "main.ep[3].aux[0]", "main.ep[3].aux[1]", "main.ep[3].aux[2]" ], "params": { "w": "3" }, "template": "EscalarProduct", "inputSignals": 6 }, "main.ep[4]": { "signals": [ "main.ep[4].in1[0]", "main.ep[4].in1[1]", "main.ep[4].in1[2]", "main.ep[4].in2[0]", "main.ep[4].in2[1]", "main.ep[4].in2[2]", "main.ep[4].out", "main.ep[4].aux[0]", "main.ep[4].aux[1]", "main.ep[4].aux[2]" ], "params": { "w": "3" }, "template": "EscalarProduct", "inputSignals": 6 }, "main.ep[5]": { "signals": [ "main.ep[5].in1[0]", "main.ep[5].in1[1]", "main.ep[5].in1[2]", "main.ep[5].in2[0]", "main.ep[5].in2[1]", "main.ep[5].in2[2]", "main.ep[5].out", "main.ep[5].aux[0]", "main.ep[5].aux[1]", "main.ep[5].aux[2]" ], "params": { "w": "3" }, "template": "EscalarProduct", "inputSignals": 6 }, "main.ep[6]": { "signals": [ "main.ep[6].in1[0]", "main.ep[6].in1[1]", "main.ep[6].in1[2]", "main.ep[6].in2[0]", "main.ep[6].in2[1]", "main.ep[6].in2[2]", "main.ep[6].out", "main.ep[6].aux[0]", "main.ep[6].aux[1]", "main.ep[6].aux[2]" ], "params": { "w": "3" }, "template": "EscalarProduct", "inputSignals": 6 }, "main.ep[7]": { "signals": [ "main.ep[7].in1[0]", "main.ep[7].in1[1]", "main.ep[7].in1[2]", "main.ep[7].in2[0]", "main.ep[7].in2[1]", "main.ep[7].in2[2]", "main.ep[7].out", "main.ep[7].aux[0]", "main.ep[7].aux[1]", "main.ep[7].aux[2]" ], "params": { "w": "3" }, "template": "EscalarProduct", "inputSignals": 6 } }; circuit.signalConstrains=[ { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[0]": "1" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.sel": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": {} } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[1]": "1" } }, "b": { "type": "LINEARCOMBINATION", "values": { "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.sel": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": {} } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[2]": "1" } }, "b": { "type": "LINEARCOMBINATION", "values": { "one": "21888242871839275222246405745257275088696311157297823662689037894645226208581", "main.sel": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": {} } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": {} }, "b": { "type": "LINEARCOMBINATION", "values": {} }, "c": { "type": "LINEARCOMBINATION", "values": { "main.dec.success": "1", "main.dec.out[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.dec.out[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.dec.out[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.dec.success": "1" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.success": "1", "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "c": { "type": "LINEARCOMBINATION", "values": {} } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[0][0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[0]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[0].aux[0]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[1][0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[1]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[0].aux[1]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[2][0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[2]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[0].aux[2]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": {} }, "b": { "type": "LINEARCOMBINATION", "values": {} }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[0].out": "1", "main.ep[0].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[0].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[0].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[0][1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[0]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[1].aux[0]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[1][1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[1]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[1].aux[1]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[2][1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[2]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[1].aux[2]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": {} }, "b": { "type": "LINEARCOMBINATION", "values": {} }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[1].out": "1", "main.ep[1].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[1].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[1].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[0][2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[0]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[2].aux[0]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[1][2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[1]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[2].aux[1]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[2][2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[2]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[2].aux[2]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": {} }, "b": { "type": "LINEARCOMBINATION", "values": {} }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[2].out": "1", "main.ep[2].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[2].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[2].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[0][3]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[0]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[3].aux[0]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[1][3]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[1]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[3].aux[1]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[2][3]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[2]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[3].aux[2]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": {} }, "b": { "type": "LINEARCOMBINATION", "values": {} }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[3].out": "1", "main.ep[3].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[3].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[3].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[0][4]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[0]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[4].aux[0]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[1][4]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[1]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[4].aux[1]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[2][4]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[2]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[4].aux[2]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": {} }, "b": { "type": "LINEARCOMBINATION", "values": {} }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[4].out": "1", "main.ep[4].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[4].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[4].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[0][5]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[0]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[5].aux[0]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[1][5]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[1]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[5].aux[1]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[2][5]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[2]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[5].aux[2]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": {} }, "b": { "type": "LINEARCOMBINATION", "values": {} }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[5].out": "1", "main.ep[5].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[5].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[5].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[0][6]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[0]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[6].aux[0]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[1][6]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[1]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[6].aux[1]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[2][6]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[2]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[6].aux[2]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": {} }, "b": { "type": "LINEARCOMBINATION", "values": {} }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[6].out": "1", "main.ep[6].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[6].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[6].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[0][7]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[0]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[7].aux[0]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[1][7]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[1]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[7].aux[1]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": { "main.inp[2][7]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } }, "b": { "type": "LINEARCOMBINATION", "values": { "main.dec.out[2]": "1" } }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[7].aux[2]": "1" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": {} }, "b": { "type": "LINEARCOMBINATION", "values": {} }, "c": { "type": "LINEARCOMBINATION", "values": { "main.ep[7].out": "1", "main.ep[7].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[7].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", "main.ep[7].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } } }, { "type": "QEQ", "a": { "type": "LINEARCOMBINATION", "values": {} }, "b": { "type": "LINEARCOMBINATION", "values": {} }, "c": { "type": "LINEARCOMBINATION", "values": { "main.dec.success": "1", "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" } } } ]; circuit.witnessNames=[ [ "one" ], [ "main.inp[0][0]", "main.ep[0].in1[0]" ], [ "main.inp[0][1]", "main.ep[1].in1[0]" ], [ "main.inp[0][2]", "main.ep[2].in1[0]" ], [ "main.inp[0][3]", "main.ep[3].in1[0]" ], [ "main.inp[0][4]", "main.ep[4].in1[0]" ], [ "main.inp[0][5]", "main.ep[5].in1[0]" ], [ "main.inp[0][6]", "main.ep[6].in1[0]" ], [ "main.inp[0][7]", "main.ep[7].in1[0]" ], [ "main.inp[1][0]", "main.ep[0].in1[1]" ], [ "main.inp[1][1]", "main.ep[1].in1[1]" ], [ "main.inp[1][2]", "main.ep[2].in1[1]" ], [ "main.inp[1][3]", "main.ep[3].in1[1]" ], [ "main.inp[1][4]", "main.ep[4].in1[1]" ], [ "main.inp[1][5]", "main.ep[5].in1[1]" ], [ "main.inp[1][6]", "main.ep[6].in1[1]" ], [ "main.inp[1][7]", "main.ep[7].in1[1]" ], [ "main.inp[2][0]", "main.ep[0].in1[2]" ], [ "main.inp[2][1]", "main.ep[1].in1[2]" ], [ "main.inp[2][2]", "main.ep[2].in1[2]" ], [ "main.inp[2][3]", "main.ep[3].in1[2]" ], [ "main.inp[2][4]", "main.ep[4].in1[2]" ], [ "main.inp[2][5]", "main.ep[5].in1[2]" ], [ "main.inp[2][6]", "main.ep[6].in1[2]" ], [ "main.inp[2][7]", "main.ep[7].in1[2]" ], [ "main.sel", "main.dec.inp" ], [ "main.out[0]", "main.ep[0].out" ], [ "main.out[1]", "main.ep[1].out" ], [ "main.out[2]", "main.ep[2].out" ], [ "main.out[3]", "main.ep[3].out" ], [ "main.out[4]", "main.ep[4].out" ], [ "main.out[5]", "main.ep[5].out" ], [ "main.out[6]", "main.ep[6].out" ], [ "main.out[7]", "main.ep[7].out" ], [ "main.dec.out[0]", "main.ep[0].in2[0]", "main.ep[1].in2[0]", "main.ep[2].in2[0]", "main.ep[3].in2[0]", "main.ep[4].in2[0]", "main.ep[5].in2[0]", "main.ep[6].in2[0]", "main.ep[7].in2[0]" ], [ "main.dec.out[1]", "main.ep[0].in2[1]", "main.ep[1].in2[1]", "main.ep[2].in2[1]", "main.ep[3].in2[1]", "main.ep[4].in2[1]", "main.ep[5].in2[1]", "main.ep[6].in2[1]", "main.ep[7].in2[1]" ], [ "main.dec.out[2]", "main.ep[0].in2[2]", "main.ep[1].in2[2]", "main.ep[2].in2[2]", "main.ep[3].in2[2]", "main.ep[4].in2[2]", "main.ep[5].in2[2]", "main.ep[6].in2[2]", "main.ep[7].in2[2]" ], [ "main.dec.success" ], [ "main.ep[0].aux[0]" ], [ "main.ep[0].aux[1]" ], [ "main.ep[0].aux[2]" ], [ "main.ep[1].aux[0]" ], [ "main.ep[1].aux[1]" ], [ "main.ep[1].aux[2]" ], [ "main.ep[2].aux[0]" ], [ "main.ep[2].aux[1]" ], [ "main.ep[2].aux[2]" ], [ "main.ep[3].aux[0]" ], [ "main.ep[3].aux[1]" ], [ "main.ep[3].aux[2]" ], [ "main.ep[4].aux[0]" ], [ "main.ep[4].aux[1]" ], [ "main.ep[4].aux[2]" ], [ "main.ep[5].aux[0]" ], [ "main.ep[5].aux[1]" ], [ "main.ep[5].aux[2]" ], [ "main.ep[6].aux[0]" ], [ "main.ep[6].aux[1]" ], [ "main.ep[6].aux[2]" ], [ "main.ep[7].aux[0]" ], [ "main.ep[7].aux[1]" ], [ "main.ep[7].aux[2]" ] ]; { } circuit.templates = []; circuit.templates["EscalarProduct"] = function(ctx) { ctx.setVar("lc", [], "0"); for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt(ctx.getVar("w",[])) ? 1 : 0;(ctx.setVar("i", [], bigInt(ctx.getVar("i",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) { ctx.setSignal("aux", [ctx.getVar("i",[])], bigInt(ctx.getSignal("in1", [ctx.getVar("i",[])])).times(ctx.getSignal("in2", [ctx.getVar("i",[])])).mod(__P__)); ctx.assert(bigInt(ctx.getSignal("aux", [ctx.getVar("i",[])])).equals(bigInt(ctx.getSignal("in1", [ctx.getVar("i",[])])).times(ctx.getSignal("in2", [ctx.getVar("i",[])])).mod(__P__))); ctx.setVar("lc", [], bigInt(ctx.getVar("lc",[])).add(ctx.getSignal("aux", [ctx.getVar("i",[])])).mod(__P__)); } ctx.setSignal("out", [], ctx.getVar("lc",[])); ctx.assert(bigInt(ctx.getSignal("out", [])).equals(ctx.getVar("lc",[]))); } ; circuit.templates["Decoder"] = function(ctx) { ctx.setVar("lc", [], "0"); for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt(ctx.getVar("w",[])) ? 1 : 0;(ctx.setVar("i", [], bigInt(ctx.getVar("i",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) { ctx.setSignal("out", [ctx.getVar("i",[])], bigInt(bigInt(ctx.getSignal("inp", [])).eq(ctx.getVar("i",[])) ? 1 : 0).neq(0) ? ("1") : ("0")); ctx.assert(bigInt(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).times(bigInt(ctx.getSignal("inp", [])).add(__P__).minus(ctx.getVar("i",[])).mod(__P__)).mod(__P__)).equals("0")); ctx.setVar("lc", [], bigInt(ctx.getVar("lc",[])).add(ctx.getSignal("out", [ctx.getVar("i",[])])).mod(__P__)); } ctx.setSignal("success", [], ctx.getVar("lc",[])); ctx.assert(bigInt(ctx.getSignal("success", [])).equals(ctx.getVar("lc",[]))); ctx.assert(bigInt(bigInt(ctx.getSignal("success", [])).times(bigInt(ctx.getSignal("success", [])).add(__P__).minus("1").mod(__P__)).mod(__P__)).equals("0")); } ; circuit.templates["Multiplexor"] = function(ctx) { ctx.setPin("dec", [], "inp", [], ctx.getSignal("sel", [])); ctx.assert(bigInt(ctx.getPin("dec", [], "inp", [])).equals(ctx.getSignal("sel", []))); for (ctx.setVar("j", [], "0");bigInt(ctx.getVar("j",[])).lt(ctx.getVar("wIn",[])) ? 1 : 0;(ctx.setVar("j", [], bigInt(ctx.getVar("j",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) { for (ctx.setVar("k", [], "0");bigInt(ctx.getVar("k",[])).lt(ctx.getVar("nIn",[])) ? 1 : 0;(ctx.setVar("k", [], bigInt(ctx.getVar("k",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) { ctx.setPin("ep", [ctx.getVar("j",[])], "in1", [ctx.getVar("k",[])], ctx.getSignal("inp", [ctx.getVar("k",[]),ctx.getVar("j",[])])); ctx.assert(bigInt(ctx.getPin("ep", [ctx.getVar("j",[])], "in1", [ctx.getVar("k",[])])).equals(ctx.getSignal("inp", [ctx.getVar("k",[]),ctx.getVar("j",[])]))); ctx.setPin("ep", [ctx.getVar("j",[])], "in2", [ctx.getVar("k",[])], ctx.getPin("dec", [], "out", [ctx.getVar("k",[])])); ctx.assert(bigInt(ctx.getPin("ep", [ctx.getVar("j",[])], "in2", [ctx.getVar("k",[])])).equals(ctx.getPin("dec", [], "out", [ctx.getVar("k",[])]))); } ctx.setSignal("out", [ctx.getVar("j",[])], ctx.getPin("ep", [ctx.getVar("j",[])], "out", [])); ctx.assert(bigInt(ctx.getSignal("out", [ctx.getVar("j",[])])).equals(ctx.getPin("ep", [ctx.getVar("j",[])], "out", []))); } ctx.assert(bigInt(ctx.getPin("dec", [], "success", [])).equals("1")); } ;