commit 281b52339c2717a1b3a519b12661912220f35d89 Author: Jordi Baylina Date: Thu Aug 9 08:21:17 2018 +0200 First commit diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..2f45ad9 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,33 @@ +module.exports = { + "plugins": [ + "mocha" + ], + "env": { + "es6": true, + "node": true, + "mocha": true + }, + "parserOptions": { + "ecmaVersion": 2017 + }, + "extends": "eslint:recommended", + "rules": { + "indent": [ + "error", + 4 + ], + "linebreak-style": [ + "error", + "unix" + ], + "quotes": [ + "error", + "double" + ], + "semi": [ + "error", + "always" + ], + "mocha/no-exclusive-tests": "error" + } +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8b18f83 --- /dev/null +++ b/.gitignore @@ -0,0 +1,63 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next + +tmp diff --git a/83 b/83 new file mode 100644 index 0000000..e69de29 diff --git a/circuits/jose.jaz b/circuits/jose.jaz new file mode 100644 index 0000000..28b9aff --- /dev/null +++ b/circuits/jose.jaz @@ -0,0 +1,11 @@ +template AND() { + signal input s1; + signal input s2; + signal output s3; + + s3 <== s1*s2; + s1*(s1-1) === 0; + s2*(s2-1) === 0; +} + +component main = AND(); diff --git a/circuits/multiplexer.jaz b/circuits/multiplexer.jaz new file mode 100644 index 0000000..3145e1b --- /dev/null +++ b/circuits/multiplexer.jaz @@ -0,0 +1,74 @@ +// --> Assignation without constrain +// <-- Assignation without constrain +// === Constrain +// <== Assignation with constrain +// ==> Assignation with constrain +// All variables are members of the field F[p] +// https://github.com/zcash-hackworks/sapling-crypto +// https://github.com/ebfull/bellman + +/* +function log2(a) { + if (a==0) { + return 0; + } + let n = 1; + let r = 1; + while (n success; + success * (success -1) === 0; +} + + +template Multiplexor(wIn, nIn) { + signal input inp[nIn][wIn]; + signal input sel; + signal output out[wIn]; + component Decoder(nIn) dec; + component EscalarProduct(nIn) ep[wIn]; + sel ==> dec.inp; + for (var j=0; j ep[j].in1[k]; + dec.out[k] ==> ep[j].in2[k]; + } + ep[j].out ==> out[j]; + } + dec.success === 1; +} + +component Multiplexor(8,3) main; + + diff --git a/circuits/sha256/binsum.jaz b/circuits/sha256/binsum.jaz new file mode 100644 index 0000000..6c4cd11 --- /dev/null +++ b/circuits/sha256/binsum.jaz @@ -0,0 +1,74 @@ +/* + +Binary Sum +========== + +This component creates a binary sum componet of ops operands and n bits each operand. + +e is Number of carries: Depends on the number of operands in the input. + +Main Constrain: + in[0][0] * 2^0 + in[0][1] * 2^1 + ..... + in[0][n-1] * 2^(n-1) + + + in[1][0] * 2^0 + in[1][1] * 2^1 + ..... + in[1][n-1] * 2^(n-1) + + + .. + + in[ops-1][0] * 2^0 + in[ops-1][1] * 2^1 + ..... + in[ops-1][n-1] * 2^(n-1) + + === + out[0] * 2^0 + out[1] * 2^1 + + out[n+e-1] *2(n+e-1) + +To waranty binary outputs: + + out[0] * (out[0] - 1) === 0 + out[1] * (out[0] - 1) === 0 + . + . + . + out[n+e-1] * (out[n+e-1] - 1) == 0 + + */ + + +/* + This function calculates the number of extra bits in the output to do the full sum. + */ + +function nbits(a) { + var n = 1; + var r = 0; + while (n-1> k) & 1; + + // Ensure out is binary + out[k] * (out[k] - 1) === 0; + + lout += out[k] * 2**k; + } + + // Ensure the sum; + + lin === lout; +} diff --git a/circuits/sha256/bitify.jaz b/circuits/sha256/bitify.jaz new file mode 100644 index 0000000..539131c --- /dev/null +++ b/circuits/sha256/bitify.jaz @@ -0,0 +1,28 @@ + + +template Num2Bits(n) { + signal input in; + signal output out[n]; + var lc1=0; + + for (var i = 0; i> i) & 1; + out[i] * (out[i] -1 ) === 0; + lc1 += out[i] * 2**i; + } + + lc1 === in; + +} + +template Bits2Num(n) { + signal input in[n]; + signal output out; + var lc1=0; + + for (var i = 0; i out; +} diff --git a/circuits/sha256/constants.jaz b/circuits/sha256/constants.jaz new file mode 100644 index 0000000..66b211a --- /dev/null +++ b/circuits/sha256/constants.jaz @@ -0,0 +1,35 @@ + + +template H(x) { + signal output out[32]; + var c = [0x6a09e667, + 0xbb67ae85, + 0x3c6ef372, + 0xa54ff53a, + 0x510e527f, + 0x9b05688c, + 0x1f83d9ab, + 0x5be0cd19]; + + for (var i=0; i<32; i++) { + out[i] = (c[x] >> i) & 1; + } +} + +template K(x) { + signal output out[32]; + var c = [ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + ]; + + for (var i=0; i<32; i++) { + out[i] = (c[x] >> i) & 1; + } +} diff --git a/circuits/sha256/gates.jaz b/circuits/sha256/gates.jaz new file mode 100644 index 0000000..b81ed3d --- /dev/null +++ b/circuits/sha256/gates.jaz @@ -0,0 +1,67 @@ + +template XOR() { + signal input a; + signal input b; + signal output out; + + out <== a + b - 2*a*b; +} + +template AND() { + signal input a; + signal input b; + signal output out; + + out <== a*b; +} + +template OR() { + signal input a; + signal input b; + signal output out; + + out <== a + b - a*b; +} + +template NOT() { + signal input in; + signal output out; + + out <== 1 + in - 2*in; +} + +template NAND() { + signal input a; + signal input b; + signal output out; + + out <== 1 - a*b; +} + +template NOR() { + signal input a; + signal input b; + signal output out; + + out <== a*b + 1 - a - b; +} + +template Xor3(n) { + signal input a[n]; + signal input b[n]; + signal input c[n]; + signal output out[n]; + + component xor1[n] = XOR(); + component xor2[n] = XOR(); + + for (var k=0; k> i) & 1; + out[i] * (out[i] -1 ) === 0; + lc1 += out[i] * 2**i; + } + + lc1 === inp; + +} + + +component toBin(3) main; diff --git a/input.json b/input.json new file mode 100644 index 0000000..c6b29a7 --- /dev/null +++ b/input.json @@ -0,0 +1,3 @@ +{ + "inp": "3" +} diff --git a/input_jose.json b/input_jose.json new file mode 100644 index 0000000..3c8252a --- /dev/null +++ b/input_jose.json @@ -0,0 +1,4 @@ +{ + "s1": "24", + "s2": "1" +} diff --git a/inputmx.json b/inputmx.json new file mode 100644 index 0000000..db27ed5 --- /dev/null +++ b/inputmx.json @@ -0,0 +1,27 @@ +{ + "inp[0][0]": 100, + "inp[0][1]": 101, + "inp[0][2]": 102, + "inp[0][3]": 103, + "inp[0][4]": 104, + "inp[0][5]": 105, + "inp[0][6]": 106, + "inp[0][7]": 107, + "inp[1][0]": 110, + "inp[1][1]": 111, + "inp[1][2]": 112, + "inp[1][3]": 113, + "inp[1][4]": 114, + "inp[1][5]": 115, + "inp[1][6]": 116, + "inp[1][7]": 117, + "inp[2][0]": 120, + "inp[2][1]": 121, + "inp[2][2]": 122, + "inp[2][3]": 123, + "inp[2][4]": 124, + "inp[2][5]": 125, + "inp[2][6]": 126, + "inp[2][7]": 127, + "sel": 1 +} diff --git a/jaz.js b/jaz.js new file mode 100644 index 0000000..4c7c212 --- /dev/null +++ b/jaz.js @@ -0,0 +1,1367 @@ +/* parser generated by jison 0.4.18 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +var jaz = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,14],$V1=[1,31],$V2=[1,59],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,18],$V7=[1,19],$V8=[1,20],$V9=[1,23],$Va=[1,21],$Vb=[1,50],$Vc=[1,51],$Vd=[1,48],$Ve=[1,49],$Vf=[1,52],$Vg=[1,53],$Vh=[1,57],$Vi=[1,58],$Vj=[1,32],$Vk=[1,33],$Vl=[1,34],$Vm=[1,37],$Vn=[5,17,18,19,22,24,27,29,30,31,32,34,35,80,82,89,90,91,92,96,97,101,102,105,108],$Vo=[5,17,18,19,22,24,26,27,29,30,31,32,34,35,80,82,89,90,91,92,96,97,101,102,105,108],$Vp=[1,72],$Vq=[1,73],$Vr=[1,74],$Vs=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,63,65,67,69,71,72,74,75,76,77,79,80,82,83,85,86,87,91,92,96,97,101,102,105,108,109],$Vt=[2,94],$Vu=[1,88],$Vv=[1,89],$Vw=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,55,56,80,82,89,90,91,92,96,97,101,102,105,108,109],$Vx=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,59,61,63,65,67,69,71,72,74,75,76,77,79,80,82,83,85,86,87,89,90,91,92,96,97,101,102,105,109],$Vy=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,80,82,89,90,91,92,96,97,101,102,105,108,109],$Vz=[2,107],$VA=[1,96],$VB=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,80,82,89,90,91,92,96,97,101,102,105,108,109],$VC=[1,101],$VD=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,80,82,89,90,91,92,96,97,101,102,105,108,109],$VE=[1,104],$VF=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,63,80,82,89,90,91,92,96,97,101,102,105,108,109],$VG=[1,105],$VH=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,63,65,80,82,89,90,91,92,96,97,101,102,105,108,109],$VI=[1,106],$VJ=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,63,65,67,80,82,89,90,91,92,96,97,101,102,105,108,109],$VK=[1,107],$VL=[1,108],$VM=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,63,65,67,69,71,80,82,89,90,91,92,96,97,101,102,105,108,109],$VN=[1,109],$VO=[1,110],$VP=[1,111],$VQ=[1,112],$VR=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,63,65,67,69,71,72,74,75,76,80,82,89,90,91,92,96,97,101,102,105,108,109],$VS=[1,113],$VT=[1,114],$VU=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,63,65,67,69,71,72,74,75,76,77,79,89,90,91,92,96,97,101,102,105,108,109],$VV=[1,115],$VW=[1,116],$VX=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,63,65,67,69,71,72,74,75,76,77,79,80,82,89,90,91,92,96,97,101,102,105,108,109],$VY=[1,117],$VZ=[1,118],$V_=[1,119],$V$=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,63,65,67,69,71,72,74,75,76,77,79,80,82,83,85,86,89,90,91,92,96,97,101,102,105,108,109],$V01=[1,120],$V11=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,50,52,54,55,56,59,61,63,65,67,69,71,72,74,75,76,77,79,80,82,83,85,86,87,89,90,91,92,96,97,101,102,105,108,109],$V21=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,59,61,63,65,67,69,71,72,74,75,76,77,79,80,82,83,85,86,87,89,90,91,92,96,97,99,101,102,105,108,109],$V31=[1,163],$V41=[21,23,109],$V51=[1,184],$V61=[5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,56,80,82,89,90,91,92,96,97,101,102,105,108,109],$V71=[1,195],$V81=[21,23]; +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"functionDefinitionStatment":7,"templateDefinitionStatment":8,"ifStatment":9,"forStatment":10,"whileStatment":11,"doWhileStatment":12,"returnStatment":13,"block":14,"expressionStatment":15,"includeStatment":16,"function":17,"IDENTIFIER":18,"(":19,"identifierList":20,")":21,"template":22,",":23,"if":24,"expression":25,"else":26,"for":27,";":28,"while":29,"do":30,"return":31,"include":32,"STRING":33,"{":34,"}":35,"e17":36,"leftHandExpression":37,"=":38,"+=":39,"-=":40,"*=":41,"/=":42,"%=":43,"<<=":44,">>=":45,"&=":46,"|=":47,"^=":48,"<==":49,"==>":50,"<--":51,"-->":52,"e16":53,"===":54,"?":55,":":56,"rightArray":57,"e15":58,"||":59,"e14":60,"&&":61,"e13":62,"|":63,"e12":64,"^":65,"e11":66,"&":67,"e10":68,"==":69,"e9":70,"!=":71,"<=":72,"e7":73,">=":74,"<":75,">":76,"<<":77,"e6":78,">>":79,"+":80,"e5":81,"-":82,"*":83,"e4":84,"/":85,"%":86,"**":87,"e3":88,"++":89,"--":90,"!":91,"~":92,"e2":93,"functionCall":94,"e0":95,"DECNUMBER":96,"HEXNUMBER":97,"simpleLeftHandExpression":98,".":99,"declaration":100,"var":101,"signal":102,"input":103,"output":104,"component":105,"array":106,"expressionList":107,"[":108,"]":109,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",17:"function",18:"IDENTIFIER",19:"(",21:")",22:"template",23:",",24:"if",26:"else",27:"for",28:";",29:"while",30:"do",31:"return",32:"include",33:"STRING",34:"{",35:"}",38:"=",39:"+=",40:"-=",41:"*=",42:"/=",43:"%=",44:"<<=",45:">>=",46:"&=",47:"|=",48:"^=",49:"<==",50:"==>",51:"<--",52:"-->",54:"===",55:"?",56:":",59:"||",61:"&&",63:"|",65:"^",67:"&",69:"==",71:"!=",72:"<=",74:">=",75:"<",76:">",77:"<<",79:">>",80:"+",82:"-",83:"*",85:"/",86:"%",87:"**",89:"++",90:"--",91:"!",92:"~",96:"DECNUMBER",97:"HEXNUMBER",99:".",101:"var",102:"signal",103:"input",104:"output",105:"component",108:"[",109:"]"}, +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,6],[7,5],[8,6],[8,5],[20,3],[20,1],[9,7],[9,5],[10,9],[11,5],[12,6],[13,3],[13,2],[16,3],[16,2],[14,3],[15,2],[15,1],[25,1],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,5],[36,1],[53,1],[53,1],[58,3],[58,1],[60,3],[60,1],[62,3],[62,1],[64,3],[64,1],[66,3],[66,1],[68,3],[68,3],[68,1],[70,3],[70,3],[70,3],[70,3],[70,1],[73,3],[73,3],[73,1],[78,3],[78,3],[78,1],[81,3],[81,3],[81,3],[81,1],[84,3],[84,1],[88,2],[88,2],[88,2],[88,2],[88,2],[88,2],[88,1],[93,2],[93,2],[93,1],[93,1],[95,1],[95,1],[95,1],[95,3],[37,3],[37,1],[37,1],[100,2],[100,2],[100,3],[100,3],[100,2],[98,2],[98,1],[94,4],[94,3],[107,3],[107,1],[57,1],[106,3]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 1: + +// console.log(JSON.stringify($$[$0-1], null, 1)); + this.$ = { type: "BLOCK", statements: $$[$0-1].statments }; + setLines(this.$, _$[$0-1]); + return this.$ + +break; +case 2: + + $$[$0-1].statments.push($$[$0]); + setLines($$[$0-1], _$[$0-1], _$[$0]); + +break; +case 3: + + this.$ = { type: "STATMENTLIST", statments: [$$[$0]] }; + setLines(this.$, _$[$0]); + +break; +case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 31: case 32: case 60: case 62: case 76: case 80: case 82: case 89: case 92: case 93: case 112: + + this.$ = $$[$0]; + +break; +case 14: + + this.$ = { type: "FUNCTIONDEF", name: $$[$0-4], params: $$[$0-2].identifiers, block: $$[$0]}; + setLines(this.$, _$[$0-5], _$[$0]); + +break; +case 15: + + this.$ = { type: "FUNCTIONDEF", name: $$[$0-3], params: [], block: $$[$0] }; + setLines(this.$, _$[$0-4], _$[$0]); + +break; +case 16: + + this.$ = { type: "TEMPLATEDEF", name: $$[$0-4], params: $$[$0-2].identifiers, block: $$[$0] }; + setLines(this.$, _$[$0-5], _$[$0]); + +break; +case 17: + + this.$ = { type: "TEMPLATEDEF", name: $$[$0-3], params: [], block: $$[$0] }; + setLines(this.$, _$[$0-4], _$[$0]); + +break; +case 18: + + $$[$0-2].identifiers.push($$[$0]); + setLines($$[$0-2], _$[$0-2], _$[$0]); + +break; +case 19: + + this.$ = { type: "IDENTIFIERLIST", identifiers: [$$[$0]] }; + setLines(this.$, _$[$0]); + +break; +case 20: + + if ($$[$0-4].type == "NUMBER") { + this.$ = !$$[$0-4].value.eq(0) ? $$[$0-2] : $$[$0]; + } else { + this.$ = { type: "IF", condition: $$[$0-4], then: $$[$0-2], else: $$[$0] }; + } + setLines(this.$, _$[$0-6], _$[$0]); + +break; +case 21: + + if ($$[$0-2].type == "NUMBER") { + this.$ = !$$[$0-2].value.eq(0) ? $$[$0] : { type: "NUMBER", value: bigInt(0) }; + } else { + this.$ = { type: "IF", condition: $$[$0-2], then: $$[$0] }; + } + setLines(this.$, _$[$0-4], _$[$0]); + +break; +case 22: + + this.$ = { type: "FOR", init: $$[$0-6], condition: $$[$0-4], step: $$[$0-2], body: $$[$0] }; + setLines(this.$, _$[$0-8], _$[$0]); + +break; +case 23: + + this.$ = { type: "WHILE", condition: $$[$0-2], body: $$[$0] }; + setLines(this.$, _$[$0-4], _$[$0]); + +break; +case 24: + + this.$ = { type: "DOWHILE", condition: $$[$0-1], body: $$[$0-4] }; + setLines(this.$, _$[$0-5], _$[$0]); + +break; +case 25: + + this.$ = { type: "RETURN", value: $$[$0-1] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 26: + + this.$ = { type: "RETURN", value: $$[$0] } + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 27: + + this.$ = { type: "INCLUDE", file: $$[$0-1] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 28: + + this.$ = { type: "INCLUDE", file: $$[$0] } + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 29: + + this.$ = { type: "BLOCK", statements: $$[$0-1].statments }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 30: + + this.$ = $$[$0-1]; + +break; +case 33: + + this.$ = { type: "OP", op: "=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 34: + + this.$ = { type: "OP", op: "+=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 35: + + this.$ = { type: "OP", op: "-=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 36: + + this.$ = { type: "OP", op: "*=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 37: + + this.$ = { type: "OP", op: "/=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 38: + + this.$ = { type: "OP", op: "%=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 39: + + this.$ = { type: "OP", op: "<<=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 40: + + this.$ = { type: "OP", op: ">>=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 41: + + this.$ = { type: "OP", op: "&=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 42: + + this.$ = { type: "OP", op: "|=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 43: + + this.$ = { type: "OP", op: "^=", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 44: + + this.$ = { type: "OP", op: "<==", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 45: + + this.$ = { type: "OP", op: "<==", values: [$$[$0], $$[$0-2]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 46: + + this.$ = { type: "OP", op: "<--", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 47: + + this.$ = { type: "OP", op: "<--", values: [$$[$0], $$[$0-2]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 48: + + this.$ = { type: "OP", op: "===", values: [$$[$0-2], $$[$0]] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 49: + + if ($$[$0-4].type == "NUMBER") { + this.$ = !$$[$0-4].value.eq(0) ? $$[$0-2] : $$[$0]; + } else { + this.$ = { type: "OP", op: "?", values: [$$[$0-4], $$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-4], _$[$0]); + +break; +case 50: case 51: case 52: case 54: case 56: case 58: + + this.$ = $$[$0]; + +break; +case 53: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: !$$[$0-2].value.eq(0) || !$$[$0].value.eq(0) ? bigInt(1) : bigInt(0) }; + } else { + this.$ = { type: "OP", op: "||", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 55: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: !$$[$0-2].value.eq(0) && !$$[$0].value.eq(0) ? bigInt(1) : bigInt(0) }; + } else { + this.$ = { type: "OP", op: "&&", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 57: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.or($$[$0].value).and(__MASK__) }; + } else { + this.$ = { type: "OP", op: "|", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 59: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.or($$[$0].value).and(__MASK__) }; + } else { + this.$ = { type: "OP", op: "^", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 61: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.and($$[$0].value).and(__MASK__) }; + } else { + this.$ = { type: "OP", op: "&", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 63: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.equals($$[$0].value) ? bigInt(1) : bigInt(0) }; + } else { + this.$ = { type: "OP", op: "==", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 64: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.eq($$[$0].value) ? bigInt(0) : bigInt(1) }; + } else { + this.$ = { type: "OP", op: "!=", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 65: case 70: + + this.$ = $$[$0] + +break; +case 66: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.lesserOrEquals($$[$0].value) ? bigInt(1) : bigInt(0) }; + } else { + this.$ = { type: "OP", op: "<=", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 67: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.greaterOrEquals($$[$0].value) ? bigInt(1) : bigInt(0) }; + } else { + this.$ = { type: "OP", op: ">=", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 68: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.lesser($$[$0].value) ? bigInt(1) : bigInt(0) }; + } else { + this.$ = { type: "OP", op: "<", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 69: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.greater($$[$0].value) ? bigInt(1) : bigInt(0) }; + } else { + this.$ = { type: "OP", op: ">", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 71: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + let v = $$[$0].value.greater(256) ? 256 : $$[$0].value.value; + this.$ = { type: "NUMBER", value: $$[$0-2].value.shiftLeft(v).and(__MASK__) }; + } else { + this.$ = { type: "OP", op: "<<", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 72: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + let v = $$[$0].value.greater(256) ? 256 : $$[$0].value.value; + this.$ = {t1ype: "NUMBER", value: $$[$0-2].value.shiftRight(v).and(__MASK__) }; + } else { + this.$ = { type: "OP", op: ">>", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 73: + + this.$ = $$[$0]; + +break; +case 74: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: ($$[$0-2].value.plus($$[$0].value)).mod(__P__) }; + } else { + this.$ = { type: "OP", op: "+", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 75: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: ($$[$0-2].value.plus(__P__).minus($$[$0].value)).mod(__P__) }; + } else { + this.$ = { type: "OP", op: "-", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 77: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: ($$[$0-2].value.times($$[$0].value)).mod(__P__) }; + } else { + this.$ = { type: "OP", op: "*", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 78: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: ($$[$0-2].value.times($$[$0].value.modInv(__P__))).mod(__P__) }; + } else { + this.$ = { type: "OP", op: "/", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 79: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.mod($$[$0].value) }; + } else { + this.$ = { type: "OP", op: "%", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 81: + + if (($$[$0-2].type == "NUMBER") && ($$[$0].type == "NUMBER")) { + this.$ = { type: "NUMBER", value: $$[$0-2].value.modPow($$[$0].value, __P__) }; + } else { + this.$ = { type: "OP", op: "**", values: [$$[$0-2], $$[$0]] }; + } + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 83: + + this.$ = { type: "OP", op: "PLUSPLUSLEFT", values: [$$[$0]] }; + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 84: + + this.$ = { type: "OP", op: "MINUSMINUSLEFT", values: [$$[$0]] }; + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 85: + + this.$ = $$[$0]; + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 86: + + if ($$[$0].type == "NUMBER") { + this.$ = { type: "NUMBER", value: __P__.minus($$[$0].value).mod(__P__) }; + } else { + this.$ = { type: "OP", op: "UMINUS", values: [$$[$0]] }; + } + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 87: + + if ($$[$0].type == "NUMBER") { + this.$ = { type: "NUMBER", value: $$[$0].value.eq(0) ? bigInt(1) : bigInt(0) }; + } else { + this.$ = { type: "OP", op: "!", values: [$$[$0]] }; + } + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 88: + + if ($$[$0].type == "NUMBER") { + this.$ = { type: "NUMBER", value: $$[$0].value.xor(__MASK__) }; + } else { + this.$ = { type: "OP", op: "~", values: [$$[$0]] }; + } + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 90: + + this.$ = {type: "OP", op: "PLUSPLUSRIGHT", values: [$$[$0-1]] }; + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 91: + + this.$ = {type: "OP", op: "MINUSMINUSRIGHT", values: [$$[$0-1]] }; + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 94: case 99: case 100: + + this.$ = $$[$0] + +break; +case 95: + + this.$ = {type: "NUMBER", value: bigInt($$[$0]).mod(__P__) } + setLines(this.$, _$[$0]); + +break; +case 96: + + this.$ = {type: "NUMBER", value: bigInt($$[$0].substr(2).toUpperCase(), 16).mod(__P__) } + setLines(this.$, _$[$0]); + +break; +case 97: + + this.$ = $$[$0-1]; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 98: + + this.$ = {type: "PIN", component: $$[$0-2], pin: $$[$0] }; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 101: + + this.$ = {type: "DECLARE", declareType: "VARIABLE", name: $$[$0]} + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 102: + + this.$ = {type: "DECLARE", declareType: "SIGNAL", name: $$[$0]} + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 103: + + this.$ = {type: "DECLARE", declareType: "SIGNALIN", name: $$[$0]}; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 104: + + this.$ = {type: "DECLARE", declareType: "SIGNALOUT", name: $$[$0]}; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 105: + + this.$ = {type: "DECLARE", declareType: "COMPONENT", name: $$[$0]} + setLines(this.$, _$[$0-1], _$[$0]); + +break; +case 106: + + for (let i=0; i< $$[$0].values.length; i++) { + $$[$0-1].selectors.push($$[$0].values[i]); + } + setLines($$[$0-1], _$[$0-1], _$[$0]); + +break; +case 107: + + this.$ = {type: "VARIABLE", name: $$[$0] , selectors: []}; + setLines(this.$, _$[$0]); + +break; +case 108: + + this.$ = {type: "FUNCTIONCALL", name: $$[$0-3], params: $$[$0-1].expressions} + setLines(this.$, _$[$0-3], _$[$0]); + +break; +case 109: + + this.$ = {type: "FUNCTIONCALL", name: $$[$0-2], params: []} + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 110: + + $$[$0-2].expressions.push($$[$0]); + setLines(this.$, _$[$0-2], _$[$0]); + +break; +case 111: + + this.$ = {type: "EXPRESSIONLST", expressions: [$$[$0]]}; + setLines(this.$, _$[$0]); + +break; +case 113: + + this.$ = { type: "ARRAY", values: $$[$0-1].expressions}; + setLines(this.$, _$[$0-2], _$[$0]); + +break; +} +}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:10,14:11,15:12,16:13,17:$V0,18:$V1,19:$V2,22:$V3,24:$V4,25:22,27:$V5,29:$V6,30:$V7,31:$V8,32:$V9,34:$Va,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{1:[3]},{5:[1,60],6:61,7:4,8:5,9:6,10:7,11:8,12:9,13:10,14:11,15:12,16:13,17:$V0,18:$V1,19:$V2,22:$V3,24:$V4,25:22,27:$V5,29:$V6,30:$V7,31:$V8,32:$V9,34:$Va,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},o($Vn,[2,3]),o($Vo,[2,4]),o($Vo,[2,5]),o($Vo,[2,6]),o($Vo,[2,7]),o($Vo,[2,8]),o($Vo,[2,9]),o($Vo,[2,10]),o($Vo,[2,11]),o($Vo,[2,12]),o($Vo,[2,13]),{18:[1,62]},{18:[1,63]},{19:[1,64]},{19:[1,65]},{19:[1,66]},{6:67,7:4,8:5,9:6,10:7,11:8,12:9,13:10,14:11,15:12,16:13,17:$V0,18:$V1,19:$V2,22:$V3,24:$V4,25:22,27:$V5,29:$V6,30:$V7,31:$V8,32:$V9,34:$Va,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,25:68,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{4:69,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:10,14:11,15:12,16:13,17:$V0,18:$V1,19:$V2,22:$V3,24:$V4,25:22,27:$V5,29:$V6,30:$V7,31:$V8,32:$V9,34:$Va,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},o($Vo,[2,31],{28:[1,70]}),{33:[1,71]},o([5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,80,82,89,90,91,92,96,97,101,102,105,108,109],[2,32],{50:$Vp,52:$Vq,55:$Vr}),o($Vs,$Vt,{38:[1,75],39:[1,76],40:[1,77],41:[1,78],42:[1,79],43:[1,80],44:[1,81],45:[1,82],46:[1,83],47:[1,84],48:[1,85],49:[1,86],51:[1,87],89:$Vu,90:$Vv}),o($Vw,[2,50],{54:[1,90]}),o($Vx,[2,100],{106:92,99:[1,91],108:$Vm}),o([5,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,35,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,59,61,63,65,67,69,71,72,74,75,76,77,79,80,82,83,85,86,87,89,90,91,92,96,97,101,102,105,108,109],[2,99]),o($Vy,[2,51]),o($Vy,[2,52],{59:[1,93]}),o([5,17,18,21,22,23,24,26,27,28,29,30,31,32,34,35,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,59,61,63,65,67,69,71,72,74,75,76,77,79,80,82,83,85,86,87,89,90,91,92,96,97,99,101,102,105,108,109],$Vz,{19:[1,94]}),{18:$VA,98:95},{18:$VA,98:97,103:[1,98],104:[1,99]},{18:$VA,98:100},o($Vy,[2,112]),o($VB,[2,54],{61:$VC}),{18:$V1,19:$V2,25:103,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,107:102,108:$Vm},o($VD,[2,56],{63:$VE}),o($VF,[2,58],{65:$VG}),o($VH,[2,60],{67:$VI}),o($VJ,[2,62],{69:$VK,71:$VL}),o($VM,[2,65],{72:$VN,74:$VO,75:$VP,76:$VQ}),o($VR,[2,70],{77:$VS,79:$VT}),o($VU,[2,73],{80:$VV,82:$VW}),o($VX,[2,76],{83:$VY,85:$VZ,86:$V_}),o($V$,[2,80],{87:$V01}),o($V11,[2,82]),{18:$VA,37:121,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$VA,37:122,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,80:$Vb,82:$Vc,88:123,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,80:$Vb,82:$Vc,88:125,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,80:$Vb,82:$Vc,88:126,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,80:$Vb,82:$Vc,88:127,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},o($V11,[2,89]),o($V11,[2,92]),o($V11,[2,93]),o($V11,[2,95]),o($V11,[2,96]),{18:$V1,19:$V2,25:128,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{1:[2,1]},o($Vn,[2,2]),{19:[1,129]},{19:[1,130]},{18:$V1,19:$V2,25:131,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,25:132,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,25:133,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{29:[1,134]},o($Vo,[2,26],{28:[1,135]}),{6:61,7:4,8:5,9:6,10:7,11:8,12:9,13:10,14:11,15:12,16:13,17:$V0,18:$V1,19:$V2,22:$V3,24:$V4,25:22,27:$V5,29:$V6,30:$V7,31:$V8,32:$V9,34:$Va,35:[1,136],36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},o($Vo,[2,30]),o($Vo,[2,28],{28:[1,137]}),{18:$VA,37:138,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$VA,37:139,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,36:140,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:141,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:142,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:143,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:144,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:145,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:146,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:147,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:148,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:149,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:150,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:151,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:152,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:153,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},o($V11,[2,90]),o($V11,[2,91]),{18:$V1,19:$V2,36:154,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$VA,98:155},o($V21,[2,106]),{18:$V1,19:$V2,37:124,60:156,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,21:[1,158],25:103,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,107:157,108:$Vm},o($Vx,[2,101],{106:92,108:$Vm}),o($V21,$Vz),o($Vx,[2,102],{106:92,108:$Vm}),{18:$VA,98:159},{18:$VA,98:160},o($Vx,[2,105],{106:92,108:$Vm}),{18:$V1,19:$V2,37:124,62:161,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{23:$V31,109:[1,162]},o($V41,[2,111]),{18:$V1,19:$V2,37:124,64:164,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,66:165,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,68:166,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,70:167,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,70:168,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,73:169,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,73:170,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,73:171,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,73:172,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,78:173,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,78:174,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,80:$Vb,81:175,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,80:$Vb,81:176,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,80:$Vb,82:$Vc,84:177,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,80:$Vb,82:$Vc,84:178,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,80:$Vb,82:$Vc,84:179,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},{18:$V1,19:$V2,37:124,80:$Vb,82:$Vc,88:180,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl},o($V11,[2,83]),o($V11,[2,84]),o($V11,[2,85]),o($Vs,$Vt,{89:$Vu,90:$Vv}),o($V11,[2,86]),o($V11,[2,87]),o($V11,[2,88]),{21:[1,181]},{18:$V51,20:182,21:[1,183]},{18:$V51,20:185,21:[1,186]},{21:[1,187]},{28:[1,188]},{21:[1,189]},{19:[1,190]},o($Vo,[2,25]),o($Vo,[2,29]),o($Vo,[2,27]),o($Vw,[2,45]),o($Vw,[2,47]),{50:$Vp,52:$Vq,55:$Vr,56:[1,191]},o($V61,[2,33],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,34],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,35],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,36],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,37],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,38],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,39],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,40],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,41],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,42],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,43],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,44],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,46],{50:$Vp,52:$Vq,55:$Vr}),o($V61,[2,48],{50:$Vp,52:$Vq,55:$Vr}),o($Vx,[2,98],{106:92,108:$Vm}),o($VB,[2,53],{61:$VC}),{21:[1,192],23:$V31},o($V11,[2,109]),o($Vx,[2,103],{106:92,108:$Vm}),o($Vx,[2,104],{106:92,108:$Vm}),o($VD,[2,55],{63:$VE}),o($V21,[2,113]),{18:$V1,19:$V2,25:193,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},o($VF,[2,57],{65:$VG}),o($VH,[2,59],{67:$VI}),o($VJ,[2,61],{69:$VK,71:$VL}),o($VM,[2,63],{72:$VN,74:$VO,75:$VP,76:$VQ}),o($VM,[2,64],{72:$VN,74:$VO,75:$VP,76:$VQ}),o($VR,[2,66],{77:$VS,79:$VT}),o($VR,[2,67],{77:$VS,79:$VT}),o($VR,[2,68],{77:$VS,79:$VT}),o($VR,[2,69],{77:$VS,79:$VT}),o($VU,[2,71],{80:$VV,82:$VW}),o($VU,[2,72],{80:$VV,82:$VW}),o($VX,[2,74],{83:$VY,85:$VZ,86:$V_}),o($VX,[2,75],{83:$VY,85:$VZ,86:$V_}),o($V$,[2,77],{87:$V01}),o($V$,[2,78],{87:$V01}),o($V$,[2,79],{87:$V01}),o($V11,[2,81]),o($V11,[2,97]),{21:[1,194],23:$V71},{14:196,34:$Va},o($V81,[2,19]),{21:[1,197],23:$V71},{14:198,34:$Va},{6:199,7:4,8:5,9:6,10:7,11:8,12:9,13:10,14:11,15:12,16:13,17:$V0,18:$V1,19:$V2,22:$V3,24:$V4,25:22,27:$V5,29:$V6,30:$V7,31:$V8,32:$V9,34:$Va,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,25:200,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{6:201,7:4,8:5,9:6,10:7,11:8,12:9,13:10,14:11,15:12,16:13,17:$V0,18:$V1,19:$V2,22:$V3,24:$V4,25:22,27:$V5,29:$V6,30:$V7,31:$V8,32:$V9,34:$Va,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,25:202,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,36:203,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},o($V11,[2,108]),o($V41,[2,110]),{14:204,34:$Va},{18:[1,205]},o($Vo,[2,15]),{14:206,34:$Va},o($Vo,[2,17]),o($Vn,[2,21],{26:[1,207]}),{28:[1,208]},o($Vo,[2,23]),{21:[1,209]},o($V61,[2,49],{50:$Vp,52:$Vq,55:$Vr}),o($Vo,[2,14]),o($V81,[2,18]),o($Vo,[2,16]),{6:210,7:4,8:5,9:6,10:7,11:8,12:9,13:10,14:11,15:12,16:13,17:$V0,18:$V1,19:$V2,22:$V3,24:$V4,25:22,27:$V5,29:$V6,30:$V7,31:$V8,32:$V9,34:$Va,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},{18:$V1,19:$V2,25:211,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},o($Vo,[2,24]),o($Vo,[2,20]),{21:[1,212]},{6:213,7:4,8:5,9:6,10:7,11:8,12:9,13:10,14:11,15:12,16:13,17:$V0,18:$V1,19:$V2,22:$V3,24:$V4,25:22,27:$V5,29:$V6,30:$V7,31:$V8,32:$V9,34:$Va,36:24,37:25,53:26,57:29,58:30,60:36,62:38,64:39,66:40,68:41,70:42,73:43,78:44,80:$Vb,81:45,82:$Vc,84:46,88:47,89:$Vd,90:$Ve,91:$Vf,92:$Vg,93:54,94:55,95:56,96:$Vh,97:$Vi,98:27,100:28,101:$Vj,102:$Vk,105:$Vl,106:35,108:$Vm},o($Vo,[2,22])], +defaultActions: {60:[2,1]}, +parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } +}, +parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + var ranges = lexer.options && lexer.options.ranges; + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + _token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + }; + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === 'undefined' || !action.length || !action[0]) { + var errStr = ''; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push('\'' + this.terminals_[p] + '\''); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + } else { + errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== 'undefined') { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; +}}; + +const bigInt = require('big-integer'); +const util = require('util'); +const __P__ = new bigInt("21888242871839275222246405745257275088696311157297823662689037894645226208583"); +const __MASK__ = new bigInt(2).pow(253).minus(1); + +function setLines(dst, first, last) { + last = last || first; + dst.first_line = first.first_line; + dst.first_column = first.first_column; + dst.last_line = last.last_line; + dst.last_column = last.last_column; +} + +/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function (match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin(condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState(condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0: /* skip whitespace */ +break; +case 1: /* console.log("MULTILINE COMMENT: "+yy_.yytext); */ +break; +case 2: /* console.log("SINGLE LINE COMMENT: "+yy_.yytext); */ +break; +case 3: return 101; +break; +case 4: return 102; +break; +case 5: return 103; +break; +case 6: return 104; +break; +case 7: return 'linearCombination'; +break; +case 8: return 105; +break; +case 9: return 22; +break; +case 10: return 17; +break; +case 11: return 24; +break; +case 12: return 26; +break; +case 13: return 27; +break; +case 14: return 29; +break; +case 15: return 30; +break; +case 16: return 31; +break; +case 17: return 32; +break; +case 18: return 97; +break; +case 19: return 96; +break; +case 20: return 18; +break; +case 21: yy_.yytext = yy_.yytext.slice(1,-1); return 33; +break; +case 22: return 50; +break; +case 23: return 49; +break; +case 24: return 52; +break; +case 25: return 51; +break; +case 26: return 54; +break; +case 27: return 45; +break; +case 28: return 44; +break; +case 29: return 61; +break; +case 30: return 59; +break; +case 31: return 69; +break; +case 32: return 72; +break; +case 33: return 74; +break; +case 34: return 71; +break; +case 35: return 79; +break; +case 36: return 77; +break; +case 37: return 87; +break; +case 38: return 89; +break; +case 39: return 90; +break; +case 40: return 39; +break; +case 41: return 40; +break; +case 42: return 41; +break; +case 43: return 42; +break; +case 44: return 43; +break; +case 45: return 47; +break; +case 46: return 46; +break; +case 47: return 48; +break; +case 48: return 38; +break; +case 49: return 80; +break; +case 50: return 82; +break; +case 51: return 83; +break; +case 52: return 85; +break; +case 53: return 86; +break; +case 54: return 65; +break; +case 55: return 67; +break; +case 56: return 63; +break; +case 57: return 91; +break; +case 58: return 75; +break; +case 59: return 76; +break; +case 60: return 91; +break; +case 61: return 55; +break; +case 62: return 56; +break; +case 63: return 19; +break; +case 64: return 21; +break; +case 65: return 108; +break; +case 66: return 109; +break; +case 67: return 34; +break; +case 68: return 35; +break; +case 69: return 28; +break; +case 70: return 23; +break; +case 71: return 99; +break; +case 72: return 5; +break; +case 73: console.log("INVALID: " + yy_.yytext); return 'INVALID' +break; +} +}, +rules: [/^(?:\s+)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)/,/^(?:\/\/.*)/,/^(?:var\b)/,/^(?:signal\b)/,/^(?:input\b)/,/^(?:output\b)/,/^(?:linearCombination\b)/,/^(?:component\b)/,/^(?:template\b)/,/^(?:function\b)/,/^(?:if\b)/,/^(?:else\b)/,/^(?:for\b)/,/^(?:while\b)/,/^(?:do\b)/,/^(?:return\b)/,/^(?:include\b)/,/^(?:0x[0-9A-Fa-f]*)/,/^(?:[0-9]+)/,/^(?:[a-zA-Z][a-zA-Z$_0-9]*)/,/^(?:"[^"]+")/,/^(?:==>)/,/^(?:<==)/,/^(?:-->)/,/^(?:<--)/,/^(?:===)/,/^(?:>>=)/,/^(?:<<=)/,/^(?:&&)/,/^(?:\|\|)/,/^(?:==)/,/^(?:<=)/,/^(?:>=)/,/^(?:!=)/,/^(?:>>)/,/^(?:<<)/,/^(?:\*\*)/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+=)/,/^(?:-=)/,/^(?:\*=)/,/^(?:\/=)/,/^(?:%=)/,/^(?:\|=)/,/^(?:&=)/,/^(?:\^=)/,/^(?:=)/,/^(?:\+)/,/^(?:-)/,/^(?:\*)/,/^(?:\/)/,/^(?:%)/,/^(?:\^)/,/^(?:&)/,/^(?:\|)/,/^(?:!)/,/^(?:<)/,/^(?:>)/,/^(?:!)/,/^(?:\?)/,/^(?::)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:;)/,/^(?:,)/,/^(?:\.)/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + + +if (typeof require !== 'undefined' && typeof exports !== 'undefined') { +exports.parser = jaz; +exports.Parser = jaz.Parser; +exports.parse = function () { return jaz.parse.apply(jaz, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if (typeof module !== 'undefined' && require.main === module) { + exports.main(process.argv.slice(1)); +} +} \ No newline at end of file diff --git a/jose.js b/jose.js new file mode 100644 index 0000000..14e9d10 --- /dev/null +++ b/jose.js @@ -0,0 +1,154 @@ +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.s1": { + "fullName": "main.s1", + "direction": "IN", + "component": "main", + "equivalence": "", + "alias": [ + "main.s1" + ], + "id": 1 + }, + "main.s2": { + "fullName": "main.s2", + "direction": "IN", + "component": "main", + "equivalence": "", + "alias": [ + "main.s2" + ], + "id": 2 + }, + "main.s3": { + "fullName": "main.s3", + "direction": "OUT", + "component": "main", + "equivalence": "", + "alias": [ + "main.s3" + ], + "id": 3 + } +}; + +circuit.components={ + "main": { + "signals": [ + "main.s1", + "main.s2", + "main.s3" + ], + "params": {}, + "template": "AND", + "inputSignals": 2 + } +}; + +circuit.signalConstrains=[ + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.s1": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.s2": "1" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": { + "main.s3": "1" + } + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.s1": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.s1": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.s2": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.s2": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + } +]; + +circuit.witnessNames=[ + [ + "one" + ], + [ + "main.s1" + ], + [ + "main.s2" + ], + [ + "main.s3" + ] +]; + +{ +} + +circuit.templates = {}; + +circuit.templates["AND"] = function(ctx) { + ctx.setSignal("s3", [], bigInt(ctx.getSignal("s1", [])).times(ctx.getSignal("s2", [])).mod(__P__)); + ctx.assert(ctx.getSignal("s3", []), bigInt(ctx.getSignal("s1", [])).times(ctx.getSignal("s2", [])).mod(__P__)); + ctx.assert(bigInt(ctx.getSignal("s1", [])).times(bigInt(ctx.getSignal("s1", [])).add(__P__).minus("1").mod(__P__)).mod(__P__), "0"); + ctx.assert(bigInt(ctx.getSignal("s2", [])).times(bigInt(ctx.getSignal("s2", [])).add(__P__).minus("1").mod(__P__)).mod(__P__), "0"); +} +; +circuit.functionParams={}; + + +circuit.functions = {}; diff --git a/jose.out b/jose.out new file mode 100644 index 0000000..e7ea6e3 --- /dev/null +++ b/jose.out @@ -0,0 +1 @@ +["1","0","1","0"] \ No newline at end of file diff --git a/multiplexer.js b/multiplexer.js new file mode 100644 index 0000000..881f1d0 --- /dev/null +++ b/multiplexer.js @@ -0,0 +1,2545 @@ +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")); +} +; diff --git a/outmx.js b/outmx.js new file mode 100644 index 0000000..c9d6f7b --- /dev/null +++ b/outmx.js @@ -0,0 +1 @@ +["1","100","101","102","103","104","105","106","107","110","111","112","113","114","115","116","117","120","121","122","123","124","125","126","127","1","110","111","112","113","114","115","116","117","0","1","0","1","0","110","0","0","111","0","0","112","0","0","113","0","0","114","0","0","115","0","0","116","0","0","117","0"] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2d63087 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1232 @@ +{ + "name": "jaz", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true + }, + "acorn-jsx": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", + "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", + "dev": true, + "requires": { + "acorn": "^5.0.3" + } + }, + "ajv": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "big-integer": { + "version": "1.6.32", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.32.tgz", + "integrity": "sha512-ljKJdR3wk9thHfLj4DtrNiOSTxvGFaMjWrG4pW75juXC4j7+XuKJVFdg4kgFMYp85PVkO05dFMj2dk2xVsH4xw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "^2.0.5", + "object-keys": "^1.0.8" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.0.1.tgz", + "integrity": "sha512-D5nG2rErquLUstgUaxJlWB5+gu+U/3VDY0fk/Iuq8y9CUFy/7Y6oF4N2cR1tV8knzQvciIbfqfohd359xTLIKQ==", + "dev": true, + "requires": { + "ajv": "^6.5.0", + "babel-code-frame": "^6.26.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.5.0", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^5.2.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.11.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.1.0", + "require-uncached": "^1.0.3", + "semver": "^5.5.0", + "string.prototype.matchall": "^2.0.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" + } + }, + "eslint-plugin-mocha": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-5.0.0.tgz", + "integrity": "sha512-mpRWWsjxRco2bY4qE5DL8SmGoVF0Onb6DZrbgOjFoNo1YNN299K2voIozd8Kce3qC/neWNr2XF27E1ZDMl1yZg==", + "dev": true, + "requires": { + "ramda": "^0.25.0" + } + }, + "eslint-scope": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "espree": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", + "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", + "dev": true, + "requires": { + "acorn": "^5.6.0", + "acorn-jsx": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "inquirer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "ramda": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz", + "integrity": "sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", + "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rxjs": { + "version": "5.5.11", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", + "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string.prototype.matchall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz", + "integrity": "sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.10.0", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "regexp.prototype.flags": "^1.2.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "table": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", + "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "dev": true, + "requires": { + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..457e478 --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "jaz", + "version": "0.0.1", + "description": "Language to generate logica circuits", + "main": "index.js", + "directories": { + "test": "test" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "zkSnarks", + "r1cs", + "circuits", + "zero", + "knowlage", + "ethereum", + "zcash" + ], + "author": "Jordi Baylina", + "license": "GPL-3.0", + "dependencies": { + "big-integer": "^1.6.32", + "optimist": "^0.6.1" + }, + "devDependencies": { + "eslint": "^5.0.1", + "eslint-plugin-mocha": "^5.0.0" + } +} diff --git a/parser/jaz.jison b/parser/jaz.jison new file mode 100644 index 0000000..fa43d21 --- /dev/null +++ b/parser/jaz.jison @@ -0,0 +1,892 @@ +/* description: Construct AST for jaz language. */ + +/* lexical grammar */ +%lex + +%% + +\s+ { /* skip whitespace */ } +\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/ { /* console.log("MULTILINE COMMENT: "+yytext); */ } +\/\/.* { /* console.log("SINGLE LINE COMMENT: "+yytext); */ } +var { return 'var'; } +signal { return 'signal'; } +input { return 'input'; } +output { return 'output'; } +linearCombination { return 'linearCombination'; } +component { return 'component'; } +template { return 'template'; } +function { return 'function'; } +if { return 'if'; } +else { return 'else'; } +for { return 'for'; } +while { return 'while'; } +do { return 'do'; } +return { return 'return'; } +include { return 'include'; } +0x[0-9A-Fa-f]* { return 'HEXNUMBER'; } +[0-9]+ { return 'DECNUMBER'; } +[a-zA-Z][a-zA-Z$_0-9]* { return 'IDENTIFIER'; } +\"[^"]+\" { yytext = yytext.slice(1,-1); return 'STRING'; } +\=\=\> { return '==>'; } +\<\=\= { return '<=='; } +\-\-\> { return '-->'; } +\<\-\- { return '<--'; } +\=\=\= { return '==='; } +\>\>\= { return '>>='; } +\<\<\= { return '<<='; } +\&\& { return '&&'; } +\|\| { return '||'; } +\=\= { return '=='; } +\<\= { return '<='; } +\>\= { return '>='; } +\!\= { return '!='; } +\>\> { return '>>'; } +\<\< { return '<<'; } +\*\* { return '**'; } +\+\+ { return '++'; } +\-\- { return '--'; } +\+\= { return '+='; } +\-\= { return '-='; } +\*\= { return '*='; } +\/\= { return '/='; } +\%\= { return '%='; } +\|\= { return '|='; } +\&\= { return '&='; } +\^\= { return '^='; } +\= { return '='; } +\+ { return '+'; } +\- { return '-'; } +\* { return '*'; } +\/ { return '/'; } +\% { return '%'; } +\^ { return '^'; } +\& { return '&'; } +\| { return '|'; } +\! { return '!'; } +\< { return '<'; } +\> { return '>'; } +\! { return '!'; } +\? { return '?'; } +\: { return ':'; } +\( { return '('; } +\) { return ')'; } +\[ { return '['; } +\] { return ']'; } +\{ { return '{'; } +\} { return '}'; } +\; { return ';'; } +\, { return ','; } +\. { return '.'; } +<> { return 'EOF'; } +. { console.log("INVALID: " + yytext); return 'INVALID'} + +/lex + +%left ';' +%right 'if' 'else' +%left EMPTY +%left IDLIST +%left ',' +%right '?' ':' TERCOND '=' '+=' '-=' '*=' '/=' '%=' '>>=' '<<=' '&=' '|=' '^=' '<==' '==>' '===' '<--' '-->' +%left '||' +%left '&&' +%left '|' +%left '^' +%left '&' +%left '==' '!=' +%left '<=' '>=' '<' '>' +%left '<<' '>>' + +%left '+' '-' +%left '*' '/' '%' +%left '**' +%right '++' '--' UMINUS UPLUS '!' '~' +%left '.' +%left DECL +%left PLUSPLUSRIGHT MINUSMINUSRIGHT '[' ']' '(' ')' +%left HIGH + + + +%{ +const bigInt = require('big-integer'); +const util = require('util'); +const __P__ = new bigInt("21888242871839275222246405745257275088548364400416034343698204186575808495617"); +const __MASK__ = new bigInt(2).pow(253).minus(1); + +function setLines(dst, first, last) { + last = last || first; + dst.first_line = first.first_line; + dst.first_column = first.first_column; + dst.last_line = last.last_line; + dst.last_column = last.last_column; +} + +%} + +%start allStatments + +%% /* language grammar */ + + +allStatments + : statmentList EOF + { +// console.log(JSON.stringify($1, null, 1)); + $$ = { type: "BLOCK", statements: $1.statments }; + setLines($$, @1); + return $$ + } + ; + +statmentList + : statmentList statment + { + $1.statments.push($2); + setLines($1, @1, @2); + } + | statment + { + $$ = { type: "STATMENTLIST", statments: [$1] }; + setLines($$, @1); + } + ; + +statment + : functionDefinitionStatment + { + $$ = $1; + } + | templateDefinitionStatment + { + $$ = $1; + } + | ifStatment + { + $$ = $1; + } + | forStatment + { + $$ = $1; + } + | whileStatment + { + $$ = $1; + } + | doWhileStatment + { + $$ = $1; + } + | returnStatment + { + $$ = $1; + } + | block + { + $$ = $1; + } + | expressionStatment + { + $$ = $1; + } + | includeStatment + { + $$ = $1; + } + ; + + +functionDefinitionStatment + : 'function' IDENTIFIER '(' identifierList ')' block + { + $$ = { type: "FUNCTIONDEF", name: $2, params: $4.identifiers, block: $6}; + setLines($$, @1, @6); + } + | 'function' IDENTIFIER '(' ')' block + { + $$ = { type: "FUNCTIONDEF", name: $2, params: [], block: $5 }; + setLines($$, @1, @5); + } + ; + +templateDefinitionStatment + : 'template' IDENTIFIER '(' identifierList ')' block + { + $$ = { type: "TEMPLATEDEF", name: $2, params: $4.identifiers, block: $6 }; + setLines($$, @1, @6); + } + | 'template' IDENTIFIER '(' ')' block + { + $$ = { type: "TEMPLATEDEF", name: $2, params: [], block: $5 }; + setLines($$, @1, @5); + } + ; + + +identifierList + : identifierList ',' IDENTIFIER + { + $1.identifiers.push($3); + setLines($1, @1, @3); + } + | IDENTIFIER %prec EMPTY + { + $$ = { type: "IDENTIFIERLIST", identifiers: [$1] }; + setLines($$, @1); + } + ; + +ifStatment + : 'if' '(' expression ')' statment 'else' statment + { + if ($3.type == "NUMBER") { + $$ = !$3.value.eq(0) ? $5 : $7; + } else { + $$ = { type: "IF", condition: $3, then: $5, else: $7 }; + } + setLines($$, @1, @7); + } + | 'if' '(' expression ')' statment + { + if ($3.type == "NUMBER") { + $$ = !$3.value.eq(0) ? $5 : { type: "NUMBER", value: bigInt(0) }; + } else { + $$ = { type: "IF", condition: $3, then: $5 }; + } + setLines($$, @1, @5); + } + ; + +forStatment + : 'for' '(' expression ';' expression ';' expression ')' statment + { + $$ = { type: "FOR", init: $3, condition: $5, step: $7, body: $9 }; + setLines($$, @1, @9); + } + ; + +whileStatment + : 'while' '(' expression ')' statment + { + $$ = { type: "WHILE", condition: $3, body: $5 }; + setLines($$, @1, @5); + } + ; + +doWhileStatment + : 'do' statment 'while' '(' expression ')' + { + $$ = { type: "DOWHILE", condition: $5, body: $2 }; + setLines($$, @1, @6); + } + ; + +returnStatment + : 'return' expression ';' + { + $$ = { type: "RETURN", value: $2 }; + setLines($$, @1, @3); + } + | 'return' expression %prec ';' + { + $$ = { type: "RETURN", value: $2 } + setLines($$, @1, @2); + } + ; + +includeStatment + : 'include' STRING ';' + { + $$ = { type: "INCLUDE", file: $2 }; + setLines($$, @1, @3); + } + | 'include' STRING %prec ';' + { + $$ = { type: "INCLUDE", file: $2 } + setLines($$, @1, @2); + } + ; + +block + : '{' statmentList '}' + { + $$ = { type: "BLOCK", statements: $2.statments }; + setLines($$, @1, @3); + } + ; + +expressionStatment + : expression ';' %prec ';' + { + $$ = $1; + } + | expression %prec ';' + { + $$ = $1; + } + ; + +expression + : e17 %prec EMPTY + { + $$ = $1; + } + ; + +e17 + : leftHandExpression '=' e17 + { + $$ = { type: "OP", op: "=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '+=' e17 + { + $$ = { type: "OP", op: "+=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '-=' e17 + { + $$ = { type: "OP", op: "-=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '*=' e17 + { + $$ = { type: "OP", op: "*=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '/=' e17 + { + $$ = { type: "OP", op: "/=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '%=' e17 + { + $$ = { type: "OP", op: "%=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '<<=' e17 + { + $$ = { type: "OP", op: "<<=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '>>=' e17 + { + $$ = { type: "OP", op: ">>=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '&=' e17 + { + $$ = { type: "OP", op: "&=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '|=' e17 + { + $$ = { type: "OP", op: "|=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '^=' e17 + { + $$ = { type: "OP", op: "^=", values: [$1, $3] }; + setLines($$, @1, @3); + } + | leftHandExpression '<==' e17 + { + $$ = { type: "OP", op: "<==", values: [$1, $3] }; + setLines($$, @1, @3); + } + | e17 '==>' leftHandExpression + { + $$ = { type: "OP", op: "<==", values: [$3, $1] }; + setLines($$, @1, @3); + } + | leftHandExpression '<--' e17 + { + $$ = { type: "OP", op: "<--", values: [$1, $3] }; + setLines($$, @1, @3); + } + | e17 '-->' leftHandExpression + { + $$ = { type: "OP", op: "<--", values: [$3, $1] }; + setLines($$, @1, @3); + } + | e16 '===' e17 + { + $$ = { type: "OP", op: "===", values: [$1, $3] }; + setLines($$, @1, @3); + } + | e17 '?' e17 ':' e17 %prec TERCOND + { + if ($1.type == "NUMBER") { + $$ = !$1.value.eq(0) ? $3 : $5; + } else { + $$ = { type: "OP", op: "?", values: [$1, $3, $5] }; + } + setLines($$, @1, @5); + } + | e16 %prec EMPTY + { + $$ = $1; + } + ; + +e16 + : rightArray + { + $$ = $1; + } + | e15 %prec EMPTY + { + $$ = $1; + } + ; + +e15 + : e15 '||' e14 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: !$1.value.eq(0) || !$3.value.eq(0) ? bigInt(1) : bigInt(0) }; + } else { + $$ = { type: "OP", op: "||", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e14 %prec EMPTY + { + $$ = $1; + } + ; + +e14 + : e14 '&&' e13 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: !$1.value.eq(0) && !$3.value.eq(0) ? bigInt(1) : bigInt(0) }; + } else { + $$ = { type: "OP", op: "&&", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e13 %prec EMPTY + { + $$ = $1; + } + ; + +e13 + : e13 '|' e12 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.or($3.value).and(__MASK__) }; + } else { + $$ = { type: "OP", op: "|", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e12 %prec EMPTY + { + $$ = $1; + } + ; + + +e12 + : e12 '^' e11 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.or($3.value).and(__MASK__) }; + } else { + $$ = { type: "OP", op: "^", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e11 %prec EMPTY + { + $$ = $1; + } + ; + +e11 + : e11 '&' e10 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.and($3.value).and(__MASK__) }; + } else { + $$ = { type: "OP", op: "&", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e10 %prec EMPTY + { + $$ = $1; + } + ; + + + + +e10 + : e10 '==' e9 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.equals($3.value) ? bigInt(1) : bigInt(0) }; + } else { + $$ = { type: "OP", op: "==", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e10 '!=' e9 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.eq($3.value) ? bigInt(0) : bigInt(1) }; + } else { + $$ = { type: "OP", op: "!=", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e9 %prec EMPTY + { + $$ = $1 + } + ; + +e9 + : e9 '<=' e7 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.lesserOrEquals($3.value) ? bigInt(1) : bigInt(0) }; + } else { + $$ = { type: "OP", op: "<=", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e9 '>=' e7 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.greaterOrEquals($3.value) ? bigInt(1) : bigInt(0) }; + } else { + $$ = { type: "OP", op: ">=", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e9 '<' e7 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.lesser($3.value) ? bigInt(1) : bigInt(0) }; + } else { + $$ = { type: "OP", op: "<", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e9 '>' e7 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.greater($3.value) ? bigInt(1) : bigInt(0) }; + } else { + $$ = { type: "OP", op: ">", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e7 %prec EMPTY + { + $$ = $1 + } + ; + +e7 + : e7 '<<' e6 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + let v = $3.value.greater(256) ? 256 : $3.value.value; + $$ = { type: "NUMBER", value: $1.value.shiftLeft(v).and(__MASK__) }; + } else { + $$ = { type: "OP", op: "<<", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e7 '>>' e6 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + let v = $3.value.greater(256) ? 256 : $3.value.value; + $$ = {t1ype: "NUMBER", value: $1.value.shiftRight(v).and(__MASK__) }; + } else { + $$ = { type: "OP", op: ">>", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e6 %prec EMPTY + { + $$ = $1; + } + ; + +e6 + : e6 '+' e5 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: ($1.value.plus($3.value)).mod(__P__) }; + } else { + $$ = { type: "OP", op: "+", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e6 '-' e5 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: ($1.value.plus(__P__).minus($3.value)).mod(__P__) }; + } else { + $$ = { type: "OP", op: "-", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e5 %prec EMPTY + { + $$ = $1; + } + ; + + +e5 + : e5 '*' e4 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: ($1.value.times($3.value)).mod(__P__) }; + } else { + $$ = { type: "OP", op: "*", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e5 '/' e4 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: ($1.value.times($3.value.modInv(__P__))).mod(__P__) }; + } else { + $$ = { type: "OP", op: "/", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e5 '%' e4 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.mod($3.value) }; + } else { + $$ = { type: "OP", op: "%", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e4 %prec EMPTY + { + $$ = $1; + } + ; + +e4 + : e4 '**' e3 + { + if (($1.type == "NUMBER") && ($3.type == "NUMBER")) { + $$ = { type: "NUMBER", value: $1.value.modPow($3.value, __P__) }; + } else { + $$ = { type: "OP", op: "**", values: [$1, $3] }; + } + setLines($$, @1, @3); + } + | e3 %prec EMPTY + { + $$ = $1; + } + ; + + +e3 + : '++' leftHandExpression + { + $$ = { type: "OP", op: "PLUSPLUSLEFT", values: [$2] }; + setLines($$, @1, @2); + } + | '--' leftHandExpression + { + $$ = { type: "OP", op: "MINUSMINUSLEFT", values: [$2] }; + setLines($$, @1, @2); + } + | '+' e3 %prec UPLUS + { + $$ = $2; + setLines($$, @1, @2); + } + | '-' e3 %prec UMINUS + { + if ($2.type == "NUMBER") { + $$ = { type: "NUMBER", value: __P__.minus($2.value).mod(__P__) }; + } else { + $$ = { type: "OP", op: "UMINUS", values: [$2] }; + } + setLines($$, @1, @2); + } + | '!' e3 + { + if ($2.type == "NUMBER") { + $$ = { type: "NUMBER", value: $2.value.eq(0) ? bigInt(1) : bigInt(0) }; + } else { + $$ = { type: "OP", op: "!", values: [$2] }; + } + setLines($$, @1, @2); + } + | '~' e3 + { + if ($2.type == "NUMBER") { + $$ = { type: "NUMBER", value: $2.value.xor(__MASK__) }; + } else { + $$ = { type: "OP", op: "~", values: [$2] }; + } + setLines($$, @1, @2); + } + | e2 %prec EMPTY + { + $$ = $1; + } + ; + +e2 + : leftHandExpression '++' %prec PLUSPLUSRIGHT + { + $$ = {type: "OP", op: "PLUSPLUSRIGHT", values: [$1] }; + setLines($$, @1, @2); + } + | leftHandExpression '--' %prec MINUSMINUSRIGHT + { + $$ = {type: "OP", op: "MINUSMINUSRIGHT", values: [$1] }; + setLines($$, @1, @2); + } + | functionCall + { + $$ = $1; + } + | e0 %prec EMPTY + { + $$ = $1; + } + ; + +e0 + : leftHandExpression %prec EMPTY + { + $$ = $1 + } + | DECNUMBER + { + $$ = {type: "NUMBER", value: bigInt($1).mod(__P__) } + setLines($$, @1); + } + | HEXNUMBER + { + $$ = {type: "NUMBER", value: bigInt($1.substr(2).toUpperCase(), 16).mod(__P__) } + setLines($$, @1); + } + | '(' expression ')' %prec EMPTY + { + $$ = $2; + setLines($$, @1, @3); + } + ; + +leftHandExpression + : simpleLeftHandExpression '.' simpleLeftHandExpression %prec EMPTY + { + $$ = {type: "PIN", component: $1, pin: $3 }; + setLines($$, @1, @3); + } + | declaration %prec DECL + { + $$ = $1 + } + | simpleLeftHandExpression %prec EMPTY + { + $$ = $1 + } + ; + + + +declaration + : 'var' simpleLeftHandExpression %prec DECL + { + $$ = {type: "DECLARE", declareType: "VARIABLE", name: $2} + setLines($$, @1, @2); + } + | 'signal' simpleLeftHandExpression %prec DECL + { + $$ = {type: "DECLARE", declareType: "SIGNAL", name: $2} + setLines($$, @1, @2); + } + | 'signal' 'input' simpleLeftHandExpression %prec DECL + { + $$ = {type: "DECLARE", declareType: "SIGNALIN", name: $3}; + setLines($$, @1, @3); + } + | 'signal' 'output' simpleLeftHandExpression %prec DECL + { + $$ = {type: "DECLARE", declareType: "SIGNALOUT", name: $3}; + setLines($$, @1, @3); + } + | 'component' simpleLeftHandExpression %prec DECL + { + $$ = {type: "DECLARE", declareType: "COMPONENT", name: $2} + setLines($$, @1, @2); + } + ; + +simpleLeftHandExpression + : simpleLeftHandExpression array + { + for (let i=0; i< $2.values.length; i++) { + $1.selectors.push($2.values[i]); + } + setLines($1, @1, @2); + } + | IDENTIFIER %prec EMPTY + { + $$ = {type: "VARIABLE", name: $1 , selectors: []}; + setLines($$, @1); + } + ; + +functionCall + : IDENTIFIER '(' expressionList ')' + { + $$ = {type: "FUNCTIONCALL", name: $1, params: $3.expressions} + setLines($$, @1, @4); + } + | IDENTIFIER '(' ')' + { + $$ = {type: "FUNCTIONCALL", name: $1, params: []} + setLines($$, @1, @3); + } + ; + +expressionList + : expressionList ',' expression + { + $1.expressions.push($3); + setLines($$, @1, @3); + } + | expression %prec ',' + { + $$ = {type: "EXPRESSIONLST", expressions: [$1]}; + setLines($$, @1); + } + ; + +rightArray + : array %prec EMPTY + { + $$ = $1; + } + ; + +array + : '[' expressionList ']' + { + $$ = { type: "ARRAY", values: $2.expressions}; + setLines($$, @1, @3); + } + ; + diff --git a/sha256.js b/sha256.js new file mode 100644 index 0000000..e21e2b1 --- /dev/null +++ b/sha256.js @@ -0,0 +1,10767 @@ +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.in": { + "fullName": "main.in", + "direction": "IN", + "component": "main", + "equivalence": "", + "alias": [ + "main.in" + ], + "id": 1 + }, + "main.out": { + "fullName": "main.out", + "direction": "OUT", + "component": "main", + "equivalence": "main.b2n.out", + "alias": [ + "main.out", + null + ], + "id": 2 + }, + "main.n2b.in": { + "fullName": "main.n2b.in", + "direction": "IN", + "component": "main.n2b", + "equivalence": "main.in", + "alias": [ + "main.n2b.in", + null + ], + "id": 1 + }, + "main.n2b.out[0]": { + "fullName": "main.n2b.out[0]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[0]" + ], + "id": 3 + }, + "main.n2b.out[1]": { + "fullName": "main.n2b.out[1]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[1]" + ], + "id": 4 + }, + "main.n2b.out[2]": { + "fullName": "main.n2b.out[2]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[2]" + ], + "id": 5 + }, + "main.n2b.out[3]": { + "fullName": "main.n2b.out[3]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[3]" + ], + "id": 6 + }, + "main.n2b.out[4]": { + "fullName": "main.n2b.out[4]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[4]" + ], + "id": 7 + }, + "main.n2b.out[5]": { + "fullName": "main.n2b.out[5]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[5]" + ], + "id": 8 + }, + "main.n2b.out[6]": { + "fullName": "main.n2b.out[6]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[6]" + ], + "id": 9 + }, + "main.n2b.out[7]": { + "fullName": "main.n2b.out[7]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[7]" + ], + "id": 10 + }, + "main.n2b.out[8]": { + "fullName": "main.n2b.out[8]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[8]" + ], + "id": 11 + }, + "main.n2b.out[9]": { + "fullName": "main.n2b.out[9]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[9]" + ], + "id": 12 + }, + "main.n2b.out[10]": { + "fullName": "main.n2b.out[10]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[10]" + ], + "id": 13 + }, + "main.n2b.out[11]": { + "fullName": "main.n2b.out[11]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[11]" + ], + "id": 14 + }, + "main.n2b.out[12]": { + "fullName": "main.n2b.out[12]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[12]" + ], + "id": 15 + }, + "main.n2b.out[13]": { + "fullName": "main.n2b.out[13]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[13]" + ], + "id": 16 + }, + "main.n2b.out[14]": { + "fullName": "main.n2b.out[14]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[14]" + ], + "id": 17 + }, + "main.n2b.out[15]": { + "fullName": "main.n2b.out[15]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[15]" + ], + "id": 18 + }, + "main.n2b.out[16]": { + "fullName": "main.n2b.out[16]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[16]" + ], + "id": 19 + }, + "main.n2b.out[17]": { + "fullName": "main.n2b.out[17]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[17]" + ], + "id": 20 + }, + "main.n2b.out[18]": { + "fullName": "main.n2b.out[18]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[18]" + ], + "id": 21 + }, + "main.n2b.out[19]": { + "fullName": "main.n2b.out[19]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[19]" + ], + "id": 22 + }, + "main.n2b.out[20]": { + "fullName": "main.n2b.out[20]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[20]" + ], + "id": 23 + }, + "main.n2b.out[21]": { + "fullName": "main.n2b.out[21]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[21]" + ], + "id": 24 + }, + "main.n2b.out[22]": { + "fullName": "main.n2b.out[22]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[22]" + ], + "id": 25 + }, + "main.n2b.out[23]": { + "fullName": "main.n2b.out[23]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[23]" + ], + "id": 26 + }, + "main.n2b.out[24]": { + "fullName": "main.n2b.out[24]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[24]" + ], + "id": 27 + }, + "main.n2b.out[25]": { + "fullName": "main.n2b.out[25]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[25]" + ], + "id": 28 + }, + "main.n2b.out[26]": { + "fullName": "main.n2b.out[26]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[26]" + ], + "id": 29 + }, + "main.n2b.out[27]": { + "fullName": "main.n2b.out[27]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[27]" + ], + "id": 30 + }, + "main.n2b.out[28]": { + "fullName": "main.n2b.out[28]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[28]" + ], + "id": 31 + }, + "main.n2b.out[29]": { + "fullName": "main.n2b.out[29]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[29]" + ], + "id": 32 + }, + "main.n2b.out[30]": { + "fullName": "main.n2b.out[30]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[30]" + ], + "id": 33 + }, + "main.n2b.out[31]": { + "fullName": "main.n2b.out[31]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[31]" + ], + "id": 34 + }, + "main.n2b.out[32]": { + "fullName": "main.n2b.out[32]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[32]" + ], + "id": 35 + }, + "main.n2b.out[33]": { + "fullName": "main.n2b.out[33]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[33]" + ], + "id": 36 + }, + "main.n2b.out[34]": { + "fullName": "main.n2b.out[34]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[34]" + ], + "id": 37 + }, + "main.n2b.out[35]": { + "fullName": "main.n2b.out[35]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[35]" + ], + "id": 38 + }, + "main.n2b.out[36]": { + "fullName": "main.n2b.out[36]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[36]" + ], + "id": 39 + }, + "main.n2b.out[37]": { + "fullName": "main.n2b.out[37]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[37]" + ], + "id": 40 + }, + "main.n2b.out[38]": { + "fullName": "main.n2b.out[38]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[38]" + ], + "id": 41 + }, + "main.n2b.out[39]": { + "fullName": "main.n2b.out[39]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[39]" + ], + "id": 42 + }, + "main.n2b.out[40]": { + "fullName": "main.n2b.out[40]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[40]" + ], + "id": 43 + }, + "main.n2b.out[41]": { + "fullName": "main.n2b.out[41]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[41]" + ], + "id": 44 + }, + "main.n2b.out[42]": { + "fullName": "main.n2b.out[42]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[42]" + ], + "id": 45 + }, + "main.n2b.out[43]": { + "fullName": "main.n2b.out[43]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[43]" + ], + "id": 46 + }, + "main.n2b.out[44]": { + "fullName": "main.n2b.out[44]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[44]" + ], + "id": 47 + }, + "main.n2b.out[45]": { + "fullName": "main.n2b.out[45]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[45]" + ], + "id": 48 + }, + "main.n2b.out[46]": { + "fullName": "main.n2b.out[46]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[46]" + ], + "id": 49 + }, + "main.n2b.out[47]": { + "fullName": "main.n2b.out[47]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[47]" + ], + "id": 50 + }, + "main.n2b.out[48]": { + "fullName": "main.n2b.out[48]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[48]" + ], + "id": 51 + }, + "main.n2b.out[49]": { + "fullName": "main.n2b.out[49]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[49]" + ], + "id": 52 + }, + "main.n2b.out[50]": { + "fullName": "main.n2b.out[50]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[50]" + ], + "id": 53 + }, + "main.n2b.out[51]": { + "fullName": "main.n2b.out[51]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[51]" + ], + "id": 54 + }, + "main.n2b.out[52]": { + "fullName": "main.n2b.out[52]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[52]" + ], + "id": 55 + }, + "main.n2b.out[53]": { + "fullName": "main.n2b.out[53]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[53]" + ], + "id": 56 + }, + "main.n2b.out[54]": { + "fullName": "main.n2b.out[54]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[54]" + ], + "id": 57 + }, + "main.n2b.out[55]": { + "fullName": "main.n2b.out[55]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[55]" + ], + "id": 58 + }, + "main.n2b.out[56]": { + "fullName": "main.n2b.out[56]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[56]" + ], + "id": 59 + }, + "main.n2b.out[57]": { + "fullName": "main.n2b.out[57]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[57]" + ], + "id": 60 + }, + "main.n2b.out[58]": { + "fullName": "main.n2b.out[58]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[58]" + ], + "id": 61 + }, + "main.n2b.out[59]": { + "fullName": "main.n2b.out[59]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[59]" + ], + "id": 62 + }, + "main.n2b.out[60]": { + "fullName": "main.n2b.out[60]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[60]" + ], + "id": 63 + }, + "main.n2b.out[61]": { + "fullName": "main.n2b.out[61]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[61]" + ], + "id": 64 + }, + "main.n2b.out[62]": { + "fullName": "main.n2b.out[62]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[62]" + ], + "id": 65 + }, + "main.n2b.out[63]": { + "fullName": "main.n2b.out[63]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[63]" + ], + "id": 66 + }, + "main.n2b.out[64]": { + "fullName": "main.n2b.out[64]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[64]" + ], + "id": 67 + }, + "main.n2b.out[65]": { + "fullName": "main.n2b.out[65]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[65]" + ], + "id": 68 + }, + "main.n2b.out[66]": { + "fullName": "main.n2b.out[66]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[66]" + ], + "id": 69 + }, + "main.n2b.out[67]": { + "fullName": "main.n2b.out[67]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[67]" + ], + "id": 70 + }, + "main.n2b.out[68]": { + "fullName": "main.n2b.out[68]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[68]" + ], + "id": 71 + }, + "main.n2b.out[69]": { + "fullName": "main.n2b.out[69]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[69]" + ], + "id": 72 + }, + "main.n2b.out[70]": { + "fullName": "main.n2b.out[70]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[70]" + ], + "id": 73 + }, + "main.n2b.out[71]": { + "fullName": "main.n2b.out[71]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[71]" + ], + "id": 74 + }, + "main.n2b.out[72]": { + "fullName": "main.n2b.out[72]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[72]" + ], + "id": 75 + }, + "main.n2b.out[73]": { + "fullName": "main.n2b.out[73]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[73]" + ], + "id": 76 + }, + "main.n2b.out[74]": { + "fullName": "main.n2b.out[74]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[74]" + ], + "id": 77 + }, + "main.n2b.out[75]": { + "fullName": "main.n2b.out[75]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[75]" + ], + "id": 78 + }, + "main.n2b.out[76]": { + "fullName": "main.n2b.out[76]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[76]" + ], + "id": 79 + }, + "main.n2b.out[77]": { + "fullName": "main.n2b.out[77]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[77]" + ], + "id": 80 + }, + "main.n2b.out[78]": { + "fullName": "main.n2b.out[78]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[78]" + ], + "id": 81 + }, + "main.n2b.out[79]": { + "fullName": "main.n2b.out[79]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[79]" + ], + "id": 82 + }, + "main.n2b.out[80]": { + "fullName": "main.n2b.out[80]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[80]" + ], + "id": 83 + }, + "main.n2b.out[81]": { + "fullName": "main.n2b.out[81]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[81]" + ], + "id": 84 + }, + "main.n2b.out[82]": { + "fullName": "main.n2b.out[82]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[82]" + ], + "id": 85 + }, + "main.n2b.out[83]": { + "fullName": "main.n2b.out[83]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[83]" + ], + "id": 86 + }, + "main.n2b.out[84]": { + "fullName": "main.n2b.out[84]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[84]" + ], + "id": 87 + }, + "main.n2b.out[85]": { + "fullName": "main.n2b.out[85]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[85]" + ], + "id": 88 + }, + "main.n2b.out[86]": { + "fullName": "main.n2b.out[86]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[86]" + ], + "id": 89 + }, + "main.n2b.out[87]": { + "fullName": "main.n2b.out[87]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[87]" + ], + "id": 90 + }, + "main.n2b.out[88]": { + "fullName": "main.n2b.out[88]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[88]" + ], + "id": 91 + }, + "main.n2b.out[89]": { + "fullName": "main.n2b.out[89]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[89]" + ], + "id": 92 + }, + "main.n2b.out[90]": { + "fullName": "main.n2b.out[90]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[90]" + ], + "id": 93 + }, + "main.n2b.out[91]": { + "fullName": "main.n2b.out[91]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[91]" + ], + "id": 94 + }, + "main.n2b.out[92]": { + "fullName": "main.n2b.out[92]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[92]" + ], + "id": 95 + }, + "main.n2b.out[93]": { + "fullName": "main.n2b.out[93]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[93]" + ], + "id": 96 + }, + "main.n2b.out[94]": { + "fullName": "main.n2b.out[94]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[94]" + ], + "id": 97 + }, + "main.n2b.out[95]": { + "fullName": "main.n2b.out[95]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[95]" + ], + "id": 98 + }, + "main.n2b.out[96]": { + "fullName": "main.n2b.out[96]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[96]" + ], + "id": 99 + }, + "main.n2b.out[97]": { + "fullName": "main.n2b.out[97]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[97]" + ], + "id": 100 + }, + "main.n2b.out[98]": { + "fullName": "main.n2b.out[98]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[98]" + ], + "id": 101 + }, + "main.n2b.out[99]": { + "fullName": "main.n2b.out[99]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[99]" + ], + "id": 102 + }, + "main.n2b.out[100]": { + "fullName": "main.n2b.out[100]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[100]" + ], + "id": 103 + }, + "main.n2b.out[101]": { + "fullName": "main.n2b.out[101]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[101]" + ], + "id": 104 + }, + "main.n2b.out[102]": { + "fullName": "main.n2b.out[102]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[102]" + ], + "id": 105 + }, + "main.n2b.out[103]": { + "fullName": "main.n2b.out[103]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[103]" + ], + "id": 106 + }, + "main.n2b.out[104]": { + "fullName": "main.n2b.out[104]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[104]" + ], + "id": 107 + }, + "main.n2b.out[105]": { + "fullName": "main.n2b.out[105]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[105]" + ], + "id": 108 + }, + "main.n2b.out[106]": { + "fullName": "main.n2b.out[106]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[106]" + ], + "id": 109 + }, + "main.n2b.out[107]": { + "fullName": "main.n2b.out[107]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[107]" + ], + "id": 110 + }, + "main.n2b.out[108]": { + "fullName": "main.n2b.out[108]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[108]" + ], + "id": 111 + }, + "main.n2b.out[109]": { + "fullName": "main.n2b.out[109]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[109]" + ], + "id": 112 + }, + "main.n2b.out[110]": { + "fullName": "main.n2b.out[110]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[110]" + ], + "id": 113 + }, + "main.n2b.out[111]": { + "fullName": "main.n2b.out[111]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[111]" + ], + "id": 114 + }, + "main.n2b.out[112]": { + "fullName": "main.n2b.out[112]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[112]" + ], + "id": 115 + }, + "main.n2b.out[113]": { + "fullName": "main.n2b.out[113]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[113]" + ], + "id": 116 + }, + "main.n2b.out[114]": { + "fullName": "main.n2b.out[114]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[114]" + ], + "id": 117 + }, + "main.n2b.out[115]": { + "fullName": "main.n2b.out[115]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[115]" + ], + "id": 118 + }, + "main.n2b.out[116]": { + "fullName": "main.n2b.out[116]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[116]" + ], + "id": 119 + }, + "main.n2b.out[117]": { + "fullName": "main.n2b.out[117]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[117]" + ], + "id": 120 + }, + "main.n2b.out[118]": { + "fullName": "main.n2b.out[118]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[118]" + ], + "id": 121 + }, + "main.n2b.out[119]": { + "fullName": "main.n2b.out[119]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[119]" + ], + "id": 122 + }, + "main.n2b.out[120]": { + "fullName": "main.n2b.out[120]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[120]" + ], + "id": 123 + }, + "main.n2b.out[121]": { + "fullName": "main.n2b.out[121]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[121]" + ], + "id": 124 + }, + "main.n2b.out[122]": { + "fullName": "main.n2b.out[122]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[122]" + ], + "id": 125 + }, + "main.n2b.out[123]": { + "fullName": "main.n2b.out[123]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[123]" + ], + "id": 126 + }, + "main.n2b.out[124]": { + "fullName": "main.n2b.out[124]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[124]" + ], + "id": 127 + }, + "main.n2b.out[125]": { + "fullName": "main.n2b.out[125]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[125]" + ], + "id": 128 + }, + "main.n2b.out[126]": { + "fullName": "main.n2b.out[126]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[126]" + ], + "id": 129 + }, + "main.n2b.out[127]": { + "fullName": "main.n2b.out[127]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[127]" + ], + "id": 130 + }, + "main.n2b.out[128]": { + "fullName": "main.n2b.out[128]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[128]" + ], + "id": 131 + }, + "main.n2b.out[129]": { + "fullName": "main.n2b.out[129]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[129]" + ], + "id": 132 + }, + "main.n2b.out[130]": { + "fullName": "main.n2b.out[130]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[130]" + ], + "id": 133 + }, + "main.n2b.out[131]": { + "fullName": "main.n2b.out[131]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[131]" + ], + "id": 134 + }, + "main.n2b.out[132]": { + "fullName": "main.n2b.out[132]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[132]" + ], + "id": 135 + }, + "main.n2b.out[133]": { + "fullName": "main.n2b.out[133]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[133]" + ], + "id": 136 + }, + "main.n2b.out[134]": { + "fullName": "main.n2b.out[134]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[134]" + ], + "id": 137 + }, + "main.n2b.out[135]": { + "fullName": "main.n2b.out[135]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[135]" + ], + "id": 138 + }, + "main.n2b.out[136]": { + "fullName": "main.n2b.out[136]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[136]" + ], + "id": 139 + }, + "main.n2b.out[137]": { + "fullName": "main.n2b.out[137]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[137]" + ], + "id": 140 + }, + "main.n2b.out[138]": { + "fullName": "main.n2b.out[138]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[138]" + ], + "id": 141 + }, + "main.n2b.out[139]": { + "fullName": "main.n2b.out[139]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[139]" + ], + "id": 142 + }, + "main.n2b.out[140]": { + "fullName": "main.n2b.out[140]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[140]" + ], + "id": 143 + }, + "main.n2b.out[141]": { + "fullName": "main.n2b.out[141]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[141]" + ], + "id": 144 + }, + "main.n2b.out[142]": { + "fullName": "main.n2b.out[142]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[142]" + ], + "id": 145 + }, + "main.n2b.out[143]": { + "fullName": "main.n2b.out[143]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[143]" + ], + "id": 146 + }, + "main.n2b.out[144]": { + "fullName": "main.n2b.out[144]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[144]" + ], + "id": 147 + }, + "main.n2b.out[145]": { + "fullName": "main.n2b.out[145]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[145]" + ], + "id": 148 + }, + "main.n2b.out[146]": { + "fullName": "main.n2b.out[146]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[146]" + ], + "id": 149 + }, + "main.n2b.out[147]": { + "fullName": "main.n2b.out[147]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[147]" + ], + "id": 150 + }, + "main.n2b.out[148]": { + "fullName": "main.n2b.out[148]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[148]" + ], + "id": 151 + }, + "main.n2b.out[149]": { + "fullName": "main.n2b.out[149]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[149]" + ], + "id": 152 + }, + "main.n2b.out[150]": { + "fullName": "main.n2b.out[150]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[150]" + ], + "id": 153 + }, + "main.n2b.out[151]": { + "fullName": "main.n2b.out[151]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[151]" + ], + "id": 154 + }, + "main.n2b.out[152]": { + "fullName": "main.n2b.out[152]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[152]" + ], + "id": 155 + }, + "main.n2b.out[153]": { + "fullName": "main.n2b.out[153]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[153]" + ], + "id": 156 + }, + "main.n2b.out[154]": { + "fullName": "main.n2b.out[154]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[154]" + ], + "id": 157 + }, + "main.n2b.out[155]": { + "fullName": "main.n2b.out[155]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[155]" + ], + "id": 158 + }, + "main.n2b.out[156]": { + "fullName": "main.n2b.out[156]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[156]" + ], + "id": 159 + }, + "main.n2b.out[157]": { + "fullName": "main.n2b.out[157]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[157]" + ], + "id": 160 + }, + "main.n2b.out[158]": { + "fullName": "main.n2b.out[158]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[158]" + ], + "id": 161 + }, + "main.n2b.out[159]": { + "fullName": "main.n2b.out[159]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[159]" + ], + "id": 162 + }, + "main.n2b.out[160]": { + "fullName": "main.n2b.out[160]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[160]" + ], + "id": 163 + }, + "main.n2b.out[161]": { + "fullName": "main.n2b.out[161]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[161]" + ], + "id": 164 + }, + "main.n2b.out[162]": { + "fullName": "main.n2b.out[162]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[162]" + ], + "id": 165 + }, + "main.n2b.out[163]": { + "fullName": "main.n2b.out[163]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[163]" + ], + "id": 166 + }, + "main.n2b.out[164]": { + "fullName": "main.n2b.out[164]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[164]" + ], + "id": 167 + }, + "main.n2b.out[165]": { + "fullName": "main.n2b.out[165]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[165]" + ], + "id": 168 + }, + "main.n2b.out[166]": { + "fullName": "main.n2b.out[166]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[166]" + ], + "id": 169 + }, + "main.n2b.out[167]": { + "fullName": "main.n2b.out[167]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[167]" + ], + "id": 170 + }, + "main.n2b.out[168]": { + "fullName": "main.n2b.out[168]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[168]" + ], + "id": 171 + }, + "main.n2b.out[169]": { + "fullName": "main.n2b.out[169]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[169]" + ], + "id": 172 + }, + "main.n2b.out[170]": { + "fullName": "main.n2b.out[170]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[170]" + ], + "id": 173 + }, + "main.n2b.out[171]": { + "fullName": "main.n2b.out[171]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[171]" + ], + "id": 174 + }, + "main.n2b.out[172]": { + "fullName": "main.n2b.out[172]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[172]" + ], + "id": 175 + }, + "main.n2b.out[173]": { + "fullName": "main.n2b.out[173]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[173]" + ], + "id": 176 + }, + "main.n2b.out[174]": { + "fullName": "main.n2b.out[174]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[174]" + ], + "id": 177 + }, + "main.n2b.out[175]": { + "fullName": "main.n2b.out[175]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[175]" + ], + "id": 178 + }, + "main.n2b.out[176]": { + "fullName": "main.n2b.out[176]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[176]" + ], + "id": 179 + }, + "main.n2b.out[177]": { + "fullName": "main.n2b.out[177]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[177]" + ], + "id": 180 + }, + "main.n2b.out[178]": { + "fullName": "main.n2b.out[178]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[178]" + ], + "id": 181 + }, + "main.n2b.out[179]": { + "fullName": "main.n2b.out[179]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[179]" + ], + "id": 182 + }, + "main.n2b.out[180]": { + "fullName": "main.n2b.out[180]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[180]" + ], + "id": 183 + }, + "main.n2b.out[181]": { + "fullName": "main.n2b.out[181]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[181]" + ], + "id": 184 + }, + "main.n2b.out[182]": { + "fullName": "main.n2b.out[182]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[182]" + ], + "id": 185 + }, + "main.n2b.out[183]": { + "fullName": "main.n2b.out[183]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[183]" + ], + "id": 186 + }, + "main.n2b.out[184]": { + "fullName": "main.n2b.out[184]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[184]" + ], + "id": 187 + }, + "main.n2b.out[185]": { + "fullName": "main.n2b.out[185]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[185]" + ], + "id": 188 + }, + "main.n2b.out[186]": { + "fullName": "main.n2b.out[186]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[186]" + ], + "id": 189 + }, + "main.n2b.out[187]": { + "fullName": "main.n2b.out[187]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[187]" + ], + "id": 190 + }, + "main.n2b.out[188]": { + "fullName": "main.n2b.out[188]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[188]" + ], + "id": 191 + }, + "main.n2b.out[189]": { + "fullName": "main.n2b.out[189]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[189]" + ], + "id": 192 + }, + "main.n2b.out[190]": { + "fullName": "main.n2b.out[190]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[190]" + ], + "id": 193 + }, + "main.n2b.out[191]": { + "fullName": "main.n2b.out[191]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[191]" + ], + "id": 194 + }, + "main.n2b.out[192]": { + "fullName": "main.n2b.out[192]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[192]" + ], + "id": 195 + }, + "main.n2b.out[193]": { + "fullName": "main.n2b.out[193]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[193]" + ], + "id": 196 + }, + "main.n2b.out[194]": { + "fullName": "main.n2b.out[194]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[194]" + ], + "id": 197 + }, + "main.n2b.out[195]": { + "fullName": "main.n2b.out[195]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[195]" + ], + "id": 198 + }, + "main.n2b.out[196]": { + "fullName": "main.n2b.out[196]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[196]" + ], + "id": 199 + }, + "main.n2b.out[197]": { + "fullName": "main.n2b.out[197]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[197]" + ], + "id": 200 + }, + "main.n2b.out[198]": { + "fullName": "main.n2b.out[198]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[198]" + ], + "id": 201 + }, + "main.n2b.out[199]": { + "fullName": "main.n2b.out[199]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[199]" + ], + "id": 202 + }, + "main.n2b.out[200]": { + "fullName": "main.n2b.out[200]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[200]" + ], + "id": 203 + }, + "main.n2b.out[201]": { + "fullName": "main.n2b.out[201]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[201]" + ], + "id": 204 + }, + "main.n2b.out[202]": { + "fullName": "main.n2b.out[202]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[202]" + ], + "id": 205 + }, + "main.n2b.out[203]": { + "fullName": "main.n2b.out[203]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[203]" + ], + "id": 206 + }, + "main.n2b.out[204]": { + "fullName": "main.n2b.out[204]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[204]" + ], + "id": 207 + }, + "main.n2b.out[205]": { + "fullName": "main.n2b.out[205]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[205]" + ], + "id": 208 + }, + "main.n2b.out[206]": { + "fullName": "main.n2b.out[206]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[206]" + ], + "id": 209 + }, + "main.n2b.out[207]": { + "fullName": "main.n2b.out[207]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[207]" + ], + "id": 210 + }, + "main.n2b.out[208]": { + "fullName": "main.n2b.out[208]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[208]" + ], + "id": 211 + }, + "main.n2b.out[209]": { + "fullName": "main.n2b.out[209]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[209]" + ], + "id": 212 + }, + "main.n2b.out[210]": { + "fullName": "main.n2b.out[210]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[210]" + ], + "id": 213 + }, + "main.n2b.out[211]": { + "fullName": "main.n2b.out[211]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[211]" + ], + "id": 214 + }, + "main.n2b.out[212]": { + "fullName": "main.n2b.out[212]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[212]" + ], + "id": 215 + }, + "main.n2b.out[213]": { + "fullName": "main.n2b.out[213]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[213]" + ], + "id": 216 + }, + "main.n2b.out[214]": { + "fullName": "main.n2b.out[214]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[214]" + ], + "id": 217 + }, + "main.n2b.out[215]": { + "fullName": "main.n2b.out[215]", + "direction": "OUT", + "component": "main.n2b", + "equivalence": "", + "alias": [ + "main.n2b.out[215]" + ], + "id": 218 + }, + "main.b2n.in[0]": { + "fullName": "main.b2n.in[0]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[0]", + "alias": [ + "main.b2n.in[0]", + null + ], + "id": 3 + }, + "main.b2n.in[1]": { + "fullName": "main.b2n.in[1]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[1]", + "alias": [ + "main.b2n.in[1]", + null + ], + "id": 4 + }, + "main.b2n.in[2]": { + "fullName": "main.b2n.in[2]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[2]", + "alias": [ + "main.b2n.in[2]", + null + ], + "id": 5 + }, + "main.b2n.in[3]": { + "fullName": "main.b2n.in[3]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[3]", + "alias": [ + "main.b2n.in[3]", + null + ], + "id": 6 + }, + "main.b2n.in[4]": { + "fullName": "main.b2n.in[4]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[4]", + "alias": [ + "main.b2n.in[4]", + null + ], + "id": 7 + }, + "main.b2n.in[5]": { + "fullName": "main.b2n.in[5]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[5]", + "alias": [ + "main.b2n.in[5]", + null + ], + "id": 8 + }, + "main.b2n.in[6]": { + "fullName": "main.b2n.in[6]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[6]", + "alias": [ + "main.b2n.in[6]", + null + ], + "id": 9 + }, + "main.b2n.in[7]": { + "fullName": "main.b2n.in[7]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[7]", + "alias": [ + "main.b2n.in[7]", + null + ], + "id": 10 + }, + "main.b2n.in[8]": { + "fullName": "main.b2n.in[8]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[8]", + "alias": [ + "main.b2n.in[8]", + null + ], + "id": 11 + }, + "main.b2n.in[9]": { + "fullName": "main.b2n.in[9]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[9]", + "alias": [ + "main.b2n.in[9]", + null + ], + "id": 12 + }, + "main.b2n.in[10]": { + "fullName": "main.b2n.in[10]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[10]", + "alias": [ + "main.b2n.in[10]", + null + ], + "id": 13 + }, + "main.b2n.in[11]": { + "fullName": "main.b2n.in[11]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[11]", + "alias": [ + "main.b2n.in[11]", + null + ], + "id": 14 + }, + "main.b2n.in[12]": { + "fullName": "main.b2n.in[12]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[12]", + "alias": [ + "main.b2n.in[12]", + null + ], + "id": 15 + }, + "main.b2n.in[13]": { + "fullName": "main.b2n.in[13]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[13]", + "alias": [ + "main.b2n.in[13]", + null + ], + "id": 16 + }, + "main.b2n.in[14]": { + "fullName": "main.b2n.in[14]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[14]", + "alias": [ + "main.b2n.in[14]", + null + ], + "id": 17 + }, + "main.b2n.in[15]": { + "fullName": "main.b2n.in[15]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[15]", + "alias": [ + "main.b2n.in[15]", + null + ], + "id": 18 + }, + "main.b2n.in[16]": { + "fullName": "main.b2n.in[16]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[16]", + "alias": [ + "main.b2n.in[16]", + null + ], + "id": 19 + }, + "main.b2n.in[17]": { + "fullName": "main.b2n.in[17]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[17]", + "alias": [ + "main.b2n.in[17]", + null + ], + "id": 20 + }, + "main.b2n.in[18]": { + "fullName": "main.b2n.in[18]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[18]", + "alias": [ + "main.b2n.in[18]", + null + ], + "id": 21 + }, + "main.b2n.in[19]": { + "fullName": "main.b2n.in[19]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[19]", + "alias": [ + "main.b2n.in[19]", + null + ], + "id": 22 + }, + "main.b2n.in[20]": { + "fullName": "main.b2n.in[20]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[20]", + "alias": [ + "main.b2n.in[20]", + null + ], + "id": 23 + }, + "main.b2n.in[21]": { + "fullName": "main.b2n.in[21]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[21]", + "alias": [ + "main.b2n.in[21]", + null + ], + "id": 24 + }, + "main.b2n.in[22]": { + "fullName": "main.b2n.in[22]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[22]", + "alias": [ + "main.b2n.in[22]", + null + ], + "id": 25 + }, + "main.b2n.in[23]": { + "fullName": "main.b2n.in[23]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[23]", + "alias": [ + "main.b2n.in[23]", + null + ], + "id": 26 + }, + "main.b2n.in[24]": { + "fullName": "main.b2n.in[24]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[24]", + "alias": [ + "main.b2n.in[24]", + null + ], + "id": 27 + }, + "main.b2n.in[25]": { + "fullName": "main.b2n.in[25]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[25]", + "alias": [ + "main.b2n.in[25]", + null + ], + "id": 28 + }, + "main.b2n.in[26]": { + "fullName": "main.b2n.in[26]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[26]", + "alias": [ + "main.b2n.in[26]", + null + ], + "id": 29 + }, + "main.b2n.in[27]": { + "fullName": "main.b2n.in[27]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[27]", + "alias": [ + "main.b2n.in[27]", + null + ], + "id": 30 + }, + "main.b2n.in[28]": { + "fullName": "main.b2n.in[28]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[28]", + "alias": [ + "main.b2n.in[28]", + null + ], + "id": 31 + }, + "main.b2n.in[29]": { + "fullName": "main.b2n.in[29]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[29]", + "alias": [ + "main.b2n.in[29]", + null + ], + "id": 32 + }, + "main.b2n.in[30]": { + "fullName": "main.b2n.in[30]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[30]", + "alias": [ + "main.b2n.in[30]", + null + ], + "id": 33 + }, + "main.b2n.in[31]": { + "fullName": "main.b2n.in[31]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[31]", + "alias": [ + "main.b2n.in[31]", + null + ], + "id": 34 + }, + "main.b2n.in[32]": { + "fullName": "main.b2n.in[32]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[32]", + "alias": [ + "main.b2n.in[32]", + null + ], + "id": 35 + }, + "main.b2n.in[33]": { + "fullName": "main.b2n.in[33]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[33]", + "alias": [ + "main.b2n.in[33]", + null + ], + "id": 36 + }, + "main.b2n.in[34]": { + "fullName": "main.b2n.in[34]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[34]", + "alias": [ + "main.b2n.in[34]", + null + ], + "id": 37 + }, + "main.b2n.in[35]": { + "fullName": "main.b2n.in[35]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[35]", + "alias": [ + "main.b2n.in[35]", + null + ], + "id": 38 + }, + "main.b2n.in[36]": { + "fullName": "main.b2n.in[36]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[36]", + "alias": [ + "main.b2n.in[36]", + null + ], + "id": 39 + }, + "main.b2n.in[37]": { + "fullName": "main.b2n.in[37]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[37]", + "alias": [ + "main.b2n.in[37]", + null + ], + "id": 40 + }, + "main.b2n.in[38]": { + "fullName": "main.b2n.in[38]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[38]", + "alias": [ + "main.b2n.in[38]", + null + ], + "id": 41 + }, + "main.b2n.in[39]": { + "fullName": "main.b2n.in[39]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[39]", + "alias": [ + "main.b2n.in[39]", + null + ], + "id": 42 + }, + "main.b2n.in[40]": { + "fullName": "main.b2n.in[40]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[40]", + "alias": [ + "main.b2n.in[40]", + null + ], + "id": 43 + }, + "main.b2n.in[41]": { + "fullName": "main.b2n.in[41]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[41]", + "alias": [ + "main.b2n.in[41]", + null + ], + "id": 44 + }, + "main.b2n.in[42]": { + "fullName": "main.b2n.in[42]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[42]", + "alias": [ + "main.b2n.in[42]", + null + ], + "id": 45 + }, + "main.b2n.in[43]": { + "fullName": "main.b2n.in[43]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[43]", + "alias": [ + "main.b2n.in[43]", + null + ], + "id": 46 + }, + "main.b2n.in[44]": { + "fullName": "main.b2n.in[44]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[44]", + "alias": [ + "main.b2n.in[44]", + null + ], + "id": 47 + }, + "main.b2n.in[45]": { + "fullName": "main.b2n.in[45]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[45]", + "alias": [ + "main.b2n.in[45]", + null + ], + "id": 48 + }, + "main.b2n.in[46]": { + "fullName": "main.b2n.in[46]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[46]", + "alias": [ + "main.b2n.in[46]", + null + ], + "id": 49 + }, + "main.b2n.in[47]": { + "fullName": "main.b2n.in[47]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[47]", + "alias": [ + "main.b2n.in[47]", + null + ], + "id": 50 + }, + "main.b2n.in[48]": { + "fullName": "main.b2n.in[48]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[48]", + "alias": [ + "main.b2n.in[48]", + null + ], + "id": 51 + }, + "main.b2n.in[49]": { + "fullName": "main.b2n.in[49]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[49]", + "alias": [ + "main.b2n.in[49]", + null + ], + "id": 52 + }, + "main.b2n.in[50]": { + "fullName": "main.b2n.in[50]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[50]", + "alias": [ + "main.b2n.in[50]", + null + ], + "id": 53 + }, + "main.b2n.in[51]": { + "fullName": "main.b2n.in[51]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[51]", + "alias": [ + "main.b2n.in[51]", + null + ], + "id": 54 + }, + "main.b2n.in[52]": { + "fullName": "main.b2n.in[52]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[52]", + "alias": [ + "main.b2n.in[52]", + null + ], + "id": 55 + }, + "main.b2n.in[53]": { + "fullName": "main.b2n.in[53]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[53]", + "alias": [ + "main.b2n.in[53]", + null + ], + "id": 56 + }, + "main.b2n.in[54]": { + "fullName": "main.b2n.in[54]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[54]", + "alias": [ + "main.b2n.in[54]", + null + ], + "id": 57 + }, + "main.b2n.in[55]": { + "fullName": "main.b2n.in[55]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[55]", + "alias": [ + "main.b2n.in[55]", + null + ], + "id": 58 + }, + "main.b2n.in[56]": { + "fullName": "main.b2n.in[56]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[56]", + "alias": [ + "main.b2n.in[56]", + null + ], + "id": 59 + }, + "main.b2n.in[57]": { + "fullName": "main.b2n.in[57]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[57]", + "alias": [ + "main.b2n.in[57]", + null + ], + "id": 60 + }, + "main.b2n.in[58]": { + "fullName": "main.b2n.in[58]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[58]", + "alias": [ + "main.b2n.in[58]", + null + ], + "id": 61 + }, + "main.b2n.in[59]": { + "fullName": "main.b2n.in[59]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[59]", + "alias": [ + "main.b2n.in[59]", + null + ], + "id": 62 + }, + "main.b2n.in[60]": { + "fullName": "main.b2n.in[60]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[60]", + "alias": [ + "main.b2n.in[60]", + null + ], + "id": 63 + }, + "main.b2n.in[61]": { + "fullName": "main.b2n.in[61]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[61]", + "alias": [ + "main.b2n.in[61]", + null + ], + "id": 64 + }, + "main.b2n.in[62]": { + "fullName": "main.b2n.in[62]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[62]", + "alias": [ + "main.b2n.in[62]", + null + ], + "id": 65 + }, + "main.b2n.in[63]": { + "fullName": "main.b2n.in[63]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[63]", + "alias": [ + "main.b2n.in[63]", + null + ], + "id": 66 + }, + "main.b2n.in[64]": { + "fullName": "main.b2n.in[64]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[64]", + "alias": [ + "main.b2n.in[64]", + null + ], + "id": 67 + }, + "main.b2n.in[65]": { + "fullName": "main.b2n.in[65]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[65]", + "alias": [ + "main.b2n.in[65]", + null + ], + "id": 68 + }, + "main.b2n.in[66]": { + "fullName": "main.b2n.in[66]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[66]", + "alias": [ + "main.b2n.in[66]", + null + ], + "id": 69 + }, + "main.b2n.in[67]": { + "fullName": "main.b2n.in[67]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[67]", + "alias": [ + "main.b2n.in[67]", + null + ], + "id": 70 + }, + "main.b2n.in[68]": { + "fullName": "main.b2n.in[68]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[68]", + "alias": [ + "main.b2n.in[68]", + null + ], + "id": 71 + }, + "main.b2n.in[69]": { + "fullName": "main.b2n.in[69]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[69]", + "alias": [ + "main.b2n.in[69]", + null + ], + "id": 72 + }, + "main.b2n.in[70]": { + "fullName": "main.b2n.in[70]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[70]", + "alias": [ + "main.b2n.in[70]", + null + ], + "id": 73 + }, + "main.b2n.in[71]": { + "fullName": "main.b2n.in[71]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[71]", + "alias": [ + "main.b2n.in[71]", + null + ], + "id": 74 + }, + "main.b2n.in[72]": { + "fullName": "main.b2n.in[72]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[72]", + "alias": [ + "main.b2n.in[72]", + null + ], + "id": 75 + }, + "main.b2n.in[73]": { + "fullName": "main.b2n.in[73]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[73]", + "alias": [ + "main.b2n.in[73]", + null + ], + "id": 76 + }, + "main.b2n.in[74]": { + "fullName": "main.b2n.in[74]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[74]", + "alias": [ + "main.b2n.in[74]", + null + ], + "id": 77 + }, + "main.b2n.in[75]": { + "fullName": "main.b2n.in[75]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[75]", + "alias": [ + "main.b2n.in[75]", + null + ], + "id": 78 + }, + "main.b2n.in[76]": { + "fullName": "main.b2n.in[76]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[76]", + "alias": [ + "main.b2n.in[76]", + null + ], + "id": 79 + }, + "main.b2n.in[77]": { + "fullName": "main.b2n.in[77]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[77]", + "alias": [ + "main.b2n.in[77]", + null + ], + "id": 80 + }, + "main.b2n.in[78]": { + "fullName": "main.b2n.in[78]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[78]", + "alias": [ + "main.b2n.in[78]", + null + ], + "id": 81 + }, + "main.b2n.in[79]": { + "fullName": "main.b2n.in[79]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[79]", + "alias": [ + "main.b2n.in[79]", + null + ], + "id": 82 + }, + "main.b2n.in[80]": { + "fullName": "main.b2n.in[80]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[80]", + "alias": [ + "main.b2n.in[80]", + null + ], + "id": 83 + }, + "main.b2n.in[81]": { + "fullName": "main.b2n.in[81]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[81]", + "alias": [ + "main.b2n.in[81]", + null + ], + "id": 84 + }, + "main.b2n.in[82]": { + "fullName": "main.b2n.in[82]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[82]", + "alias": [ + "main.b2n.in[82]", + null + ], + "id": 85 + }, + "main.b2n.in[83]": { + "fullName": "main.b2n.in[83]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[83]", + "alias": [ + "main.b2n.in[83]", + null + ], + "id": 86 + }, + "main.b2n.in[84]": { + "fullName": "main.b2n.in[84]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[84]", + "alias": [ + "main.b2n.in[84]", + null + ], + "id": 87 + }, + "main.b2n.in[85]": { + "fullName": "main.b2n.in[85]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[85]", + "alias": [ + "main.b2n.in[85]", + null + ], + "id": 88 + }, + "main.b2n.in[86]": { + "fullName": "main.b2n.in[86]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[86]", + "alias": [ + "main.b2n.in[86]", + null + ], + "id": 89 + }, + "main.b2n.in[87]": { + "fullName": "main.b2n.in[87]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[87]", + "alias": [ + "main.b2n.in[87]", + null + ], + "id": 90 + }, + "main.b2n.in[88]": { + "fullName": "main.b2n.in[88]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[88]", + "alias": [ + "main.b2n.in[88]", + null + ], + "id": 91 + }, + "main.b2n.in[89]": { + "fullName": "main.b2n.in[89]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[89]", + "alias": [ + "main.b2n.in[89]", + null + ], + "id": 92 + }, + "main.b2n.in[90]": { + "fullName": "main.b2n.in[90]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[90]", + "alias": [ + "main.b2n.in[90]", + null + ], + "id": 93 + }, + "main.b2n.in[91]": { + "fullName": "main.b2n.in[91]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[91]", + "alias": [ + "main.b2n.in[91]", + null + ], + "id": 94 + }, + "main.b2n.in[92]": { + "fullName": "main.b2n.in[92]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[92]", + "alias": [ + "main.b2n.in[92]", + null + ], + "id": 95 + }, + "main.b2n.in[93]": { + "fullName": "main.b2n.in[93]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[93]", + "alias": [ + "main.b2n.in[93]", + null + ], + "id": 96 + }, + "main.b2n.in[94]": { + "fullName": "main.b2n.in[94]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[94]", + "alias": [ + "main.b2n.in[94]", + null + ], + "id": 97 + }, + "main.b2n.in[95]": { + "fullName": "main.b2n.in[95]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[95]", + "alias": [ + "main.b2n.in[95]", + null + ], + "id": 98 + }, + "main.b2n.in[96]": { + "fullName": "main.b2n.in[96]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[96]", + "alias": [ + "main.b2n.in[96]", + null + ], + "id": 99 + }, + "main.b2n.in[97]": { + "fullName": "main.b2n.in[97]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[97]", + "alias": [ + "main.b2n.in[97]", + null + ], + "id": 100 + }, + "main.b2n.in[98]": { + "fullName": "main.b2n.in[98]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[98]", + "alias": [ + "main.b2n.in[98]", + null + ], + "id": 101 + }, + "main.b2n.in[99]": { + "fullName": "main.b2n.in[99]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[99]", + "alias": [ + "main.b2n.in[99]", + null + ], + "id": 102 + }, + "main.b2n.in[100]": { + "fullName": "main.b2n.in[100]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[100]", + "alias": [ + "main.b2n.in[100]", + null + ], + "id": 103 + }, + "main.b2n.in[101]": { + "fullName": "main.b2n.in[101]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[101]", + "alias": [ + "main.b2n.in[101]", + null + ], + "id": 104 + }, + "main.b2n.in[102]": { + "fullName": "main.b2n.in[102]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[102]", + "alias": [ + "main.b2n.in[102]", + null + ], + "id": 105 + }, + "main.b2n.in[103]": { + "fullName": "main.b2n.in[103]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[103]", + "alias": [ + "main.b2n.in[103]", + null + ], + "id": 106 + }, + "main.b2n.in[104]": { + "fullName": "main.b2n.in[104]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[104]", + "alias": [ + "main.b2n.in[104]", + null + ], + "id": 107 + }, + "main.b2n.in[105]": { + "fullName": "main.b2n.in[105]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[105]", + "alias": [ + "main.b2n.in[105]", + null + ], + "id": 108 + }, + "main.b2n.in[106]": { + "fullName": "main.b2n.in[106]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[106]", + "alias": [ + "main.b2n.in[106]", + null + ], + "id": 109 + }, + "main.b2n.in[107]": { + "fullName": "main.b2n.in[107]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[107]", + "alias": [ + "main.b2n.in[107]", + null + ], + "id": 110 + }, + "main.b2n.in[108]": { + "fullName": "main.b2n.in[108]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[108]", + "alias": [ + "main.b2n.in[108]", + null + ], + "id": 111 + }, + "main.b2n.in[109]": { + "fullName": "main.b2n.in[109]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[109]", + "alias": [ + "main.b2n.in[109]", + null + ], + "id": 112 + }, + "main.b2n.in[110]": { + "fullName": "main.b2n.in[110]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[110]", + "alias": [ + "main.b2n.in[110]", + null + ], + "id": 113 + }, + "main.b2n.in[111]": { + "fullName": "main.b2n.in[111]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[111]", + "alias": [ + "main.b2n.in[111]", + null + ], + "id": 114 + }, + "main.b2n.in[112]": { + "fullName": "main.b2n.in[112]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[112]", + "alias": [ + "main.b2n.in[112]", + null + ], + "id": 115 + }, + "main.b2n.in[113]": { + "fullName": "main.b2n.in[113]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[113]", + "alias": [ + "main.b2n.in[113]", + null + ], + "id": 116 + }, + "main.b2n.in[114]": { + "fullName": "main.b2n.in[114]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[114]", + "alias": [ + "main.b2n.in[114]", + null + ], + "id": 117 + }, + "main.b2n.in[115]": { + "fullName": "main.b2n.in[115]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[115]", + "alias": [ + "main.b2n.in[115]", + null + ], + "id": 118 + }, + "main.b2n.in[116]": { + "fullName": "main.b2n.in[116]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[116]", + "alias": [ + "main.b2n.in[116]", + null + ], + "id": 119 + }, + "main.b2n.in[117]": { + "fullName": "main.b2n.in[117]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[117]", + "alias": [ + "main.b2n.in[117]", + null + ], + "id": 120 + }, + "main.b2n.in[118]": { + "fullName": "main.b2n.in[118]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[118]", + "alias": [ + "main.b2n.in[118]", + null + ], + "id": 121 + }, + "main.b2n.in[119]": { + "fullName": "main.b2n.in[119]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[119]", + "alias": [ + "main.b2n.in[119]", + null + ], + "id": 122 + }, + "main.b2n.in[120]": { + "fullName": "main.b2n.in[120]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[120]", + "alias": [ + "main.b2n.in[120]", + null + ], + "id": 123 + }, + "main.b2n.in[121]": { + "fullName": "main.b2n.in[121]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[121]", + "alias": [ + "main.b2n.in[121]", + null + ], + "id": 124 + }, + "main.b2n.in[122]": { + "fullName": "main.b2n.in[122]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[122]", + "alias": [ + "main.b2n.in[122]", + null + ], + "id": 125 + }, + "main.b2n.in[123]": { + "fullName": "main.b2n.in[123]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[123]", + "alias": [ + "main.b2n.in[123]", + null + ], + "id": 126 + }, + "main.b2n.in[124]": { + "fullName": "main.b2n.in[124]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[124]", + "alias": [ + "main.b2n.in[124]", + null + ], + "id": 127 + }, + "main.b2n.in[125]": { + "fullName": "main.b2n.in[125]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[125]", + "alias": [ + "main.b2n.in[125]", + null + ], + "id": 128 + }, + "main.b2n.in[126]": { + "fullName": "main.b2n.in[126]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[126]", + "alias": [ + "main.b2n.in[126]", + null + ], + "id": 129 + }, + "main.b2n.in[127]": { + "fullName": "main.b2n.in[127]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[127]", + "alias": [ + "main.b2n.in[127]", + null + ], + "id": 130 + }, + "main.b2n.in[128]": { + "fullName": "main.b2n.in[128]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[128]", + "alias": [ + "main.b2n.in[128]", + null + ], + "id": 131 + }, + "main.b2n.in[129]": { + "fullName": "main.b2n.in[129]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[129]", + "alias": [ + "main.b2n.in[129]", + null + ], + "id": 132 + }, + "main.b2n.in[130]": { + "fullName": "main.b2n.in[130]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[130]", + "alias": [ + "main.b2n.in[130]", + null + ], + "id": 133 + }, + "main.b2n.in[131]": { + "fullName": "main.b2n.in[131]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[131]", + "alias": [ + "main.b2n.in[131]", + null + ], + "id": 134 + }, + "main.b2n.in[132]": { + "fullName": "main.b2n.in[132]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[132]", + "alias": [ + "main.b2n.in[132]", + null + ], + "id": 135 + }, + "main.b2n.in[133]": { + "fullName": "main.b2n.in[133]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[133]", + "alias": [ + "main.b2n.in[133]", + null + ], + "id": 136 + }, + "main.b2n.in[134]": { + "fullName": "main.b2n.in[134]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[134]", + "alias": [ + "main.b2n.in[134]", + null + ], + "id": 137 + }, + "main.b2n.in[135]": { + "fullName": "main.b2n.in[135]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[135]", + "alias": [ + "main.b2n.in[135]", + null + ], + "id": 138 + }, + "main.b2n.in[136]": { + "fullName": "main.b2n.in[136]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[136]", + "alias": [ + "main.b2n.in[136]", + null + ], + "id": 139 + }, + "main.b2n.in[137]": { + "fullName": "main.b2n.in[137]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[137]", + "alias": [ + "main.b2n.in[137]", + null + ], + "id": 140 + }, + "main.b2n.in[138]": { + "fullName": "main.b2n.in[138]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[138]", + "alias": [ + "main.b2n.in[138]", + null + ], + "id": 141 + }, + "main.b2n.in[139]": { + "fullName": "main.b2n.in[139]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[139]", + "alias": [ + "main.b2n.in[139]", + null + ], + "id": 142 + }, + "main.b2n.in[140]": { + "fullName": "main.b2n.in[140]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[140]", + "alias": [ + "main.b2n.in[140]", + null + ], + "id": 143 + }, + "main.b2n.in[141]": { + "fullName": "main.b2n.in[141]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[141]", + "alias": [ + "main.b2n.in[141]", + null + ], + "id": 144 + }, + "main.b2n.in[142]": { + "fullName": "main.b2n.in[142]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[142]", + "alias": [ + "main.b2n.in[142]", + null + ], + "id": 145 + }, + "main.b2n.in[143]": { + "fullName": "main.b2n.in[143]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[143]", + "alias": [ + "main.b2n.in[143]", + null + ], + "id": 146 + }, + "main.b2n.in[144]": { + "fullName": "main.b2n.in[144]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[144]", + "alias": [ + "main.b2n.in[144]", + null + ], + "id": 147 + }, + "main.b2n.in[145]": { + "fullName": "main.b2n.in[145]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[145]", + "alias": [ + "main.b2n.in[145]", + null + ], + "id": 148 + }, + "main.b2n.in[146]": { + "fullName": "main.b2n.in[146]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[146]", + "alias": [ + "main.b2n.in[146]", + null + ], + "id": 149 + }, + "main.b2n.in[147]": { + "fullName": "main.b2n.in[147]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[147]", + "alias": [ + "main.b2n.in[147]", + null + ], + "id": 150 + }, + "main.b2n.in[148]": { + "fullName": "main.b2n.in[148]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[148]", + "alias": [ + "main.b2n.in[148]", + null + ], + "id": 151 + }, + "main.b2n.in[149]": { + "fullName": "main.b2n.in[149]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[149]", + "alias": [ + "main.b2n.in[149]", + null + ], + "id": 152 + }, + "main.b2n.in[150]": { + "fullName": "main.b2n.in[150]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[150]", + "alias": [ + "main.b2n.in[150]", + null + ], + "id": 153 + }, + "main.b2n.in[151]": { + "fullName": "main.b2n.in[151]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[151]", + "alias": [ + "main.b2n.in[151]", + null + ], + "id": 154 + }, + "main.b2n.in[152]": { + "fullName": "main.b2n.in[152]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[152]", + "alias": [ + "main.b2n.in[152]", + null + ], + "id": 155 + }, + "main.b2n.in[153]": { + "fullName": "main.b2n.in[153]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[153]", + "alias": [ + "main.b2n.in[153]", + null + ], + "id": 156 + }, + "main.b2n.in[154]": { + "fullName": "main.b2n.in[154]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[154]", + "alias": [ + "main.b2n.in[154]", + null + ], + "id": 157 + }, + "main.b2n.in[155]": { + "fullName": "main.b2n.in[155]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[155]", + "alias": [ + "main.b2n.in[155]", + null + ], + "id": 158 + }, + "main.b2n.in[156]": { + "fullName": "main.b2n.in[156]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[156]", + "alias": [ + "main.b2n.in[156]", + null + ], + "id": 159 + }, + "main.b2n.in[157]": { + "fullName": "main.b2n.in[157]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[157]", + "alias": [ + "main.b2n.in[157]", + null + ], + "id": 160 + }, + "main.b2n.in[158]": { + "fullName": "main.b2n.in[158]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[158]", + "alias": [ + "main.b2n.in[158]", + null + ], + "id": 161 + }, + "main.b2n.in[159]": { + "fullName": "main.b2n.in[159]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[159]", + "alias": [ + "main.b2n.in[159]", + null + ], + "id": 162 + }, + "main.b2n.in[160]": { + "fullName": "main.b2n.in[160]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[160]", + "alias": [ + "main.b2n.in[160]", + null + ], + "id": 163 + }, + "main.b2n.in[161]": { + "fullName": "main.b2n.in[161]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[161]", + "alias": [ + "main.b2n.in[161]", + null + ], + "id": 164 + }, + "main.b2n.in[162]": { + "fullName": "main.b2n.in[162]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[162]", + "alias": [ + "main.b2n.in[162]", + null + ], + "id": 165 + }, + "main.b2n.in[163]": { + "fullName": "main.b2n.in[163]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[163]", + "alias": [ + "main.b2n.in[163]", + null + ], + "id": 166 + }, + "main.b2n.in[164]": { + "fullName": "main.b2n.in[164]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[164]", + "alias": [ + "main.b2n.in[164]", + null + ], + "id": 167 + }, + "main.b2n.in[165]": { + "fullName": "main.b2n.in[165]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[165]", + "alias": [ + "main.b2n.in[165]", + null + ], + "id": 168 + }, + "main.b2n.in[166]": { + "fullName": "main.b2n.in[166]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[166]", + "alias": [ + "main.b2n.in[166]", + null + ], + "id": 169 + }, + "main.b2n.in[167]": { + "fullName": "main.b2n.in[167]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[167]", + "alias": [ + "main.b2n.in[167]", + null + ], + "id": 170 + }, + "main.b2n.in[168]": { + "fullName": "main.b2n.in[168]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[168]", + "alias": [ + "main.b2n.in[168]", + null + ], + "id": 171 + }, + "main.b2n.in[169]": { + "fullName": "main.b2n.in[169]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[169]", + "alias": [ + "main.b2n.in[169]", + null + ], + "id": 172 + }, + "main.b2n.in[170]": { + "fullName": "main.b2n.in[170]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[170]", + "alias": [ + "main.b2n.in[170]", + null + ], + "id": 173 + }, + "main.b2n.in[171]": { + "fullName": "main.b2n.in[171]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[171]", + "alias": [ + "main.b2n.in[171]", + null + ], + "id": 174 + }, + "main.b2n.in[172]": { + "fullName": "main.b2n.in[172]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[172]", + "alias": [ + "main.b2n.in[172]", + null + ], + "id": 175 + }, + "main.b2n.in[173]": { + "fullName": "main.b2n.in[173]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[173]", + "alias": [ + "main.b2n.in[173]", + null + ], + "id": 176 + }, + "main.b2n.in[174]": { + "fullName": "main.b2n.in[174]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[174]", + "alias": [ + "main.b2n.in[174]", + null + ], + "id": 177 + }, + "main.b2n.in[175]": { + "fullName": "main.b2n.in[175]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[175]", + "alias": [ + "main.b2n.in[175]", + null + ], + "id": 178 + }, + "main.b2n.in[176]": { + "fullName": "main.b2n.in[176]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[176]", + "alias": [ + "main.b2n.in[176]", + null + ], + "id": 179 + }, + "main.b2n.in[177]": { + "fullName": "main.b2n.in[177]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[177]", + "alias": [ + "main.b2n.in[177]", + null + ], + "id": 180 + }, + "main.b2n.in[178]": { + "fullName": "main.b2n.in[178]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[178]", + "alias": [ + "main.b2n.in[178]", + null + ], + "id": 181 + }, + "main.b2n.in[179]": { + "fullName": "main.b2n.in[179]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[179]", + "alias": [ + "main.b2n.in[179]", + null + ], + "id": 182 + }, + "main.b2n.in[180]": { + "fullName": "main.b2n.in[180]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[180]", + "alias": [ + "main.b2n.in[180]", + null + ], + "id": 183 + }, + "main.b2n.in[181]": { + "fullName": "main.b2n.in[181]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[181]", + "alias": [ + "main.b2n.in[181]", + null + ], + "id": 184 + }, + "main.b2n.in[182]": { + "fullName": "main.b2n.in[182]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[182]", + "alias": [ + "main.b2n.in[182]", + null + ], + "id": 185 + }, + "main.b2n.in[183]": { + "fullName": "main.b2n.in[183]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[183]", + "alias": [ + "main.b2n.in[183]", + null + ], + "id": 186 + }, + "main.b2n.in[184]": { + "fullName": "main.b2n.in[184]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[184]", + "alias": [ + "main.b2n.in[184]", + null + ], + "id": 187 + }, + "main.b2n.in[185]": { + "fullName": "main.b2n.in[185]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[185]", + "alias": [ + "main.b2n.in[185]", + null + ], + "id": 188 + }, + "main.b2n.in[186]": { + "fullName": "main.b2n.in[186]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[186]", + "alias": [ + "main.b2n.in[186]", + null + ], + "id": 189 + }, + "main.b2n.in[187]": { + "fullName": "main.b2n.in[187]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[187]", + "alias": [ + "main.b2n.in[187]", + null + ], + "id": 190 + }, + "main.b2n.in[188]": { + "fullName": "main.b2n.in[188]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[188]", + "alias": [ + "main.b2n.in[188]", + null + ], + "id": 191 + }, + "main.b2n.in[189]": { + "fullName": "main.b2n.in[189]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[189]", + "alias": [ + "main.b2n.in[189]", + null + ], + "id": 192 + }, + "main.b2n.in[190]": { + "fullName": "main.b2n.in[190]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[190]", + "alias": [ + "main.b2n.in[190]", + null + ], + "id": 193 + }, + "main.b2n.in[191]": { + "fullName": "main.b2n.in[191]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[191]", + "alias": [ + "main.b2n.in[191]", + null + ], + "id": 194 + }, + "main.b2n.in[192]": { + "fullName": "main.b2n.in[192]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[192]", + "alias": [ + "main.b2n.in[192]", + null + ], + "id": 195 + }, + "main.b2n.in[193]": { + "fullName": "main.b2n.in[193]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[193]", + "alias": [ + "main.b2n.in[193]", + null + ], + "id": 196 + }, + "main.b2n.in[194]": { + "fullName": "main.b2n.in[194]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[194]", + "alias": [ + "main.b2n.in[194]", + null + ], + "id": 197 + }, + "main.b2n.in[195]": { + "fullName": "main.b2n.in[195]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[195]", + "alias": [ + "main.b2n.in[195]", + null + ], + "id": 198 + }, + "main.b2n.in[196]": { + "fullName": "main.b2n.in[196]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[196]", + "alias": [ + "main.b2n.in[196]", + null + ], + "id": 199 + }, + "main.b2n.in[197]": { + "fullName": "main.b2n.in[197]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[197]", + "alias": [ + "main.b2n.in[197]", + null + ], + "id": 200 + }, + "main.b2n.in[198]": { + "fullName": "main.b2n.in[198]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[198]", + "alias": [ + "main.b2n.in[198]", + null + ], + "id": 201 + }, + "main.b2n.in[199]": { + "fullName": "main.b2n.in[199]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[199]", + "alias": [ + "main.b2n.in[199]", + null + ], + "id": 202 + }, + "main.b2n.in[200]": { + "fullName": "main.b2n.in[200]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[200]", + "alias": [ + "main.b2n.in[200]", + null + ], + "id": 203 + }, + "main.b2n.in[201]": { + "fullName": "main.b2n.in[201]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[201]", + "alias": [ + "main.b2n.in[201]", + null + ], + "id": 204 + }, + "main.b2n.in[202]": { + "fullName": "main.b2n.in[202]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[202]", + "alias": [ + "main.b2n.in[202]", + null + ], + "id": 205 + }, + "main.b2n.in[203]": { + "fullName": "main.b2n.in[203]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[203]", + "alias": [ + "main.b2n.in[203]", + null + ], + "id": 206 + }, + "main.b2n.in[204]": { + "fullName": "main.b2n.in[204]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[204]", + "alias": [ + "main.b2n.in[204]", + null + ], + "id": 207 + }, + "main.b2n.in[205]": { + "fullName": "main.b2n.in[205]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[205]", + "alias": [ + "main.b2n.in[205]", + null + ], + "id": 208 + }, + "main.b2n.in[206]": { + "fullName": "main.b2n.in[206]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[206]", + "alias": [ + "main.b2n.in[206]", + null + ], + "id": 209 + }, + "main.b2n.in[207]": { + "fullName": "main.b2n.in[207]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[207]", + "alias": [ + "main.b2n.in[207]", + null + ], + "id": 210 + }, + "main.b2n.in[208]": { + "fullName": "main.b2n.in[208]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[208]", + "alias": [ + "main.b2n.in[208]", + null + ], + "id": 211 + }, + "main.b2n.in[209]": { + "fullName": "main.b2n.in[209]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[209]", + "alias": [ + "main.b2n.in[209]", + null + ], + "id": 212 + }, + "main.b2n.in[210]": { + "fullName": "main.b2n.in[210]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[210]", + "alias": [ + "main.b2n.in[210]", + null + ], + "id": 213 + }, + "main.b2n.in[211]": { + "fullName": "main.b2n.in[211]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[211]", + "alias": [ + "main.b2n.in[211]", + null + ], + "id": 214 + }, + "main.b2n.in[212]": { + "fullName": "main.b2n.in[212]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[212]", + "alias": [ + "main.b2n.in[212]", + null + ], + "id": 215 + }, + "main.b2n.in[213]": { + "fullName": "main.b2n.in[213]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[213]", + "alias": [ + "main.b2n.in[213]", + null + ], + "id": 216 + }, + "main.b2n.in[214]": { + "fullName": "main.b2n.in[214]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[214]", + "alias": [ + "main.b2n.in[214]", + null + ], + "id": 217 + }, + "main.b2n.in[215]": { + "fullName": "main.b2n.in[215]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.n2b.out[215]", + "alias": [ + "main.b2n.in[215]", + null + ], + "id": 218 + }, + "main.b2n.out": { + "fullName": "main.b2n.out", + "direction": "OUT", + "component": "main.b2n", + "equivalence": "", + "alias": [ + "main.b2n.out" + ], + "id": 2 + } +}; + +circuit.components={ + "main": { + "signals": [ + "main.in", + "main.out" + ], + "params": {}, + "template": "A", + "inputSignals": 1 + }, + "main.n2b": { + "signals": [ + "main.n2b.in", + "main.n2b.out[0]", + "main.n2b.out[1]", + "main.n2b.out[2]", + "main.n2b.out[3]", + "main.n2b.out[4]", + "main.n2b.out[5]", + "main.n2b.out[6]", + "main.n2b.out[7]", + "main.n2b.out[8]", + "main.n2b.out[9]", + "main.n2b.out[10]", + "main.n2b.out[11]", + "main.n2b.out[12]", + "main.n2b.out[13]", + "main.n2b.out[14]", + "main.n2b.out[15]", + "main.n2b.out[16]", + "main.n2b.out[17]", + "main.n2b.out[18]", + "main.n2b.out[19]", + "main.n2b.out[20]", + "main.n2b.out[21]", + "main.n2b.out[22]", + "main.n2b.out[23]", + "main.n2b.out[24]", + "main.n2b.out[25]", + "main.n2b.out[26]", + "main.n2b.out[27]", + "main.n2b.out[28]", + "main.n2b.out[29]", + "main.n2b.out[30]", + "main.n2b.out[31]", + "main.n2b.out[32]", + "main.n2b.out[33]", + "main.n2b.out[34]", + "main.n2b.out[35]", + "main.n2b.out[36]", + "main.n2b.out[37]", + "main.n2b.out[38]", + "main.n2b.out[39]", + "main.n2b.out[40]", + "main.n2b.out[41]", + "main.n2b.out[42]", + "main.n2b.out[43]", + "main.n2b.out[44]", + "main.n2b.out[45]", + "main.n2b.out[46]", + "main.n2b.out[47]", + "main.n2b.out[48]", + "main.n2b.out[49]", + "main.n2b.out[50]", + "main.n2b.out[51]", + "main.n2b.out[52]", + "main.n2b.out[53]", + "main.n2b.out[54]", + "main.n2b.out[55]", + "main.n2b.out[56]", + "main.n2b.out[57]", + "main.n2b.out[58]", + "main.n2b.out[59]", + "main.n2b.out[60]", + "main.n2b.out[61]", + "main.n2b.out[62]", + "main.n2b.out[63]", + "main.n2b.out[64]", + "main.n2b.out[65]", + "main.n2b.out[66]", + "main.n2b.out[67]", + "main.n2b.out[68]", + "main.n2b.out[69]", + "main.n2b.out[70]", + "main.n2b.out[71]", + "main.n2b.out[72]", + "main.n2b.out[73]", + "main.n2b.out[74]", + "main.n2b.out[75]", + "main.n2b.out[76]", + "main.n2b.out[77]", + "main.n2b.out[78]", + "main.n2b.out[79]", + "main.n2b.out[80]", + "main.n2b.out[81]", + "main.n2b.out[82]", + "main.n2b.out[83]", + "main.n2b.out[84]", + "main.n2b.out[85]", + "main.n2b.out[86]", + "main.n2b.out[87]", + "main.n2b.out[88]", + "main.n2b.out[89]", + "main.n2b.out[90]", + "main.n2b.out[91]", + "main.n2b.out[92]", + "main.n2b.out[93]", + "main.n2b.out[94]", + "main.n2b.out[95]", + "main.n2b.out[96]", + "main.n2b.out[97]", + "main.n2b.out[98]", + "main.n2b.out[99]", + "main.n2b.out[100]", + "main.n2b.out[101]", + "main.n2b.out[102]", + "main.n2b.out[103]", + "main.n2b.out[104]", + "main.n2b.out[105]", + "main.n2b.out[106]", + "main.n2b.out[107]", + "main.n2b.out[108]", + "main.n2b.out[109]", + "main.n2b.out[110]", + "main.n2b.out[111]", + "main.n2b.out[112]", + "main.n2b.out[113]", + "main.n2b.out[114]", + "main.n2b.out[115]", + "main.n2b.out[116]", + "main.n2b.out[117]", + "main.n2b.out[118]", + "main.n2b.out[119]", + "main.n2b.out[120]", + "main.n2b.out[121]", + "main.n2b.out[122]", + "main.n2b.out[123]", + "main.n2b.out[124]", + "main.n2b.out[125]", + "main.n2b.out[126]", + "main.n2b.out[127]", + "main.n2b.out[128]", + "main.n2b.out[129]", + "main.n2b.out[130]", + "main.n2b.out[131]", + "main.n2b.out[132]", + "main.n2b.out[133]", + "main.n2b.out[134]", + "main.n2b.out[135]", + "main.n2b.out[136]", + "main.n2b.out[137]", + "main.n2b.out[138]", + "main.n2b.out[139]", + "main.n2b.out[140]", + "main.n2b.out[141]", + "main.n2b.out[142]", + "main.n2b.out[143]", + "main.n2b.out[144]", + "main.n2b.out[145]", + "main.n2b.out[146]", + "main.n2b.out[147]", + "main.n2b.out[148]", + "main.n2b.out[149]", + "main.n2b.out[150]", + "main.n2b.out[151]", + "main.n2b.out[152]", + "main.n2b.out[153]", + "main.n2b.out[154]", + "main.n2b.out[155]", + "main.n2b.out[156]", + "main.n2b.out[157]", + "main.n2b.out[158]", + "main.n2b.out[159]", + "main.n2b.out[160]", + "main.n2b.out[161]", + "main.n2b.out[162]", + "main.n2b.out[163]", + "main.n2b.out[164]", + "main.n2b.out[165]", + "main.n2b.out[166]", + "main.n2b.out[167]", + "main.n2b.out[168]", + "main.n2b.out[169]", + "main.n2b.out[170]", + "main.n2b.out[171]", + "main.n2b.out[172]", + "main.n2b.out[173]", + "main.n2b.out[174]", + "main.n2b.out[175]", + "main.n2b.out[176]", + "main.n2b.out[177]", + "main.n2b.out[178]", + "main.n2b.out[179]", + "main.n2b.out[180]", + "main.n2b.out[181]", + "main.n2b.out[182]", + "main.n2b.out[183]", + "main.n2b.out[184]", + "main.n2b.out[185]", + "main.n2b.out[186]", + "main.n2b.out[187]", + "main.n2b.out[188]", + "main.n2b.out[189]", + "main.n2b.out[190]", + "main.n2b.out[191]", + "main.n2b.out[192]", + "main.n2b.out[193]", + "main.n2b.out[194]", + "main.n2b.out[195]", + "main.n2b.out[196]", + "main.n2b.out[197]", + "main.n2b.out[198]", + "main.n2b.out[199]", + "main.n2b.out[200]", + "main.n2b.out[201]", + "main.n2b.out[202]", + "main.n2b.out[203]", + "main.n2b.out[204]", + "main.n2b.out[205]", + "main.n2b.out[206]", + "main.n2b.out[207]", + "main.n2b.out[208]", + "main.n2b.out[209]", + "main.n2b.out[210]", + "main.n2b.out[211]", + "main.n2b.out[212]", + "main.n2b.out[213]", + "main.n2b.out[214]", + "main.n2b.out[215]" + ], + "params": { + "n": "216" + }, + "template": "Num2Bits", + "inputSignals": 1 + }, + "main.b2n": { + "signals": [ + "main.b2n.in[0]", + "main.b2n.in[1]", + "main.b2n.in[2]", + "main.b2n.in[3]", + "main.b2n.in[4]", + "main.b2n.in[5]", + "main.b2n.in[6]", + "main.b2n.in[7]", + "main.b2n.in[8]", + "main.b2n.in[9]", + "main.b2n.in[10]", + "main.b2n.in[11]", + "main.b2n.in[12]", + "main.b2n.in[13]", + "main.b2n.in[14]", + "main.b2n.in[15]", + "main.b2n.in[16]", + "main.b2n.in[17]", + "main.b2n.in[18]", + "main.b2n.in[19]", + "main.b2n.in[20]", + "main.b2n.in[21]", + "main.b2n.in[22]", + "main.b2n.in[23]", + "main.b2n.in[24]", + "main.b2n.in[25]", + "main.b2n.in[26]", + "main.b2n.in[27]", + "main.b2n.in[28]", + "main.b2n.in[29]", + "main.b2n.in[30]", + "main.b2n.in[31]", + "main.b2n.in[32]", + "main.b2n.in[33]", + "main.b2n.in[34]", + "main.b2n.in[35]", + "main.b2n.in[36]", + "main.b2n.in[37]", + "main.b2n.in[38]", + "main.b2n.in[39]", + "main.b2n.in[40]", + "main.b2n.in[41]", + "main.b2n.in[42]", + "main.b2n.in[43]", + "main.b2n.in[44]", + "main.b2n.in[45]", + "main.b2n.in[46]", + "main.b2n.in[47]", + "main.b2n.in[48]", + "main.b2n.in[49]", + "main.b2n.in[50]", + "main.b2n.in[51]", + "main.b2n.in[52]", + "main.b2n.in[53]", + "main.b2n.in[54]", + "main.b2n.in[55]", + "main.b2n.in[56]", + "main.b2n.in[57]", + "main.b2n.in[58]", + "main.b2n.in[59]", + "main.b2n.in[60]", + "main.b2n.in[61]", + "main.b2n.in[62]", + "main.b2n.in[63]", + "main.b2n.in[64]", + "main.b2n.in[65]", + "main.b2n.in[66]", + "main.b2n.in[67]", + "main.b2n.in[68]", + "main.b2n.in[69]", + "main.b2n.in[70]", + "main.b2n.in[71]", + "main.b2n.in[72]", + "main.b2n.in[73]", + "main.b2n.in[74]", + "main.b2n.in[75]", + "main.b2n.in[76]", + "main.b2n.in[77]", + "main.b2n.in[78]", + "main.b2n.in[79]", + "main.b2n.in[80]", + "main.b2n.in[81]", + "main.b2n.in[82]", + "main.b2n.in[83]", + "main.b2n.in[84]", + "main.b2n.in[85]", + "main.b2n.in[86]", + "main.b2n.in[87]", + "main.b2n.in[88]", + "main.b2n.in[89]", + "main.b2n.in[90]", + "main.b2n.in[91]", + "main.b2n.in[92]", + "main.b2n.in[93]", + "main.b2n.in[94]", + "main.b2n.in[95]", + "main.b2n.in[96]", + "main.b2n.in[97]", + "main.b2n.in[98]", + "main.b2n.in[99]", + "main.b2n.in[100]", + "main.b2n.in[101]", + "main.b2n.in[102]", + "main.b2n.in[103]", + "main.b2n.in[104]", + "main.b2n.in[105]", + "main.b2n.in[106]", + "main.b2n.in[107]", + "main.b2n.in[108]", + "main.b2n.in[109]", + "main.b2n.in[110]", + "main.b2n.in[111]", + "main.b2n.in[112]", + "main.b2n.in[113]", + "main.b2n.in[114]", + "main.b2n.in[115]", + "main.b2n.in[116]", + "main.b2n.in[117]", + "main.b2n.in[118]", + "main.b2n.in[119]", + "main.b2n.in[120]", + "main.b2n.in[121]", + "main.b2n.in[122]", + "main.b2n.in[123]", + "main.b2n.in[124]", + "main.b2n.in[125]", + "main.b2n.in[126]", + "main.b2n.in[127]", + "main.b2n.in[128]", + "main.b2n.in[129]", + "main.b2n.in[130]", + "main.b2n.in[131]", + "main.b2n.in[132]", + "main.b2n.in[133]", + "main.b2n.in[134]", + "main.b2n.in[135]", + "main.b2n.in[136]", + "main.b2n.in[137]", + "main.b2n.in[138]", + "main.b2n.in[139]", + "main.b2n.in[140]", + "main.b2n.in[141]", + "main.b2n.in[142]", + "main.b2n.in[143]", + "main.b2n.in[144]", + "main.b2n.in[145]", + "main.b2n.in[146]", + "main.b2n.in[147]", + "main.b2n.in[148]", + "main.b2n.in[149]", + "main.b2n.in[150]", + "main.b2n.in[151]", + "main.b2n.in[152]", + "main.b2n.in[153]", + "main.b2n.in[154]", + "main.b2n.in[155]", + "main.b2n.in[156]", + "main.b2n.in[157]", + "main.b2n.in[158]", + "main.b2n.in[159]", + "main.b2n.in[160]", + "main.b2n.in[161]", + "main.b2n.in[162]", + "main.b2n.in[163]", + "main.b2n.in[164]", + "main.b2n.in[165]", + "main.b2n.in[166]", + "main.b2n.in[167]", + "main.b2n.in[168]", + "main.b2n.in[169]", + "main.b2n.in[170]", + "main.b2n.in[171]", + "main.b2n.in[172]", + "main.b2n.in[173]", + "main.b2n.in[174]", + "main.b2n.in[175]", + "main.b2n.in[176]", + "main.b2n.in[177]", + "main.b2n.in[178]", + "main.b2n.in[179]", + "main.b2n.in[180]", + "main.b2n.in[181]", + "main.b2n.in[182]", + "main.b2n.in[183]", + "main.b2n.in[184]", + "main.b2n.in[185]", + "main.b2n.in[186]", + "main.b2n.in[187]", + "main.b2n.in[188]", + "main.b2n.in[189]", + "main.b2n.in[190]", + "main.b2n.in[191]", + "main.b2n.in[192]", + "main.b2n.in[193]", + "main.b2n.in[194]", + "main.b2n.in[195]", + "main.b2n.in[196]", + "main.b2n.in[197]", + "main.b2n.in[198]", + "main.b2n.in[199]", + "main.b2n.in[200]", + "main.b2n.in[201]", + "main.b2n.in[202]", + "main.b2n.in[203]", + "main.b2n.in[204]", + "main.b2n.in[205]", + "main.b2n.in[206]", + "main.b2n.in[207]", + "main.b2n.in[208]", + "main.b2n.in[209]", + "main.b2n.in[210]", + "main.b2n.in[211]", + "main.b2n.in[212]", + "main.b2n.in[213]", + "main.b2n.in[214]", + "main.b2n.in[215]", + "main.b2n.out" + ], + "params": { + "n": "216" + }, + "template": "Bits2Num", + "inputSignals": 216 + } +}; + +circuit.signalConstrains=[ + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[0]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[0]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[1]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[1]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[2]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[2]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[3]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[3]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[4]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[4]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[5]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[5]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[6]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[6]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[7]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[7]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[8]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[8]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[9]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[9]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[10]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[10]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[11]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[11]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[12]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[12]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[13]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[13]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[14]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[14]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[15]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[15]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[16]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[16]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[17]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[17]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[18]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[18]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[19]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[19]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[20]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[20]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[21]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[21]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[22]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[22]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[23]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[23]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[24]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[24]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[25]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[25]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[26]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[26]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[27]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[27]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[28]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[28]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[29]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[29]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[30]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[30]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[31]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[31]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[32]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[32]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[33]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[33]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[34]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[34]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[35]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[35]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[36]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[36]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[37]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[37]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[38]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[38]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[39]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[39]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[40]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[40]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[41]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[41]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[42]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[42]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[43]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[43]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[44]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[44]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[45]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[45]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[46]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[46]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[47]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[47]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[48]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[48]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[49]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[49]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[50]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[50]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[51]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[51]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[52]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[52]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[53]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[53]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[54]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[54]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[55]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[55]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[56]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[56]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[57]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[57]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[58]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[58]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[59]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[59]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[60]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[60]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[61]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[61]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[62]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[62]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[63]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[63]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[64]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[64]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[65]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[65]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[66]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[66]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[67]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[67]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[68]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[68]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[69]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[69]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[70]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[70]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[71]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[71]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[72]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[72]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[73]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[73]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[74]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[74]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[75]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[75]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[76]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[76]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[77]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[77]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[78]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[78]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[79]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[79]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[80]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[80]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[81]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[81]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[82]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[82]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[83]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[83]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[84]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[84]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[85]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[85]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[86]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[86]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[87]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[87]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[88]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[88]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[89]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[89]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[90]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[90]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[91]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[91]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[92]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[92]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[93]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[93]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[94]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[94]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[95]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[95]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[96]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[96]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[97]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[97]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[98]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[98]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[99]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[99]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[100]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[100]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[101]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[101]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[102]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[102]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[103]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[103]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[104]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[104]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[105]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[105]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[106]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[106]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[107]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[107]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[108]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[108]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[109]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[109]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[110]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[110]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[111]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[111]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[112]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[112]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[113]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[113]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[114]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[114]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[115]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[115]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[116]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[116]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[117]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[117]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[118]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[118]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[119]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[119]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[120]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[120]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[121]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[121]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[122]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[122]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[123]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[123]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[124]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[124]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[125]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[125]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[126]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[126]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[127]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[127]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[128]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[128]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[129]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[129]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[130]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[130]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[131]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[131]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[132]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[132]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[133]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[133]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[134]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[134]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[135]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[135]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[136]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[136]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[137]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[137]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[138]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[138]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[139]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[139]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[140]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[140]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[141]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[141]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[142]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[142]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[143]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[143]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[144]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[144]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[145]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[145]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[146]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[146]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[147]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[147]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[148]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[148]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[149]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[149]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[150]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[150]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[151]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[151]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[152]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[152]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[153]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[153]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[154]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[154]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[155]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[155]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[156]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[156]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[157]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[157]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[158]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[158]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[159]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[159]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[160]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[160]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[161]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[161]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[162]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[162]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[163]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[163]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[164]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[164]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[165]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[165]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[166]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[166]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[167]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[167]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[168]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[168]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[169]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[169]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[170]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[170]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[171]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[171]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[172]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[172]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[173]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[173]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[174]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[174]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[175]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[175]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[176]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[176]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[177]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[177]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[178]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[178]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[179]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[179]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[180]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[180]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[181]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[181]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[182]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[182]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[183]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[183]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[184]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[184]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[185]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[185]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[186]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[186]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[187]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[187]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[188]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[188]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[189]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[189]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[190]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[190]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[191]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[191]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[192]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[192]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[193]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[193]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[194]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[194]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[195]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[195]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[196]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[196]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[197]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[197]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[198]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[198]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[199]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[199]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[200]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[200]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[201]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[201]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[202]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[202]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[203]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[203]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[204]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[204]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[205]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[205]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[206]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[206]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[207]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[207]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[208]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[208]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[209]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[209]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[210]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[210]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[211]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[211]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[212]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[212]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[213]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[213]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[214]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[214]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[215]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[215]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "b": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "c": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2b.out[0]": "1", + "main.n2b.out[1]": "2", + "main.n2b.out[2]": "4", + "main.n2b.out[3]": "8", + "main.n2b.out[4]": "16", + "main.n2b.out[5]": "32", + "main.n2b.out[6]": "64", + "main.n2b.out[7]": "128", + "main.n2b.out[8]": "256", + "main.n2b.out[9]": "512", + "main.n2b.out[10]": "1024", + "main.n2b.out[11]": "2048", + "main.n2b.out[12]": "4096", + "main.n2b.out[13]": "8192", + "main.n2b.out[14]": "16384", + "main.n2b.out[15]": "32768", + "main.n2b.out[16]": "65536", + "main.n2b.out[17]": "131072", + "main.n2b.out[18]": "262144", + "main.n2b.out[19]": "524288", + "main.n2b.out[20]": "1048576", + "main.n2b.out[21]": "2097152", + "main.n2b.out[22]": "4194304", + "main.n2b.out[23]": "8388608", + "main.n2b.out[24]": "16777216", + "main.n2b.out[25]": "33554432", + "main.n2b.out[26]": "67108864", + "main.n2b.out[27]": "134217728", + "main.n2b.out[28]": "268435456", + "main.n2b.out[29]": "536870912", + "main.n2b.out[30]": "1073741824", + "main.n2b.out[31]": "2147483648", + "main.n2b.out[32]": "4294967296", + "main.n2b.out[33]": "8589934592", + "main.n2b.out[34]": "17179869184", + "main.n2b.out[35]": "34359738368", + "main.n2b.out[36]": "68719476736", + "main.n2b.out[37]": "137438953472", + "main.n2b.out[38]": "274877906944", + "main.n2b.out[39]": "549755813888", + "main.n2b.out[40]": "1099511627776", + "main.n2b.out[41]": "2199023255552", + "main.n2b.out[42]": "4398046511104", + "main.n2b.out[43]": "8796093022208", + "main.n2b.out[44]": "17592186044416", + "main.n2b.out[45]": "35184372088832", + "main.n2b.out[46]": "70368744177664", + "main.n2b.out[47]": "140737488355328", + "main.n2b.out[48]": "281474976710656", + "main.n2b.out[49]": "562949953421312", + "main.n2b.out[50]": "1125899906842624", + "main.n2b.out[51]": "2251799813685248", + "main.n2b.out[52]": "4503599627370496", + "main.n2b.out[53]": "9007199254740992", + "main.n2b.out[54]": "18014398509481984", + "main.n2b.out[55]": "36028797018963968", + "main.n2b.out[56]": "72057594037927936", + "main.n2b.out[57]": "144115188075855872", + "main.n2b.out[58]": "288230376151711744", + "main.n2b.out[59]": "576460752303423488", + "main.n2b.out[60]": "1152921504606846976", + "main.n2b.out[61]": "2305843009213693952", + "main.n2b.out[62]": "4611686018427387904", + "main.n2b.out[63]": "9223372036854775808", + "main.n2b.out[64]": "18446744073709551616", + "main.n2b.out[65]": "36893488147419103232", + "main.n2b.out[66]": "73786976294838206464", + "main.n2b.out[67]": "147573952589676412928", + "main.n2b.out[68]": "295147905179352825856", + "main.n2b.out[69]": "590295810358705651712", + "main.n2b.out[70]": "1180591620717411303424", + "main.n2b.out[71]": "2361183241434822606848", + "main.n2b.out[72]": "4722366482869645213696", + "main.n2b.out[73]": "9444732965739290427392", + "main.n2b.out[74]": "18889465931478580854784", + "main.n2b.out[75]": "37778931862957161709568", + "main.n2b.out[76]": "75557863725914323419136", + "main.n2b.out[77]": "151115727451828646838272", + "main.n2b.out[78]": "302231454903657293676544", + "main.n2b.out[79]": "604462909807314587353088", + "main.n2b.out[80]": "1208925819614629174706176", + "main.n2b.out[81]": "2417851639229258349412352", + "main.n2b.out[82]": "4835703278458516698824704", + "main.n2b.out[83]": "9671406556917033397649408", + "main.n2b.out[84]": "19342813113834066795298816", + "main.n2b.out[85]": "38685626227668133590597632", + "main.n2b.out[86]": "77371252455336267181195264", + "main.n2b.out[87]": "154742504910672534362390528", + "main.n2b.out[88]": "309485009821345068724781056", + "main.n2b.out[89]": "618970019642690137449562112", + "main.n2b.out[90]": "1237940039285380274899124224", + "main.n2b.out[91]": "2475880078570760549798248448", + "main.n2b.out[92]": "4951760157141521099596496896", + "main.n2b.out[93]": "9903520314283042199192993792", + "main.n2b.out[94]": "19807040628566084398385987584", + "main.n2b.out[95]": "39614081257132168796771975168", + "main.n2b.out[96]": "79228162514264337593543950336", + "main.n2b.out[97]": "158456325028528675187087900672", + "main.n2b.out[98]": "316912650057057350374175801344", + "main.n2b.out[99]": "633825300114114700748351602688", + "main.n2b.out[100]": "1267650600228229401496703205376", + "main.n2b.out[101]": "2535301200456458802993406410752", + "main.n2b.out[102]": "5070602400912917605986812821504", + "main.n2b.out[103]": "10141204801825835211973625643008", + "main.n2b.out[104]": "20282409603651670423947251286016", + "main.n2b.out[105]": "40564819207303340847894502572032", + "main.n2b.out[106]": "81129638414606681695789005144064", + "main.n2b.out[107]": "162259276829213363391578010288128", + "main.n2b.out[108]": "324518553658426726783156020576256", + "main.n2b.out[109]": "649037107316853453566312041152512", + "main.n2b.out[110]": "1298074214633706907132624082305024", + "main.n2b.out[111]": "2596148429267413814265248164610048", + "main.n2b.out[112]": "5192296858534827628530496329220096", + "main.n2b.out[113]": "10384593717069655257060992658440192", + "main.n2b.out[114]": "20769187434139310514121985316880384", + "main.n2b.out[115]": "41538374868278621028243970633760768", + "main.n2b.out[116]": "83076749736557242056487941267521536", + "main.n2b.out[117]": "166153499473114484112975882535043072", + "main.n2b.out[118]": "332306998946228968225951765070086144", + "main.n2b.out[119]": "664613997892457936451903530140172288", + "main.n2b.out[120]": "1329227995784915872903807060280344576", + "main.n2b.out[121]": "2658455991569831745807614120560689152", + "main.n2b.out[122]": "5316911983139663491615228241121378304", + "main.n2b.out[123]": "10633823966279326983230456482242756608", + "main.n2b.out[124]": "21267647932558653966460912964485513216", + "main.n2b.out[125]": "42535295865117307932921825928971026432", + "main.n2b.out[126]": "85070591730234615865843651857942052864", + "main.n2b.out[127]": "170141183460469231731687303715884105728", + "main.n2b.out[128]": "340282366920938463463374607431768211456", + "main.n2b.out[129]": "680564733841876926926749214863536422912", + "main.n2b.out[130]": "1361129467683753853853498429727072845824", + "main.n2b.out[131]": "2722258935367507707706996859454145691648", + "main.n2b.out[132]": "5444517870735015415413993718908291383296", + "main.n2b.out[133]": "10889035741470030830827987437816582766592", + "main.n2b.out[134]": "21778071482940061661655974875633165533184", + "main.n2b.out[135]": "43556142965880123323311949751266331066368", + "main.n2b.out[136]": "87112285931760246646623899502532662132736", + "main.n2b.out[137]": "174224571863520493293247799005065324265472", + "main.n2b.out[138]": "348449143727040986586495598010130648530944", + "main.n2b.out[139]": "696898287454081973172991196020261297061888", + "main.n2b.out[140]": "1393796574908163946345982392040522594123776", + "main.n2b.out[141]": "2787593149816327892691964784081045188247552", + "main.n2b.out[142]": "5575186299632655785383929568162090376495104", + "main.n2b.out[143]": "11150372599265311570767859136324180752990208", + "main.n2b.out[144]": "22300745198530623141535718272648361505980416", + "main.n2b.out[145]": "44601490397061246283071436545296723011960832", + "main.n2b.out[146]": "89202980794122492566142873090593446023921664", + "main.n2b.out[147]": "178405961588244985132285746181186892047843328", + "main.n2b.out[148]": "356811923176489970264571492362373784095686656", + "main.n2b.out[149]": "713623846352979940529142984724747568191373312", + "main.n2b.out[150]": "1427247692705959881058285969449495136382746624", + "main.n2b.out[151]": "2854495385411919762116571938898990272765493248", + "main.n2b.out[152]": "5708990770823839524233143877797980545530986496", + "main.n2b.out[153]": "11417981541647679048466287755595961091061972992", + "main.n2b.out[154]": "22835963083295358096932575511191922182123945984", + "main.n2b.out[155]": "45671926166590716193865151022383844364247891968", + "main.n2b.out[156]": "91343852333181432387730302044767688728495783936", + "main.n2b.out[157]": "182687704666362864775460604089535377456991567872", + "main.n2b.out[158]": "365375409332725729550921208179070754913983135744", + "main.n2b.out[159]": "730750818665451459101842416358141509827966271488", + "main.n2b.out[160]": "1461501637330902918203684832716283019655932542976", + "main.n2b.out[161]": "2923003274661805836407369665432566039311865085952", + "main.n2b.out[162]": "5846006549323611672814739330865132078623730171904", + "main.n2b.out[163]": "11692013098647223345629478661730264157247460343808", + "main.n2b.out[164]": "23384026197294446691258957323460528314494920687616", + "main.n2b.out[165]": "46768052394588893382517914646921056628989841375232", + "main.n2b.out[166]": "93536104789177786765035829293842113257979682750464", + "main.n2b.out[167]": "187072209578355573530071658587684226515959365500928", + "main.n2b.out[168]": "374144419156711147060143317175368453031918731001856", + "main.n2b.out[169]": "748288838313422294120286634350736906063837462003712", + "main.n2b.out[170]": "1496577676626844588240573268701473812127674924007424", + "main.n2b.out[171]": "2993155353253689176481146537402947624255349848014848", + "main.n2b.out[172]": "5986310706507378352962293074805895248510699696029696", + "main.n2b.out[173]": "11972621413014756705924586149611790497021399392059392", + "main.n2b.out[174]": "23945242826029513411849172299223580994042798784118784", + "main.n2b.out[175]": "47890485652059026823698344598447161988085597568237568", + "main.n2b.out[176]": "95780971304118053647396689196894323976171195136475136", + "main.n2b.out[177]": "191561942608236107294793378393788647952342390272950272", + "main.n2b.out[178]": "383123885216472214589586756787577295904684780545900544", + "main.n2b.out[179]": "766247770432944429179173513575154591809369561091801088", + "main.n2b.out[180]": "1532495540865888858358347027150309183618739122183602176", + "main.n2b.out[181]": "3064991081731777716716694054300618367237478244367204352", + "main.n2b.out[182]": "6129982163463555433433388108601236734474956488734408704", + "main.n2b.out[183]": "12259964326927110866866776217202473468949912977468817408", + "main.n2b.out[184]": "24519928653854221733733552434404946937899825954937634816", + "main.n2b.out[185]": "49039857307708443467467104868809893875799651909875269632", + "main.n2b.out[186]": "98079714615416886934934209737619787751599303819750539264", + "main.n2b.out[187]": "196159429230833773869868419475239575503198607639501078528", + "main.n2b.out[188]": "392318858461667547739736838950479151006397215279002157056", + "main.n2b.out[189]": "784637716923335095479473677900958302012794430558004314112", + "main.n2b.out[190]": "1569275433846670190958947355801916604025588861116008628224", + "main.n2b.out[191]": "3138550867693340381917894711603833208051177722232017256448", + "main.n2b.out[192]": "6277101735386680763835789423207666416102355444464034512896", + "main.n2b.out[193]": "12554203470773361527671578846415332832204710888928069025792", + "main.n2b.out[194]": "25108406941546723055343157692830665664409421777856138051584", + "main.n2b.out[195]": "50216813883093446110686315385661331328818843555712276103168", + "main.n2b.out[196]": "100433627766186892221372630771322662657637687111424552206336", + "main.n2b.out[197]": "200867255532373784442745261542645325315275374222849104412672", + "main.n2b.out[198]": "401734511064747568885490523085290650630550748445698208825344", + "main.n2b.out[199]": "803469022129495137770981046170581301261101496891396417650688", + "main.n2b.out[200]": "1606938044258990275541962092341162602522202993782792835301376", + "main.n2b.out[201]": "3213876088517980551083924184682325205044405987565585670602752", + "main.n2b.out[202]": "6427752177035961102167848369364650410088811975131171341205504", + "main.n2b.out[203]": "12855504354071922204335696738729300820177623950262342682411008", + "main.n2b.out[204]": "25711008708143844408671393477458601640355247900524685364822016", + "main.n2b.out[205]": "51422017416287688817342786954917203280710495801049370729644032", + "main.n2b.out[206]": "102844034832575377634685573909834406561420991602098741459288064", + "main.n2b.out[207]": "205688069665150755269371147819668813122841983204197482918576128", + "main.n2b.out[208]": "411376139330301510538742295639337626245683966408394965837152256", + "main.n2b.out[209]": "822752278660603021077484591278675252491367932816789931674304512", + "main.n2b.out[210]": "1645504557321206042154969182557350504982735865633579863348609024", + "main.n2b.out[211]": "3291009114642412084309938365114701009965471731267159726697218048", + "main.n2b.out[212]": "6582018229284824168619876730229402019930943462534319453394436096", + "main.n2b.out[213]": "13164036458569648337239753460458804039861886925068638906788872192", + "main.n2b.out[214]": "26328072917139296674479506920917608079723773850137277813577744384", + "main.n2b.out[215]": "52656145834278593348959013841835216159447547700274555627155488768", + "main.in": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "b": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "c": { + "type": "LINEARCOMBINATION", + "values": { + "main.b2n.out": "1", + "main.n2b.out[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582", + "main.n2b.out[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208581", + "main.n2b.out[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208579", + "main.n2b.out[3]": "21888242871839275222246405745257275088696311157297823662689037894645226208575", + "main.n2b.out[4]": "21888242871839275222246405745257275088696311157297823662689037894645226208567", + "main.n2b.out[5]": "21888242871839275222246405745257275088696311157297823662689037894645226208551", + "main.n2b.out[6]": "21888242871839275222246405745257275088696311157297823662689037894645226208519", + "main.n2b.out[7]": "21888242871839275222246405745257275088696311157297823662689037894645226208455", + "main.n2b.out[8]": "21888242871839275222246405745257275088696311157297823662689037894645226208327", + "main.n2b.out[9]": "21888242871839275222246405745257275088696311157297823662689037894645226208071", + "main.n2b.out[10]": "21888242871839275222246405745257275088696311157297823662689037894645226207559", + "main.n2b.out[11]": "21888242871839275222246405745257275088696311157297823662689037894645226206535", + "main.n2b.out[12]": "21888242871839275222246405745257275088696311157297823662689037894645226204487", + "main.n2b.out[13]": "21888242871839275222246405745257275088696311157297823662689037894645226200391", + "main.n2b.out[14]": "21888242871839275222246405745257275088696311157297823662689037894645226192199", + "main.n2b.out[15]": "21888242871839275222246405745257275088696311157297823662689037894645226175815", + "main.n2b.out[16]": "21888242871839275222246405745257275088696311157297823662689037894645226143047", + "main.n2b.out[17]": "21888242871839275222246405745257275088696311157297823662689037894645226077511", + "main.n2b.out[18]": "21888242871839275222246405745257275088696311157297823662689037894645225946439", + "main.n2b.out[19]": "21888242871839275222246405745257275088696311157297823662689037894645225684295", + "main.n2b.out[20]": "21888242871839275222246405745257275088696311157297823662689037894645225160007", + "main.n2b.out[21]": "21888242871839275222246405745257275088696311157297823662689037894645224111431", + "main.n2b.out[22]": "21888242871839275222246405745257275088696311157297823662689037894645222014279", + "main.n2b.out[23]": "21888242871839275222246405745257275088696311157297823662689037894645217819975", + "main.n2b.out[24]": "21888242871839275222246405745257275088696311157297823662689037894645209431367", + "main.n2b.out[25]": "21888242871839275222246405745257275088696311157297823662689037894645192654151", + "main.n2b.out[26]": "21888242871839275222246405745257275088696311157297823662689037894645159099719", + "main.n2b.out[27]": "21888242871839275222246405745257275088696311157297823662689037894645091990855", + "main.n2b.out[28]": "21888242871839275222246405745257275088696311157297823662689037894644957773127", + "main.n2b.out[29]": "21888242871839275222246405745257275088696311157297823662689037894644689337671", + "main.n2b.out[30]": "21888242871839275222246405745257275088696311157297823662689037894644152466759", + "main.n2b.out[31]": "21888242871839275222246405745257275088696311157297823662689037894643078724935", + "main.n2b.out[32]": "21888242871839275222246405745257275088696311157297823662689037894640931241287", + "main.n2b.out[33]": "21888242871839275222246405745257275088696311157297823662689037894636636273991", + "main.n2b.out[34]": "21888242871839275222246405745257275088696311157297823662689037894628046339399", + "main.n2b.out[35]": "21888242871839275222246405745257275088696311157297823662689037894610866470215", + "main.n2b.out[36]": "21888242871839275222246405745257275088696311157297823662689037894576506731847", + "main.n2b.out[37]": "21888242871839275222246405745257275088696311157297823662689037894507787255111", + "main.n2b.out[38]": "21888242871839275222246405745257275088696311157297823662689037894370348301639", + "main.n2b.out[39]": "21888242871839275222246405745257275088696311157297823662689037894095470394695", + "main.n2b.out[40]": "21888242871839275222246405745257275088696311157297823662689037893545714580807", + "main.n2b.out[41]": "21888242871839275222246405745257275088696311157297823662689037892446202953031", + "main.n2b.out[42]": "21888242871839275222246405745257275088696311157297823662689037890247179697479", + "main.n2b.out[43]": "21888242871839275222246405745257275088696311157297823662689037885849133186375", + "main.n2b.out[44]": "21888242871839275222246405745257275088696311157297823662689037877053040164167", + "main.n2b.out[45]": "21888242871839275222246405745257275088696311157297823662689037859460854119751", + "main.n2b.out[46]": "21888242871839275222246405745257275088696311157297823662689037824276482030919", + "main.n2b.out[47]": "21888242871839275222246405745257275088696311157297823662689037753907737853255", + "main.n2b.out[48]": "21888242871839275222246405745257275088696311157297823662689037613170249497927", + "main.n2b.out[49]": "21888242871839275222246405745257275088696311157297823662689037331695272787271", + "main.n2b.out[50]": "21888242871839275222246405745257275088696311157297823662689036768745319365959", + "main.n2b.out[51]": "21888242871839275222246405745257275088696311157297823662689035642845412523335", + "main.n2b.out[52]": "21888242871839275222246405745257275088696311157297823662689033391045598838087", + "main.n2b.out[53]": "21888242871839275222246405745257275088696311157297823662689028887445971467591", + "main.n2b.out[54]": "21888242871839275222246405745257275088696311157297823662689019880246716726599", + "main.n2b.out[55]": "21888242871839275222246405745257275088696311157297823662689001865848207244615", + "main.n2b.out[56]": "21888242871839275222246405745257275088696311157297823662688965837051188280647", + "main.n2b.out[57]": "21888242871839275222246405745257275088696311157297823662688893779457150352711", + "main.n2b.out[58]": "21888242871839275222246405745257275088696311157297823662688749664269074496839", + "main.n2b.out[59]": "21888242871839275222246405745257275088696311157297823662688461433892922785095", + "main.n2b.out[60]": "21888242871839275222246405745257275088696311157297823662687884973140619361607", + "main.n2b.out[61]": "21888242871839275222246405745257275088696311157297823662686732051636012514631", + "main.n2b.out[62]": "21888242871839275222246405745257275088696311157297823662684426208626798820679", + "main.n2b.out[63]": "21888242871839275222246405745257275088696311157297823662679814522608371432775", + "main.n2b.out[64]": "21888242871839275222246405745257275088696311157297823662670591150571516656967", + "main.n2b.out[65]": "21888242871839275222246405745257275088696311157297823662652144406497807105351", + "main.n2b.out[66]": "21888242871839275222246405745257275088696311157297823662615250918350388002119", + "main.n2b.out[67]": "21888242871839275222246405745257275088696311157297823662541463942055549795655", + "main.n2b.out[68]": "21888242871839275222246405745257275088696311157297823662393889989465873382727", + "main.n2b.out[69]": "21888242871839275222246405745257275088696311157297823662098742084286520556871", + "main.n2b.out[70]": "21888242871839275222246405745257275088696311157297823661508446273927814905159", + "main.n2b.out[71]": "21888242871839275222246405745257275088696311157297823660327854653210403601735", + "main.n2b.out[72]": "21888242871839275222246405745257275088696311157297823657966671411775580994887", + "main.n2b.out[73]": "21888242871839275222246405745257275088696311157297823653244304928905935781191", + "main.n2b.out[74]": "21888242871839275222246405745257275088696311157297823643799571963166645353799", + "main.n2b.out[75]": "21888242871839275222246405745257275088696311157297823624910106031688064499015", + "main.n2b.out[76]": "21888242871839275222246405745257275088696311157297823587131174168730902789447", + "main.n2b.out[77]": "21888242871839275222246405745257275088696311157297823511573310442816579370311", + "main.n2b.out[78]": "21888242871839275222246405745257275088696311157297823360457582990987932532039", + "main.n2b.out[79]": "21888242871839275222246405745257275088696311157297823058226128087330638855495", + "main.n2b.out[80]": "21888242871839275222246405745257275088696311157297822453763218280016051502407", + "main.n2b.out[81]": "21888242871839275222246405745257275088696311157297821244837398665386876796231", + "main.n2b.out[82]": "21888242871839275222246405745257275088696311157297818826985759436128527383879", + "main.n2b.out[83]": "21888242871839275222246405745257275088696311157297813991282480977611828559175", + "main.n2b.out[84]": "21888242871839275222246405745257275088696311157297804319875924060578430909767", + "main.n2b.out[85]": "21888242871839275222246405745257275088696311157297784977062810226511635610951", + "main.n2b.out[86]": "21888242871839275222246405745257275088696311157297746291436582558378045013319", + "main.n2b.out[87]": "21888242871839275222246405745257275088696311157297668920184127222110863818055", + "main.n2b.out[88]": "21888242871839275222246405745257275088696311157297514177679216549576501427527", + "main.n2b.out[89]": "21888242871839275222246405745257275088696311157297204692669395204507776646471", + "main.n2b.out[90]": "21888242871839275222246405745257275088696311157296585722649752514370327084359", + "main.n2b.out[91]": "21888242871839275222246405745257275088696311157295347782610467134095427960135", + "main.n2b.out[92]": "21888242871839275222246405745257275088696311157292871902531896373545629711687", + "main.n2b.out[93]": "21888242871839275222246405745257275088696311157287920142374754852446033214791", + "main.n2b.out[94]": "21888242871839275222246405745257275088696311157278016622060471810246840220999", + "main.n2b.out[95]": "21888242871839275222246405745257275088696311157258209581431905725848454233415", + "main.n2b.out[96]": "21888242871839275222246405745257275088696311157218595500174773557051682258247", + "main.n2b.out[97]": "21888242871839275222246405745257275088696311157139367337660509219458138307911", + "main.n2b.out[98]": "21888242871839275222246405745257275088696311156980911012631980544271050407239", + "main.n2b.out[99]": "21888242871839275222246405745257275088696311156663998362574923193896874605895", + "main.n2b.out[100]": "21888242871839275222246405745257275088696311156030173062460808493148523003207", + "main.n2b.out[101]": "21888242871839275222246405745257275088696311154762522462232579091651819797831", + "main.n2b.out[102]": "21888242871839275222246405745257275088696311152227221261776120288658413387079", + "main.n2b.out[103]": "21888242871839275222246405745257275088696311147156618860863202682671600565575", + "main.n2b.out[104]": "21888242871839275222246405745257275088696311137015414059037367470697974922567", + "main.n2b.out[105]": "21888242871839275222246405745257275088696311116733004455385697046750723636551", + "main.n2b.out[106]": "21888242871839275222246405745257275088696311076168185248082356198856221064519", + "main.n2b.out[107]": "21888242871839275222246405745257275088696310995038546833475674503067215920455", + "main.n2b.out[108]": "21888242871839275222246405745257275088696310832779270004262311111489205632327", + "main.n2b.out[109]": "21888242871839275222246405745257275088696310508260716345835584328333185056071", + "main.n2b.out[110]": "21888242871839275222246405745257275088696309859223609028982130762021143903559", + "main.n2b.out[111]": "21888242871839275222246405745257275088696308561149394395275223629397061598535", + "main.n2b.out[112]": "21888242871839275222246405745257275088696305965000965127861409364148896988487", + "main.n2b.out[113]": "21888242871839275222246405745257275088696300772704106593033780833652567768391", + "main.n2b.out[114]": "21888242871839275222246405745257275088696290388110389523378523772659909328199", + "main.n2b.out[115]": "21888242871839275222246405745257275088696269618922955384068009650674592447815", + "main.n2b.out[116]": "21888242871839275222246405745257275088696228080548087105446981406703958687047", + "main.n2b.out[117]": "21888242871839275222246405745257275088696145003798350548204924918762691165511", + "main.n2b.out[118]": "21888242871839275222246405745257275088695978850298877433720811942880156122439", + "main.n2b.out[119]": "21888242871839275222246405745257275088695646543299931204752585991115086036295", + "main.n2b.out[120]": "21888242871839275222246405745257275088694981929302038746816134087584945864007", + "main.n2b.out[121]": "21888242871839275222246405745257275088693652701306253830943230280524665519431", + "main.n2b.out[122]": "21888242871839275222246405745257275088690994245314683999197422666404104830279", + "main.n2b.out[123]": "21888242871839275222246405745257275088685677333331544335705807438162983451975", + "main.n2b.out[124]": "21888242871839275222246405745257275088675043509365265008722576981680740695367", + "main.n2b.out[125]": "21888242871839275222246405745257275088653775861432706354756116068716255182151", + "main.n2b.out[126]": "21888242871839275222246405745257275088611240565567589046823194242787284155719", + "main.n2b.out[127]": "21888242871839275222246405745257275088526169973837354430957350590929342102855", + "main.n2b.out[128]": "21888242871839275222246405745257275088356028790376885199225663287213457997127", + "main.n2b.out[129]": "21888242871839275222246405745257275088015746423455946735762288679781689785671", + "main.n2b.out[130]": "21888242871839275222246405745257275087335181689614069808835539464918153362759", + "main.n2b.out[131]": "21888242871839275222246405745257275085974052221930315954982041035191080516935", + "main.n2b.out[132]": "21888242871839275222246405745257275083251793286562808247275044175736934825287", + "main.n2b.out[133]": "21888242871839275222246405745257275077807275415827792831861050456828643441991", + "main.n2b.out[134]": "21888242871839275222246405745257275066918239674357762001033063019012060675399", + "main.n2b.out[135]": "21888242871839275222246405745257275045140168191417700339377088143378895142215", + "main.n2b.out[136]": "21888242871839275222246405745257275001584025225537577016065138392112564075847", + "main.n2b.out[137]": "21888242871839275222246405745257274914471739293777330369441238889579901943111", + "main.n2b.out[138]": "21888242871839275222246405745257274740247167430256837076193439884514577677639", + "main.n2b.out[139]": "21888242871839275222246405745257274391798023703215850489697841874383929146695", + "main.n2b.out[140]": "21888242871839275222246405745257273694899736249133877316706645854122632084807", + "main.n2b.out[141]": "21888242871839275222246405745257272301103161340969930970724253813600037961031", + "main.n2b.out[142]": "21888242871839275222246405745257269513510011524642038278759469732554849713479", + "main.n2b.out[143]": "21888242871839275222246405745257263938323711891986252894829901570464473218375", + "main.n2b.out[144]": "21888242871839275222246405745257252787951112626674682126970765246283720228167", + "main.n2b.out[145]": "21888242871839275222246405745257230487205914096051540591252492597922214247751", + "main.n2b.out[146]": "21888242871839275222246405745257185885715517034805257519815947301199202286919", + "main.n2b.out[147]": "21888242871839275222246405745257096682734722912312691376942856707753178365255", + "main.n2b.out[148]": "21888242871839275222246405745256918276773134667327559091196675520861130521927", + "main.n2b.out[149]": "21888242871839275222246405745256561464849958177357294519704313147077034835271", + "main.n2b.out[150]": "21888242871839275222246405745255847841003605197416765376719588399508843461959", + "main.n2b.out[151]": "21888242871839275222246405745254420593310899237535707090750138904372460715335", + "main.n2b.out[152]": "21888242871839275222246405745251566097925487317773590518811239914099695222087", + "main.n2b.out[153]": "21888242871839275222246405745245857107154663478249357374933441933554164235591", + "main.n2b.out[154]": "21888242871839275222246405745234439125613015799200891087177845972463102262599", + "main.n2b.out[155]": "21888242871839275222246405745211603162529720441103958511666654050280978316615", + "main.n2b.out[156]": "21888242871839275222246405745165931236363129724910093360644270205916730424647", + "main.n2b.out[157]": "21888242871839275222246405745074587384029948292522363058599502517188234640711", + "main.n2b.out[158]": "21888242871839275222246405744891899679363585427746902454509967139731243072839", + "main.n2b.out[159]": "21888242871839275222246405744526524270030859698195981246330896384817259937095", + "main.n2b.out[160]": "21888242871839275222246405743795773451365408239094138829972754874989293665607", + "main.n2b.out[161]": "21888242871839275222246405742334271814034505320890453997256471855333361122631", + "main.n2b.out[162]": "21888242871839275222246405739411268539372699484483084331823905816021496036679", + "main.n2b.out[163]": "21888242871839275222246405733565261990049087811668345000958773737397765864775", + "main.n2b.out[164]": "21888242871839275222246405721873248891401864466038866339228509580150305520967", + "main.n2b.out[165]": "21888242871839275222246405698489222694107417774779909015767981265655384833351", + "main.n2b.out[166]": "21888242871839275222246405651721170299518524392261994368846924636665543458119", + "main.n2b.out[167]": "21888242871839275222246405558185065510340737627226165075004811378685860707655", + "main.n2b.out[168]": "21888242871839275222246405371112855931985164097154506487320584862726495206727", + "main.n2b.out[169]": "21888242871839275222246404996968436775274017037011189311952131830807764204871", + "main.n2b.out[170]": "21888242871839275222246404248679598461851722916724554961215225766970302201159", + "main.n2b.out[171]": "21888242871839275222246402752101921835007134676151286259741413639295378193735", + "main.n2b.out[172]": "21888242871839275222246399758946568581317958195004748856793789383945530178887", + "main.n2b.out[173]": "21888242871839275222246393772635862073939605232711674050898540873245834149191", + "main.n2b.out[174]": "21888242871839275222246381800014449059182899308125524439108043851846442089799", + "main.n2b.out[175]": "21888242871839275222246357854771623029669487458953225215527049809047657971015", + "main.n2b.out[176]": "21888242871839275222246309964285970970642663760608626768365061723450089733447", + "main.n2b.out[177]": "21888242871839275222246214183314666852589016363919429874041085552254953258311", + "main.n2b.out[178]": "21888242871839275222246022621372058616481721570541036085393133209864680308039", + "main.n2b.out[179]": "21888242871839275222245639497486842144267131983784248508097228525084134407495", + "main.n2b.out[180]": "21888242871839275222244873249716409199837952810270673353505419155523042606407", + "main.n2b.out[181]": "21888242871839275222243340754175543310979594463243523044321800416400859004231", + "main.n2b.out[182]": "21888242871839275222240275763093811533262877769189222425954562938156491799879", + "main.n2b.out[183]": "21888242871839275222234145780930347977829444381080621189220087981667757391175", + "main.n2b.out[184]": "21888242871839275222221885816603420866962577604863418715751138068690288573767", + "main.n2b.out[185]": "21888242871839275222197365887949566645228844052429013768813238242735350938951", + "main.n2b.out[186]": "21888242871839275222148326030641858201761376947560203874937438590825475669319", + "main.n2b.out[187]": "21888242871839275222050246316026441314826442737822584087185839287005725130055", + "main.n2b.out[188]": "21888242871839275221854086886795607540956574318347344511682640679366224051527", + "main.n2b.out[189]": "21888242871839275221461768028333939993216837479396865360676243464087221894471", + "main.n2b.out[190]": "21888242871839275220677130311410604897737363801495907058663449033529217580359", + "main.n2b.out[191]": "21888242871839275219107854877563934706778416445693990454637860172413208952135", + "main.n2b.out[192]": "21888242871839275215969304009870594324860521734090157246586682450181191695687", + "main.n2b.out[193]": "21888242871839275209692202274483913561024732310882490830484327005717157182791", + "main.n2b.out[194]": "21888242871839275197137998803710552033353153464467157998279616116789088156999", + "main.n2b.out[195]": "21888242871839275172029591862163828978009995771636492333870194338932950105415", + "main.n2b.out[196]": "21888242871839275121812777979070382867323680385975161005051350783220674002247", + "main.n2b.out[197]": "21888242871839275021379150212883490645951049614652498347413663671796121795911", + "main.n2b.out[198]": "21888242871839274820511894680509706203205788072007173032138289448947017383239", + "main.n2b.out[199]": "21888242871839274418777383615762137317715264986716522401587541003248808557895", + "main.n2b.out[200]": "21888242871839273615308361486266999546734218816135221140486044111852390907207", + "main.n2b.out[201]": "21888242871839272008370317227276724004772126474972618618283050329059555605831", + "main.n2b.out[202]": "21888242871839268794494228709296172920847941792647413573877062763473885003079", + "main.n2b.out[203]": "21888242871839262366742051673335070752999572427997003485065087632302543797575", + "main.n2b.out[204]": "21888242871839249511237697601412866417302833698696183307441137369959861386567", + "main.n2b.out[205]": "21888242871839223800228989457568457745909356240094542952193236845274496564551", + "main.n2b.out[206]": "21888242871839172378211573169879640403122401322891262241697435795903766920519", + "main.n2b.out[207]": "21888242871839069534176740594502005717548491488484700820705833697162307632455", + "main.n2b.out[208]": "21888242871838863846107075443746736346400671819671577978722629499679389056327", + "main.n2b.out[209]": "21888242871838452469967745142236197604105032482045332294756221104713551904071", + "main.n2b.out[210]": "21888242871837629717689084539215120119513753806792840926823404314781877599559", + "main.n2b.out[211]": "21888242871835984213131763333172965150331196456287858190957770734918528990535", + "main.n2b.out[212]": "21888242871832693204017120921088655211966081755277892719226503575191831772487", + "main.n2b.out[213]": "21888242871826111185787836096920035335235852353257961775763969255738437336391", + "main.n2b.out[214]": "21888242871812947149329266448582795581775393549218099888838900616831648464199", + "main.n2b.out[215]": "21888242871786619076412127151908316074854475941138376114988763339018070719815" + } + } + } +]; + +circuit.witnessNames=[ + [ + "one" + ], + [ + "main.in", + "main.n2b.in" + ], + [ + "main.out", + "main.b2n.out" + ], + [ + "main.n2b.out[0]", + "main.b2n.in[0]" + ], + [ + "main.n2b.out[1]", + "main.b2n.in[1]" + ], + [ + "main.n2b.out[2]", + "main.b2n.in[2]" + ], + [ + "main.n2b.out[3]", + "main.b2n.in[3]" + ], + [ + "main.n2b.out[4]", + "main.b2n.in[4]" + ], + [ + "main.n2b.out[5]", + "main.b2n.in[5]" + ], + [ + "main.n2b.out[6]", + "main.b2n.in[6]" + ], + [ + "main.n2b.out[7]", + "main.b2n.in[7]" + ], + [ + "main.n2b.out[8]", + "main.b2n.in[8]" + ], + [ + "main.n2b.out[9]", + "main.b2n.in[9]" + ], + [ + "main.n2b.out[10]", + "main.b2n.in[10]" + ], + [ + "main.n2b.out[11]", + "main.b2n.in[11]" + ], + [ + "main.n2b.out[12]", + "main.b2n.in[12]" + ], + [ + "main.n2b.out[13]", + "main.b2n.in[13]" + ], + [ + "main.n2b.out[14]", + "main.b2n.in[14]" + ], + [ + "main.n2b.out[15]", + "main.b2n.in[15]" + ], + [ + "main.n2b.out[16]", + "main.b2n.in[16]" + ], + [ + "main.n2b.out[17]", + "main.b2n.in[17]" + ], + [ + "main.n2b.out[18]", + "main.b2n.in[18]" + ], + [ + "main.n2b.out[19]", + "main.b2n.in[19]" + ], + [ + "main.n2b.out[20]", + "main.b2n.in[20]" + ], + [ + "main.n2b.out[21]", + "main.b2n.in[21]" + ], + [ + "main.n2b.out[22]", + "main.b2n.in[22]" + ], + [ + "main.n2b.out[23]", + "main.b2n.in[23]" + ], + [ + "main.n2b.out[24]", + "main.b2n.in[24]" + ], + [ + "main.n2b.out[25]", + "main.b2n.in[25]" + ], + [ + "main.n2b.out[26]", + "main.b2n.in[26]" + ], + [ + "main.n2b.out[27]", + "main.b2n.in[27]" + ], + [ + "main.n2b.out[28]", + "main.b2n.in[28]" + ], + [ + "main.n2b.out[29]", + "main.b2n.in[29]" + ], + [ + "main.n2b.out[30]", + "main.b2n.in[30]" + ], + [ + "main.n2b.out[31]", + "main.b2n.in[31]" + ], + [ + "main.n2b.out[32]", + "main.b2n.in[32]" + ], + [ + "main.n2b.out[33]", + "main.b2n.in[33]" + ], + [ + "main.n2b.out[34]", + "main.b2n.in[34]" + ], + [ + "main.n2b.out[35]", + "main.b2n.in[35]" + ], + [ + "main.n2b.out[36]", + "main.b2n.in[36]" + ], + [ + "main.n2b.out[37]", + "main.b2n.in[37]" + ], + [ + "main.n2b.out[38]", + "main.b2n.in[38]" + ], + [ + "main.n2b.out[39]", + "main.b2n.in[39]" + ], + [ + "main.n2b.out[40]", + "main.b2n.in[40]" + ], + [ + "main.n2b.out[41]", + "main.b2n.in[41]" + ], + [ + "main.n2b.out[42]", + "main.b2n.in[42]" + ], + [ + "main.n2b.out[43]", + "main.b2n.in[43]" + ], + [ + "main.n2b.out[44]", + "main.b2n.in[44]" + ], + [ + "main.n2b.out[45]", + "main.b2n.in[45]" + ], + [ + "main.n2b.out[46]", + "main.b2n.in[46]" + ], + [ + "main.n2b.out[47]", + "main.b2n.in[47]" + ], + [ + "main.n2b.out[48]", + "main.b2n.in[48]" + ], + [ + "main.n2b.out[49]", + "main.b2n.in[49]" + ], + [ + "main.n2b.out[50]", + "main.b2n.in[50]" + ], + [ + "main.n2b.out[51]", + "main.b2n.in[51]" + ], + [ + "main.n2b.out[52]", + "main.b2n.in[52]" + ], + [ + "main.n2b.out[53]", + "main.b2n.in[53]" + ], + [ + "main.n2b.out[54]", + "main.b2n.in[54]" + ], + [ + "main.n2b.out[55]", + "main.b2n.in[55]" + ], + [ + "main.n2b.out[56]", + "main.b2n.in[56]" + ], + [ + "main.n2b.out[57]", + "main.b2n.in[57]" + ], + [ + "main.n2b.out[58]", + "main.b2n.in[58]" + ], + [ + "main.n2b.out[59]", + "main.b2n.in[59]" + ], + [ + "main.n2b.out[60]", + "main.b2n.in[60]" + ], + [ + "main.n2b.out[61]", + "main.b2n.in[61]" + ], + [ + "main.n2b.out[62]", + "main.b2n.in[62]" + ], + [ + "main.n2b.out[63]", + "main.b2n.in[63]" + ], + [ + "main.n2b.out[64]", + "main.b2n.in[64]" + ], + [ + "main.n2b.out[65]", + "main.b2n.in[65]" + ], + [ + "main.n2b.out[66]", + "main.b2n.in[66]" + ], + [ + "main.n2b.out[67]", + "main.b2n.in[67]" + ], + [ + "main.n2b.out[68]", + "main.b2n.in[68]" + ], + [ + "main.n2b.out[69]", + "main.b2n.in[69]" + ], + [ + "main.n2b.out[70]", + "main.b2n.in[70]" + ], + [ + "main.n2b.out[71]", + "main.b2n.in[71]" + ], + [ + "main.n2b.out[72]", + "main.b2n.in[72]" + ], + [ + "main.n2b.out[73]", + "main.b2n.in[73]" + ], + [ + "main.n2b.out[74]", + "main.b2n.in[74]" + ], + [ + "main.n2b.out[75]", + "main.b2n.in[75]" + ], + [ + "main.n2b.out[76]", + "main.b2n.in[76]" + ], + [ + "main.n2b.out[77]", + "main.b2n.in[77]" + ], + [ + "main.n2b.out[78]", + "main.b2n.in[78]" + ], + [ + "main.n2b.out[79]", + "main.b2n.in[79]" + ], + [ + "main.n2b.out[80]", + "main.b2n.in[80]" + ], + [ + "main.n2b.out[81]", + "main.b2n.in[81]" + ], + [ + "main.n2b.out[82]", + "main.b2n.in[82]" + ], + [ + "main.n2b.out[83]", + "main.b2n.in[83]" + ], + [ + "main.n2b.out[84]", + "main.b2n.in[84]" + ], + [ + "main.n2b.out[85]", + "main.b2n.in[85]" + ], + [ + "main.n2b.out[86]", + "main.b2n.in[86]" + ], + [ + "main.n2b.out[87]", + "main.b2n.in[87]" + ], + [ + "main.n2b.out[88]", + "main.b2n.in[88]" + ], + [ + "main.n2b.out[89]", + "main.b2n.in[89]" + ], + [ + "main.n2b.out[90]", + "main.b2n.in[90]" + ], + [ + "main.n2b.out[91]", + "main.b2n.in[91]" + ], + [ + "main.n2b.out[92]", + "main.b2n.in[92]" + ], + [ + "main.n2b.out[93]", + "main.b2n.in[93]" + ], + [ + "main.n2b.out[94]", + "main.b2n.in[94]" + ], + [ + "main.n2b.out[95]", + "main.b2n.in[95]" + ], + [ + "main.n2b.out[96]", + "main.b2n.in[96]" + ], + [ + "main.n2b.out[97]", + "main.b2n.in[97]" + ], + [ + "main.n2b.out[98]", + "main.b2n.in[98]" + ], + [ + "main.n2b.out[99]", + "main.b2n.in[99]" + ], + [ + "main.n2b.out[100]", + "main.b2n.in[100]" + ], + [ + "main.n2b.out[101]", + "main.b2n.in[101]" + ], + [ + "main.n2b.out[102]", + "main.b2n.in[102]" + ], + [ + "main.n2b.out[103]", + "main.b2n.in[103]" + ], + [ + "main.n2b.out[104]", + "main.b2n.in[104]" + ], + [ + "main.n2b.out[105]", + "main.b2n.in[105]" + ], + [ + "main.n2b.out[106]", + "main.b2n.in[106]" + ], + [ + "main.n2b.out[107]", + "main.b2n.in[107]" + ], + [ + "main.n2b.out[108]", + "main.b2n.in[108]" + ], + [ + "main.n2b.out[109]", + "main.b2n.in[109]" + ], + [ + "main.n2b.out[110]", + "main.b2n.in[110]" + ], + [ + "main.n2b.out[111]", + "main.b2n.in[111]" + ], + [ + "main.n2b.out[112]", + "main.b2n.in[112]" + ], + [ + "main.n2b.out[113]", + "main.b2n.in[113]" + ], + [ + "main.n2b.out[114]", + "main.b2n.in[114]" + ], + [ + "main.n2b.out[115]", + "main.b2n.in[115]" + ], + [ + "main.n2b.out[116]", + "main.b2n.in[116]" + ], + [ + "main.n2b.out[117]", + "main.b2n.in[117]" + ], + [ + "main.n2b.out[118]", + "main.b2n.in[118]" + ], + [ + "main.n2b.out[119]", + "main.b2n.in[119]" + ], + [ + "main.n2b.out[120]", + "main.b2n.in[120]" + ], + [ + "main.n2b.out[121]", + "main.b2n.in[121]" + ], + [ + "main.n2b.out[122]", + "main.b2n.in[122]" + ], + [ + "main.n2b.out[123]", + "main.b2n.in[123]" + ], + [ + "main.n2b.out[124]", + "main.b2n.in[124]" + ], + [ + "main.n2b.out[125]", + "main.b2n.in[125]" + ], + [ + "main.n2b.out[126]", + "main.b2n.in[126]" + ], + [ + "main.n2b.out[127]", + "main.b2n.in[127]" + ], + [ + "main.n2b.out[128]", + "main.b2n.in[128]" + ], + [ + "main.n2b.out[129]", + "main.b2n.in[129]" + ], + [ + "main.n2b.out[130]", + "main.b2n.in[130]" + ], + [ + "main.n2b.out[131]", + "main.b2n.in[131]" + ], + [ + "main.n2b.out[132]", + "main.b2n.in[132]" + ], + [ + "main.n2b.out[133]", + "main.b2n.in[133]" + ], + [ + "main.n2b.out[134]", + "main.b2n.in[134]" + ], + [ + "main.n2b.out[135]", + "main.b2n.in[135]" + ], + [ + "main.n2b.out[136]", + "main.b2n.in[136]" + ], + [ + "main.n2b.out[137]", + "main.b2n.in[137]" + ], + [ + "main.n2b.out[138]", + "main.b2n.in[138]" + ], + [ + "main.n2b.out[139]", + "main.b2n.in[139]" + ], + [ + "main.n2b.out[140]", + "main.b2n.in[140]" + ], + [ + "main.n2b.out[141]", + "main.b2n.in[141]" + ], + [ + "main.n2b.out[142]", + "main.b2n.in[142]" + ], + [ + "main.n2b.out[143]", + "main.b2n.in[143]" + ], + [ + "main.n2b.out[144]", + "main.b2n.in[144]" + ], + [ + "main.n2b.out[145]", + "main.b2n.in[145]" + ], + [ + "main.n2b.out[146]", + "main.b2n.in[146]" + ], + [ + "main.n2b.out[147]", + "main.b2n.in[147]" + ], + [ + "main.n2b.out[148]", + "main.b2n.in[148]" + ], + [ + "main.n2b.out[149]", + "main.b2n.in[149]" + ], + [ + "main.n2b.out[150]", + "main.b2n.in[150]" + ], + [ + "main.n2b.out[151]", + "main.b2n.in[151]" + ], + [ + "main.n2b.out[152]", + "main.b2n.in[152]" + ], + [ + "main.n2b.out[153]", + "main.b2n.in[153]" + ], + [ + "main.n2b.out[154]", + "main.b2n.in[154]" + ], + [ + "main.n2b.out[155]", + "main.b2n.in[155]" + ], + [ + "main.n2b.out[156]", + "main.b2n.in[156]" + ], + [ + "main.n2b.out[157]", + "main.b2n.in[157]" + ], + [ + "main.n2b.out[158]", + "main.b2n.in[158]" + ], + [ + "main.n2b.out[159]", + "main.b2n.in[159]" + ], + [ + "main.n2b.out[160]", + "main.b2n.in[160]" + ], + [ + "main.n2b.out[161]", + "main.b2n.in[161]" + ], + [ + "main.n2b.out[162]", + "main.b2n.in[162]" + ], + [ + "main.n2b.out[163]", + "main.b2n.in[163]" + ], + [ + "main.n2b.out[164]", + "main.b2n.in[164]" + ], + [ + "main.n2b.out[165]", + "main.b2n.in[165]" + ], + [ + "main.n2b.out[166]", + "main.b2n.in[166]" + ], + [ + "main.n2b.out[167]", + "main.b2n.in[167]" + ], + [ + "main.n2b.out[168]", + "main.b2n.in[168]" + ], + [ + "main.n2b.out[169]", + "main.b2n.in[169]" + ], + [ + "main.n2b.out[170]", + "main.b2n.in[170]" + ], + [ + "main.n2b.out[171]", + "main.b2n.in[171]" + ], + [ + "main.n2b.out[172]", + "main.b2n.in[172]" + ], + [ + "main.n2b.out[173]", + "main.b2n.in[173]" + ], + [ + "main.n2b.out[174]", + "main.b2n.in[174]" + ], + [ + "main.n2b.out[175]", + "main.b2n.in[175]" + ], + [ + "main.n2b.out[176]", + "main.b2n.in[176]" + ], + [ + "main.n2b.out[177]", + "main.b2n.in[177]" + ], + [ + "main.n2b.out[178]", + "main.b2n.in[178]" + ], + [ + "main.n2b.out[179]", + "main.b2n.in[179]" + ], + [ + "main.n2b.out[180]", + "main.b2n.in[180]" + ], + [ + "main.n2b.out[181]", + "main.b2n.in[181]" + ], + [ + "main.n2b.out[182]", + "main.b2n.in[182]" + ], + [ + "main.n2b.out[183]", + "main.b2n.in[183]" + ], + [ + "main.n2b.out[184]", + "main.b2n.in[184]" + ], + [ + "main.n2b.out[185]", + "main.b2n.in[185]" + ], + [ + "main.n2b.out[186]", + "main.b2n.in[186]" + ], + [ + "main.n2b.out[187]", + "main.b2n.in[187]" + ], + [ + "main.n2b.out[188]", + "main.b2n.in[188]" + ], + [ + "main.n2b.out[189]", + "main.b2n.in[189]" + ], + [ + "main.n2b.out[190]", + "main.b2n.in[190]" + ], + [ + "main.n2b.out[191]", + "main.b2n.in[191]" + ], + [ + "main.n2b.out[192]", + "main.b2n.in[192]" + ], + [ + "main.n2b.out[193]", + "main.b2n.in[193]" + ], + [ + "main.n2b.out[194]", + "main.b2n.in[194]" + ], + [ + "main.n2b.out[195]", + "main.b2n.in[195]" + ], + [ + "main.n2b.out[196]", + "main.b2n.in[196]" + ], + [ + "main.n2b.out[197]", + "main.b2n.in[197]" + ], + [ + "main.n2b.out[198]", + "main.b2n.in[198]" + ], + [ + "main.n2b.out[199]", + "main.b2n.in[199]" + ], + [ + "main.n2b.out[200]", + "main.b2n.in[200]" + ], + [ + "main.n2b.out[201]", + "main.b2n.in[201]" + ], + [ + "main.n2b.out[202]", + "main.b2n.in[202]" + ], + [ + "main.n2b.out[203]", + "main.b2n.in[203]" + ], + [ + "main.n2b.out[204]", + "main.b2n.in[204]" + ], + [ + "main.n2b.out[205]", + "main.b2n.in[205]" + ], + [ + "main.n2b.out[206]", + "main.b2n.in[206]" + ], + [ + "main.n2b.out[207]", + "main.b2n.in[207]" + ], + [ + "main.n2b.out[208]", + "main.b2n.in[208]" + ], + [ + "main.n2b.out[209]", + "main.b2n.in[209]" + ], + [ + "main.n2b.out[210]", + "main.b2n.in[210]" + ], + [ + "main.n2b.out[211]", + "main.b2n.in[211]" + ], + [ + "main.n2b.out[212]", + "main.b2n.in[212]" + ], + [ + "main.n2b.out[213]", + "main.b2n.in[213]" + ], + [ + "main.n2b.out[214]", + "main.b2n.in[214]" + ], + [ + "main.n2b.out[215]", + "main.b2n.in[215]" + ] +]; + +{ + { + } +} + +circuit.templates = []; + +circuit.templates["Num2Bits"] = function(ctx) { + ctx.setVar("lc1", [], "0"); + for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt(ctx.getVar("n",[])) ? 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.getVar("i",[])).greater(256) ? 0 : bigInt(ctx.getSignal("in", [])).shiftRight(bigInt(ctx.getVar("i",[])).value).and(__MASK__)).and("1").and(__MASK__)); + ctx.assert(bigInt(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).times(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).add(__P__).minus("1").mod(__P__)).mod(__P__)).equals("0")); + ctx.setVar("lc1", [], bigInt(ctx.getVar("lc1",[])).add(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).times(bigInt("2").modPow(ctx.getVar("i",[]), __P__)).mod(__P__)).mod(__P__)); + } + ctx.assert(bigInt(ctx.getVar("lc1",[])).equals(ctx.getSignal("in", []))); +} +; + +circuit.templates["Bits2Num"] = function(ctx) { + ctx.setVar("lc1", [], "0"); + for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt(ctx.getVar("n",[])) ? 1 : 0;(ctx.setVar("i", [], bigInt(ctx.getVar("i",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) + { + ctx.setVar("lc1", [], bigInt(ctx.getVar("lc1",[])).add(bigInt(ctx.getSignal("in", [ctx.getVar("i",[])])).times(bigInt("2").modPow(ctx.getVar("i",[]), __P__)).mod(__P__)).mod(__P__)); + } + ctx.setSignal("out", [], ctx.getVar("lc1",[])); + ctx.assert(bigInt(ctx.getSignal("out", [])).equals(ctx.getVar("lc1",[]))); +} +; + +circuit.templates["A"] = function(ctx) { + ctx.setPin("n2b", [], "in", [], ctx.getSignal("in", [])); + ctx.assert(bigInt(ctx.getPin("n2b", [], "in", [])).equals(ctx.getSignal("in", []))); + for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt("216") ? 1 : 0;(ctx.setVar("i", [], bigInt(ctx.getVar("i",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) + { + ctx.setPin("b2n", [], "in", [ctx.getVar("i",[])], ctx.getPin("n2b", [], "out", [ctx.getVar("i",[])])); + ctx.assert(bigInt(ctx.getPin("b2n", [], "in", [ctx.getVar("i",[])])).equals(ctx.getPin("n2b", [], "out", [ctx.getVar("i",[])]))); + } + ctx.setSignal("out", [], ctx.getPin("b2n", [], "out", [])); + ctx.assert(bigInt(ctx.getSignal("out", [])).equals(ctx.getPin("b2n", [], "out", []))); +} +; diff --git a/sha256.out b/sha256.out new file mode 100644 index 0000000..feb680e --- /dev/null +++ b/sha256.out @@ -0,0 +1 @@ +["1","3624381080","3624381080","0","0","0","1","1","0","0","1","0","1","0","1","0","1","0","1","1","1","1","0","0","0","0","0","0","0","0","1","1","0","1","1","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","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","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","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"] \ No newline at end of file diff --git a/src/calculateWitness.js b/src/calculateWitness.js new file mode 100644 index 0000000..6d89de0 --- /dev/null +++ b/src/calculateWitness.js @@ -0,0 +1,209 @@ +const bigInt = require("big-integer"); + +module.exports = calculateWitness; + +function calculateWitness(circuit, inputSignals) { + const ctx = new RTCtx(circuit); + + function iterateSelector(values, sels, cb) { + if (!Array.isArray(values)) { + return cb(sels, values); + } + for (let i=0; i " + ctx.witness[i].toString()); + } + return ctx.witness; +} + +class RTCtx { + constructor(circuit) { + this.scopes = []; + this.circuit = circuit; + this.witness = []; + this.notInitSignals = {}; + for (let c in this.circuit.components) { + this.notInitSignals[c] = this.circuit.components[c].inputSignals; + if (this.notInitSignals == 0) { + this.currentComponent = c; + this.components.calc(this); + this.currentComponent = null; + } + } + } + + _sels2str(sels) { + let res = ""; + for (let i=0; i=0; i--) { + if (typeof(this.scopes[i][name]) != "undefined") return select(this.scopes[i][name], sels); + } + throw new Error("Variable not defined: " + name); + } + + getSignal(name, sels) { + let fullName = name=="one" ? "one" : this.currentComponent + "." + name; + fullName += this._sels2str(sels); + return this.getSignalFullName(fullName); + } + + + getPin(componentName, componentSels, signalName, signalSels) { + let fullName = componentName=="one" ? "one" : this.currentComponent + "." + componentName; + fullName += this._sels2str(componentSels) + + "."+ + signalName+ + this._sels2str(signalSels); + return this.getSignalFullName(fullName); + } + + getSignalFullName(fullName) { + const sId = this.circuit.signals[fullName].id; + if (typeof(this.witness[sId]) == "undefined") { + throw new Error("Signal not initialized: "+fullName); + } + console.log("get --->" + fullName + " = " + this.witness[sId].toString() ); + return this.witness[sId]; + } + + assert(a,b) { + const ba = bigInt(a); + const bb = bigInt(b); + if (!ba.equals(bb)) { + throw new Error("Constrain doesn't match: " + ba.toString() + " != " + bb.toString()); + } + } + + +} diff --git a/src/circuit_generator.js b/src/circuit_generator.js new file mode 100644 index 0000000..1e8a28c --- /dev/null +++ b/src/circuit_generator.js @@ -0,0 +1,156 @@ + +const fs = require("fs"); +const path = require("path"); +const bigInt = require("big-integer"); +const __P__ = new bigInt("21888242871839275222246405745257275088548364400416034343698204186575808495617"); +const __MASK__ = new bigInt(2).pow(253).minus(1); +const assert = require("assert"); +const gen = require("./gencode"); +const exec = require("./exec"); +const lc = require("./lcalgebra"); + + +const argv = require("optimist") + .alias("c", "circuit") + .alias("o", "output") + .alias("w", "witnes") + .argv; + +const parser = require("../jaz.js").parser; + +const fullFileName = path.resolve(process.cwd(), argv.circuit); +const fullFilePath = path.dirname(fullFileName); + +const src = fs.readFileSync(fullFileName, "utf8"); +const ast = parser.parse(src); + +assert(ast.type == "BLOCK"); + +const ctx = { + scopes: [{}], + signals: { + one: { + fullName: "one", + value: bigInt(1), + equivalence: "", + direction: "" + } + }, + currentComponent: "", + constrains: [], + components: {}, + templates: {}, + functions: {}, + functionParams: {}, + filePath: fullFilePath, + fileName: fullFileName +}; + +exec(ctx, ast); + +reduceConstrains(ctx); +generateWitnessNames(ctx); +generateWitnessConstrains(ctx); + +if (ctx.error) { + console.log(`ERROR at ${ctx.error.errFile}:${ctx.error.pos.first_line},${ctx.error.pos.first_column}-${ctx.error.pos.last_line},${ctx.error.pos.last_column} ${ctx.error.errStr}`); + console.log(JSON.stringify(ctx.error.ast, null, 1)); + process.exit(1); +} + +/* +console.log("SIGNALS"); +console.log("=========="); +for (let key in ctx.signals) { + const signal = ctx.signals[key]; + console.log(signal.fullName); +} + +console.log("CONSTRAINS"); +console.log("=========="); +for (let i=0; i>") { + return execShr(ctx, ast); + } else if (ast.op == "<") { + return execLt(ctx, ast); + } else if (ast.op == "==") { + return execEq(ctx, ast); + } else if (ast.op == "?") { + return execTerCon(ctx, ast); + } else { + error(ctx, ast, "Invalid operation: " + ast.op); + } + } else if (ast.type == "DECLARE") { + if (ast.declareType == "COMPONENT") { + return execDeclareComponent(ctx, ast); + } else if ((ast.declareType == "SIGNALIN")|| + (ast.declareType == "SIGNALOUT")|| + (ast.declareType == "SIGNAL")) { + return execDeclareSignal(ctx, ast); + } else if (ast.declareType == "VARIABLE") { + return execDeclareVariable(ctx, ast); + } else { + error(ctx, ast, "Invalid declaration: " + ast.declareType); + } + } else if (ast.type == "FUNCTIONCALL") { + return execFunctionCall(ctx, ast); + } else if (ast.type == "BLOCK") { + return execBlock(ctx, ast); + } else if (ast.type == "FOR") { + return execFor(ctx, ast); + } else if (ast.type == "WHILE") { + return execWhile(ctx, ast); + } else if (ast.type == "RETURN") { + return execReturn(ctx, ast); + } else if (ast.type == "TEMPLATEDEF") { + return execTemplateDef(ctx, ast); + } else if (ast.type == "FUNCTIONDEF") { + return execFunctionDef(ctx, ast); + } else if (ast.type == "INCLUDE") { + return execInclude(ctx, ast); + } else if (ast.type == "ARRAY") { + return execArray(ctx, ast); + } else { + error(ctx, ast, "Invalid AST node type: " + ast.type); + } +} + +function error(ctx, ast, errStr) { + ctx.error = { + pos: { + first_line: ast.first_line, + first_column: ast.first_column, + last_line: ast.last_line, + last_column: ast.last_column + }, + errStr: errStr, + errFile: ctx.fileName, + ast: ast + }; +} + +function iterateSelectors(ctx, sizes, baseName, fn) { + if (sizes.length == 0) { + return fn(baseName); + } + const res = []; + for (let i=0; i=0; i--) { + if (ctx.scopes[i][name]) return select(ctx.scopes[i][name], sels); + } + return null; +} + +function getScopeLevel(ctx, name) { + for (let i=ctx.scopes.length-1; i>=0; i--) { + if (ctx.scopes[i][name]) return i; + } + return -1; +} + +function execBlock(ctx, ast) { + for (let i=0; i>") { + return genShr(ctx, ast); + } else if (ast.op == "<") { + return genLt(ctx, ast); + } else if (ast.op == "==") { + return genEq(ctx, ast); + } else if (ast.op == "?") { + return genTerCon(ctx, ast); + } else { + error(ctx, ast, "Invalid operation: " + ast.op); + } + } else if (ast.type == "DECLARE") { + if (ast.declareType == "COMPONENT") { + return genDeclareComponent(ctx, ast); + } else if ((ast.declareType == "SIGNALIN")|| + (ast.declareType == "SIGNALOUT")|| + (ast.declareType == "SIGNAL")) { + return genDeclareSignal(ctx, ast); + } else if (ast.declareType == "VARIABLE") { + return genDeclareVariable(ctx, ast); + } else { + error(ctx, ast, "Invalid declaration: " + ast.declareType); + } + } else if (ast.type == "FUNCTIONCALL") { + return genFunctionCall(ctx, ast); + } else if (ast.type == "BLOCK") { + return genBlock(ctx, ast); + } else if (ast.type == "FOR") { + return genFor(ctx, ast); + } else if (ast.type == "WHILE") { + return genWhile(ctx, ast); + } else if (ast.type == "RETURN") { + return genReturn(ctx, ast); + } else if (ast.type == "TEMPLATEDEF") { + return genTemplateDef(ctx, ast); + } else if (ast.type == "FUNCTIONDEF") { + return genFunctionDef(ctx, ast); + } else if (ast.type == "INCLUDE") { + return genInclude(ctx, ast); + } else if (ast.type == "ARRAY") { + return genArray(ctx, ast); + } else { + error(ctx, ast, "GEN -> Invalid AST node type: " + ast.type); + } +} + + +function error(ctx, ast, errStr) { + ctx.error = { + pos: { + first_line: ast.first_line, + first_column: ast.first_column, + last_line: ast.last_line, + last_column: ast.last_column + }, + errStr: errStr, + ast: ast + }; +} + + +function getScope(ctx, name) { + for (let i=ctx.scopes.length-1; i>=0; i--) { + if (ctx.scopes[i][name]) return ctx.scopes[i][name]; + } + return null; +} + + +function genFunctionCall(ctx, ast) { + let S = "["; + for (let i=0; i0) S += ","; + S += gen(ctx, ast.params[i]); + } + S+="]"; + + return `ctx.callFunction("${ast.name}", ${S})`; +} + +function genBlock(ctx, ast) { + let body = ""; + for (let i=0; i0) S += ","; + S += gen(ctx, ast.values[i]); + } + S+="]"; + return S; +} + diff --git a/src/lcalgebra.js b/src/lcalgebra.js new file mode 100644 index 0000000..4dee61d --- /dev/null +++ b/src/lcalgebra.js @@ -0,0 +1,441 @@ +/* + + NUMBER: a + + { + type: "NUMBER", + value: bigInt(a) + } + + LINEARCOMBINATION: c1*s1 + c2*s2 + c3*s3 + + { + type: "LINEARCOMBINATION", + values: { + s1: bigInt(c1), + s2: bigInt(c2), + s3: bigInt(c3) + } + } + + + QEQ: a*b + c WHERE a,b,c are LINEARCOMBINATION + { + type: "QEQ" + a: { type: LINEARCOMBINATION, values: {...} }, + b: { type: LINEARCOMBINATION, values: {...} }, + c: { type: LINEARCOMBINATION, values: {...} } + } + */ + +/* ++ NUM LC QEQ +NUM NUM LC QEQ +LC LC LC QEQ +QEQ QEQ QEQ ERR + +* NUM LC QEQ +NUM NUM LC QEQ +LC LC QEQ ERR +QEQ QEQ ERR ERR +*/ + +const bigInt = require("big-integer"); +const __P__ = new bigInt("21888242871839275222246405745257275088548364400416034343698204186575808495617"); + +exports.add = add; +exports.mul = mul; +exports.evaluate = evaluate; +exports.negate = negate; +exports.sub = sub; +exports.toQEQ = toQEQ; +exports.isZero = isZero; +exports.toString = toString; +exports.canonize = canonize; + +function signal2lc(a) { + let lc; + if (a.type == "SIGNAL") { + lc = { + type: "LINEARCOMBINATION", + values: {} + }; + lc.values[a.fullName] = bigInt(1); + return lc; + } else { + return a; + } +} + +function clone(a) { + const res = {}; + res.type = a.type; + if (a.type == "NUMBER") { + res.value = bigInt(a.value); + } else if (a.type == "LINEARCOMBINATION") { + res.values = {}; + for (let k in a.values) { + res.values[k] = bigInt(a.values[k]); + } + } else if (a.type == "QEQ") { + res.a = clone(a.a); + res.b = clone(a.b); + res.c = clone(a.c); + } else if (a.type == "ERROR") { + res.errStr = a.errStr; + } else { + res.type = "ERROR"; + res.errStr = "Invilid type when clonning: "+a.type; + } + return res; +} + +function add(_a, _b) { + const a = signal2lc(_a); + const b = signal2lc(_b); + if (a.type == "ERROR") return a; + if (b.type == "ERROR") return b; + if (a.type == "NUMBER") { + if (b.type == "NUMBER") { + return addNumNum(a,b); + } else if (b.type=="LINEARCOMBINATION") { + return addLCNum(b,a); + } else if (b.type=="QEQ") { + return addQEQNum(b,a); + } else { + return { type: "ERROR", errStr: "LC Add Invalid Type 2: "+b.type }; + } + } else if (a.type=="LINEARCOMBINATION") { + if (b.type == "NUMBER") { + return addLCNum(a,b); + } else if (b.type=="LINEARCOMBINATION") { + return addLCLC(a,b); + } else if (b.type=="QEQ") { + return addQEQLC(b,a); + } else { + return { type: "ERROR", errStr: "LC Add Invalid Type 2: "+b.type }; + } + } else if (a.type=="QEQ") { + if (b.type == "NUMBER") { + return addQEQNum(a,b); + } else if (b.type=="LINEARCOMBINATION") { + return addQEQLC(a,b); + } else if (b.type=="QEQ") { + return { type: "ERROR", errStr: "QEQ + QEQ" }; + } else { + return { type: "ERROR", errStr: "LC Add Invalid Type 2: "+b.type }; + } + } else { + return { type: "ERROR", errStr: "LC Add Invalid Type 1: "+a.type }; + } +} + +function addNumNum(a,b) { + if (!a.value || !b.value) return { type: "NUMBER" }; + return { + type: "NUMBER", + value: a.value.add(b.value).mod(__P__) + }; +} + +function addLCNum(a,b) { + let res = clone(a); + if (!b.value) { + return { type: "ERROR", errStr: "LinearCombination + undefined" }; + } + if (b.value.isZero()) return res; + if (!res.values["one"]) { + res.values["one"]=bigInt(b.value); + } else { + res.values["one"]= res.values["one"].add(b.value).mod(__P__); + } + return res; +} + +function addLCLC(a,b) { + let res = clone(a); + for (let k in b.values) { + if (!res.values[k]) { + res.values[k]=bigInt(b.values[k]); + } else { + res.values[k]= res.values[k].add(b.values[k]).mod(__P__); + } + } + return res; +} + +function addQEQNum(a,b) { + let res = clone(a); + res.c = addLCNum(res.c, b); + if (res.c.type == "ERROR") return res.c; + return res; +} + +function addQEQLC(a,b) { + let res = clone(a); + res.c = addLCLC(res.c, b); + if (res.c.type == "ERROR") return res.c; + return res; +} + +function mul(_a, _b) { + const a = signal2lc(_a); + const b = signal2lc(_b); + if (a.type == "ERROR") return a; + if (b.type == "ERROR") return b; + if (a.type == "NUMBER") { + if (b.type == "NUMBER") { + return mulNumNum(a,b); + } else if (b.type=="LINEARCOMBINATION") { + return mulLCNum(b,a); + } else if (b.type=="QEQ") { + return mulQEQNum(b,a); + } else { + return { type: "ERROR", errStr: "LC Mul Invalid Type 2: "+b.type }; + } + } else if (a.type=="LINEARCOMBINATION") { + if (b.type == "NUMBER") { + return mulLCNum(a,b); + } else if (b.type=="LINEARCOMBINATION") { + return mulLCLC(a,b); + } else if (b.type=="QEQ") { + return { type: "ERROR", errStr: "LC * QEQ" }; + } else { + return { type: "ERROR", errStr: "LC Mul Invalid Type 2: "+b.type }; + } + } else if (a.type=="QEQ") { + if (b.type == "NUMBER") { + return mulQEQNum(a,b); + } else if (b.type=="LINEARCOMBINATION") { + return { type: "ERROR", errStr: "QEC * LC" }; + } else if (b.type=="QEQ") { + return { type: "ERROR", errStr: "QEQ * QEQ" }; + } else { + return { type: "ERROR", errStr: "LC Mul Invalid Type 2: "+b.type }; + } + } else { + return { type: "ERROR", errStr: "LC Mul Invalid Type 1: "+a.type }; + } +} + + +function mulNumNum(a,b) { + if (!a.value || !b.value) return { type: "NUMBER" }; + return { + type: "NUMBER", + value: a.value.times(b.value).mod(__P__) + }; +} + +function mulLCNum(a,b) { + let res = clone(a); + if (!b.value) { + return {type: "ERROR", errStr: "LinearCombination * undefined"}; + } + for (let k in res.values) { + res.values[k] = res.values[k].times(b.value).mod(__P__); + } + return res; +} + +function mulLCLC(a,b) { + return { + type: "QEQ", + a: clone(a), + b: clone(b), + c: { type: "LINEARCOMBINATION", values: {}} + }; +} + +function mulQEQNum(a,b) { + let res = { + type: "QEQ", + a: mulLCNum(a.a, b), + b: clone(a.b), + c: mulLCNum(a.c, b) + }; + if (res.a.type == "ERROR") return res.a; + if (res.c.type == "ERROR") return res.a; + return res; +} + +function getSignalValue(ctx, signalName) { + const s = ctx.signals[signalName]; + if (s.equivalence != "") { + return getSignalValue(ctx, s.equivalence); + } else { + const res = { + type: "NUMBER" + }; + if (s.value) { + res.value = s.value; + } + return res; + } +} + +function evaluate(ctx, n) { + if (n.type == "NUMBER") { + return n; + } else if (n.type == "SIGNAL") { + return getSignalValue(ctx, n.fullName); + } else if (n.type == "LINEARCOMBINATION") { + const v= { + type: "NUMBER", + value: bigInt(0) + }; + for (let k in n.values) { + const s = getSignalValue(ctx, k); + if (s.type != "NUMBER") return {type: "ERROR", errStr: "Invalid signal in linear Combination: " + k}; + if (!s.value) return { type: "NUMBER" }; + v.value = v.value.add( n.values[k].times(s.value)).mod(__P__); + } + return v; + } else if (n.type == "QEQ") { + const a = evaluate(ctx, n.a); + if (a.type == "ERROR") return a; + if (!a.value) return { type: "NUMBER" }; + const b = evaluate(ctx, n.b); + if (b.type == "ERROR") return b; + if (!b.value) return { type: "NUMBER" }; + const c = evaluate(ctx, n.c); + if (c.type == "ERROR") return c; + if (!c.value) return { type: "NUMBER" }; + + return { + type: "NUMBER", + value: (a.value.times(b.value).add(c.value)).mod(__P__) + }; + } else if (n.type == "ERROR") { + return n; + } else { + return {type: "ERROR", errStr: "Invalid type in evaluate: "+n.type}; + } +} + +function negate(_a) { + const a = signal2lc(_a); + let res = clone(a); + if (res.type == "NUMBER") { + res.value = __P__.minus(a.value).mod(__P__); + } else if (res.type == "LINEARCOMBINATION") { + for (let k in res.values) { + res.values[k] = __P__.minus(res.values[k]).mod(__P__); + } + } else if (res.type == "QEQ") { + res.a = negate(res.a); + res.c = negate(res.c); + } else if (res.type == "ERROR") { + return res; + } else { + res = {type: "ERROR", errStr: "LC Negate invalid Type: "+res.type}; + } + return res; +} + +function sub(a, b) { + return add(a, negate(b)); +} + +function toQEQ(a) { + if (a.type == "NUMBER") { + return { + type: "QEQ", + a: {type: "LINEARCOMBINATION", values: {}}, + b: {type: "LINEARCOMBINATION", values: {}}, + c: {type: "LINEARCOMBINATION", values: {"one": bigInt(a.value)}} + }; + } else if (a.type == "LINEARCOMBINATION") { + return { + type: "QEQ", + a: {type: "LINEARCOMBINATION", values: {}}, + b: {type: "LINEARCOMBINATION", values: {}}, + c: clone(a) + }; + } else if (a.type == "QEQ") { + return clone(a); + } else if (a.type == "ERROR") { + return clone(a); + } else { + return {type: "ERROR", errStr: "toQEQ invalid Type: "+a.type}; + } +} + +function isZero(a) { + if (a.type == "NUMBER") { + return a.value.isZero(); + } else if (a.type == "LINEARCOMBINATION") { + for (let k in a.values) { + if (!a.values[k].isZero()) return false; + } + return true; + } else if (a.type == "QEQ") { + return (isZero(a.a) || isZero(a.b)) && isZero(a.c); + } else if (a.type == "ERROR") { + return false; + } else { + return false; + } +} + +function toString(a, ctx) { + if (a.type == "NUMBER") { + return a.value.toString(); + } else if (a.type == "LINEARCOMBINATION") { + let S=""; + for (let k in a.values) { + if (!a.values[k].isZero()) { + let c; + if (a.values[k].greater(__P__.divide(2))) { + S = S + "-"; + c = __P__.minus(a.values[k]); + } else { + if (S!="") S=S+" + "; + c = a.values[k]; + } + if (!c.equals(1)) { + S = S + c.toString() + "*"; + } + let sigName = k; + if (ctx) { + while (ctx.signals[sigName].equivalence) sigName = ctx.signals[sigName].equivalence; + } + S = S + sigName; + } + } + if (S=="") return "0"; else return S; + } else if (a.type == "QEQ") { + return "( "+toString(a.a, ctx)+" ) * ( "+toString(a.b, ctx)+" ) + " + toString(a.c, ctx); + } else if (a.type == "ERROR") { + return "ERROR: "+a.errStr; + } else { + return "INVALID"; + } +} + +function canonize(ctx, a) { + if (a.type == "LINEARCOMBINATION") { + for (let k in a.values) { + let s = k; + while (ctx.signals[s].equivalence) s= ctx.signals[s].equivalence; + if (s != k) { + if (!a.values[s]) { + a.values[s]=bigInt(a.values[k]); + } else { + a.values[s]= a.values[s].add(a.values[k]).mod(__P__); + } + delete a.values[k]; + } + } + for (let k in a.values) { + if (a.values[k].isZero()) delete a.values[k]; + } + return a; + } else if (a.type == "QEQ") { + a.a = canonize(ctx, a.a); + a.b = canonize(ctx, a.b); + a.c = canonize(ctx, a.c); + } + return a; +} + diff --git a/src/rt.js b/src/rt.js new file mode 100644 index 0000000..57a60c7 --- /dev/null +++ b/src/rt.js @@ -0,0 +1,27 @@ +const fs = require("fs"); +const path = require("path"); + +const calculateWitness = require("./calculateWitness.js"); + +const argv = require("optimist") + .alias("i", "input") + .alias("o", "output") + .alias("c", "circuit") + .argv; + +const circuit = require(path.resolve(argv.circuit)); + +const inputSignals = JSON.parse(fs.readFileSync(argv.input, "utf8")); + +try { + const w = calculateWitness(circuit, inputSignals); + fs.writeFileSync(argv.output, JSON.stringify(w), "utf8"); +} catch(err) { + console.log("ERROR: " + err); + console.log(err.stack); +} + + + + + diff --git a/sum_test.js b/sum_test.js new file mode 100644 index 0000000..7e5e667 --- /dev/null +++ b/sum_test.js @@ -0,0 +1,5050 @@ +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.a": { + "fullName": "main.a", + "direction": "IN", + "component": "main", + "equivalence": "", + "alias": [ + "main.a" + ], + "id": 1 + }, + "main.b": { + "fullName": "main.b", + "direction": "IN", + "component": "main", + "equivalence": "", + "alias": [ + "main.b" + ], + "id": 2 + }, + "main.out": { + "fullName": "main.out", + "direction": "OUT", + "component": "main", + "equivalence": "main.b2n.out", + "alias": [ + "main.out", + null + ], + "id": 3 + }, + "main.n2ba.in": { + "fullName": "main.n2ba.in", + "direction": "IN", + "component": "main.n2ba", + "equivalence": "main.a", + "alias": [ + "main.n2ba.in", + null + ], + "id": 1 + }, + "main.n2ba.out[0]": { + "fullName": "main.n2ba.out[0]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[0]" + ], + "id": 4 + }, + "main.n2ba.out[1]": { + "fullName": "main.n2ba.out[1]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[1]" + ], + "id": 5 + }, + "main.n2ba.out[2]": { + "fullName": "main.n2ba.out[2]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[2]" + ], + "id": 6 + }, + "main.n2ba.out[3]": { + "fullName": "main.n2ba.out[3]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[3]" + ], + "id": 7 + }, + "main.n2ba.out[4]": { + "fullName": "main.n2ba.out[4]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[4]" + ], + "id": 8 + }, + "main.n2ba.out[5]": { + "fullName": "main.n2ba.out[5]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[5]" + ], + "id": 9 + }, + "main.n2ba.out[6]": { + "fullName": "main.n2ba.out[6]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[6]" + ], + "id": 10 + }, + "main.n2ba.out[7]": { + "fullName": "main.n2ba.out[7]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[7]" + ], + "id": 11 + }, + "main.n2ba.out[8]": { + "fullName": "main.n2ba.out[8]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[8]" + ], + "id": 12 + }, + "main.n2ba.out[9]": { + "fullName": "main.n2ba.out[9]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[9]" + ], + "id": 13 + }, + "main.n2ba.out[10]": { + "fullName": "main.n2ba.out[10]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[10]" + ], + "id": 14 + }, + "main.n2ba.out[11]": { + "fullName": "main.n2ba.out[11]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[11]" + ], + "id": 15 + }, + "main.n2ba.out[12]": { + "fullName": "main.n2ba.out[12]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[12]" + ], + "id": 16 + }, + "main.n2ba.out[13]": { + "fullName": "main.n2ba.out[13]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[13]" + ], + "id": 17 + }, + "main.n2ba.out[14]": { + "fullName": "main.n2ba.out[14]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[14]" + ], + "id": 18 + }, + "main.n2ba.out[15]": { + "fullName": "main.n2ba.out[15]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[15]" + ], + "id": 19 + }, + "main.n2ba.out[16]": { + "fullName": "main.n2ba.out[16]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[16]" + ], + "id": 20 + }, + "main.n2ba.out[17]": { + "fullName": "main.n2ba.out[17]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[17]" + ], + "id": 21 + }, + "main.n2ba.out[18]": { + "fullName": "main.n2ba.out[18]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[18]" + ], + "id": 22 + }, + "main.n2ba.out[19]": { + "fullName": "main.n2ba.out[19]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[19]" + ], + "id": 23 + }, + "main.n2ba.out[20]": { + "fullName": "main.n2ba.out[20]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[20]" + ], + "id": 24 + }, + "main.n2ba.out[21]": { + "fullName": "main.n2ba.out[21]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[21]" + ], + "id": 25 + }, + "main.n2ba.out[22]": { + "fullName": "main.n2ba.out[22]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[22]" + ], + "id": 26 + }, + "main.n2ba.out[23]": { + "fullName": "main.n2ba.out[23]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[23]" + ], + "id": 27 + }, + "main.n2ba.out[24]": { + "fullName": "main.n2ba.out[24]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[24]" + ], + "id": 28 + }, + "main.n2ba.out[25]": { + "fullName": "main.n2ba.out[25]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[25]" + ], + "id": 29 + }, + "main.n2ba.out[26]": { + "fullName": "main.n2ba.out[26]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[26]" + ], + "id": 30 + }, + "main.n2ba.out[27]": { + "fullName": "main.n2ba.out[27]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[27]" + ], + "id": 31 + }, + "main.n2ba.out[28]": { + "fullName": "main.n2ba.out[28]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[28]" + ], + "id": 32 + }, + "main.n2ba.out[29]": { + "fullName": "main.n2ba.out[29]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[29]" + ], + "id": 33 + }, + "main.n2ba.out[30]": { + "fullName": "main.n2ba.out[30]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[30]" + ], + "id": 34 + }, + "main.n2ba.out[31]": { + "fullName": "main.n2ba.out[31]", + "direction": "OUT", + "component": "main.n2ba", + "equivalence": "", + "alias": [ + "main.n2ba.out[31]" + ], + "id": 35 + }, + "main.n2bb.in": { + "fullName": "main.n2bb.in", + "direction": "IN", + "component": "main.n2bb", + "equivalence": "main.b", + "alias": [ + "main.n2bb.in", + null + ], + "id": 2 + }, + "main.n2bb.out[0]": { + "fullName": "main.n2bb.out[0]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[0]" + ], + "id": 36 + }, + "main.n2bb.out[1]": { + "fullName": "main.n2bb.out[1]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[1]" + ], + "id": 37 + }, + "main.n2bb.out[2]": { + "fullName": "main.n2bb.out[2]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[2]" + ], + "id": 38 + }, + "main.n2bb.out[3]": { + "fullName": "main.n2bb.out[3]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[3]" + ], + "id": 39 + }, + "main.n2bb.out[4]": { + "fullName": "main.n2bb.out[4]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[4]" + ], + "id": 40 + }, + "main.n2bb.out[5]": { + "fullName": "main.n2bb.out[5]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[5]" + ], + "id": 41 + }, + "main.n2bb.out[6]": { + "fullName": "main.n2bb.out[6]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[6]" + ], + "id": 42 + }, + "main.n2bb.out[7]": { + "fullName": "main.n2bb.out[7]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[7]" + ], + "id": 43 + }, + "main.n2bb.out[8]": { + "fullName": "main.n2bb.out[8]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[8]" + ], + "id": 44 + }, + "main.n2bb.out[9]": { + "fullName": "main.n2bb.out[9]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[9]" + ], + "id": 45 + }, + "main.n2bb.out[10]": { + "fullName": "main.n2bb.out[10]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[10]" + ], + "id": 46 + }, + "main.n2bb.out[11]": { + "fullName": "main.n2bb.out[11]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[11]" + ], + "id": 47 + }, + "main.n2bb.out[12]": { + "fullName": "main.n2bb.out[12]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[12]" + ], + "id": 48 + }, + "main.n2bb.out[13]": { + "fullName": "main.n2bb.out[13]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[13]" + ], + "id": 49 + }, + "main.n2bb.out[14]": { + "fullName": "main.n2bb.out[14]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[14]" + ], + "id": 50 + }, + "main.n2bb.out[15]": { + "fullName": "main.n2bb.out[15]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[15]" + ], + "id": 51 + }, + "main.n2bb.out[16]": { + "fullName": "main.n2bb.out[16]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[16]" + ], + "id": 52 + }, + "main.n2bb.out[17]": { + "fullName": "main.n2bb.out[17]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[17]" + ], + "id": 53 + }, + "main.n2bb.out[18]": { + "fullName": "main.n2bb.out[18]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[18]" + ], + "id": 54 + }, + "main.n2bb.out[19]": { + "fullName": "main.n2bb.out[19]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[19]" + ], + "id": 55 + }, + "main.n2bb.out[20]": { + "fullName": "main.n2bb.out[20]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[20]" + ], + "id": 56 + }, + "main.n2bb.out[21]": { + "fullName": "main.n2bb.out[21]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[21]" + ], + "id": 57 + }, + "main.n2bb.out[22]": { + "fullName": "main.n2bb.out[22]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[22]" + ], + "id": 58 + }, + "main.n2bb.out[23]": { + "fullName": "main.n2bb.out[23]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[23]" + ], + "id": 59 + }, + "main.n2bb.out[24]": { + "fullName": "main.n2bb.out[24]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[24]" + ], + "id": 60 + }, + "main.n2bb.out[25]": { + "fullName": "main.n2bb.out[25]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[25]" + ], + "id": 61 + }, + "main.n2bb.out[26]": { + "fullName": "main.n2bb.out[26]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[26]" + ], + "id": 62 + }, + "main.n2bb.out[27]": { + "fullName": "main.n2bb.out[27]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[27]" + ], + "id": 63 + }, + "main.n2bb.out[28]": { + "fullName": "main.n2bb.out[28]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[28]" + ], + "id": 64 + }, + "main.n2bb.out[29]": { + "fullName": "main.n2bb.out[29]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[29]" + ], + "id": 65 + }, + "main.n2bb.out[30]": { + "fullName": "main.n2bb.out[30]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[30]" + ], + "id": 66 + }, + "main.n2bb.out[31]": { + "fullName": "main.n2bb.out[31]", + "direction": "OUT", + "component": "main.n2bb", + "equivalence": "", + "alias": [ + "main.n2bb.out[31]" + ], + "id": 67 + }, + "main.sum.in[0][0]": { + "fullName": "main.sum.in[0][0]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[0]", + "alias": [ + "main.sum.in[0][0]", + null + ], + "id": 4 + }, + "main.sum.in[0][1]": { + "fullName": "main.sum.in[0][1]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[1]", + "alias": [ + "main.sum.in[0][1]", + null + ], + "id": 5 + }, + "main.sum.in[0][2]": { + "fullName": "main.sum.in[0][2]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[2]", + "alias": [ + "main.sum.in[0][2]", + null + ], + "id": 6 + }, + "main.sum.in[0][3]": { + "fullName": "main.sum.in[0][3]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[3]", + "alias": [ + "main.sum.in[0][3]", + null + ], + "id": 7 + }, + "main.sum.in[0][4]": { + "fullName": "main.sum.in[0][4]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[4]", + "alias": [ + "main.sum.in[0][4]", + null + ], + "id": 8 + }, + "main.sum.in[0][5]": { + "fullName": "main.sum.in[0][5]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[5]", + "alias": [ + "main.sum.in[0][5]", + null + ], + "id": 9 + }, + "main.sum.in[0][6]": { + "fullName": "main.sum.in[0][6]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[6]", + "alias": [ + "main.sum.in[0][6]", + null + ], + "id": 10 + }, + "main.sum.in[0][7]": { + "fullName": "main.sum.in[0][7]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[7]", + "alias": [ + "main.sum.in[0][7]", + null + ], + "id": 11 + }, + "main.sum.in[0][8]": { + "fullName": "main.sum.in[0][8]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[8]", + "alias": [ + "main.sum.in[0][8]", + null + ], + "id": 12 + }, + "main.sum.in[0][9]": { + "fullName": "main.sum.in[0][9]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[9]", + "alias": [ + "main.sum.in[0][9]", + null + ], + "id": 13 + }, + "main.sum.in[0][10]": { + "fullName": "main.sum.in[0][10]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[10]", + "alias": [ + "main.sum.in[0][10]", + null + ], + "id": 14 + }, + "main.sum.in[0][11]": { + "fullName": "main.sum.in[0][11]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[11]", + "alias": [ + "main.sum.in[0][11]", + null + ], + "id": 15 + }, + "main.sum.in[0][12]": { + "fullName": "main.sum.in[0][12]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[12]", + "alias": [ + "main.sum.in[0][12]", + null + ], + "id": 16 + }, + "main.sum.in[0][13]": { + "fullName": "main.sum.in[0][13]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[13]", + "alias": [ + "main.sum.in[0][13]", + null + ], + "id": 17 + }, + "main.sum.in[0][14]": { + "fullName": "main.sum.in[0][14]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[14]", + "alias": [ + "main.sum.in[0][14]", + null + ], + "id": 18 + }, + "main.sum.in[0][15]": { + "fullName": "main.sum.in[0][15]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[15]", + "alias": [ + "main.sum.in[0][15]", + null + ], + "id": 19 + }, + "main.sum.in[0][16]": { + "fullName": "main.sum.in[0][16]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[16]", + "alias": [ + "main.sum.in[0][16]", + null + ], + "id": 20 + }, + "main.sum.in[0][17]": { + "fullName": "main.sum.in[0][17]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[17]", + "alias": [ + "main.sum.in[0][17]", + null + ], + "id": 21 + }, + "main.sum.in[0][18]": { + "fullName": "main.sum.in[0][18]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[18]", + "alias": [ + "main.sum.in[0][18]", + null + ], + "id": 22 + }, + "main.sum.in[0][19]": { + "fullName": "main.sum.in[0][19]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[19]", + "alias": [ + "main.sum.in[0][19]", + null + ], + "id": 23 + }, + "main.sum.in[0][20]": { + "fullName": "main.sum.in[0][20]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[20]", + "alias": [ + "main.sum.in[0][20]", + null + ], + "id": 24 + }, + "main.sum.in[0][21]": { + "fullName": "main.sum.in[0][21]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[21]", + "alias": [ + "main.sum.in[0][21]", + null + ], + "id": 25 + }, + "main.sum.in[0][22]": { + "fullName": "main.sum.in[0][22]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[22]", + "alias": [ + "main.sum.in[0][22]", + null + ], + "id": 26 + }, + "main.sum.in[0][23]": { + "fullName": "main.sum.in[0][23]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[23]", + "alias": [ + "main.sum.in[0][23]", + null + ], + "id": 27 + }, + "main.sum.in[0][24]": { + "fullName": "main.sum.in[0][24]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[24]", + "alias": [ + "main.sum.in[0][24]", + null + ], + "id": 28 + }, + "main.sum.in[0][25]": { + "fullName": "main.sum.in[0][25]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[25]", + "alias": [ + "main.sum.in[0][25]", + null + ], + "id": 29 + }, + "main.sum.in[0][26]": { + "fullName": "main.sum.in[0][26]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[26]", + "alias": [ + "main.sum.in[0][26]", + null + ], + "id": 30 + }, + "main.sum.in[0][27]": { + "fullName": "main.sum.in[0][27]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[27]", + "alias": [ + "main.sum.in[0][27]", + null + ], + "id": 31 + }, + "main.sum.in[0][28]": { + "fullName": "main.sum.in[0][28]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[28]", + "alias": [ + "main.sum.in[0][28]", + null + ], + "id": 32 + }, + "main.sum.in[0][29]": { + "fullName": "main.sum.in[0][29]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[29]", + "alias": [ + "main.sum.in[0][29]", + null + ], + "id": 33 + }, + "main.sum.in[0][30]": { + "fullName": "main.sum.in[0][30]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[30]", + "alias": [ + "main.sum.in[0][30]", + null + ], + "id": 34 + }, + "main.sum.in[0][31]": { + "fullName": "main.sum.in[0][31]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2ba.out[31]", + "alias": [ + "main.sum.in[0][31]", + null + ], + "id": 35 + }, + "main.sum.in[1][0]": { + "fullName": "main.sum.in[1][0]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[0]", + "alias": [ + "main.sum.in[1][0]", + null + ], + "id": 36 + }, + "main.sum.in[1][1]": { + "fullName": "main.sum.in[1][1]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[1]", + "alias": [ + "main.sum.in[1][1]", + null + ], + "id": 37 + }, + "main.sum.in[1][2]": { + "fullName": "main.sum.in[1][2]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[2]", + "alias": [ + "main.sum.in[1][2]", + null + ], + "id": 38 + }, + "main.sum.in[1][3]": { + "fullName": "main.sum.in[1][3]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[3]", + "alias": [ + "main.sum.in[1][3]", + null + ], + "id": 39 + }, + "main.sum.in[1][4]": { + "fullName": "main.sum.in[1][4]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[4]", + "alias": [ + "main.sum.in[1][4]", + null + ], + "id": 40 + }, + "main.sum.in[1][5]": { + "fullName": "main.sum.in[1][5]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[5]", + "alias": [ + "main.sum.in[1][5]", + null + ], + "id": 41 + }, + "main.sum.in[1][6]": { + "fullName": "main.sum.in[1][6]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[6]", + "alias": [ + "main.sum.in[1][6]", + null + ], + "id": 42 + }, + "main.sum.in[1][7]": { + "fullName": "main.sum.in[1][7]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[7]", + "alias": [ + "main.sum.in[1][7]", + null + ], + "id": 43 + }, + "main.sum.in[1][8]": { + "fullName": "main.sum.in[1][8]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[8]", + "alias": [ + "main.sum.in[1][8]", + null + ], + "id": 44 + }, + "main.sum.in[1][9]": { + "fullName": "main.sum.in[1][9]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[9]", + "alias": [ + "main.sum.in[1][9]", + null + ], + "id": 45 + }, + "main.sum.in[1][10]": { + "fullName": "main.sum.in[1][10]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[10]", + "alias": [ + "main.sum.in[1][10]", + null + ], + "id": 46 + }, + "main.sum.in[1][11]": { + "fullName": "main.sum.in[1][11]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[11]", + "alias": [ + "main.sum.in[1][11]", + null + ], + "id": 47 + }, + "main.sum.in[1][12]": { + "fullName": "main.sum.in[1][12]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[12]", + "alias": [ + "main.sum.in[1][12]", + null + ], + "id": 48 + }, + "main.sum.in[1][13]": { + "fullName": "main.sum.in[1][13]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[13]", + "alias": [ + "main.sum.in[1][13]", + null + ], + "id": 49 + }, + "main.sum.in[1][14]": { + "fullName": "main.sum.in[1][14]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[14]", + "alias": [ + "main.sum.in[1][14]", + null + ], + "id": 50 + }, + "main.sum.in[1][15]": { + "fullName": "main.sum.in[1][15]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[15]", + "alias": [ + "main.sum.in[1][15]", + null + ], + "id": 51 + }, + "main.sum.in[1][16]": { + "fullName": "main.sum.in[1][16]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[16]", + "alias": [ + "main.sum.in[1][16]", + null + ], + "id": 52 + }, + "main.sum.in[1][17]": { + "fullName": "main.sum.in[1][17]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[17]", + "alias": [ + "main.sum.in[1][17]", + null + ], + "id": 53 + }, + "main.sum.in[1][18]": { + "fullName": "main.sum.in[1][18]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[18]", + "alias": [ + "main.sum.in[1][18]", + null + ], + "id": 54 + }, + "main.sum.in[1][19]": { + "fullName": "main.sum.in[1][19]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[19]", + "alias": [ + "main.sum.in[1][19]", + null + ], + "id": 55 + }, + "main.sum.in[1][20]": { + "fullName": "main.sum.in[1][20]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[20]", + "alias": [ + "main.sum.in[1][20]", + null + ], + "id": 56 + }, + "main.sum.in[1][21]": { + "fullName": "main.sum.in[1][21]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[21]", + "alias": [ + "main.sum.in[1][21]", + null + ], + "id": 57 + }, + "main.sum.in[1][22]": { + "fullName": "main.sum.in[1][22]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[22]", + "alias": [ + "main.sum.in[1][22]", + null + ], + "id": 58 + }, + "main.sum.in[1][23]": { + "fullName": "main.sum.in[1][23]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[23]", + "alias": [ + "main.sum.in[1][23]", + null + ], + "id": 59 + }, + "main.sum.in[1][24]": { + "fullName": "main.sum.in[1][24]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[24]", + "alias": [ + "main.sum.in[1][24]", + null + ], + "id": 60 + }, + "main.sum.in[1][25]": { + "fullName": "main.sum.in[1][25]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[25]", + "alias": [ + "main.sum.in[1][25]", + null + ], + "id": 61 + }, + "main.sum.in[1][26]": { + "fullName": "main.sum.in[1][26]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[26]", + "alias": [ + "main.sum.in[1][26]", + null + ], + "id": 62 + }, + "main.sum.in[1][27]": { + "fullName": "main.sum.in[1][27]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[27]", + "alias": [ + "main.sum.in[1][27]", + null + ], + "id": 63 + }, + "main.sum.in[1][28]": { + "fullName": "main.sum.in[1][28]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[28]", + "alias": [ + "main.sum.in[1][28]", + null + ], + "id": 64 + }, + "main.sum.in[1][29]": { + "fullName": "main.sum.in[1][29]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[29]", + "alias": [ + "main.sum.in[1][29]", + null + ], + "id": 65 + }, + "main.sum.in[1][30]": { + "fullName": "main.sum.in[1][30]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[30]", + "alias": [ + "main.sum.in[1][30]", + null + ], + "id": 66 + }, + "main.sum.in[1][31]": { + "fullName": "main.sum.in[1][31]", + "direction": "IN", + "component": "main.sum", + "equivalence": "main.n2bb.out[31]", + "alias": [ + "main.sum.in[1][31]", + null + ], + "id": 67 + }, + "main.sum.out[0]": { + "fullName": "main.sum.out[0]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[0]" + ], + "id": 68 + }, + "main.sum.out[1]": { + "fullName": "main.sum.out[1]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[1]" + ], + "id": 69 + }, + "main.sum.out[2]": { + "fullName": "main.sum.out[2]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[2]" + ], + "id": 70 + }, + "main.sum.out[3]": { + "fullName": "main.sum.out[3]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[3]" + ], + "id": 71 + }, + "main.sum.out[4]": { + "fullName": "main.sum.out[4]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[4]" + ], + "id": 72 + }, + "main.sum.out[5]": { + "fullName": "main.sum.out[5]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[5]" + ], + "id": 73 + }, + "main.sum.out[6]": { + "fullName": "main.sum.out[6]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[6]" + ], + "id": 74 + }, + "main.sum.out[7]": { + "fullName": "main.sum.out[7]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[7]" + ], + "id": 75 + }, + "main.sum.out[8]": { + "fullName": "main.sum.out[8]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[8]" + ], + "id": 76 + }, + "main.sum.out[9]": { + "fullName": "main.sum.out[9]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[9]" + ], + "id": 77 + }, + "main.sum.out[10]": { + "fullName": "main.sum.out[10]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[10]" + ], + "id": 78 + }, + "main.sum.out[11]": { + "fullName": "main.sum.out[11]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[11]" + ], + "id": 79 + }, + "main.sum.out[12]": { + "fullName": "main.sum.out[12]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[12]" + ], + "id": 80 + }, + "main.sum.out[13]": { + "fullName": "main.sum.out[13]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[13]" + ], + "id": 81 + }, + "main.sum.out[14]": { + "fullName": "main.sum.out[14]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[14]" + ], + "id": 82 + }, + "main.sum.out[15]": { + "fullName": "main.sum.out[15]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[15]" + ], + "id": 83 + }, + "main.sum.out[16]": { + "fullName": "main.sum.out[16]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[16]" + ], + "id": 84 + }, + "main.sum.out[17]": { + "fullName": "main.sum.out[17]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[17]" + ], + "id": 85 + }, + "main.sum.out[18]": { + "fullName": "main.sum.out[18]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[18]" + ], + "id": 86 + }, + "main.sum.out[19]": { + "fullName": "main.sum.out[19]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[19]" + ], + "id": 87 + }, + "main.sum.out[20]": { + "fullName": "main.sum.out[20]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[20]" + ], + "id": 88 + }, + "main.sum.out[21]": { + "fullName": "main.sum.out[21]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[21]" + ], + "id": 89 + }, + "main.sum.out[22]": { + "fullName": "main.sum.out[22]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[22]" + ], + "id": 90 + }, + "main.sum.out[23]": { + "fullName": "main.sum.out[23]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[23]" + ], + "id": 91 + }, + "main.sum.out[24]": { + "fullName": "main.sum.out[24]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[24]" + ], + "id": 92 + }, + "main.sum.out[25]": { + "fullName": "main.sum.out[25]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[25]" + ], + "id": 93 + }, + "main.sum.out[26]": { + "fullName": "main.sum.out[26]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[26]" + ], + "id": 94 + }, + "main.sum.out[27]": { + "fullName": "main.sum.out[27]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[27]" + ], + "id": 95 + }, + "main.sum.out[28]": { + "fullName": "main.sum.out[28]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[28]" + ], + "id": 96 + }, + "main.sum.out[29]": { + "fullName": "main.sum.out[29]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[29]" + ], + "id": 97 + }, + "main.sum.out[30]": { + "fullName": "main.sum.out[30]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[30]" + ], + "id": 98 + }, + "main.sum.out[31]": { + "fullName": "main.sum.out[31]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[31]" + ], + "id": 99 + }, + "main.sum.out[32]": { + "fullName": "main.sum.out[32]", + "direction": "OUT", + "component": "main.sum", + "equivalence": "", + "alias": [ + "main.sum.out[32]" + ], + "id": 100 + }, + "main.b2n.in[0]": { + "fullName": "main.b2n.in[0]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[0]", + "alias": [ + "main.b2n.in[0]", + null + ], + "id": 68 + }, + "main.b2n.in[1]": { + "fullName": "main.b2n.in[1]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[1]", + "alias": [ + "main.b2n.in[1]", + null + ], + "id": 69 + }, + "main.b2n.in[2]": { + "fullName": "main.b2n.in[2]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[2]", + "alias": [ + "main.b2n.in[2]", + null + ], + "id": 70 + }, + "main.b2n.in[3]": { + "fullName": "main.b2n.in[3]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[3]", + "alias": [ + "main.b2n.in[3]", + null + ], + "id": 71 + }, + "main.b2n.in[4]": { + "fullName": "main.b2n.in[4]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[4]", + "alias": [ + "main.b2n.in[4]", + null + ], + "id": 72 + }, + "main.b2n.in[5]": { + "fullName": "main.b2n.in[5]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[5]", + "alias": [ + "main.b2n.in[5]", + null + ], + "id": 73 + }, + "main.b2n.in[6]": { + "fullName": "main.b2n.in[6]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[6]", + "alias": [ + "main.b2n.in[6]", + null + ], + "id": 74 + }, + "main.b2n.in[7]": { + "fullName": "main.b2n.in[7]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[7]", + "alias": [ + "main.b2n.in[7]", + null + ], + "id": 75 + }, + "main.b2n.in[8]": { + "fullName": "main.b2n.in[8]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[8]", + "alias": [ + "main.b2n.in[8]", + null + ], + "id": 76 + }, + "main.b2n.in[9]": { + "fullName": "main.b2n.in[9]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[9]", + "alias": [ + "main.b2n.in[9]", + null + ], + "id": 77 + }, + "main.b2n.in[10]": { + "fullName": "main.b2n.in[10]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[10]", + "alias": [ + "main.b2n.in[10]", + null + ], + "id": 78 + }, + "main.b2n.in[11]": { + "fullName": "main.b2n.in[11]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[11]", + "alias": [ + "main.b2n.in[11]", + null + ], + "id": 79 + }, + "main.b2n.in[12]": { + "fullName": "main.b2n.in[12]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[12]", + "alias": [ + "main.b2n.in[12]", + null + ], + "id": 80 + }, + "main.b2n.in[13]": { + "fullName": "main.b2n.in[13]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[13]", + "alias": [ + "main.b2n.in[13]", + null + ], + "id": 81 + }, + "main.b2n.in[14]": { + "fullName": "main.b2n.in[14]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[14]", + "alias": [ + "main.b2n.in[14]", + null + ], + "id": 82 + }, + "main.b2n.in[15]": { + "fullName": "main.b2n.in[15]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[15]", + "alias": [ + "main.b2n.in[15]", + null + ], + "id": 83 + }, + "main.b2n.in[16]": { + "fullName": "main.b2n.in[16]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[16]", + "alias": [ + "main.b2n.in[16]", + null + ], + "id": 84 + }, + "main.b2n.in[17]": { + "fullName": "main.b2n.in[17]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[17]", + "alias": [ + "main.b2n.in[17]", + null + ], + "id": 85 + }, + "main.b2n.in[18]": { + "fullName": "main.b2n.in[18]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[18]", + "alias": [ + "main.b2n.in[18]", + null + ], + "id": 86 + }, + "main.b2n.in[19]": { + "fullName": "main.b2n.in[19]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[19]", + "alias": [ + "main.b2n.in[19]", + null + ], + "id": 87 + }, + "main.b2n.in[20]": { + "fullName": "main.b2n.in[20]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[20]", + "alias": [ + "main.b2n.in[20]", + null + ], + "id": 88 + }, + "main.b2n.in[21]": { + "fullName": "main.b2n.in[21]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[21]", + "alias": [ + "main.b2n.in[21]", + null + ], + "id": 89 + }, + "main.b2n.in[22]": { + "fullName": "main.b2n.in[22]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[22]", + "alias": [ + "main.b2n.in[22]", + null + ], + "id": 90 + }, + "main.b2n.in[23]": { + "fullName": "main.b2n.in[23]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[23]", + "alias": [ + "main.b2n.in[23]", + null + ], + "id": 91 + }, + "main.b2n.in[24]": { + "fullName": "main.b2n.in[24]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[24]", + "alias": [ + "main.b2n.in[24]", + null + ], + "id": 92 + }, + "main.b2n.in[25]": { + "fullName": "main.b2n.in[25]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[25]", + "alias": [ + "main.b2n.in[25]", + null + ], + "id": 93 + }, + "main.b2n.in[26]": { + "fullName": "main.b2n.in[26]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[26]", + "alias": [ + "main.b2n.in[26]", + null + ], + "id": 94 + }, + "main.b2n.in[27]": { + "fullName": "main.b2n.in[27]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[27]", + "alias": [ + "main.b2n.in[27]", + null + ], + "id": 95 + }, + "main.b2n.in[28]": { + "fullName": "main.b2n.in[28]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[28]", + "alias": [ + "main.b2n.in[28]", + null + ], + "id": 96 + }, + "main.b2n.in[29]": { + "fullName": "main.b2n.in[29]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[29]", + "alias": [ + "main.b2n.in[29]", + null + ], + "id": 97 + }, + "main.b2n.in[30]": { + "fullName": "main.b2n.in[30]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[30]", + "alias": [ + "main.b2n.in[30]", + null + ], + "id": 98 + }, + "main.b2n.in[31]": { + "fullName": "main.b2n.in[31]", + "direction": "IN", + "component": "main.b2n", + "equivalence": "main.sum.out[31]", + "alias": [ + "main.b2n.in[31]", + null + ], + "id": 99 + }, + "main.b2n.out": { + "fullName": "main.b2n.out", + "direction": "OUT", + "component": "main.b2n", + "equivalence": "", + "alias": [ + "main.b2n.out" + ], + "id": 3 + } +}; + +circuit.components={ + "main": { + "signals": [ + "main.a", + "main.b", + "main.out" + ], + "params": {}, + "template": "A", + "inputSignals": 2 + }, + "main.n2ba": { + "signals": [ + "main.n2ba.in", + "main.n2ba.out[0]", + "main.n2ba.out[1]", + "main.n2ba.out[2]", + "main.n2ba.out[3]", + "main.n2ba.out[4]", + "main.n2ba.out[5]", + "main.n2ba.out[6]", + "main.n2ba.out[7]", + "main.n2ba.out[8]", + "main.n2ba.out[9]", + "main.n2ba.out[10]", + "main.n2ba.out[11]", + "main.n2ba.out[12]", + "main.n2ba.out[13]", + "main.n2ba.out[14]", + "main.n2ba.out[15]", + "main.n2ba.out[16]", + "main.n2ba.out[17]", + "main.n2ba.out[18]", + "main.n2ba.out[19]", + "main.n2ba.out[20]", + "main.n2ba.out[21]", + "main.n2ba.out[22]", + "main.n2ba.out[23]", + "main.n2ba.out[24]", + "main.n2ba.out[25]", + "main.n2ba.out[26]", + "main.n2ba.out[27]", + "main.n2ba.out[28]", + "main.n2ba.out[29]", + "main.n2ba.out[30]", + "main.n2ba.out[31]" + ], + "params": { + "n": "32" + }, + "template": "Num2Bits", + "inputSignals": 1 + }, + "main.n2bb": { + "signals": [ + "main.n2bb.in", + "main.n2bb.out[0]", + "main.n2bb.out[1]", + "main.n2bb.out[2]", + "main.n2bb.out[3]", + "main.n2bb.out[4]", + "main.n2bb.out[5]", + "main.n2bb.out[6]", + "main.n2bb.out[7]", + "main.n2bb.out[8]", + "main.n2bb.out[9]", + "main.n2bb.out[10]", + "main.n2bb.out[11]", + "main.n2bb.out[12]", + "main.n2bb.out[13]", + "main.n2bb.out[14]", + "main.n2bb.out[15]", + "main.n2bb.out[16]", + "main.n2bb.out[17]", + "main.n2bb.out[18]", + "main.n2bb.out[19]", + "main.n2bb.out[20]", + "main.n2bb.out[21]", + "main.n2bb.out[22]", + "main.n2bb.out[23]", + "main.n2bb.out[24]", + "main.n2bb.out[25]", + "main.n2bb.out[26]", + "main.n2bb.out[27]", + "main.n2bb.out[28]", + "main.n2bb.out[29]", + "main.n2bb.out[30]", + "main.n2bb.out[31]" + ], + "params": { + "n": "32" + }, + "template": "Num2Bits", + "inputSignals": 1 + }, + "main.sum": { + "signals": [ + "main.sum.in[0][0]", + "main.sum.in[0][1]", + "main.sum.in[0][2]", + "main.sum.in[0][3]", + "main.sum.in[0][4]", + "main.sum.in[0][5]", + "main.sum.in[0][6]", + "main.sum.in[0][7]", + "main.sum.in[0][8]", + "main.sum.in[0][9]", + "main.sum.in[0][10]", + "main.sum.in[0][11]", + "main.sum.in[0][12]", + "main.sum.in[0][13]", + "main.sum.in[0][14]", + "main.sum.in[0][15]", + "main.sum.in[0][16]", + "main.sum.in[0][17]", + "main.sum.in[0][18]", + "main.sum.in[0][19]", + "main.sum.in[0][20]", + "main.sum.in[0][21]", + "main.sum.in[0][22]", + "main.sum.in[0][23]", + "main.sum.in[0][24]", + "main.sum.in[0][25]", + "main.sum.in[0][26]", + "main.sum.in[0][27]", + "main.sum.in[0][28]", + "main.sum.in[0][29]", + "main.sum.in[0][30]", + "main.sum.in[0][31]", + "main.sum.in[1][0]", + "main.sum.in[1][1]", + "main.sum.in[1][2]", + "main.sum.in[1][3]", + "main.sum.in[1][4]", + "main.sum.in[1][5]", + "main.sum.in[1][6]", + "main.sum.in[1][7]", + "main.sum.in[1][8]", + "main.sum.in[1][9]", + "main.sum.in[1][10]", + "main.sum.in[1][11]", + "main.sum.in[1][12]", + "main.sum.in[1][13]", + "main.sum.in[1][14]", + "main.sum.in[1][15]", + "main.sum.in[1][16]", + "main.sum.in[1][17]", + "main.sum.in[1][18]", + "main.sum.in[1][19]", + "main.sum.in[1][20]", + "main.sum.in[1][21]", + "main.sum.in[1][22]", + "main.sum.in[1][23]", + "main.sum.in[1][24]", + "main.sum.in[1][25]", + "main.sum.in[1][26]", + "main.sum.in[1][27]", + "main.sum.in[1][28]", + "main.sum.in[1][29]", + "main.sum.in[1][30]", + "main.sum.in[1][31]", + "main.sum.out[0]", + "main.sum.out[1]", + "main.sum.out[2]", + "main.sum.out[3]", + "main.sum.out[4]", + "main.sum.out[5]", + "main.sum.out[6]", + "main.sum.out[7]", + "main.sum.out[8]", + "main.sum.out[9]", + "main.sum.out[10]", + "main.sum.out[11]", + "main.sum.out[12]", + "main.sum.out[13]", + "main.sum.out[14]", + "main.sum.out[15]", + "main.sum.out[16]", + "main.sum.out[17]", + "main.sum.out[18]", + "main.sum.out[19]", + "main.sum.out[20]", + "main.sum.out[21]", + "main.sum.out[22]", + "main.sum.out[23]", + "main.sum.out[24]", + "main.sum.out[25]", + "main.sum.out[26]", + "main.sum.out[27]", + "main.sum.out[28]", + "main.sum.out[29]", + "main.sum.out[30]", + "main.sum.out[31]", + "main.sum.out[32]" + ], + "params": { + "n": "32", + "ops": "2" + }, + "template": "BinSum", + "inputSignals": 64 + }, + "main.b2n": { + "signals": [ + "main.b2n.in[0]", + "main.b2n.in[1]", + "main.b2n.in[2]", + "main.b2n.in[3]", + "main.b2n.in[4]", + "main.b2n.in[5]", + "main.b2n.in[6]", + "main.b2n.in[7]", + "main.b2n.in[8]", + "main.b2n.in[9]", + "main.b2n.in[10]", + "main.b2n.in[11]", + "main.b2n.in[12]", + "main.b2n.in[13]", + "main.b2n.in[14]", + "main.b2n.in[15]", + "main.b2n.in[16]", + "main.b2n.in[17]", + "main.b2n.in[18]", + "main.b2n.in[19]", + "main.b2n.in[20]", + "main.b2n.in[21]", + "main.b2n.in[22]", + "main.b2n.in[23]", + "main.b2n.in[24]", + "main.b2n.in[25]", + "main.b2n.in[26]", + "main.b2n.in[27]", + "main.b2n.in[28]", + "main.b2n.in[29]", + "main.b2n.in[30]", + "main.b2n.in[31]", + "main.b2n.out" + ], + "params": { + "n": "32" + }, + "template": "Bits2Num", + "inputSignals": 32 + } +}; + +circuit.signalConstrains=[ + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[0]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[0]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[1]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[1]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[2]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[2]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[3]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[3]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[4]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[4]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[5]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[5]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[6]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[6]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[7]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[7]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[8]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[8]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[9]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[9]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[10]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[10]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[11]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[11]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[12]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[12]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[13]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[13]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[14]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[14]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[15]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[15]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[16]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[16]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[17]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[17]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[18]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[18]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[19]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[19]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[20]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[20]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[21]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[21]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[22]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[22]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[23]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[23]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[24]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[24]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[25]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[25]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[26]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[26]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[27]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[27]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[28]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[28]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[29]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[29]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[30]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[30]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[31]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[31]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "b": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "c": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2ba.out[0]": "1", + "main.n2ba.out[1]": "2", + "main.n2ba.out[2]": "4", + "main.n2ba.out[3]": "8", + "main.n2ba.out[4]": "16", + "main.n2ba.out[5]": "32", + "main.n2ba.out[6]": "64", + "main.n2ba.out[7]": "128", + "main.n2ba.out[8]": "256", + "main.n2ba.out[9]": "512", + "main.n2ba.out[10]": "1024", + "main.n2ba.out[11]": "2048", + "main.n2ba.out[12]": "4096", + "main.n2ba.out[13]": "8192", + "main.n2ba.out[14]": "16384", + "main.n2ba.out[15]": "32768", + "main.n2ba.out[16]": "65536", + "main.n2ba.out[17]": "131072", + "main.n2ba.out[18]": "262144", + "main.n2ba.out[19]": "524288", + "main.n2ba.out[20]": "1048576", + "main.n2ba.out[21]": "2097152", + "main.n2ba.out[22]": "4194304", + "main.n2ba.out[23]": "8388608", + "main.n2ba.out[24]": "16777216", + "main.n2ba.out[25]": "33554432", + "main.n2ba.out[26]": "67108864", + "main.n2ba.out[27]": "134217728", + "main.n2ba.out[28]": "268435456", + "main.n2ba.out[29]": "536870912", + "main.n2ba.out[30]": "1073741824", + "main.n2ba.out[31]": "2147483648", + "main.a": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[0]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[0]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[1]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[1]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[2]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[2]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[3]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[3]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[4]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[4]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[5]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[5]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[6]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[6]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[7]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[7]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[8]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[8]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[9]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[9]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[10]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[10]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[11]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[11]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[12]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[12]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[13]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[13]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[14]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[14]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[15]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[15]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[16]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[16]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[17]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[17]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[18]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[18]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[19]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[19]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[20]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[20]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[21]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[21]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[22]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[22]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[23]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[23]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[24]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[24]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[25]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[25]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[26]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[26]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[27]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[27]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[28]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[28]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[29]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[29]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[30]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[30]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[31]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[31]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "b": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "c": { + "type": "LINEARCOMBINATION", + "values": { + "main.n2bb.out[0]": "1", + "main.n2bb.out[1]": "2", + "main.n2bb.out[2]": "4", + "main.n2bb.out[3]": "8", + "main.n2bb.out[4]": "16", + "main.n2bb.out[5]": "32", + "main.n2bb.out[6]": "64", + "main.n2bb.out[7]": "128", + "main.n2bb.out[8]": "256", + "main.n2bb.out[9]": "512", + "main.n2bb.out[10]": "1024", + "main.n2bb.out[11]": "2048", + "main.n2bb.out[12]": "4096", + "main.n2bb.out[13]": "8192", + "main.n2bb.out[14]": "16384", + "main.n2bb.out[15]": "32768", + "main.n2bb.out[16]": "65536", + "main.n2bb.out[17]": "131072", + "main.n2bb.out[18]": "262144", + "main.n2bb.out[19]": "524288", + "main.n2bb.out[20]": "1048576", + "main.n2bb.out[21]": "2097152", + "main.n2bb.out[22]": "4194304", + "main.n2bb.out[23]": "8388608", + "main.n2bb.out[24]": "16777216", + "main.n2bb.out[25]": "33554432", + "main.n2bb.out[26]": "67108864", + "main.n2bb.out[27]": "134217728", + "main.n2bb.out[28]": "268435456", + "main.n2bb.out[29]": "536870912", + "main.n2bb.out[30]": "1073741824", + "main.n2bb.out[31]": "2147483648", + "main.b": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[0]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[0]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[1]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[1]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[2]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[2]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[3]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[3]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[4]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[4]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[5]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[5]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[6]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[6]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[7]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[7]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[8]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[8]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[9]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[9]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[10]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[10]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[11]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[11]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[12]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[12]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[13]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[13]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[14]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[14]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[15]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[15]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[16]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[16]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[17]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[17]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[18]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[18]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[19]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[19]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[20]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[20]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[21]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[21]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[22]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[22]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[23]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[23]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[24]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[24]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[25]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[25]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[26]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[26]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[27]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[27]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[28]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[28]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[29]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[29]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[30]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[30]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[31]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[31]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[32]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[32]": "1", + "one": "21888242871839275222246405745257275088548364400416034343698204186575808495616" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "b": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "c": { + "type": "LINEARCOMBINATION", + "values": { + "main.sum.out[0]": "21888242871839275222246405745257275088548364400416034343698204186575808495616", + "main.sum.out[1]": "21888242871839275222246405745257275088548364400416034343698204186575808495615", + "main.sum.out[2]": "21888242871839275222246405745257275088548364400416034343698204186575808495613", + "main.sum.out[3]": "21888242871839275222246405745257275088548364400416034343698204186575808495609", + "main.sum.out[4]": "21888242871839275222246405745257275088548364400416034343698204186575808495601", + "main.sum.out[5]": "21888242871839275222246405745257275088548364400416034343698204186575808495585", + "main.sum.out[6]": "21888242871839275222246405745257275088548364400416034343698204186575808495553", + "main.sum.out[7]": "21888242871839275222246405745257275088548364400416034343698204186575808495489", + "main.sum.out[8]": "21888242871839275222246405745257275088548364400416034343698204186575808495361", + "main.sum.out[9]": "21888242871839275222246405745257275088548364400416034343698204186575808495105", + "main.sum.out[10]": "21888242871839275222246405745257275088548364400416034343698204186575808494593", + "main.sum.out[11]": "21888242871839275222246405745257275088548364400416034343698204186575808493569", + "main.sum.out[12]": "21888242871839275222246405745257275088548364400416034343698204186575808491521", + "main.sum.out[13]": "21888242871839275222246405745257275088548364400416034343698204186575808487425", + "main.sum.out[14]": "21888242871839275222246405745257275088548364400416034343698204186575808479233", + "main.sum.out[15]": "21888242871839275222246405745257275088548364400416034343698204186575808462849", + "main.sum.out[16]": "21888242871839275222246405745257275088548364400416034343698204186575808430081", + "main.sum.out[17]": "21888242871839275222246405745257275088548364400416034343698204186575808364545", + "main.sum.out[18]": "21888242871839275222246405745257275088548364400416034343698204186575808233473", + "main.sum.out[19]": "21888242871839275222246405745257275088548364400416034343698204186575807971329", + "main.sum.out[20]": "21888242871839275222246405745257275088548364400416034343698204186575807447041", + "main.sum.out[21]": "21888242871839275222246405745257275088548364400416034343698204186575806398465", + "main.sum.out[22]": "21888242871839275222246405745257275088548364400416034343698204186575804301313", + "main.sum.out[23]": "21888242871839275222246405745257275088548364400416034343698204186575800107009", + "main.sum.out[24]": "21888242871839275222246405745257275088548364400416034343698204186575791718401", + "main.sum.out[25]": "21888242871839275222246405745257275088548364400416034343698204186575774941185", + "main.sum.out[26]": "21888242871839275222246405745257275088548364400416034343698204186575741386753", + "main.sum.out[27]": "21888242871839275222246405745257275088548364400416034343698204186575674277889", + "main.sum.out[28]": "21888242871839275222246405745257275088548364400416034343698204186575540060161", + "main.sum.out[29]": "21888242871839275222246405745257275088548364400416034343698204186575271624705", + "main.sum.out[30]": "21888242871839275222246405745257275088548364400416034343698204186574734753793", + "main.sum.out[31]": "21888242871839275222246405745257275088548364400416034343698204186573661011969", + "main.sum.out[32]": "21888242871839275222246405745257275088548364400416034343698204186571513528321", + "main.n2ba.out[0]": "1", + "main.n2bb.out[0]": "1", + "main.n2ba.out[1]": "2", + "main.n2bb.out[1]": "2", + "main.n2ba.out[2]": "4", + "main.n2bb.out[2]": "4", + "main.n2ba.out[3]": "8", + "main.n2bb.out[3]": "8", + "main.n2ba.out[4]": "16", + "main.n2bb.out[4]": "16", + "main.n2ba.out[5]": "32", + "main.n2bb.out[5]": "32", + "main.n2ba.out[6]": "64", + "main.n2bb.out[6]": "64", + "main.n2ba.out[7]": "128", + "main.n2bb.out[7]": "128", + "main.n2ba.out[8]": "256", + "main.n2bb.out[8]": "256", + "main.n2ba.out[9]": "512", + "main.n2bb.out[9]": "512", + "main.n2ba.out[10]": "1024", + "main.n2bb.out[10]": "1024", + "main.n2ba.out[11]": "2048", + "main.n2bb.out[11]": "2048", + "main.n2ba.out[12]": "4096", + "main.n2bb.out[12]": "4096", + "main.n2ba.out[13]": "8192", + "main.n2bb.out[13]": "8192", + "main.n2ba.out[14]": "16384", + "main.n2bb.out[14]": "16384", + "main.n2ba.out[15]": "32768", + "main.n2bb.out[15]": "32768", + "main.n2ba.out[16]": "65536", + "main.n2bb.out[16]": "65536", + "main.n2ba.out[17]": "131072", + "main.n2bb.out[17]": "131072", + "main.n2ba.out[18]": "262144", + "main.n2bb.out[18]": "262144", + "main.n2ba.out[19]": "524288", + "main.n2bb.out[19]": "524288", + "main.n2ba.out[20]": "1048576", + "main.n2bb.out[20]": "1048576", + "main.n2ba.out[21]": "2097152", + "main.n2bb.out[21]": "2097152", + "main.n2ba.out[22]": "4194304", + "main.n2bb.out[22]": "4194304", + "main.n2ba.out[23]": "8388608", + "main.n2bb.out[23]": "8388608", + "main.n2ba.out[24]": "16777216", + "main.n2bb.out[24]": "16777216", + "main.n2ba.out[25]": "33554432", + "main.n2bb.out[25]": "33554432", + "main.n2ba.out[26]": "67108864", + "main.n2bb.out[26]": "67108864", + "main.n2ba.out[27]": "134217728", + "main.n2bb.out[27]": "134217728", + "main.n2ba.out[28]": "268435456", + "main.n2bb.out[28]": "268435456", + "main.n2ba.out[29]": "536870912", + "main.n2bb.out[29]": "536870912", + "main.n2ba.out[30]": "1073741824", + "main.n2bb.out[30]": "1073741824", + "main.n2ba.out[31]": "2147483648", + "main.n2bb.out[31]": "2147483648" + } + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "b": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "c": { + "type": "LINEARCOMBINATION", + "values": { + "main.b2n.out": "1", + "main.sum.out[0]": "21888242871839275222246405745257275088548364400416034343698204186575808495616", + "main.sum.out[1]": "21888242871839275222246405745257275088548364400416034343698204186575808495615", + "main.sum.out[2]": "21888242871839275222246405745257275088548364400416034343698204186575808495613", + "main.sum.out[3]": "21888242871839275222246405745257275088548364400416034343698204186575808495609", + "main.sum.out[4]": "21888242871839275222246405745257275088548364400416034343698204186575808495601", + "main.sum.out[5]": "21888242871839275222246405745257275088548364400416034343698204186575808495585", + "main.sum.out[6]": "21888242871839275222246405745257275088548364400416034343698204186575808495553", + "main.sum.out[7]": "21888242871839275222246405745257275088548364400416034343698204186575808495489", + "main.sum.out[8]": "21888242871839275222246405745257275088548364400416034343698204186575808495361", + "main.sum.out[9]": "21888242871839275222246405745257275088548364400416034343698204186575808495105", + "main.sum.out[10]": "21888242871839275222246405745257275088548364400416034343698204186575808494593", + "main.sum.out[11]": "21888242871839275222246405745257275088548364400416034343698204186575808493569", + "main.sum.out[12]": "21888242871839275222246405745257275088548364400416034343698204186575808491521", + "main.sum.out[13]": "21888242871839275222246405745257275088548364400416034343698204186575808487425", + "main.sum.out[14]": "21888242871839275222246405745257275088548364400416034343698204186575808479233", + "main.sum.out[15]": "21888242871839275222246405745257275088548364400416034343698204186575808462849", + "main.sum.out[16]": "21888242871839275222246405745257275088548364400416034343698204186575808430081", + "main.sum.out[17]": "21888242871839275222246405745257275088548364400416034343698204186575808364545", + "main.sum.out[18]": "21888242871839275222246405745257275088548364400416034343698204186575808233473", + "main.sum.out[19]": "21888242871839275222246405745257275088548364400416034343698204186575807971329", + "main.sum.out[20]": "21888242871839275222246405745257275088548364400416034343698204186575807447041", + "main.sum.out[21]": "21888242871839275222246405745257275088548364400416034343698204186575806398465", + "main.sum.out[22]": "21888242871839275222246405745257275088548364400416034343698204186575804301313", + "main.sum.out[23]": "21888242871839275222246405745257275088548364400416034343698204186575800107009", + "main.sum.out[24]": "21888242871839275222246405745257275088548364400416034343698204186575791718401", + "main.sum.out[25]": "21888242871839275222246405745257275088548364400416034343698204186575774941185", + "main.sum.out[26]": "21888242871839275222246405745257275088548364400416034343698204186575741386753", + "main.sum.out[27]": "21888242871839275222246405745257275088548364400416034343698204186575674277889", + "main.sum.out[28]": "21888242871839275222246405745257275088548364400416034343698204186575540060161", + "main.sum.out[29]": "21888242871839275222246405745257275088548364400416034343698204186575271624705", + "main.sum.out[30]": "21888242871839275222246405745257275088548364400416034343698204186574734753793", + "main.sum.out[31]": "21888242871839275222246405745257275088548364400416034343698204186573661011969" + } + } + } +]; + +circuit.witnessNames=[ + [ + "one" + ], + [ + "main.a", + "main.n2ba.in" + ], + [ + "main.b", + "main.n2bb.in" + ], + [ + "main.out", + "main.b2n.out" + ], + [ + "main.n2ba.out[0]", + "main.sum.in[0][0]" + ], + [ + "main.n2ba.out[1]", + "main.sum.in[0][1]" + ], + [ + "main.n2ba.out[2]", + "main.sum.in[0][2]" + ], + [ + "main.n2ba.out[3]", + "main.sum.in[0][3]" + ], + [ + "main.n2ba.out[4]", + "main.sum.in[0][4]" + ], + [ + "main.n2ba.out[5]", + "main.sum.in[0][5]" + ], + [ + "main.n2ba.out[6]", + "main.sum.in[0][6]" + ], + [ + "main.n2ba.out[7]", + "main.sum.in[0][7]" + ], + [ + "main.n2ba.out[8]", + "main.sum.in[0][8]" + ], + [ + "main.n2ba.out[9]", + "main.sum.in[0][9]" + ], + [ + "main.n2ba.out[10]", + "main.sum.in[0][10]" + ], + [ + "main.n2ba.out[11]", + "main.sum.in[0][11]" + ], + [ + "main.n2ba.out[12]", + "main.sum.in[0][12]" + ], + [ + "main.n2ba.out[13]", + "main.sum.in[0][13]" + ], + [ + "main.n2ba.out[14]", + "main.sum.in[0][14]" + ], + [ + "main.n2ba.out[15]", + "main.sum.in[0][15]" + ], + [ + "main.n2ba.out[16]", + "main.sum.in[0][16]" + ], + [ + "main.n2ba.out[17]", + "main.sum.in[0][17]" + ], + [ + "main.n2ba.out[18]", + "main.sum.in[0][18]" + ], + [ + "main.n2ba.out[19]", + "main.sum.in[0][19]" + ], + [ + "main.n2ba.out[20]", + "main.sum.in[0][20]" + ], + [ + "main.n2ba.out[21]", + "main.sum.in[0][21]" + ], + [ + "main.n2ba.out[22]", + "main.sum.in[0][22]" + ], + [ + "main.n2ba.out[23]", + "main.sum.in[0][23]" + ], + [ + "main.n2ba.out[24]", + "main.sum.in[0][24]" + ], + [ + "main.n2ba.out[25]", + "main.sum.in[0][25]" + ], + [ + "main.n2ba.out[26]", + "main.sum.in[0][26]" + ], + [ + "main.n2ba.out[27]", + "main.sum.in[0][27]" + ], + [ + "main.n2ba.out[28]", + "main.sum.in[0][28]" + ], + [ + "main.n2ba.out[29]", + "main.sum.in[0][29]" + ], + [ + "main.n2ba.out[30]", + "main.sum.in[0][30]" + ], + [ + "main.n2ba.out[31]", + "main.sum.in[0][31]" + ], + [ + "main.n2bb.out[0]", + "main.sum.in[1][0]" + ], + [ + "main.n2bb.out[1]", + "main.sum.in[1][1]" + ], + [ + "main.n2bb.out[2]", + "main.sum.in[1][2]" + ], + [ + "main.n2bb.out[3]", + "main.sum.in[1][3]" + ], + [ + "main.n2bb.out[4]", + "main.sum.in[1][4]" + ], + [ + "main.n2bb.out[5]", + "main.sum.in[1][5]" + ], + [ + "main.n2bb.out[6]", + "main.sum.in[1][6]" + ], + [ + "main.n2bb.out[7]", + "main.sum.in[1][7]" + ], + [ + "main.n2bb.out[8]", + "main.sum.in[1][8]" + ], + [ + "main.n2bb.out[9]", + "main.sum.in[1][9]" + ], + [ + "main.n2bb.out[10]", + "main.sum.in[1][10]" + ], + [ + "main.n2bb.out[11]", + "main.sum.in[1][11]" + ], + [ + "main.n2bb.out[12]", + "main.sum.in[1][12]" + ], + [ + "main.n2bb.out[13]", + "main.sum.in[1][13]" + ], + [ + "main.n2bb.out[14]", + "main.sum.in[1][14]" + ], + [ + "main.n2bb.out[15]", + "main.sum.in[1][15]" + ], + [ + "main.n2bb.out[16]", + "main.sum.in[1][16]" + ], + [ + "main.n2bb.out[17]", + "main.sum.in[1][17]" + ], + [ + "main.n2bb.out[18]", + "main.sum.in[1][18]" + ], + [ + "main.n2bb.out[19]", + "main.sum.in[1][19]" + ], + [ + "main.n2bb.out[20]", + "main.sum.in[1][20]" + ], + [ + "main.n2bb.out[21]", + "main.sum.in[1][21]" + ], + [ + "main.n2bb.out[22]", + "main.sum.in[1][22]" + ], + [ + "main.n2bb.out[23]", + "main.sum.in[1][23]" + ], + [ + "main.n2bb.out[24]", + "main.sum.in[1][24]" + ], + [ + "main.n2bb.out[25]", + "main.sum.in[1][25]" + ], + [ + "main.n2bb.out[26]", + "main.sum.in[1][26]" + ], + [ + "main.n2bb.out[27]", + "main.sum.in[1][27]" + ], + [ + "main.n2bb.out[28]", + "main.sum.in[1][28]" + ], + [ + "main.n2bb.out[29]", + "main.sum.in[1][29]" + ], + [ + "main.n2bb.out[30]", + "main.sum.in[1][30]" + ], + [ + "main.n2bb.out[31]", + "main.sum.in[1][31]" + ], + [ + "main.sum.out[0]", + "main.b2n.in[0]" + ], + [ + "main.sum.out[1]", + "main.b2n.in[1]" + ], + [ + "main.sum.out[2]", + "main.b2n.in[2]" + ], + [ + "main.sum.out[3]", + "main.b2n.in[3]" + ], + [ + "main.sum.out[4]", + "main.b2n.in[4]" + ], + [ + "main.sum.out[5]", + "main.b2n.in[5]" + ], + [ + "main.sum.out[6]", + "main.b2n.in[6]" + ], + [ + "main.sum.out[7]", + "main.b2n.in[7]" + ], + [ + "main.sum.out[8]", + "main.b2n.in[8]" + ], + [ + "main.sum.out[9]", + "main.b2n.in[9]" + ], + [ + "main.sum.out[10]", + "main.b2n.in[10]" + ], + [ + "main.sum.out[11]", + "main.b2n.in[11]" + ], + [ + "main.sum.out[12]", + "main.b2n.in[12]" + ], + [ + "main.sum.out[13]", + "main.b2n.in[13]" + ], + [ + "main.sum.out[14]", + "main.b2n.in[14]" + ], + [ + "main.sum.out[15]", + "main.b2n.in[15]" + ], + [ + "main.sum.out[16]", + "main.b2n.in[16]" + ], + [ + "main.sum.out[17]", + "main.b2n.in[17]" + ], + [ + "main.sum.out[18]", + "main.b2n.in[18]" + ], + [ + "main.sum.out[19]", + "main.b2n.in[19]" + ], + [ + "main.sum.out[20]", + "main.b2n.in[20]" + ], + [ + "main.sum.out[21]", + "main.b2n.in[21]" + ], + [ + "main.sum.out[22]", + "main.b2n.in[22]" + ], + [ + "main.sum.out[23]", + "main.b2n.in[23]" + ], + [ + "main.sum.out[24]", + "main.b2n.in[24]" + ], + [ + "main.sum.out[25]", + "main.b2n.in[25]" + ], + [ + "main.sum.out[26]", + "main.b2n.in[26]" + ], + [ + "main.sum.out[27]", + "main.b2n.in[27]" + ], + [ + "main.sum.out[28]", + "main.b2n.in[28]" + ], + [ + "main.sum.out[29]", + "main.b2n.in[29]" + ], + [ + "main.sum.out[30]", + "main.b2n.in[30]" + ], + [ + "main.sum.out[31]", + "main.b2n.in[31]" + ], + [ + "main.sum.out[32]" + ] +]; + +{ + { + } + { + } +} + +circuit.templates = {}; + +circuit.templates["Num2Bits"] = function(ctx) { + ctx.setVar("lc1", [], "0"); + for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt(ctx.getVar("n",[])) ? 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.getVar("i",[])).greater(256) ? 0 : bigInt(ctx.getSignal("in", [])).shiftRight(bigInt(ctx.getVar("i",[])).value).and(__MASK__)).and("1").and(__MASK__)); + ctx.assert(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).times(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).add(__P__).minus("1").mod(__P__)).mod(__P__), "0"); + ctx.setVar("lc1", [], bigInt(ctx.getVar("lc1",[])).add(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).times(bigInt("2").modPow(ctx.getVar("i",[]), __P__)).mod(__P__)).mod(__P__)); + } + ctx.assert(ctx.getVar("lc1",[]), ctx.getSignal("in", [])); +} +; + +circuit.templates["Bits2Num"] = function(ctx) { + ctx.setVar("lc1", [], "0"); + for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt(ctx.getVar("n",[])) ? 1 : 0;(ctx.setVar("i", [], bigInt(ctx.getVar("i",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) + { + ctx.setVar("lc1", [], bigInt(ctx.getVar("lc1",[])).add(bigInt(ctx.getSignal("in", [ctx.getVar("i",[])])).times(bigInt("2").modPow(ctx.getVar("i",[]), __P__)).mod(__P__)).mod(__P__)); + } + ctx.setSignal("out", [], ctx.getVar("lc1",[])); + ctx.assert(ctx.getSignal("out", []), ctx.getVar("lc1",[])); +} +; + +circuit.templates["BinSum"] = function(ctx) { + ctx.setVar("nout", [], ctx.callFunction("nbits", [bigInt(bigInt(bigInt("2").modPow(ctx.getVar("n",[]), __P__)).add(__P__).minus("1").mod(__P__)).times(ctx.getVar("ops",[])).mod(__P__)])); + ctx.setVar("lin", [], "0"); + ctx.setVar("lout", [], "0"); + for (ctx.setVar("k", [], "0");bigInt(ctx.getVar("k",[])).lt(ctx.getVar("n",[])) ? 1 : 0;(ctx.setVar("k", [], bigInt(ctx.getVar("k",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) + { + for (ctx.setVar("j", [], "0");bigInt(ctx.getVar("j",[])).lt(ctx.getVar("ops",[])) ? 1 : 0;(ctx.setVar("j", [], bigInt(ctx.getVar("j",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) + { + ctx.setVar("lin", [], bigInt(ctx.getVar("lin",[])).add(bigInt(ctx.getSignal("in", [ctx.getVar("j",[]),ctx.getVar("k",[])])).times(bigInt("2").modPow(ctx.getVar("k",[]), __P__)).mod(__P__)).mod(__P__)); + } + } + for (ctx.setVar("k", [], "0");bigInt(ctx.getVar("k",[])).lt(ctx.getVar("nout",[])) ? 1 : 0;(ctx.setVar("k", [], bigInt(ctx.getVar("k",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) + { + ctx.setSignal("out", [ctx.getVar("k",[])], bigInt(bigInt(ctx.getVar("k",[])).greater(256) ? 0 : bigInt(ctx.getVar("lin",[])).shiftRight(bigInt(ctx.getVar("k",[])).value).and(__MASK__)).and("1").and(__MASK__)); + ctx.assert(bigInt(ctx.getSignal("out", [ctx.getVar("k",[])])).times(bigInt(ctx.getSignal("out", [ctx.getVar("k",[])])).add(__P__).minus("1").mod(__P__)).mod(__P__), "0"); + ctx.setVar("lout", [], bigInt(ctx.getVar("lout",[])).add(bigInt(ctx.getSignal("out", [ctx.getVar("k",[])])).times(bigInt("2").modPow(ctx.getVar("k",[]), __P__)).mod(__P__)).mod(__P__)); + } + ctx.assert(ctx.getVar("lin",[]), ctx.getVar("lout",[])); +} +; + +circuit.templates["A"] = function(ctx) { + ctx.setPin("n2ba", [], "in", [], ctx.getSignal("a", [])); + ctx.assert(ctx.getPin("n2ba", [], "in", []), ctx.getSignal("a", [])); + ctx.setPin("n2bb", [], "in", [], ctx.getSignal("b", [])); + ctx.assert(ctx.getPin("n2bb", [], "in", []), ctx.getSignal("b", [])); + for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt("32") ? 1 : 0;(ctx.setVar("i", [], bigInt(ctx.getVar("i",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__)) + { + ctx.setPin("sum", [], "in", ["0",ctx.getVar("i",[])], ctx.getPin("n2ba", [], "out", [ctx.getVar("i",[])])); + ctx.assert(ctx.getPin("sum", [], "in", ["0",ctx.getVar("i",[])]), ctx.getPin("n2ba", [], "out", [ctx.getVar("i",[])])); + ctx.setPin("sum", [], "in", ["1",ctx.getVar("i",[])], ctx.getPin("n2bb", [], "out", [ctx.getVar("i",[])])); + ctx.assert(ctx.getPin("sum", [], "in", ["1",ctx.getVar("i",[])]), ctx.getPin("n2bb", [], "out", [ctx.getVar("i",[])])); + ctx.setPin("b2n", [], "in", [ctx.getVar("i",[])], ctx.getPin("sum", [], "out", [ctx.getVar("i",[])])); + ctx.assert(ctx.getPin("b2n", [], "in", [ctx.getVar("i",[])]), ctx.getPin("sum", [], "out", [ctx.getVar("i",[])])); + } + ctx.setSignal("out", [], ctx.getPin("b2n", [], "out", [])); + ctx.assert(ctx.getSignal("out", []), ctx.getPin("b2n", [], "out", [])); +} +; +circuit.functionParams={ + "nbits": [ + "a" + ] +}; + + +circuit.functions = {}; + +circuit.functions["nbits"] = function(ctx) { + ctx.setVar("n", [], "1"); + ctx.setVar("r", [], "0"); + while (bigInt(bigInt(ctx.getVar("n",[])).add(__P__).minus("1").mod(__P__)).lt(ctx.getVar("a",[])) ? 1 : 0) + { + (ctx.setVar("r", [], bigInt(ctx.getVar("r",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__); + ctx.setVar("n", [], bigInt(ctx.getVar("n",[])).times("2").mod(__P__)); + } + return ctx.getVar("r",[]);; +} +; diff --git a/sum_test.out b/sum_test.out new file mode 100644 index 0000000..dc026b7 --- /dev/null +++ b/sum_test.out @@ -0,0 +1 @@ +["1","111","222","333","1","1","1","1","0","1","1","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","1","1","1","1","0","1","1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","1","0","1","1","0","0","1","0","1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"] \ No newline at end of file diff --git a/test.jaz b/test.jaz new file mode 100644 index 0000000..8fa7d56 --- /dev/null +++ b/test.jaz @@ -0,0 +1 @@ +a[1][2].b[3][4] <== c[5][6].d[7][8] diff --git a/test/commandline.js b/test/commandline.js new file mode 100644 index 0000000..f66cea2 --- /dev/null +++ b/test/commandline.js @@ -0,0 +1,61 @@ +const path = require("path"); +const fs = require("fs"); +const cmd=require("node-cmd"); +const util = require("util"); +const assert = require("assert"); + +const claimUtils = require("../src/claimUtils.js"); + +cmd.get[util.promisify.custom] = (c) => { + return new Promise((resolve, reject) => { + cmd.get(c, (err, data, stderr) => { + if (err) { + reject(err); + } else { + resolve([data, stderr]); + } + }); + }); +}; + +const getAsync = util.promisify(cmd.get); +const mkdir = util.promisify(fs.mkdir); +const writeFile = util.promisify(fs.writeFile); + +describe("command line", () => { + + let tmpPath; + before(async () => { + tmpPath = path.join(__dirname, "..", "tmp"); + if (!fs.existsSync(tmpPath)) { + await mkdir(tmpPath, 0o744); + } + process.chdir(tmpPath); + }); + + it("Should create a tree from a claim files", async () => { + + let i; + let claims = []; + for (i=0; i<100; i++) { + const b = Buffer.from([ i / 256, i % 256 ]); + claims[i] = claimUtils.buildClaim("0x01", "0x02", "0x03", b).toString("hex"); + } + + claims = claims.sort(); + const claimsFile = path.join(tmpPath, "claims100.hex"); + const dbFile = path.join(tmpPath, "claims100.db"); + await writeFile(claimsFile, claims.join("\n"), "utf8"); + + await getAsync(`${path.join("..", "cli.js")} -d ${dbFile} add ${claimsFile} `); + + const data = await getAsync(`${path.join("..", "cli.js")} -d ${dbFile} export`); + let claims2 = data[0].split("\n"); + + claims2 = claims2.filter(function(n){ return n.length>0; }); + claims2 = claims2.sort(); + + assert.equal(claims2.join("\n"), claims.join("\n")); + + }).timeout(20000); +}); diff --git a/test/jorge.prg b/test/jorge.prg new file mode 100644 index 0000000..4e53322 --- /dev/null +++ b/test/jorge.prg @@ -0,0 +1,2 @@ +1 * 2 * 3 +* 4 diff --git a/test/mainTest.js b/test/mainTest.js new file mode 100644 index 0000000..26e5972 --- /dev/null +++ b/test/mainTest.js @@ -0,0 +1,141 @@ +const assert = require("assert"); + +const StaticMerkle = require("../src/StaticMerkle.js"); +const MemDB = require("../src/dbMem.js"); +const hash = require("../src/hashKeccak.js"); +const buffUtils = require("../src/buffUtils.js"); +const claimUtils = require("../src/claimUtils.js"); + +describe("static merkle", () => { + before(async () => { + + }); + + it("Create an empty tring of 0 levels", async () => { + const dbPrv0 = await MemDB(); + const SM0 = await StaticMerkle(hash, dbPrv0, 0); + const empty = SM0.root; + assert.equal(buffUtils.toHex(empty), "0x0000000000000000000000000000000000000000000000000000000000000000"); + }); + + it("create an empty", async () => { + const dbPrv = await MemDB(); + const SM140 = await StaticMerkle(hash, dbPrv, 140); + const empty = SM140.root; + assert.equal(buffUtils.toHex(empty), "0x0000000000000000000000000000000000000000000000000000000000000000"); + }); + + it("should add and remove a claim", async() => { + const dbPrv = await MemDB(); + const SM140 = await StaticMerkle(hash, dbPrv, 140); + const empty = SM140.root; + const claim = claimUtils.buildClaim("0x01", "0x02", "0x03", "0x04"); + await SM140.addClaim(claim); + assert.equal(buffUtils.toHex(SM140.root), "0xd3d9ad5e3c0b38c4e3eb411e9e3114b5ed8fb5c4bc69158329feb1a62743cda1"); + await SM140.removeClaim(claim); + assert.equal(buffUtils.toHex(SM140.root), buffUtils.toHex(empty)); + + assert.equal(SM140.tx.inserts.length, 0); + + }); + + it("should add two claims in different order and should be the same", async () => { + const dbPrv_1 = await MemDB(); + const SM140_1 = await StaticMerkle(hash, dbPrv_1, 140); + const dbPrv_2 = await MemDB(); + const SM140_2 = await StaticMerkle(hash, dbPrv_2, 140); + const empty = SM140_1.root; + const claim1 = claimUtils.buildClaim("0x01", "0x02", "0x03", "0x04"); + const claim2 = claimUtils.buildClaim("0x01", "0x02", "0x03", "0x05"); + + await SM140_1.addClaim(claim1); + await SM140_1.addClaim(claim2); + + await SM140_2.addClaim(claim2); + await SM140_2.addClaim(claim1); + + assert.equal(buffUtils.toHex(SM140_1.root), buffUtils.toHex(SM140_2.root)); + + await SM140_1.removeClaim(claim1); + await SM140_1.removeClaim(claim2); + assert.equal(buffUtils.toHex(SM140_1.root), buffUtils.toHex(empty)); + + await SM140_2.removeClaim(claim2); + await SM140_2.removeClaim(claim1); + assert.equal(buffUtils.toHex(SM140_2.root), buffUtils.toHex(empty)); + + }); + + it("should add 10 claims and remove them in different order", async () => { + const dbPrv = await MemDB(); + const SM140 = await StaticMerkle(hash, dbPrv, 140); + const empty = SM140.root; + const claims = []; + let i; + for (i=0; i<10; i++) { + const b = Buffer.from([ i / 256, i % 256 ]); + claims[i] = claimUtils.buildClaim("0x01", "0x02", "0x03", b); + } + + for (i=0;i { + const dbPrv = await MemDB(); + const SM140 = await StaticMerkle(hash, dbPrv, 140); + const empty = SM140.root; + const claims = []; + let i; + for (i=0; i<100; i++) { + const b = Buffer.from([ i % 10 ]); + claims[i] = claimUtils.buildClaim("0x01", "0x02", "0x03", b); + } + + for (i=0;i { + const dbPrv = await MemDB(); + const SM140 = await StaticMerkle(hash, dbPrv, 140); + const empty = SM140.root; + const claim1 = claimUtils.buildClaim("0x01", "0x02", "0x03", "0x04"); + const claim2 = claimUtils.buildClaim("0x01", "0x02", "0x03", "0x05"); + + await SM140.addClaim(claim1); + await SM140.addClaim(claim2); + + const mp = await SM140.getMerkeProof(claim1); + + assert.equal(SM140.checkClaim(SM140.root, claim1, mp), true); + assert.equal(SM140.checkClaim(empty, claim1, mp), false); + assert.equal(SM140.checkClaim(empty, claim2, mp), false); + + const mp1 = await SM140.getMerkeProof(claim1); + assert.equal(SM140.checkClaim(SM140.root, claim1, mp1), true); + const mp2 = await SM140.getMerkeProof(claim2); + assert.equal(SM140.checkClaim(SM140.root, claim2, mp2), true); + }); + +}); diff --git a/test/test1.jaz b/test/test1.jaz new file mode 100644 index 0000000..c441c84 --- /dev/null +++ b/test/test1.jaz @@ -0,0 +1,45 @@ +11+12; 13; +14; 15; +/* Multi Line + comment */ +/*** / * /* **/ +// Single line comment /* sss */ +16; 0x1f; 0xAa; +12; id1; A; B; A+B; +A*B+A*B+3; +4/2; +4/3; +4/3*3; +8/2; +0/2; +2/1; +8 % 5; +-1; +--1; +(3+4)*(5*2); +0xFF & 0x12; +1 << 8; +-1 >> 257; +-1 << 257; +-1 >> 256; +-1 << 256; +-1 >> 250; +-1 << 250; +33 == 33; +33 == 34; +3>3; +3>=3; +3<=3; +3<3; +3 && 0; +0 && 3; +3 && 3; +0 && 0; +!3; +!0; +!!8; +2**3; +(-1)**(-1); +a[3]; +a[3][b] + b[4][c][d]; +func() + func(a) + func(a,b); +3*4==6+6 && 2+1==3 ? 3+3*2 : (3+2)*6 diff --git a/test/test10.jaz b/test/test10.jaz new file mode 100644 index 0000000..f71eac5 --- /dev/null +++ b/test/test10.jaz @@ -0,0 +1 @@ +f(1,2) diff --git a/test/test11.jaz b/test/test11.jaz new file mode 100644 index 0000000..344a216 --- /dev/null +++ b/test/test11.jaz @@ -0,0 +1,9 @@ +a+b*c +(a+b)*c +var c + a[1].b[2] + c +f(1,2) +component f(4) d; + +a++ + b++; + +--a; diff --git a/test/test12.jaz b/test/test12.jaz new file mode 100644 index 0000000..39ff574 --- /dev/null +++ b/test/test12.jaz @@ -0,0 +1,5 @@ +var a; +var b; +var c; +a+b*b[3+a][2]; +a<<2<=2>>a diff --git a/test/test13.jaz b/test/test13.jaz new file mode 100644 index 0000000..f055855 --- /dev/null +++ b/test/test13.jaz @@ -0,0 +1,3 @@ +a <== b === c +r = a ? c ? 5 : 6 : b ? 3 : 4 +c = sqrt(a**2+b**2) diff --git a/test/test14.jaz b/test/test14.jaz new file mode 100644 index 0000000..0d49333 --- /dev/null +++ b/test/test14.jaz @@ -0,0 +1,8 @@ +(a + bb) + c; +include "filename.ext" +include "secondfile" +include "therdfile"; +include "4th file" +{ + include "fifthfile" +} diff --git a/test/test2.jaz b/test/test2.jaz new file mode 100644 index 0000000..e125ee0 --- /dev/null +++ b/test/test2.jaz @@ -0,0 +1,13 @@ +{ + 3+3 + 4+4 + 5+5 +} +6 +7 +a <-- 3 +3 --> a; +signal input b <== 4; +4 ==> signal b; +c === d; + diff --git a/test/test3.jaz b/test/test3.jaz new file mode 100644 index 0000000..8dfeea5 --- /dev/null +++ b/test/test3.jaz @@ -0,0 +1,10 @@ +signal input b <== 3; +signal o[44] <-- 2; +a[1][2].b[3] <== 4 +function f(a,b) { + c=a+b; +} + +component b(b1,b2) { + b1 <== b2[3].pin[4] +} diff --git a/test/test4.jaz b/test/test4.jaz new file mode 100644 index 0000000..b5a587c --- /dev/null +++ b/test/test4.jaz @@ -0,0 +1,7 @@ +if (a) b; else c; +if (a) { + 1 +} else { + 2 +} +if (1) if(0) 1; else 2; diff --git a/test/test5.jaz b/test/test5.jaz new file mode 100644 index 0000000..d2b02ac --- /dev/null +++ b/test/test5.jaz @@ -0,0 +1,4 @@ +var a=0; +for (i=0; i<10; i=i+1) { + a=a+1; +} diff --git a/test/test6.jaz b/test/test6.jaz new file mode 100644 index 0000000..aa97ba0 --- /dev/null +++ b/test/test6.jaz @@ -0,0 +1,7 @@ +++a; +a++; +b--; +--b; +a -- > 0; +0 < ++ b; + diff --git a/test/test7.jaz b/test/test7.jaz new file mode 100644 index 0000000..b17dca5 --- /dev/null +++ b/test/test7.jaz @@ -0,0 +1,11 @@ +a=3 +a+=3 +a-=3 +a*=3 +a/=3 +a%=3 +a>>=3 +a<<=3 +a&=3 +a|=3 +a^=3 diff --git a/test/test8.jaz b/test/test8.jaz new file mode 100644 index 0000000..c6a5bbb --- /dev/null +++ b/test/test8.jaz @@ -0,0 +1,6 @@ +while (1) { + a +} +do { + xx; +} while (1) diff --git a/test/test9.jaz b/test/test9.jaz new file mode 100644 index 0000000..25dcaf9 --- /dev/null +++ b/test/test9.jaz @@ -0,0 +1,9 @@ +function f() { + return 3; +} + +function ff(a) { + return 4; +} + +component c = s(a); diff --git a/tobin.js b/tobin.js new file mode 100644 index 0000000..607adee --- /dev/null +++ b/tobin.js @@ -0,0 +1,189 @@ +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": { + "fullName": "main.inp", + "direction": "IN", + "component": "main", + "equivalence": "", + "alias": [ + "main.inp" + ], + "id": 1 + }, + "main.out[0]": { + "fullName": "main.out[0]", + "direction": "OUT", + "component": "main", + "equivalence": "", + "alias": [ + "main.out[0]" + ], + "id": 2 + }, + "main.out[1]": { + "fullName": "main.out[1]", + "direction": "OUT", + "component": "main", + "equivalence": "", + "alias": [ + "main.out[1]" + ], + "id": 3 + }, + "main.out[2]": { + "fullName": "main.out[2]", + "direction": "OUT", + "component": "main", + "equivalence": "", + "alias": [ + "main.out[2]" + ], + "id": 4 + } +}; + +circuit.components={ + "main": { + "signals": [ + "main.inp", + "main.out[0]", + "main.out[1]", + "main.out[2]" + ], + "params": { + "n": "3" + }, + "template": "toBin", + "inputSignals": 1 + } +}; + +circuit.signalConstrains=[ + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.out[0]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.out[0]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.out[1]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.out[1]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": { + "main.out[2]": "1" + } + }, + "b": { + "type": "LINEARCOMBINATION", + "values": { + "main.out[2]": "1", + "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + }, + "c": { + "type": "LINEARCOMBINATION", + "values": {} + } + }, + { + "type": "QEQ", + "a": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "b": { + "type": "LINEARCOMBINATION", + "values": {} + }, + "c": { + "type": "LINEARCOMBINATION", + "values": { + "main.out[0]": "1", + "main.out[1]": "2", + "main.out[2]": "4", + "main.inp": "21888242871839275222246405745257275088696311157297823662689037894645226208582" + } + } + } +]; + +circuit.witnessNames=[ + [ + "one" + ], + [ + "main.inp" + ], + [ + "main.out[0]" + ], + [ + "main.out[1]" + ], + [ + "main.out[2]" + ] +]; + +{ +} + +circuit.templates = []; + +circuit.templates["toBin"] = function(ctx) { + ctx.setVar("lc1", [], "0"); + for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt(ctx.getVar("n",[])) ? 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.getVar("i",[])).greater(256) ? 0 : bigInt(ctx.getSignal("inp", [])).shiftRight(bigInt(ctx.getVar("i",[])).value).and(__MASK__)).and("1").and(__MASK__)); + ctx.assert(bigInt(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).times(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).add(__P__).minus("1").mod(__P__)).mod(__P__)).equals("0")); + ctx.setVar("lc1", [], bigInt(ctx.getVar("lc1",[])).add(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).times(bigInt("2").modPow(ctx.getVar("i",[]), __P__)).mod(__P__)).mod(__P__)); + } + ctx.assert(bigInt(ctx.getVar("lc1",[])).equals(ctx.getSignal("inp", []))); +} +; diff --git a/tobin.w b/tobin.w new file mode 100644 index 0000000..6e7827c --- /dev/null +++ b/tobin.w @@ -0,0 +1 @@ +["1","3","1","1","0"] \ No newline at end of file