1. 引言
前序博客:
- Polygon zkEVM 基本概念 第5章 “一个例子——Fibonacci state machine”
实操主要见:
- 2022年8月8日Jordi Baylina(Iden3合伙人,Polygon Hermez zkEVM技术负责人)在Zcon3分享 Tooling for building zkEVM: PIL and Circom - Jordi Baylina at Zcon3 第24分钟。
相关代码见:
pil-stark代码库的主要作用是:
- 从某状态机生成stark证明。该状态机以PIL语言编写。
Polygon zkEVM中借用了iden3的circom工具,其与snarkjs的关系为:
总体流程为:
2. pil-stark Fibonacci状态机初体验
测试用例见pil-stark/test
文件夹,以其中的sm_fibonacci
为例:
-
1)创建tmp文件夹,用于存储编译输出文件:
mkdir tmp
-
2)debug运行
fibonacci buildconst
:运行状态机中main_buildconst_fibonacci.js
,输出为fibonacci.const
/usr/local/bin/node --max-old-space-size=32000 test/sm_fibonacci/main_buildconst_fibonacci.js -o tmp/fibonacci.const file Generated Correctly
-
3)debug运行
fibonacci exec
:运行main_exec_fibonacci.js
,输入有fibonacci.input.json
,输出为fibonacci.commit
:/usr/local/bin/node --max-old-space-size=32000 test/sm_fibonacci/main_exec_fibonacci.js -i test/sm_fibonacci/fibonacci.input.json -o tmp/fibonacci.commit Result: 74469561660084004 file Generated Correctly
-
4)debug运行
fibonacci PIL verify
:运行node_modules/pilcom/src/main_pilverifier.js
,输入有:- 4.1)
fibonacci.commit
:为基于fibonacci.input.json
运行状态机中main_exec_fibonacci.js
获得的输出。【对pil中的commit多项式赋值】 - 4.2)
fibonacci_main.pil
程序。 - 4.3)
fibonacci.const
:为运行状态机中main_buildconst_fibonacci.js
获得的输出。【对pil中的const多项式赋值】
/usr/local/bin/node --max-old-space-size=32000 node_modules/pilcom/src/main_pilverifier.js tmp/fibonacci.commit -p test/sm_fibonacci/fibonacci_main.pil -c tmp/fibonacci.const loading tmp/fibonacci.const.. 0 of 0.001953125 loading tmp/fibonacci.commit.. 0 of 0.001953125 Preparing public 1/3 calculateExpression: 0 Preparing public 2/3 Preparing public 3/3 Checking identities 1/5 calculateExpression: 1 Checking identities 2/5 calculateExpression: 3 calculateExpression: 2 Checking identities 3/5 calculateExpression: 4 Checking identities 4/5 calculateExpression: 5 Checking identities 5/5 calculateExpression: 6 PIL OK!!
其中,
verifyPil
主要流程为:- a)将pil编译结果中的references各多项式索引信息分组分别存入refCm、refConst和refIm中;
- b)依次将各commit多项式的赋值给pols.cm[i].v_n。将各const多项式的赋值给pols.const[i].v_n。给各public变量赋值,若源自cmP,则为
pols.cm[pil.publics[i].polId].v_n[pil.publics[i].idx]
;若源自imP,则先调用calculateExpression(pil.publics[i].polId)
计算相应的expression值,然后赋值pols.exps[pil.publics[i].polId].v_n[pil.publics[i].idx]
。for (let i=0; i<pil.publics.length; i++) { console.log(`Preparing public ${i+1}/${pil.publics.length}`); if (pil.publics[i].polType == "cmP") { pols.publics[i] = pols.cm[pil.publics[i].polId].v_n[pil.publics[i].idx]; } else if (pil.publics[i].polType == "imP") { await calculateExpression(pil.publics[i].polId); pols.publics[i] = pols.exps[pil.publics[i].polId].v_n[pil.publics[i].idx]; delete pols.exps[pil.publics[i].polId].v_n; } else { throw new Error(`Invalid public type: ${polType.type}`); } }
- c)对pil中的
=
polIdentities约束,依次calculateExpression(pil.polIdentities[i].e)
,逐个判断结算结果pols.exps[pil.polIdentities[i].e].v_n[j]是否为0,若为非零值则说明有错误。若全部为0值,则说明verifyPil
验证通过。
- 4.1)
-
5)debug运行
fibonacci build constree
:运行main_buildconsttree.js
,输入有:【pil中的所有const多项式构建一个merkle tree。详细参看 STARKs and STARK VM: Proofs of Computational Integrity,本质为将const多项式在trace domain的evaluation值扩展到low degree extension domain的evaluation值,然后将所有const多项式的low degree extension domain的evaluation值构建一棵merkle tree。】- 5.i.1)
fibonacci.const
:为运行状态机中main_buildconst_fibonacci.js
获得的输出。【为pil中的const多项式赋值】 - 5.i.2)状态机中
fibonacci_main.pil
程序 - 5.i.3)状态机中
fibonacci.starkstruct.json
,为:{ "nBits": 10, "nBitsExt": 11, "nQueries": 8, "verificationHashType": "GL", "steps": [ {"nBits": 11}, {"nBits": 7}, {"nBits": 3} ] }
输出为:
- 5.o.1)
fibonacci.consttree
:为常量多项式在Low Degree Extension domain evaluation值的Merkle树。 - 5.o.2)
fibonacci.verkey.json
:为常量多项式在Low Degree Extension domain evaluation值的Merkle树 的root。
/usr/local/bin/node --max-old-space-size=32000 src/main_buildconsttree.js -c /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.const -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci_main.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.starkstruct.json -t /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.consttree -v /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verkey.json loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.const.. 0 of 0.001953125 Interpolating reverse.... Layer ifft0 start block 10 0 end block 10 0 Interpolating prepare.... linear interpolatePrepare start.... 0/0 linear interpolatePrepare end.... 0/0 Bit reverse.... Layer fft 0 start block 11 0 end block 11 0 interpolation terminated pool terminated Start merkelizing.. slicing buff 0 creating thread 0 waiting.. linear hash start.... 0/2048 merkelizing hash start.... 0/1024 merkelizing hash end.... 0/1024 merkelizing hash start.... 0/512 merkelizing hash end.... 0/512 merkelizing hash start.... 0/256 merkelizing hash end.... 0/256 merkelizing hash start.... 0/128 merkelizing hash end.... 0/128 merkelizing hash start.... 0/64 merkelizing hash end.... 0/64 merkelizing hash start.... 0/32 merkelizing hash end.... 0/32 merkelizing hash start.... 0/16 merkelizing hash end.... 0/16 merkelizing hash start.... 0/8 merkelizing hash end.... 0/8 merkelizing hash start.... 0/4 merkelizing hash end.... 0/4 merkelizing hash start.... 0/2 merkelizing hash end.... 0/2 merkelizing hash start.... 0/1 merkelizing hash end.... 0/1 writting tree.. 0 / 4096 writting tree.. 0 / 16380 files Generated Correctly
- 5.i.1)
-
6)debug运行
fibonacci prove
:运行main_prover.js
,输入有:- 6.i.1)
fibonacci.commit
:为基于fibonacci.input.json
运行状态机中main_exec_fibonacci.js
获得的输出。 - 6.i.2)
fibonacci.const
:为运行状态机中main_buildconst_fibonacci.js
获得的输出。 - 6.i.3)
fibonacci.consttree
:为运行main_buildconsttree.js
获得的输出。 - 6.i.4)
fibonacci_main.pil
:状态机程序 - 6.i.5)
fibonacci.starkstruct.json
:状态机STARK结构配置文件
输出有:
- 6.o,1)
fibonacci.proof.json
:STARK证明 - 6.o.2)
fibonacci.proof.zkin.json
:zk输入,供fibonacci C12 exec使用。 - 6.o.3)
fibonacci.public.json
:公开输入
/usr/local/bin/node --max-old-space-size=32000 src/main_prover.js -m /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.commit -c /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.const -t /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.consttree -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci_main.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.starkstruct.json -o /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.proof.json -z /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.proof.zkin.json -b /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.public.json loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.const.. 0 of 0.001953125 loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.commit.. 0 of 0.001953125 Loading tree.. 0/4096 Loading tree.. 0/16380 Merkelizing 1.... Interpolating reverse.... Layer ifft0 start block 10 0 end block 10 0 Interpolating prepare.... linear interpolatePrepare start.... 0/0 linear interpolatePrepare end.... 0/0 Bit reverse.... Layer fft 0 start block 11 0 end block 11 0 interpolation terminated pool terminated slicing buff 0 creating thread 0 waiting.. linear hash start.... 0/2048 merkelizing hash start.... 0/1024 merkelizing hash end.... 0/1024 merkelizing hash start.... 0/512 merkelizing hash end.... 0/512 merkelizing hash start.... 0/256 merkelizing hash end.... 0/256 merkelizing hash start.... 0/128 merkelizing hash end.... 0/128 merkelizing hash start.... 0/64 merkelizing hash end.... 0/64 merkelizing hash start.... 0/32 merkelizing hash end.... 0/32 merkelizing hash start.... 0/16 merkelizing hash end.... 0/16 merkelizing hash start.... 0/8 merkelizing hash end.... 0/8 merkelizing hash start.... 0/4 merkelizing hash end.... 0/4 merkelizing hash start.... 0/2 merkelizing hash end.... 0/2 merkelizing hash start.... 0/1 merkelizing hash end.... 0/1 start exec step2prev... 0/1024 end exec step2prev... 0/1024 Merkelizing 2.... Interpolating reverse.... Layer ifft0 start block 10 0 end block 10 0 Interpolating prepare.... Bit reverse.... Layer fft 0 linear interpolatePrepare start.... 0/0 linear interpolatePrepare end.... 0/0 start block 11 0 end block 11 0 interpolation terminated pool terminated slicing buff 0 creating thread 0 waiting.. linear hash start.... 0/2048 merkelizing hash start.... 0/1024 merkelizing hash end.... 0/1024 merkelizing hash start.... 0/512 merkelizing hash end.... 0/512 merkelizing hash start.... 0/256 merkelizing hash end.... 0/256 merkelizing hash start.... 0/128 merkelizing hash end.... 0/128 merkelizing hash start.... 0/64 merkelizing hash end.... 0/64 merkelizing hash start.... 0/32 merkelizing hash end.... 0/32 merkelizing hash start.... 0/16 merkelizing hash end.... 0/16 merkelizing hash start.... 0/8 merkelizing hash end.... 0/8 merkelizing hash start.... 0/4 merkelizing hash end.... 0/4 merkelizing hash start.... 0/2 merkelizing hash end.... 0/2 merkelizing hash start.... 0/1 merkelizing hash end.... 0/1 start exec step3prev... 0/1024 end exec step3prev... 0/1024 Merkelizing 3.... Interpolating reverse.... Layer ifft0 start block 10 0 end block 10 0 Interpolating prepare.... Bit reverse.... linear interpolatePrepare start.... 0/0 linear interpolatePrepare end.... 0/0 Layer fft 0 start block 11 0 end block 11 0 interpolation terminated pool terminated slicing buff 0 creating thread 0 waiting.. linear hash start.... 0/2048 merkelizing hash start.... 0/1024 merkelizing hash end.... 0/1024 merkelizing hash start.... 0/512 merkelizing hash end.... 0/512 merkelizing hash start.... 0/256 merkelizing hash end.... 0/256 merkelizing hash start.... 0/128 merkelizing hash end.... 0/128 merkelizing hash start.... 0/64 merkelizing hash end.... 0/64 merkelizing hash start.... 0/32 merkelizing hash end.... 0/32 merkelizing hash start.... 0/16 merkelizing hash end.... 0/16 merkelizing hash start.... 0/8 merkelizing hash end.... 0/8 merkelizing hash start.... 0/4 merkelizing hash end.... 0/4 merkelizing hash start.... 0/2 merkelizing hash end.... 0/2 merkelizing hash start.... 0/1 merkelizing hash end.... 0/1 start exec step4... 0/1024 end exec step4... 0/1024 Interpolating reverse.... Layer ifft0 start block 10 0 end block 10 0 linear interpolatePrepare start.... 0/1 linear interpolatePrepare end.... 0/1 start block 11 0 Interpolating prepare.... Bit reverse.... Layer fft 0 end block 11 0 interpolation terminated pool terminated start exec step42ns... 0/2048 end exec step42ns... 0/2048 Merkelizing 4.... slicing buff 0 creating thread 0 waiting.. linear hash start.... 0/2048 merkelizing hash start.... 0/1024 merkelizing hash end.... 0/1024 merkelizing hash start.... 0/512 merkelizing hash end.... 0/512 merkelizing hash start.... 0/256 merkelizing hash end.... 0/256 merkelizing hash start.... 0/128 merkelizing hash end.... 0/128 merkelizing hash start.... 0/64 merkelizing hash end.... 0/64 merkelizing hash start.... 0/32 merkelizing hash end.... 0/32 merkelizing hash start.... 0/16 merkelizing hash end.... 0/16 merkelizing hash start.... 0/8 merkelizing hash end.... 0/8 merkelizing hash start.... 0/4 merkelizing hash end.... 0/4 merkelizing hash start.... 0/2 merkelizing hash end.... 0/2 merkelizing hash start.... 0/1 merkelizing hash end.... 0/1 start exec step52ns... 0/2048 end exec step52ns... 0/2048 slicing buff 0 creating thread 0 waiting.. linear hash start.... 0/128 linear hash end.... 0/128 merkelizing hash start.... 0/64 merkelizing hash end.... 0/64 merkelizing hash start.... 0/32 merkelizing hash end.... 0/32 merkelizing hash start.... 0/16 merkelizing hash end.... 0/16 merkelizing hash start.... 0/8 merkelizing hash end.... 0/8 merkelizing hash start.... 0/4 merkelizing hash end.... 0/4 merkelizing hash start.... 0/2 merkelizing hash end.... 0/2 merkelizing hash start.... 0/1 merkelizing hash end.... 0/1 slicing buff 0 creating thread 0 waiting.. linear hash start.... 0/8 linear hash end.... 0/8 merkelizing hash start.... 0/4 merkelizing hash end.... 0/4 merkelizing hash start.... 0/2 merkelizing hash end.... 0/2 merkelizing hash start.... 0/1 merkelizing hash end.... 0/1 files Generated Correctly
- 6.i.1)
-
7)debug运行
fibonacci verify proof
:运行main_verifier.js
,输出为验证是否通过,输入有:- 7.i.1)
fibonacci_main.pil
:状态机程序。 - 7.i.2)
fibonacci.starkstruct.json
:状态机STARK结构配置文件。 - 7.i.3)
fibonacci.proof.json
:STARK证明。 - 7.i.4)
fibonacci.public.json
:公开输入。 - 7.i.5)
fibonacci.verkey.json
:验证密钥。
/usr/local/bin/node --max-old-space-size=32000 src/main_verifier.js -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci_main.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci//fibonacci.starkstruct.json -o /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.proof.json -b /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.public.json -v /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verkey.json Query:1419 Query:837 Query:685 Query:1624 Query:1237 Query:7 Query:672 Query:827 Verification Ok!!
- 7.i.1)
-
8)debug运行
fibonacci generate circom
:运行main_pil2circom.js
,输出为fibonacci.verifier.circom
文件,输入有:- 8.i.1)
fibonacci_main.pil
:状态机程序。 - 8.i.2)
fibonacci.starkstruct.json
:状态机STARK结构配置文件。 - 8.i.3)
fibonacci.verkey.json
:验证密钥。
/usr/local/bin/node --max-old-space-size=32000 src/main_pil2circom.js -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci_main.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.starkstruct.json -v /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verkey.json -o /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verifier.circom file Generated Correctly
- 8.i.1)
-
9)scripts运行
fibonacci_compileverifier
:调用circom
,输入为fibonacci.verifier.circom
,输出有:- 9.1)
fibonacci.verifier.r1cs
:为电路的r1cs 约束系统,以二进制表示。 - 9.2)
fibonacci.verifier.sym
:为在注释模式下调试和打印约束系统所需的符号文件。 - 9.3)fibonacci.verifier_js文件夹:包含了3个文件:
ffibonacci.verifier.wasm
:为生成witness的wasm代码。generate_witness.js
witness_calculator.js
。
$ npm run fibonacci_compileverifier Debugger attached. > pil-stark@0.0.13 fibonacci_compileverifier > circom --O1 --prime goldilocks --r1cs --sym --wasm --verbose tmp/fibonacci.verifier.circom -o tmp template instances: 29 non-linear constraints: 216090 linear constraints: 115823 public inputs: 3 public outputs: 0 private inputs: 2280 private outputs: 0 wires: 496743 labels: 678212 Written successfully: tmp/fibonacci.verifier.r1cs Written successfully: tmp/fibonacci.verifier.sym Written successfully: tmp/fibonacci.verifier_js/fibonacci.verifier.wasm Everything went okay, circom safe Waiting for the debugger to disconnect...
- 9.1)
-
10)debug运行
fibonacci C12 setup
:运作compressor12/main_compressor12_setup.js
,输入为fibonacci.verifier.r1cs
,输出有:- 10.1)
fibonacci.c12.pil
- 10.2)
fibonacci.c12.const
- 10.3)
fibonacci.c12.exec
/usr/local/bin/node --max-old-space-size=32000 src/compressor12/main_compressor12_setup.js -r /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verifier.r1cs -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -c /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.const -e /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.exec undefined: Loading constraints: 0/331913 undefined: Loading constraints: 100000/331913 undefined: Loading constraints: 200000/331913 undefined: Loading constraints: 300000/331913 undefined: Loading custom gate uses: 0/13845 Plonk info constraint processing... 0/339443 Plonk info constraint processing... 10000/339443 Plonk info constraint processing... 20000/339443 Plonk info constraint processing... 30000/339443 Plonk info constraint processing... 40000/339443 Plonk info constraint processing... 50000/339443 Plonk info constraint processing... 60000/339443 Plonk info constraint processing... 70000/339443 Plonk info constraint processing... 80000/339443 Plonk info constraint processing... 90000/339443 Plonk info constraint processing... 100000/339443 Plonk info constraint processing... 110000/339443 Plonk info constraint processing... 120000/339443 Plonk info constraint processing... 130000/339443 Plonk info constraint processing... 140000/339443 Plonk info constraint processing... 150000/339443 Plonk info constraint processing... 160000/339443 Plonk info constraint processing... 170000/339443 Plonk info constraint processing... 180000/339443 Plonk info constraint processing... 190000/339443 Plonk info constraint processing... 200000/339443 Plonk info constraint processing... 210000/339443 Plonk info constraint processing... 220000/339443 Plonk info constraint processing... 230000/339443 Plonk info constraint processing... 240000/339443 Plonk info constraint processing... 250000/339443 Plonk info constraint processing... 260000/339443 Plonk info constraint processing... 270000/339443 Plonk info constraint processing... 280000/339443 Plonk info constraint processing... 290000/339443 Plonk info constraint processing... 300000/339443 Plonk info constraint processing... 310000/339443 Plonk info constraint processing... 320000/339443 Plonk info constraint processing... 330000/339443 ffffffff00000000,0,0,1,0 => 106084 0,ffffffff00000000,1,1,0 => 5913 1,0,0,ffffffff00000000,0 => 3642 0,1,1,ffffffff00000000,0 => 1635 0,ffffffff00000000,0,0,0 => 1517 0,1,ffffffff00000000,1,0 => 1483 0,1,ffffffff00000000,0,0 => 1135 0,1,ffffffff00000000,ffffffff00000000,0 => 766 ffffffff00000000,4a7a08980debbbfc,4a7a08980debbbfc,1,c61bd208ec3c0fa1 => 449 ffffffff00000000,0,4a7a08980debbbfc,1,0 => 449 ffffffff00000000,88b95a9fbc6de52a,88b95a9fbc6de52a,1,75ce679679451a15 => 449 ffffffff00000000,0,88b95a9fbc6de52a,1,0 => 449 ffffffff00000000,4d04f2cd3118664d,4d04f2cd3118664d,1,c3756f9932155297 => 449 ffffffff00000000,0,4d04f2cd3118664d,1,0 => 449 ffffffff00000000,f0989f5a7fcbd82a,f0989f5a7fcbd82a,1,ee347190fb432101 => 449 ffffffff00000000,0,f0989f5a7fcbd82a,1,0 => 449 ffffffff00000000,1ef29998af0b1fef,1ef29998af0b1fef,1,7138c73b09116996 => 449 ffffffff00000000,0,1ef29998af0b1fef,1,0 => 449 ffffffff00000000,7351eb33f82f6410,7351eb33f82f6410,1,18b6d0e3aeec489f => 449 ffffffff00000000,0,7351eb33f82f6410,1,0 => 449 ffffffff00000000,2bc7ac626a09c162,2bc7ac626a09c162,1,71afa5ff39384c97 => 449 ffffffff00000000,0,2bc7ac626a09c162,1,0 => 449 ffffffff00000000,1087e3821ca4b3c4,1087e3821ca4b3c4,1,b500968a50b4639e => 449 ffffffff00000000,0,1087e3821ca4b3c4,1,0 => 449 ffffffff00000000,323b5dc54f3bbbdb,323b5dc54f3bbbdb,1,fddd08812d4e5f9c => 449 ffffffff00000000,0,323b5dc54f3bbbdb,1,0 => 449 ffffffff00000000,d8805df640cc8402,d8805df640cc8402,1,c68b2f87b5ed9227 => 449 ffffffff00000000,0,d8805df640cc8402,1,0 => 449 ffffffff00000000,1e89ac5c625a8760,1e89ac5c625a8760,1,88818136a288ec90 => 449 ffffffff00000000,0,1e89ac5c625a8760,1,0 => 449 ffffffff00000000,3abcfd0cda24d38b,3abcfd0cda24d38b,1,e085319e9b6f3e7a => 449 ffffffff00000000,0,3abcfd0cda24d38b,1,0 => 449 ffffffff00000000,79d787dd08dd3780,79d787dd08dd3780,1,b875ba22cab61421 => 449 ffffffff00000000,0,79d787dd08dd3780,1,0 => 449 ffffffff00000000,a632e574be3e71ac,a632e574be3e71ac,1,57d26c1b01a1d8a => 449 ffffffff00000000,0,a632e574be3e71ac,1,0 => 449 ffffffff00000000,3c46e651b6a23a8d,3c46e651b6a23a8d,1,3b37aa4c7bdbf85b => 449 ffffffff00000000,0,3c46e651b6a23a8d,1,0 => 449 ffffffff00000000,5b7b3b391095f880,5b7b3b391095f880,1,284556ef72cc8092 => 449 ffffffff00000000,0,5b7b3b391095f880,1,0 => 449 ffffffff00000000,cf7442db23abe935,cf7442db23abe935,1,34e12532d49bc4dc => 449 ffffffff00000000,0,cf7442db23abe935,1,0 => 449 ffffffff00000000,91b5bf3d70cf3f65,91b5bf3d70cf3f65,1,26920ca9f36f8dc7 => 449 ffffffff00000000,0,91b5bf3d70cf3f65,1,0 => 449 ffffffff00000000,65d11247f2707307,65d11247f2707307,1,d857a28fb2c421ab => 449 ffffffff00000000,0,65d11247f2707307,1,0 => 449 ffffffff00000000,1c9f391e51b790c9,1c9f391e51b790c9,1,8c74b3f7223aa763 => 449 ffffffff00000000,0,1c9f391e51b790c9,1,0 => 449 ffffffff00000000,2a388e6f4039b806,2a388e6f4039b806,1,9a103489b100a053 => 449 ffffffff00000000,0,2a388e6f4039b806,1,0 => 449 ffffffff00000000,3ca151f7e6fc00f6,3ca151f7e6fc00f6,1,eef35d88a609158 => 449 ffffffff00000000,0,3ca151f7e6fc00f6,1,0 => 449 ffffffff00000000,7b63d9a86963b41a,7b63d9a86963b41a,1,4bba55aa033ecb1a => 449 ffffffff00000000,0,7b63d9a86963b41a,1,0 => 449 ffffffff00000000,3fa8d372f7344454,3fa8d372f7344454,1,eca3e14ceeaeb136 => 449 ffffffff00000000,0,3fa8d372f7344454,1,0 => 449 ffffffff00000000,16059cb4de21ff7f,16059cb4de21ff7f,1,bed7e03755429ce => 449 ffffffff00000000,0,16059cb4de21ff7f,1,0 => 449 ffffffff00000000,a9092b66a659ff4,a9092b66a659ff4,1,fcb9ba16f792d2b7 => 449 ffffffff00000000,0,a9092b66a659ff4,1,0 => 449 ffffffff00000000,828ec16f9c6ee9c,828ec16f9c6ee9c,1,f4e5eac2a11101e8 => 449 ffffffff00000000,0,828ec16f9c6ee9c,1,0 => 449 ffffffff00000000,7d68ecd3cd7da252,7d68ecd3cd7da252,1,e631f0801c4a98b9 => 449 ffffffff00000000,0,7d68ecd3cd7da252,1,0 => 449 ffffffff00000000,5297fa1e1cf4d377,5297fa1e1cf4d377,1,57fb75397922986 => 449 ffffffff00000000,0,5297fa1e1cf4d377,1,0 => 449 ffffffff00000000,53ae26090307aca3,53ae26090307aca3,1,90ba84aaf5e2b8f1 => 449 ffffffff00000000,0,53ae26090307aca3,1,0 => 449 ffffffff00000000,afd52822e73d527a,afd52822e73d527a,1,586ae3c6c944c0b => 449 ffffffff00000000,0,afd52822e73d527a,1,0 => 449 ffffffff00000000,a85eaaf2eef4cfc0,a85eaaf2eef4cfc0,1,ceffc43f9654abbc => 449 ffffffff00000000,0,a85eaaf2eef4cfc0,1,0 => 449 ffffffff00000000,99442cf0931f1a7e,99442cf0931f1a7e,1,f9895cb3b20da4b4 => 449 ffffffff00000000,0,99442cf0931f1a7e,1,0 => 449 ffffffff00000000,f25d540fa7629bb3,f25d540fa7629bb3,1,eb5429158f26a89d => 449 ffffffff00000000,0,f25d540fa7629bb3,1,0 => 449 ffffffff00000000,f9ed8af24eaf2a0,f9ed8af24eaf2a0,1,149a3cd0446e3c87 => 449 ffffffff00000000,0,f9ed8af24eaf2a0,1,0 => 449 ffffffff00000000,d74713c4163d69ce,d74713c4163d69ce,1,c8689c5d0ac80474 => 449 ffffffff00000000,0,d74713c4163d69ce,1,0 => 449 ffffffff00000000,6d58a91881d46bee,6d58a91881d46bee,1,811a3ea0f21d5126 => 449 ffffffff00000000,0,6d58a91881d46bee,1,0 => 449 ffffffff00000000,8f18be1301169a7b,8f18be1301169a7b,1,7c5da2b0db881b7e => 449 ffffffff00000000,0,8f18be1301169a7b,1,0 => 449 ffffffff00000000,fe62a11c507d13e5,fe62a11c507d13e5,1,6230bec05c648678 => 449 ffffffff00000000,0,fe62a11c507d13e5,1,0 => 449 ffffffff00000000,9090d1278db99caf,9090d1278db99caf,1,d574aae62da15a33 => 449 ffffffff00000000,0,9090d1278db99caf,1,0 => 449 ffffffff00000000,830be92f181eb360,830be92f181eb360,1,848d5ca5cc080dfe => 449 ffffffff00000000,0,830be92f181eb360,1,0 => 449 ffffffff00000000,9e20ae83795b9bc8,9e20ae83795b9bc8,1,d7508f949452f707 => 449 ffffffff00000000,0,9e20ae83795b9bc8,1,0 => 449 ffffffff00000000,7a23b663ee28848c,7a23b663ee28848c,1,41713ccda295d50 => 449 ffffffff00000000,0,7a23b663ee28848c,1,0 => 449 ffffffff00000000,b46a64b6463ef8ce,b46a64b6463ef8ce,1,3cdd28d942e7a6c5 => 449 ffffffff00000000,0,b46a64b6463ef8ce,1,0 => 449 ffffffff00000000,1741c1a157fbc1aa,1741c1a157fbc1aa,1,d49067f60471b3ca => 449 ffffffff00000000,0,1741c1a157fbc1aa,1,0 => 449 ffffffff00000000,a3f43e119257968,a3f43e119257968,1,3a2ae8f86f866db5 => 449 ffffffff00000000,0,a3f43e119257968,1,0 => 449 ffffffff00000000,bf4ed33ff6108b42,bf4ed33ff6108b42,1,7f17bb53dd6f1bf7 => 449 ffffffff00000000,0,bf4ed33ff6108b42,1,0 => 449 ffffffff00000000,59c8f6c034d529d0,59c8f6c034d529d0,1,f5198387236dca52 => 449 ffffffff00000000,0,59c8f6c034d529d0,1,0 => 449 ffffffff00000000,c33c076ce7b20bf9,c33c076ce7b20bf9,1,9c767dc4f44e25e6 => 449 ffffffff00000000,0,c33c076ce7b20bf9,1,0 => 449 ffffffff00000000,8ece55b9d9728275,8ece55b9d9728275,1,f3d47e2cc4047246 => 449 ffffffff00000000,0,8ece55b9d9728275,1,0 => 449 ffffffff00000000,6652e553f7ebd7c6,6652e553f7ebd7c6,1,b94ecdd6da4e1492 => 449 ffffffff00000000,0,6652e553f7ebd7c6,1,0 => 449 ffffffff00000000,147b09f625a910b9,147b09f625a910b9,1,b3c8b5917b17a566 => 449 ffffffff00000000,0,147b09f625a910b9,1,0 => 449 ffffffff00000000,8ea632ce3c53ee73,8ea632ce3c53ee73,1,87f3508aa34953b1 => 449 ffffffff00000000,0,8ea632ce3c53ee73,1,0 => 449 ffffffff00000000,2310f8673d49613a,2310f8673d49613a,1,37f56bd3017e8e0b => 449 ffffffff00000000,0,2310f8673d49613a,1,0 => 449 ffffffff00000000,2f89d3427359a8f5,2f89d3427359a8f5,1,873c591232c868b4 => 449 ffffffff00000000,0,2f89d3427359a8f5,1,0 => 449 ffffffff00000000,cf5b97f96cda7c7a,cf5b97f96cda7c7a,1,c387f11c3f3bc078 => 449 ffffffff00000000,0,cf5b97f96cda7c7a,1,0 => 449 ffffffff00000000,ea5e95747cdd2ba9,ea5e95747cdd2ba9,1,14a9dee0c265ab32 => 449 ffffffff00000000,0,ea5e95747cdd2ba9,1,0 => 449 ffffffff00000000,a5c0e44d3ac569bc,a5c0e44d3ac569bc,1,34352e5c2182bffa => 449 ffffffff00000000,0,a5c0e44d3ac569bc,1,0 => 449 ffffffff00000000,88affa66d28b280a,88affa66d28b280a,1,d6df4562ed1103f2 => 449 ffffffff00000000,0,88affa66d28b280a,1,0 => 449 ffffffff00000000,6336a3cd4b3e035,6336a3cd4b3e035,1,79defca543f7451d => 449 ffffffff00000000,0,6336a3cd4b3e035,1,0 => 449 ffffffff00000000,f3b6c9934da17aee,f3b6c9934da17aee,1,ae04f738c32c6592 => 449 ffffffff00000000,0,f3b6c9934da17aee,1,0 => 449 ffffffff00000000,229ee0eeff3e8bbf,229ee0eeff3e8bbf,1,d071730c6e5469fa => 449 ffffffff00000000,0,229ee0eeff3e8bbf,1,0 => 449 ffffffff00000000,fd00788f5a10683d,fd00788f5a10683d,1,bd77aec474c37281 => 449 ffffffff00000000,0,fd00788f5a10683d,1,0 => 449 ffffffff00000000,c2f93741eaeb1d28,c2f93741eaeb1d28,1,c7c9efb5bf14d96 => 449 ffffffff00000000,0,c2f93741eaeb1d28,1,0 => 449 ffffffff00000000,176327aa2a2fe2ce,176327aa2a2fe2ce,1,a3adbd45a0e51f86 => 449 ffffffff00000000,0,176327aa2a2fe2ce,1,0 => 449 ffffffff00000000,131a58e0f301238c,131a58e0f301238c,1,7dd76d457e044b95 => 449 ffffffff00000000,0,131a58e0f301238c,1,0 => 449 ffffffff00000000,6fffb3eb8e476c3c,6fffb3eb8e476c3c,1,bdcd6dfb9d0fb33b => 449 ffffffff00000000,0,6fffb3eb8e476c3c,1,0 => 449 ffffffff00000000,21edd413165c6c99,21edd413165c6c99,1,cc619baac34093c5 => 449 ffffffff00000000,0,21edd413165c6c99,1,0 => 449 ffffffff00000000,b29e1a94ada2dda7,b29e1a94ada2dda7,1,4700e8d31319d68f => 449 ffffffff00000000,0,b29e1a94ada2dda7,1,0 => 449 ffffffff00000000,eb872c9d24406055,eb872c9d24406055,1,2513a2c9380268bd => 449 ffffffff00000000,0,eb872c9d24406055,1,0 => 449 ffffffff00000000,b8a32cdea5c42323,b8a32cdea5c42323,1,602846d4ce6eb6a0 => 449 ffffffff00000000,0,b8a32cdea5c42323,1,0 => 449 ffffffff00000000,e75bdef93ce48179,e75bdef93ce48179,1,af2179964b5ea68e => 449 ffffffff00000000,0,e75bdef93ce48179,1,0 => 449 ffffffff00000000,fdc18bea5099cf99,fdc18bea5099cf99,1,b03801e4f5632daf => 449 ffffffff00000000,0,fdc18bea5099cf99,1,0 => 449 ffffffff00000000,eaeb8ef6ede6982a,eaeb8ef6ede6982a,1,c1bb003281c2c4da => 449 ffffffff00000000,0,eaeb8ef6ede6982a,1,0 => 449 ffffffff00000000,1b5c200d28290108,1b5c200d28290108,1,63963fe4024c4e12 => 449 ffffffff00000000,0,1b5c200d28290108,1,0 => 449 ffffffff00000000,fe572e5977f7a8ca,fe572e5977f7a8ca,1,b85c99621edea1ee => 449 ffffffff00000000,0,fe572e5977f7a8ca,1,0 => 449 ffffffff00000000,ee4b38b0259d4112,ee4b38b0259d4112,1,1387d90e92e5c708 => 449 ffffffff00000000,0,ee4b38b0259d4112,1,0 => 449 ffffffff00000000,1a7833f19658ccbb,1a7833f19658ccbb,1,780eb4774a03351f => 449 ffffffff00000000,0,1a7833f19658ccbb,1,0 => 449 ffffffff00000000,e008cd8ee855d593,e008cd8ee855d593,1,c81b080b62d6609e => 449 ffffffff00000000,0,e008cd8ee855d593,1,0 => 449 ffffffff00000000,a6b1d63adb8c2f96,a6b1d63adb8c2f96,1,cdd2a7b1f9068ba2 => 449 ffffffff00000000,0,a6b1d63adb8c2f96,1,0 => 449 ffffffff00000000,90ce24d7664ed2c,90ce24d7664ed2c,1,9803627abbda779e => 449 ffffffff00000000,0,90ce24d7664ed2c,1,0 => 449 ffffffff00000000,3fd53a1a8ced2c37,3fd53a1a8ced2c37,1,25f48bb1d12cf96d => 449 ffffffff00000000,0,3fd53a1a8ced2c37,1,0 => 449 ffffffff00000000,18fdfe159f348749,18fdfe159f348749,1,eadb3640580ff9c5 => 449 ffffffff00000000,0,18fdfe159f348749,1,0 => 449 ffffffff00000000,906f00c3959a0ef9,906f00c3959a0ef9,1,f208dca724f284ac => 449 ffffffff00000000,0,906f00c3959a0ef9,1,0 => 449 ffffffff00000000,bd8b858cba18057d,bd8b858cba18057d,1,59bc1e23f80e451d => 449 ffffffff00000000,0,bd8b858cba18057d,1,0 => 449 ffffffff00000000,2e0af81ac548b64f,2e0af81ac548b64f,1,e05b7e7a5574f17e => 449 ffffffff00000000,0,2e0af81ac548b64f,1,0 => 449 ffffffff00000000,e3792d990ea8af34,e3792d990ea8af34,1,c1f93cb240c62a80 => 449 ffffffff00000000,0,e3792d990ea8af34,1,0 => 449 ffffffff00000000,c669318b227cd3e5,c669318b227cd3e5,1,c9c2e52cb79d8a03 => 449 ffffffff00000000,0,c669318b227cd3e5,1,0 => 449 ffffffff00000000,718045fc67cddb44,718045fc67cddb44,1,5140cbe776caa63e => 449 ffffffff00000000,0,718045fc67cddb44,1,0 => 449 ffffffff00000000,45f2138dfcdaa22d,45f2138dfcdaa22d,1,a605375c63f9b29b => 449 ffffffff00000000,0,45f2138dfcdaa22d,1,0 => 449 ffffffff00000000,61634286e9d703a6,61634286e9d703a6,1,1e31d83f9b02b400 => 449 ffffffff00000000,0,61634286e9d703a6,1,0 => 449 ffffffff00000000,25179ba56912295c,25179ba56912295c,1,381f86dbdc7b1570 => 449 ffffffff00000000,0,25179ba56912295c,1,0 => 449 ffffffff00000000,2141f7ab4e5e2c89,2141f7ab4e5e2c89,1,ade28607aac4c8b3 => 449 ffffffff00000000,0,2141f7ab4e5e2c89,1,0 => 449 ffffffff00000000,5b6dd62cb2febcbe,5b6dd62cb2febcbe,1,6d6df090b0f7f28c => 449 ffffffff00000000,0,5b6dd62cb2febcbe,1,0 => 449 ffffffff00000000,841a45ff256fa1e5,841a45ff256fa1e5,1,c4c65034b0c58624 => 449 ffffffff00000000,0,841a45ff256fa1e5,1,0 => 449 ffffffff00000000,5c36a1503dbb55d1,5c36a1503dbb55d1,1,2e0bf3e12afb927c => 449 ffffffff00000000,0,5c36a1503dbb55d1,1,0 => 449 ffffffff00000000,fdcf43560b20fabd,fdcf43560b20fabd,1,299b6b8b21a8f90b => 449 ffffffff00000000,0,fdcf43560b20fabd,1,0 => 449 ffffffff00000000,beca3d40401eb73b,beca3d40401eb73b,1,68ec6e0fb071e23b => 449 ffffffff00000000,0,beca3d40401eb73b,1,0 => 449 ffffffff00000000,e9903f32bc75c38f,e9903f32bc75c38f,1,e65a777fabb1fb7 => 449 ffffffff00000000,0,e9903f32bc75c38f,1,0 => 449 ffffffff00000000,c89d4a647517c107,c89d4a647517c107,1,95e9760842338e8c => 449 ffffffff00000000,0,c89d4a647517c107,1,0 => 449 ffffffff00000000,176d75b276eeb8b1,176d75b276eeb8b1,1,99c5a563693eb92c => 449 ffffffff00000000,0,176d75b276eeb8b1,1,0 => 449 ffffffff00000000,d5bbf4ad5b6ba11c,d5bbf4ad5b6ba11c,1,549d995e90e5a918 => 449 ffffffff00000000,0,d5bbf4ad5b6ba11c,1,0 => 449 ffffffff00000000,7f3102d38266007e,7f3102d38266007e,1,cd05ad4d32a887f => 449 ffffffff00000000,0,7f3102d38266007e,1,0 => 449 ffffffff00000000,4467863819e029d7,4467863819e029d7,1,73e617cea734698 => 449 ffffffff00000000,0,4467863819e029d7,1,0 => 449 ffffffff00000000,918370e47bd9afcd,918370e47bd9afcd,1,f8c68091625e5173 => 449 ffffffff00000000,0,918370e47bd9afcd,1,0 => 449 ffffffff00000000,e9b44d20e4412239,e9b44d20e4412239,1,a678b8cb54d0dc1f => 449 ffffffff00000000,0,e9b44d20e4412239,1,0 => 449 ffffffff00000000,c3ed019b2a39ac6,c3ed019b2a39ac6,1,5d9e76ea113ac468 => 449 ffffffff00000000,0,c3ed019b2a39ac6,1,0 => 449 ffffffff00000000,bf4616dc12688e1f,bf4616dc12688e1f,1,81bae26e50afe726 => 449 ffffffff00000000,0,bf4616dc12688e1f,1,0 => 449 ffffffff00000000,aae0a4ef4184e7c1,aae0a4ef4184e7c1,1,9a68a3026f33d89e => 449 ffffffff00000000,0,aae0a4ef4184e7c1,1,0 => 449 ffffffff00000000,dafcd5573b34e7f0,dafcd5573b34e7f0,1,3869b9c560d857a => 449 ffffffff00000000,0,dafcd5573b34e7f0,1,0 => 449 ffffffff00000000,5512cbf7b4e9bcbb,5512cbf7b4e9bcbb,1,2c044589dc37bd07 => 449 ffffffff00000000,0,5512cbf7b4e9bcbb,1,0 => 449 ffffffff00000000,70026943063637e4,70026943063637e4,1,704b8a285661ef76 => 449 ffffffff00000000,0,70026943063637e4,1,0 => 449 ffffffff00000000,8f036e13a6c8f7a5,8f036e13a6c8f7a5,1,40b2e05d2aa456e4 => 449 ffffffff00000000,0,8f036e13a6c8f7a5,1,0 => 449 ffffffff00000000,8086a1d4a06eabc1,8086a1d4a06eabc1,1,70c07dcc64c34324 => 449 ffffffff00000000,0,8086a1d4a06eabc1,1,0 => 449 ffffffff00000000,babc261fab892c36,babc261fab892c36,1,d7f207cc143c06da => 449 ffffffff00000000,0,babc261fab892c36,1,0 => 449 ffffffff00000000,e8d28c0ffb036f4,e8d28c0ffb036f4,1,274afbb35495b542 => 449 ffffffff00000000,0,e8d28c0ffb036f4,1,0 => 449 ffffffff00000000,202e3b004337edc9,202e3b004337edc9,1,2003c4c9174f11d0 => 449 ffffffff00000000,0,202e3b004337edc9,1,0 => 449 ffffffff00000000,4372049c801aa705,4372049c801aa705,1,65385145be4ea9f0 => 449 ffffffff00000000,0,4372049c801aa705,1,0 => 449 0,1,ffffffff00000000,0,2e479dc157bf31bb => 449 0,1,ffffffff00000000,0,6f49de07a6234346 => 449 0,1,ffffffff00000000,0,213ce7bede378d7b => 449 0,1,ffffffff00000000,0,5b0431345d4dea83 => 449 0,1,ffffffff00000000,0,a2de45780344d6a1 => 449 0,1,ffffffff00000000,0,7103aaf94a7bf308 => 449 0,1,ffffffff00000000,0,5326fc0d97279301 => 449 0,1,ffffffff00000000,0,a9ceb74fec024747 => 449 0,1,ffffffff00000000,0,27f8ec88bb21b1a3 => 449 0,1,ffffffff00000000,0,fceb4fda1ded0893 => 449 0,1,ffffffff00000000,0,fac6ff1346a41675 => 449 0,1,ffffffff00000000,0,9351036095630f9f => 449 0,1,ffffffff00000000,0,ad535b24afc26bfb => 449 0,1,ffffffff00000000,0,4627f5c6993e44be => 449 0,1,ffffffff00000000,0,645cf794b8f1cc58 => 449 0,1,ffffffff00000000,0,241c70ed0af61617 => 449 0,1,ffffffff00000000,0,acb8e076647905f1 => 449 0,1,ffffffff00000000,0,3737e9db4c4f474d => 449 0,1,ffffffff00000000,0,e7ea5e33e75fffb6 => 449 0,1,ffffffff00000000,0,90dee49fc9bfc23a => 449 0,1,ffffffff00000000,0,d1b1edf76bc09c92 => 449 0,1,ffffffff00000000,0,b65481ba645c602 => 449 0,1,ffffffff00000000,0,438a7c91d416ca4d => 449 0,1,ffffffff00000000,0,b60de3bcc5ea751c => 449 0,1,ffffffff00000000,0,c99cab6aef6f58bc => 449 0,1,ffffffff00000000,0,69a5ed92a72ee4ff => 449 0,1,ffffffff00000000,0,5e7b329c1ed4ad71 => 449 0,1,ffffffff00000000,0,5fc0ac0800144885 => 449 0,1,ffffffff00000000,0,32db829239774eca => 449 0,1,ffffffff00000000,0,ade699c5830f310 => 449 0,1,ffffffff00000000,0,7cc5583b10415f21 => 449 0,1,ffffffff00000000,0,85df9ed2e166d64f => 449 0,1,ffffffff00000000,0,6604df4fee32bcb1 => 449 0,1,ffffffff00000000,0,da608834c40e603d => 449 0,1,ffffffff00000000,0,8f97fe408061f183 => 449 0,1,ffffffff00000000,0,a93f485c96f37b89 => 449 0,1,ffffffff00000000,0,6704e8ee8f18d563 => 449 0,1,ffffffff00000000,0,cee3e9ac1e072119 => 449 0,1,ffffffff00000000,0,510d0e65e2b470c1 => 449 0,1,ffffffff00000000,0,f6323f486b9038f0 => 449 0,1,ffffffff00000000,0,b508cdeffa5ceef => 449 0,1,ffffffff00000000,0,f2417089e4fb3cbd => 449 0,1,ffffffff00000000,0,60e75c2890d15730 => 449 0,1,ffffffff00000000,0,a6217d8bf660f29c => 449 0,1,ffffffff00000000,0,839b4e8fafead540 => 449 0,1,ffffffff00000000,0,d3f3e5e82920adc => 449 0,1,ffffffff00000000,0,8f7d83bddee7bba8 => 449 0,1,ffffffff00000000,0,780f2243ea071d06 => 449 0,1,ffffffff00000000,0,eb915845f3de1634 => 449 0,1,ffffffff00000000,0,d19e120d26b6f386 => 449 0,1,ffffffff00000000,0,16ee53a7e5fecc6 => 449 0,1,ffffffff00000000,0,cb5fd54e7933e477 => 449 0,1,ffffffff00000000,0,acb8417879fd449f => 449 0,1,ffffffff00000000,0,9c22190be7f74732 => 449 0,1,ffffffff00000000,0,5d693c1ba3ba3621 => 449 0,1,ffffffff00000000,0,3d639263da827b13 => 449 0,1,ffffffff00000000,0,e273fd971bc8d0e7 => 449 0,1,ffffffff00000000,0,418f02702d227ed5 => 449 0,1,ffffffff00000000,0,8c25fda3b503038c => 449 0,1,ffffffff00000000,0,2cbaed4daec8c07c => 449 0,1,ffffffff00000000,0,5f58e6afcdd6ddc2 => 449 0,1,ffffffff00000000,0,284650ac5e1b0eba => 449 0,1,ffffffff00000000,0,635b337ee819dab5 => 449 0,1,ffffffff00000000,0,9f9a036ed4f2d49f => 449 0,1,ffffffff00000000,0,b93e260cae5c170e => 449 0,1,ffffffff00000000,0,b0a7eae879ddb76d => 449 0,1,ffffffff00000000,0,34c6efb812b04bf5 => 449 0,1,ffffffff00000000,0,40bf0ab5fa14c112 => 449 0,1,ffffffff00000000,0,b6b570fc7c5740d3 => 449 0,1,ffffffff00000000,0,5a27b9002de33454 => 449 0,1,ffffffff00000000,0,b1a5b165b6d2b2d2 => 449 0,1,ffffffff00000000,0,8722e0ace9d1be22 => 449 0,1,ffffffff00000000,0,788ee3b37e5680fb => 449 0,1,ffffffff00000000,0,14a726661551e284 => 449 0,1,ffffffff00000000,0,98b7672f9ef3b419 => 449 0,1,ffffffff00000000,0,bb93ae776bb30e3a => 449 0,1,ffffffff00000000,0,28fd3b046380f850 => 449 0,1,ffffffff00000000,0,337dc00c61bd9ce1 => 449 0,1,ffffffff00000000,0,d5eca244c7a4ff1d => 449 0,1,ffffffff00000000,0,7762638264d279bd => 449 0,1,ffffffff00000000,0,c1e434bedeefd767 => 449 0,1,ffffffff00000000,0,299351a53b8ec22 => 449 0,1,ffffffff00000000,0,b2d456e4ad251b80 => 449 0,1,ffffffff00000000,0,3e9ed1fda49cea0b => 449 0,1,ffffffff00000000,0,2972a92ba450bed8 => 449 0,1,ffffffff00000000,0,20216dd77be493de => 449 0,1,ffffffff00000000,0,adffe8cf28449ec6 => 449 0,1,ffffffff00000000,0,1c4dbb1c4c27d243 => 449 0,1,ffffffff00000000,0,388a128b7fd9a609 => 449 0,1,ffffffff00000000,0,2300e5d6baedf0fb => 449 0,1,ffffffff00000000,0,2f63aa8647e15104 => 449 0,1,ffffffff00000000,0,f1c36ce86ecec269 => 449 0,1,ffffffff00000000,0,27181125183970c9 => 449 0,1,ffffffff00000000,0,e584029370dca96d => 449 0,1,ffffffff00000000,0,4d9bbc3e02f1cfb2 => 449 0,1,ffffffff00000000,0,ea35bc29692af6f8 => 449 0,1,ffffffff00000000,0,18e21b4beabb4137 => 449 0,1,ffffffff00000000,0,1e3b9fc625b554f4 => 449 0,1,ffffffff00000000,0,25d64362697828fd => 449 0,1,ffffffff00000000,0,db7f023869fb8d38 => 449 0,1,ffffffff00000000,0,b462065911d4e1fc => 449 0,1,ffffffff00000000,0,49c24ae4437d8030 => 449 0,1,ffffffff00000000,0,d793862c112b0566 => 449 0,1,ffffffff00000000,0,aadd1106730d8feb => 449 0,1,ffffffff00000000,0,c43b6e0e97b0d568 => 449 0,1,ffffffff00000000,0,e29024c18ee6fca2 => 449 0,1,ffffffff00000000,0,5e50c27535b88c66 => 449 0,1,ffffffff00000000,0,10383f20a4ff9a87 => 449 0,1,ffffffff00000000,0,38e8ee9d71a45af8 => 449 0,1,ffffffff00000000,0,dd5118375bf1a9b9 => 449 0,1,ffffffff00000000,0,86ab99b4dde6c8b0 => 449 0,1,ffffffff00000000,0,b1204f603f51c080 => 449 0,1,ffffffff00000000,0,ef61ac8470250ecf => 449 0,1,ffffffff00000000,0,1bbcd90f132c603f => 449 0,1,ffffffff00000000,0,cd1dabd964db557 => 449 0,1,ffffffff00000000,0,11a3ae5beb9d1ec9 => 449 0,1,ffffffff00000000,0,f755bfeea585d11d => 449 0,1,ffffffff00000000,0,a3b83250268ea4d7 => 449 0,1,ffffffff00000000,0,516306f4927c93af => 449 0,1,ffffffff00000000,0,ddb4ac49c9efa1da => 449 0,1,ffffffff00000000,0,64bb6dec369d4418 => 449 0,1,ffffffff00000000,0,8d37f755f4ae9f6 => 449 0,1,ffffffff00000000,0,eec49b613478675b => 449 0,1,ffffffff00000000,0,f143933aed25e0b0 => 449 0,1,ffffffff00000000,0,e4c5dd8255dfc622 => 449 0,1,ffffffff00000000,0,e7ad7756f193198e => 449 0,1,ffffffff00000000,0,92c2318b87fff9cb => 449 0,1,ffffffff00000000,0,739c25f8fd73596d => 449 0,1,ffffffff00000000,0,5636cac9f16dfed0 => 449 0,1,ffffffff00000000,0,dd8f909a938e0172 => 449 0,1,ffffffff00000000,0,c6401fe115063f5b => 449 0,1,ffffffff00000000,0,8ad97b33f1ac1455 => 449 0,1,ffffffff00000000,0,784d3d2f1698309 => 449 0,1,ffffffff00000000,0,530fb67ea1809a81 => 449 0,1,ffffffff00000000,0,410492299bb01f49 => 449 0,1,ffffffff00000000,0,139542347424b9ac => 449 0,1,ffffffff00000000,0,9cb0bd5ea1a1115e => 449 0,1,ffffffff00000000,0,2e3f615c38f49a1 => 449 0,1,ffffffff00000000,0,985d4f4a9c5291ef => 449 0,1,ffffffff00000000,0,775b9feafdcd26e7 => 449 0,1,ffffffff00000000,0,304265a6384f0f2d => 449 0,1,ffffffff00000000,0,593664c39773012c => 449 0,1,ffffffff00000000,0,4f0a2e5fb028f2ce => 449 0,1,ffffffff00000000,0,d8185f9adfea4fd0 => 449 0,1,ffffffff00000000,0,ef87139ca9a3ab1e => 449 0,1,ffffffff00000000,0,3ba71336c34ee133 => 449 0,1,ffffffff00000000,0,7d3a455d56b70238 => 449 0,1,ffffffff00000000,0,660d32e130182684 => 449 0,1,ffffffff00000000,0,297a863f48cd1f43 => 449 0,1,ffffffff00000000,0,90e0a736a751ebb7 => 449 0,1,ffffffff00000000,0,549f80ce550c4fd3 => 449 0,1,ffffffff00000000,0,f73b2922f38bd64 => 449 0,1,ffffffff00000000,0,16bf1f73fb7a9c3f => 449 0,1,ffffffff00000000,0,6d1f5a59005bec17 => 449 0,1,ffffffff00000000,0,c5cb72a2a51159b0 => 449 0,1,ffffffff00000000,0,8470f39d2d5c900e => 449 0,1,ffffffff00000000,0,25abb3f1d39fcb76 => 449 0,1,ffffffff00000000,0,23eb8cc9b372442f => 449 0,1,ffffffff00000000,0,d687ba55c64f6364 => 449 0,1,ffffffff00000000,0,da8d9e90fd8ff158 => 449 0,1,ffffffff00000000,0,e3cbdc7d2fe45ea7 => 449 0,1,ffffffff00000000,0,b9a8c9b3aee52297 => 449 0,1,ffffffff00000000,0,c0d28a5c10960bd3 => 449 0,1,ffffffff00000000,0,45d7ac9b68f71a34 => 449 0,1,ffffffff00000000,0,eeb76e397069e804 => 449 0,1,ffffffff00000000,0,9c9c98207cb10767 => 449 0,1,ffffffff00000000,0,65700b51aedfb5ef => 449 0,1,ffffffff00000000,0,911f451539869408 => 449 0,1,ffffffff00000000,0,7ae6849fbc3a0ec6 => 449 0,1,ffffffff00000000,0,3bb340eba06afe7e => 449 0,1,ffffffff00000000,0,b46e9d8b682ea65e => 449 0,1,ffffffff00000000,0,8dcf22f9a3b34356 => 449 0,1,ffffffff00000000,0,77bdaeda586257a7 => 449 0,1,ffffffff00000000,0,f19e400a5104d20d => 449 0,1,ffffffff00000000,0,c368a348e46d950f => 449 0,1,ffffffff00000000,0,9ef1cd60e679f284 => 449 0,1,ffffffff00000000,0,5cd377dc8bb882a2 => 449 0,1,ffffffff00000000,0,a7b0fb7883eee860 => 449 0,1,ffffffff00000000,0,7684403ec392950d => 449 0,1,ffffffff00000000,0,5fa3f06f4fed3b52 => 449 0,1,ffffffff00000000,0,8df57ac11bc04831 => 449 0,1,ffffffff00000000,0,2db01efa1e1e1897 => 449 0,1,ffffffff00000000,0,54846de4aadb9ca2 => 449 0,1,ffffffff00000000,0,ba6745385893c784 => 449 0,1,ffffffff00000000,0,541d496344d2c75b => 449 0,1,ffffffff00000000,0,e909678474e687fe => 449 0,1,ffffffff00000000,0,dfe89923f6c9c2ff => 449 0,1,ffffffff00000000,0,5ff98fd5d51fe610 => 449 0,1,ffffffff00000000,0,83e8941918964615 => 449 0,1,ffffffff00000000,0,5922040b47f150c1 => 449 0,1,ffffffff00000000,0,f97d750e3dd94521 => 449 0,1,ffffffff00000000,0,5080d4c2b86f56d7 => 449 0,1,ffffffff00000000,0,a7de115b56c78d70 => 449 0,1,ffffffff00000000,0,6a9242ac87538194 => 449 0,1,ffffffff00000000,0,f7856ef7f9173e44 => 449 0,1,ffffffff00000000,0,2265fc92feb0dc09 => 449 0,1,ffffffff00000000,0,17dfc8e4f7ba8a57 => 449 0,1,ffffffff00000000,0,9001a64209f21db8 => 449 0,1,ffffffff00000000,0,b932b7cf752e5545 => 449 0,1,ffffffff00000000,0,a0b1df81b6fe59fc => 449 0,1,ffffffff00000000,0,8ef1dd26770af2c2 => 449 0,1,ffffffff00000000,0,541a4f9cfbeed35 => 449 0,1,ffffffff00000000,0,9e61106178bfc530 => 449 0,1,ffffffff00000000,0,b3767e80935d8af2 => 449 0,1,ffffffff00000000,0,98d5782065af06 => 449 0,1,ffffffff00000000,0,31d191cd5c1466c7 => 449 0,1,ffffffff00000000,0,410fefafa319ac9d => 449 0,1,ffffffff00000000,0,bdf8f242e316c4ab => 449 0,1,ffffffff00000000,0,9e8cd55b57637ed0 => 449 0,1,ffffffff00000000,0,4d001fd58f002526 => 449 0,1,ffffffff00000000,0,ca6637000eb4a9f8 => 449 0,1,ffffffff00000000,0,2f2339d624f91f78 => 449 0,1,ffffffff00000000,0,6d1a7918c80df518 => 449 0,1,ffffffff00000000,0,df9a4939342308e9 => 449 0,1,ffffffff00000000,0,ebc2151ee6c8398c => 449 0,1,ffffffff00000000,0,3cc2ba8a1116515 => 449 0,1,ffffffff00000000,0,d341d037e840cf83 => 449 0,1,ffffffff00000000,0,387cb5d25af4afcc => 449 0,1,ffffffff00000000,0,bba2515f22909e87 => 449 0,1,ffffffff00000000,0,7248fe7705f38e47 => 449 0,1,ffffffff00000000,0,262e963c8da05d3d => 449 0,1,ffffffff00000000,0,59e89b094d220ec2 => 449 0,1,ffffffff00000000,0,55d5b52b78b9c5e => 449 0,1,ffffffff00000000,0,82b27eb33514ef99 => 449 0,1,ffffffff00000000,0,d30094ca96b7ce7b => 449 0,1,ffffffff00000000,0,cf5cb381cd0a1535 => 449 0,1,ffffffff00000000,0,feed4db6919e5a7c => 449 0,1,ffffffff00000000,0,41703f53753be59f => 449 0,1,ffffffff00000000,0,5eeea940fcde8b6f => 449 0,1,ffffffff00000000,0,4cd1f1b175100206 => 449 0,1,ffffffff00000000,0,4a20358574454ec0 => 449 0,1,ffffffff00000000,0,6f02dc07d141875c => 449 0,1,ffffffff00000000,0,296a202ed8e556a2 => 449 0,1,ffffffff00000000,0,2afd67999bf32ee5 => 449 0,1,ffffffff00000000,0,7acfd96efa95491d => 449 0,1,ffffffff00000000,0,6798ba0c0abb2c6d => 449 0,1,ffffffff00000000,0,34c6f57b26c92122 => 449 0,1,ffffffff00000000,0,5736e1bad206b5de => 449 0,1,ffffffff00000000,0,20057d2a0056521b => 449 0,1,ffffffff00000000,0,3dea5bd5d0578bd7 => 449 0,1,ffffffff00000000,0,16e50d897d4634ac => 449 0,1,ffffffff00000000,0,29bff3ecb9b7a6e3 => 449 0,1,1000000000000,ffffffff00000000,0 => 294 0,1,fffeffff00000001,ffffffff00000000,0 => 294 1,0,ffffffff00000000,0,0 => 194 0,ffffffff00000000,ffffffff00000000,0,0 => 132 0,1,fffffffeff000001,ffffffff00000000,0 => 96 0,1,1000000,ffffffff00000000,0 => 96 0,1,fffffeff00000101,ffffffff00000000,0 => 96 0,1,ffffffff00,ffffffff00000000,0 => 96 0,ffffffff00000000,ffffffff00000000,1,0 => 88 0,ffffffff00000000,efffffff10000001,efffffff10000001,0 => 48 0,ffffffff00000000,efffffff10000001,ffffffff0000000,0 => 48 0,ffffffff00000000,efffffff10000001,feffffff00000001,0 => 48 0,ffffffff00000000,efffffff10000001,100000000000000,0 => 48 0,ffffffff00000000,efffffff10000001,fffffffefff00001,0 => 48 0,ffffffff00000000,efffffff10000001,100000,0 => 48 0,ffffffff00000000,efffffff10000001,ffffffff0000,0 => 48 0,ffffffff00000000,efffffff10000001,fffeffff00010001,0 => 48 0,ffffffff00000000,efffffff10000001,100000000000,0 => 48 0,ffffffff00000000,efffffff10000001,ffffefff00000001,0 => 48 0,ffffffff00000000,efffffff10000001,100,0 => 48 0,ffffffff00000000,efffffff10000001,fffffffeffffff01,0 => 48 0,ffffffff00000000,efffffff10000001,ffffffef00000011,0 => 48 0,ffffffff00000000,efffffff10000001,ffffffff0,0 => 48 0,ffffffff00000000,efffffff10000001,fffffffe00000001,0 => 48 0,ffffffff00000000,efffffff10000001,100000000,0 => 48 0,ffffffff00000000,1,ffffffff00000000,0 => 27 200000000000001,0,ffffffff00000000,1,0 => 16 40001,0,ffffffff00000000,1,0 => 16 0,ffffffff00000000,0,0,1 => 16 0,6270d5277401268f,ffffffff00000000,0,0 => 16 c465162d27278a79,0,ffffffff00000000,1,0 => 8 c21e639730b6958e,0,ffffffff00000000,1,0 => 8 e29d1cef5b5b1152,0,ffffffff00000000,1,0 => 8 ffffffffffff1,0,ffffffff00000000,1,0 => 8 6270d52774012690,0,ffffffff00000000,1,0 => 8 e6fa2fd4a3bee0b4,0,ffffffff00000000,1,0 => 8 4086ebc219f3569c,0,ffffffff00000000,1,0 => 8 7fff7fff8000001,0,ffffffff00000000,1,0 => 8 ffffff7f00000002,0,ffffffff00000000,1,0 => 8 ffffbfff00004002,0,ffffffff00000000,1,0 => 8 1000000000000001,0,ffffffff00000000,1,0 => 8 1000001,0,ffffffff00000000,1,0 => 8 fffeffff00000002,0,ffffffff00000000,1,0 => 8 2,0,ffffffff00000000,1,0 => 8 0,ffffffff00000000,0,0,70088f165d151802 => 8 0,ffffffff00000000,0,0,551136b191446c3d => 8 0,ffffffff00000000,0,0,de288a3c6592ec51 => 8 0,ffffffff00000000,0,0,27bb7c3dbd05d4b3 => 8 0,ce2d24dacdd9a6a3,ffffffff00000000,0,4e5e0a72a1f58d10 => 8 0,ecab727d25ca7a5d,ffffffff00000000,0,1c909840d79503bc => 8 0,36058c86abf76f6d,ffffffff00000000,0,31 => 8 0,6270d5277401268f,1,ffffffff00000000,0 => 8 0,1,2,1,0 => 4 0,4,8,1,0 => 4 0,10,20,1,0 => 4 0,40,80,1,0 => 4 0,100,200,1,0 => 4 0,400,800,1,0 => 4 0,1000,2000,1,0 => 4 0,4000,8000,1,0 => 4 0,10000,20000,1,0 => 4 0,40000,80000,1,0 => 4 0,100000,200000,1,0 => 4 0,400000,800000,1,0 => 4 0,1,1,1,0 => 4 0,ffffffff00000000,dfffffff20000001,dfffffff20000001,0 => 3 0,ffffffff00000000,dfffffff20000001,1fffffffe0000000,0 => 3 0,ffffffff00000000,dfffffff20000001,fffffffeffe00001,0 => 3 0,ffffffff00000000,dfffffff20000001,200000,0 => 3 0,ffffffff00000000,dfffffff20000001,200000000000,0 => 3 0,ffffffff00000000,dfffffff20000001,ffffdfff00000001,0 => 3 0,ffffffff00000000,dfffffff20000001,ffffffdf00000021,0 => 3 0,ffffffff00000000,dfffffff20000001,1fffffffe0,0 => 3 0,1000000,2000000,1,0 => 3 0,4000000,8000000,1,0 => 3 0,10000000,20000000,1,0 => 3 0,40000000,80000000,1,0 => 3 0,fffffffeffffffff,fffffffeffffffff,1,0 => 2 2,0,0,ffffffff00000000,0 => 2 0,fffffffefffffffd,fffffffefffffffd,1,0 => 2 4,0,0,ffffffff00000000,0 => 2 0,fffffffefffffff9,fffffffefffffff9,1,0 => 2 8,0,0,ffffffff00000000,0 => 2 0,fffffffefffffff1,fffffffefffffff1,1,0 => 2 10,0,0,ffffffff00000000,0 => 2 0,fffffffeffffffe1,fffffffeffffffe1,1,0 => 2 20,0,0,ffffffff00000000,0 => 2 0,fffffffeffffffc1,fffffffeffffffc1,1,0 => 2 40,0,0,ffffffff00000000,0 => 2 0,fffffffeffffff81,fffffffeffffff81,1,0 => 2 80,0,0,ffffffff00000000,0 => 2 0,fffffffeffffff01,fffffffeffffff01,1,0 => 2 100,0,0,ffffffff00000000,0 => 2 0,fffffffefffffe01,fffffffefffffe01,1,0 => 2 200,0,0,ffffffff00000000,0 => 2 0,fffffffefffffc01,fffffffefffffc01,1,0 => 2 400,0,0,ffffffff00000000,0 => 2 0,fffffffefffff801,fffffffefffff801,1,0 => 2 800,0,0,ffffffff00000000,0 => 2 0,fffffffefffff001,fffffffefffff001,1,0 => 2 1000,0,0,ffffffff00000000,0 => 2 0,fffffffeffffe001,fffffffeffffe001,1,0 => 2 2000,0,0,ffffffff00000000,0 => 2 0,fffffffeffffc001,fffffffeffffc001,1,0 => 2 4000,0,0,ffffffff00000000,0 => 2 0,fffffffeffff8001,fffffffeffff8001,1,0 => 2 8000,0,0,ffffffff00000000,0 => 2 fffffffeffff0001,0,0,1,10000 => 2 fffffffefffe0001,0,0,1,20000 => 2 fffffffefffc0001,0,0,1,40000 => 2 fffffffefff80001,0,0,1,80000 => 2 fffffffefff00001,0,0,1,100000 => 2 fffffffeffe00001,0,0,1,200000 => 2 fffffffeffc00001,0,0,1,400000 => 2 fffffffeff800001,0,0,1,800000 => 2 fffffffeff000001,0,0,1,1000000 => 2 fffffffefe000001,0,0,1,2000000 => 2 fffffffefc000001,0,0,1,4000000 => 2 fffffffef8000001,0,0,1,8000000 => 2 fffffffef0000001,0,0,1,10000000 => 2 fffffffee0000001,0,0,1,20000000 => 2 fffffffec0000001,0,0,1,40000000 => 2 fffffffe80000001,0,0,1,80000000 => 2 0,1,ffffffff00000000,0,ffffffff => 2 0,100000000,ffffffff00000000,1,0 => 2 0,8000000000000000,ffffffff00000000,1,0 => 2 0,ffffffff00000000,ffffffff00000000,0,1 => 2 0,100000000,200000000,1,0 => 1 0,400000000,800000000,1,0 => 1 0,1000000000,2000000000,1,0 => 1 0,4000000000,8000000000,1,0 => 1 0,10000000000,20000000000,1,0 => 1 0,40000000000,80000000000,1,0 => 1 0,100000000000,200000000000,1,0 => 1 0,400000000000,800000000000,1,0 => 1 0,1000000000000,2000000000000,1,0 => 1 0,4000000000000,8000000000000,1,0 => 1 0,10000000000000,20000000000000,1,0 => 1 0,40000000000000,80000000000000,1,0 => 1 0,100000000000000,200000000000000,1,0 => 1 0,400000000000000,800000000000000,1,0 => 1 0,1000000000000000,2000000000000000,1,0 => 1 0,4000000000000000,ffffffff00000000,1,0 => 1 0,1000000,ffffffff00000000,1,0 => 1 0,2000000,4000000,1,0 => 1 0,8000000,10000000,1,0 => 1 0,20000000,40000000,1,0 => 1 0,80000000,100000000,1,0 => 1 0,200000000,400000000,1,0 => 1 0,800000000,1000000000,1,0 => 1 0,2000000000,4000000000,1,0 => 1 0,8000000000,10000000000,1,0 => 1 0,20000000000,40000000000,1,0 => 1 0,80000000000,100000000000,1,0 => 1 0,200000000000,400000000000,1,0 => 1 0,800000000000,1000000000000,1,0 => 1 0,2000000000000,4000000000000,1,0 => 1 0,8000000000000,10000000000000,1,0 => 1 0,20000000000000,40000000000000,1,0 => 1 0,80000000000000,100000000000000,1,0 => 1 0,200000000000000,400000000000000,1,0 => 1 0,800000000000000,1000000000000000,1,0 => 1 0,2000000000000000,4000000000000000,1,0 => 1 0,ffffffff00000000,1,0,ffffffff00000000 => 1 nConstraints: 331913 PLONK nConstraints: 339443 plonkAdditions: 7530 Processing constraint... 0/339443 Processing constraint... 10000/339443 Processing constraint... 20000/339443 Processing constraint... 30000/339443 Processing constraint... 40000/339443 Processing constraint... 50000/339443 Processing constraint... 60000/339443 Processing constraint... 70000/339443 Processing constraint... 80000/339443 Processing constraint... 90000/339443 Processing constraint... 100000/339443 Processing constraint... 110000/339443 Processing constraint... 120000/339443 Processing constraint... 130000/339443 Processing constraint... 140000/339443 Processing constraint... 150000/339443 Processing constraint... 160000/339443 Processing constraint... 170000/339443 Processing constraint... 180000/339443 Processing constraint... 190000/339443 Processing constraint... 200000/339443 Processing constraint... 210000/339443 Processing constraint... 220000/339443 Processing constraint... 230000/339443 Processing constraint... 240000/339443 Processing constraint... 250000/339443 Processing constraint... 260000/339443 Processing constraint... 270000/339443 Processing constraint... 280000/339443 Processing constraint... 290000/339443 Processing constraint... 300000/339443 Processing constraint... 310000/339443 Processing constraint... 320000/339443 Processing constraint... 330000/339443 Processing custom gates... 0/13845 Processing custom gates... 10000/13845 Preparing S... 0/131072 Preparing S... 10000/131072 Preparing S... 20000/131072 Preparing S... 30000/131072 Preparing S... 40000/131072 Preparing S... 50000/131072 Preparing S... 60000/131072 Preparing S... 70000/131072 Preparing S... 80000/131072 Preparing S... 90000/131072 Preparing S... 100000/131072 Preparing S... 110000/131072 Preparing S... 120000/131072 Preparing S... 130000/131072 Connection S... 0/112596 Connection S... 10000/112596 Connection S... 20000/112596 Connection S... 30000/112596 Connection S... 40000/112596 Connection S... 50000/112596 Connection S... 60000/112596 Connection S... 70000/112596 Connection S... 80000/112596 Connection S... 90000/112596 Connection S... 100000/112596 Connection S... 110000/112596 files Generated Correctly
- 10.1)
-
11)debug运行
fibonacci C12 genStarkinfo
:运行main_genstarkinfo.js
,输入为fibonacci.c12.pil
和状态机内的fibonacci.c12.starkstruct.json
,输出为fibonacci.c12.starkinfo.json
。/usr/local/bin/node --max-old-space-size=32000 ./src/main_genstarkinfo.js -p tmp/fibonacci.c12.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.c12.starkstruct.json -i tmp/fibonacci.c12.starkinfo.json files Generated Correctly
-
12)debug运行
fibonacci C12 exec
:/usr/local/bin/node --max-old-space-size=32000 src/compressor12/main_compressor12_exec.js -i /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.proof.zkin.json -w /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verifier_js/fibonacci.verifier.wasm -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -e /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.exec -m /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.commit WebAssembly.instantiate(): Import #1 module="runtime" function="printErrorMessage" error: function import requires a callable LinkError: WebAssembly.instantiate(): Import #1 module="runtime" function="printErrorMessage" error: function import requires a callable at builder (/Users/lanyu/zyd/0xPolygonHermez/pil-stark/node_modules/circom_runtime/build/main.cjs:100:40) at async run (/Users/lanyu/zyd/0xPolygonHermez/pil-stark/src/compressor12/main_compressor12_exec.js:46:16) Process exited with code 1
解决方案为:在WebAssembly.instantiate()的runtime模块中添加printErrorMessage和writeBufferMessage伪函数实现:【不推荐,等待官方更新】
const instance = await WebAssembly.instantiate(wasmModule, { env: { "memory": memory }, runtime: { exceptionHandler: function(code) { let errStr; if (code == 1) { errStr = "Signal not found. "; } else if (code == 2) { errStr = "Too many signals set. "; } else if (code == 3) { errStr = "Signal already set. "; } else if (code == 4) { errStr = "Assert Failed. "; } else if (code == 5) { errStr = "Not enough memory. "; } else if (code == 6) { errStr = "Input signal array access exceeds the size"; } else { errStr = "Unknown error."; } console.log("ERROR: ", code, errStr); throw new Error(errStr); }, showSharedRWMemory: function() { const shared_rw_memory_size = instance.exports.getFieldNumLen32(); const arr = new Uint32Array(shared_rw_memory_size); for (let j=0; j<shared_rw_memory_size; j++) { arr[shared_rw_memory_size-1-j] = instance.exports.readSharedRWMemory(j); } console.log(ffjavascript.Scalar.fromArray(arr, 0x100000000)); }, error: function(code, pstr, a,b,c,d) { let errStr; if (code == 7) { errStr=p2str(pstr) + " " + wc.getFr(b).toString() + " != " + wc.getFr(c).toString() + " " +p2str(d); } else if (code == 9) { errStr=p2str(pstr) + " " + wc.getFr(b).toString() + " " +p2str(c); } else if ((code == 5)&&(options.sym)) { errStr=p2str(pstr)+ " " + options.sym.labelIdx2Name[c]; } else { errStr=p2str(pstr)+ " " + a + " " + b + " " + c + " " + d; } console.log("ERROR: ", code, errStr); throw new Error(errStr); }, printErrorMessage: function(a) { console.log(wc.getFr(a).toString()); }, writeBufferMessage: function(a) { console.log(wc.getFr(a).toString()); }, log: function(a) { console.log(wc.getFr(a).toString()); }, logGetSignal: function(signal, pVal) { if (options.logGetSignal) { options.logGetSignal(signal, wc.getFr(pVal) ); } }, logSetSignal: function(signal, pVal) { if (options.logSetSignal) { options.logSetSignal(signal, wc.getFr(pVal) ); } }, logStartComponent: function(cIdx) { if (options.logStartComponent) { options.logStartComponent(cIdx); } }, logFinishComponent: function(cIdx) { if (options.logFinishComponent) { options.logFinishComponent(cIdx); } } } });
然后有:运行
compressor12/main_compressor12_exec.js
,输出为:- 12.o.1)
fibonacci.c12.commit
:
输入有: - 12.i.1)
fibonacci.proof.zkin.json
:zk输入。 - 12.i.2)
fibonacci.verifier_js/fibonacci.verifier.wasm
:生成witness的wasm代码。 - 12.i.3)
fibonacci.c12.pil
: - 12.i.4)
fibonacci.c12.exec
:
/usr/local/bin/node --max-old-space-size=32000 src/compressor12/main_compressor12_exec.js -i /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.proof.zkin.json -w /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verifier_js/fibonacci.verifier.wasm -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -e /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.exec -m /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.commit files Generated Correctly
- 12.o.1)
-
13)debug运行
fibonacci C12 build consstree
:耗资源且生成慢。运行main_buildconsttree.js
,输入有fibonacci.c12.pil
和fibonacci.c12.const
,输出有fibonacci.c12.consttree
和fibonacci.c12.verkey.json
。/usr/local/bin/node --max-old-space-size=32000 src/main_buildconsttree.js -c /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.const -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.c12.starkstruct.json -t /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.consttree -v /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.verkey.json loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.const.. 0 of 2.5 Interpolating reverse.... Layer ifft0 start block 15 32768 start block 15 0 start block 15 65536 start block 15 98304 end block 15 65536 end block 15 0 end block 15 32768 end block 15 98304 Layer ifft15 start block 17 0 start block 17 32768 start block 17 65536 start block 17 98304 end block 17 0 end block 17 32768 end block 17 65536 end block 17 98304 Interpolating prepare.... linear interpolatePrepare start.... 0/10 linear interpolatePrepare start.... 1/10 linear interpolatePrepare start.... 2/10 linear interpolatePrepare start.... 3/10 linear interpolatePrepare end.... 3/10 linear interpolatePrepare start.... 7/10 linear interpolatePrepare end.... 2/10 linear interpolatePrepare start.... 8/10 linear interpolatePrepare end.... 1/10 linear interpolatePrepare start.... 9/10 linear interpolatePrepare end.... 0/10 linear interpolatePrepare start.... 10/10 linear interpolatePrepare end.... 10/10 linear interpolatePrepare end.... 8/10 linear interpolatePrepare end.... 7/10 linear interpolatePrepare end.... 9/10 linear interpolatePrepare start.... 5/10 linear interpolatePrepare start.... 6/10 linear interpolatePrepare start.... 4/10 linear interpolatePrepare end.... 5/10 linear interpolatePrepare end.... 6/10 linear interpolatePrepare end.... 4/10 Bit reverse.... Layer fft 0 start block 16 0 start block 16 65536 start block 16 131072 start block 16 196608 start block 16 262144 start block 16 327680 start block 16 393216 end block 16 0 start block 16 458752 end block 16 65536 end block 16 262144 end block 16 393216 end block 16 196608 end block 16 131072 end block 16 327680 end block 16 458752 Layer fft 16 start block 19 0 start block 19 65536 start block 19 131072 start block 19 196608 start block 19 262144 start block 19 327680 start block 19 393216 end block 19 0 start block 19 458752 end block 19 65536 end block 19 262144 end block 19 327680 end block 19 131072 end block 19 196608 end block 19 393216 end block 19 458752 interpolation terminated pool terminated Start merkelizing.. linear hash bn128 start.... 0/524288 linear hash bn128 start.... 65536/524288 linear hash bn128 start.... 131072/524288 linear hash bn128 start.... 327680/524288 linear hash bn128 start.... 196608/524288 linear hash bn128 start.... 262144/524288 linear hash bn128 start.... 393216/524288 linear hash bn128 end.... 327680/524288 linear hash bn128 start.... 458752/524288 linear hash bn128 end.... 262144/524288 linear hash bn128 end.... 0/524288 linear hash bn128 end.... 65536/524288 linear hash bn128 end.... 196608/524288 linear hash bn128 end.... 131072/524288 linear hash bn128 end.... 393216/524288 linear hash bn128 end.... 458752/524288 merkelizing bn128 hash start.... 0/32768 merkelizing bn128 hash start.... 4682/32768 merkelizing bn128 hash start.... 9364/32768 merkelizing bn128 hash start.... 14046/32768 merkelizing bn128 hash start.... 18728/32768 merkelizing bn128 hash start.... 23410/32768 merkelizing bn128 hash start.... 28092/32768 merkelizing bn128 hash end.... 9364/32768 merkelizing bn128 hash end.... 4682/32768 merkelizing bn128 hash end.... 14046/32768 merkelizing bn128 hash end.... 0/32768 merkelizing bn128 hash end.... 28092/32768 merkelizing bn128 hash end.... 23410/32768 merkelizing bn128 hash end.... 18728/32768 merkelizing bn128 hash start.... 0/2048 merkelizing bn128 hash end.... 0/2048 merkelizing bn128 hash start.... 0/128 merkelizing bn128 hash end.... 0/128 merkelizing bn128 hash start.... 0/8 merkelizing bn128 hash end.... 0/8 merkelizing bn128 hash start.... 0/1 merkelizing bn128 hash end.... 0/1 writting tree.. 0 / 10485760 writting tree.. 0 / 2236996 files Generated Correctly
-
14)debug运行
fibonacci C12 prove
:耗资源且生成慢。运行main_prover.js
,输入有:- 14.i.1)
fibonacci.c12.commit
: - 14.i.2)
fibonacci.c12.const
: - 14.i.3)
fibonacci.c12.consttree
: - 14.i.4)
fibonacci.c12.pil
: - 14.i.5)
sm_fibonacci/fibonacci.c12.starkstruct.json
:
输出有: - 14.o.1)
fibonacci.c12.proof.json
:STARK证明。 - 14.o.2)
fibonacci.c12.proof.zkin.json
:隐私输入。 - 14.o.3)
fibonacci.c12.public.json
:公开输入。
/usr/local/bin/node --max-old-space-size=32000 src/main_prover.js -m /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.commit -c /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.const -t /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.consttree -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.c12.starkstruct.json -o /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.proof.json -z /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.proof.zkin.json -b /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.public.json --proverAddr=0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.const.. 0 of 2.5 loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.commit.. 0 of 1.5 Merkelizing 1.... Interpolating reverse.... Layer ifft0 start block 14 0 start block 14 32768 start block 14 16384 start block 14 98304 start block 14 81920 start block 14 49152 start block 14 65536 end block 14 98304 end block 14 49152 start block 14 114688 end block 14 81920 end block 14 16384 end block 14 65536 end block 14 0 end block 14 32768 end block 14 114688 Layer ifft14 start block 17 0 start block 17 16384 start block 17 32768 start block 17 49152 start block 17 65536 start block 17 81920 end block 17 16384 end block 17 49152 end block 17 65536 start block 17 114688 start block 17 98304 end block 17 81920 end block 17 0 end block 17 32768 end block 17 98304 end block 17 114688 Interpolating prepare.... linear interpolatePrepare start.... 0/6 linear interpolatePrepare start.... 1/6 linear interpolatePrepare start.... 2/6 linear interpolatePrepare start.... 3/6 linear interpolatePrepare start.... 4/6 linear interpolatePrepare start.... 5/6 linear interpolatePrepare end.... 3/6 linear interpolatePrepare end.... 4/6 linear interpolatePrepare end.... 5/6 linear interpolatePrepare start.... 6/6 linear interpolatePrepare end.... 0/6 linear interpolatePrepare end.... 2/6 linear interpolatePrepare end.... 6/6 linear interpolatePrepare end.... 1/6 Bit reverse.... Layer fft 0 start block 16 0 start block 16 65536 start block 16 131072 start block 16 196608 start block 16 262144 start block 16 327680 start block 16 393216 end block 16 0 end block 16 65536 start block 16 458752 end block 16 196608 end block 16 262144 end block 16 393216 end block 16 131072 end block 16 327680 end block 16 458752 Layer fft 16 start block 19 0 start block 19 65536 start block 19 131072 start block 19 196608 start block 19 262144 start block 19 327680 start block 19 393216 end block 19 0 start block 19 458752 end block 19 65536 end block 19 196608 end block 19 131072 end block 19 262144 end block 19 393216 end block 19 327680 end block 19 458752 interpolation terminated pool terminated linear hash bn128 start.... 0/524288 linear hash bn128 start.... 131072/524288 linear hash bn128 start.... 65536/524288 linear hash bn128 start.... 196608/524288 linear hash bn128 start.... 393216/524288 linear hash bn128 start.... 327680/524288 linear hash bn128 start.... 262144/524288 linear hash bn128 end.... 65536/524288 linear hash bn128 start.... 458752/524288 linear hash bn128 end.... 131072/524288 linear hash bn128 end.... 393216/524288 linear hash bn128 end.... 262144/524288 linear hash bn128 end.... 196608/524288 linear hash bn128 end.... 327680/524288 linear hash bn128 end.... 0/524288 linear hash bn128 end.... 458752/524288 merkelizing bn128 hash start.... 0/32768 merkelizing bn128 hash start.... 4682/32768 merkelizing bn128 hash start.... 9364/32768 merkelizing bn128 hash start.... 14046/32768 merkelizing bn128 hash start.... 18728/32768 merkelizing bn128 hash start.... 23410/32768 merkelizing bn128 hash start.... 28092/32768 merkelizing bn128 hash end.... 28092/32768 merkelizing bn128 hash end.... 18728/32768 merkelizing bn128 hash end.... 4682/32768 merkelizing bn128 hash end.... 23410/32768 merkelizing bn128 hash end.... 0/32768 merkelizing bn128 hash end.... 9364/32768 merkelizing bn128 hash end.... 14046/32768 merkelizing bn128 hash start.... 0/2048 merkelizing bn128 hash end.... 0/2048 merkelizing bn128 hash start.... 0/128 merkelizing bn128 hash end.... 0/128 merkelizing bn128 hash start.... 0/8 merkelizing bn128 hash end.... 0/8 merkelizing bn128 hash start.... 0/1 merkelizing bn128 hash end.... 0/1 start exec step2prev... 74900/131072 start exec step2prev... 0/131072 start exec step2prev... 18725/131072 end exec step2prev... 18725/131072 end exec step2prev... 0/131072 end exec step2prev... 74900/131072 start exec step2prev... 56175/131072 start exec step2prev... 37450/131072 end exec step2prev... 37450/131072 start exec step2prev... 112350/131072 end exec step2prev... 112350/131072 start exec step2prev... 93625/131072 end exec step2prev... 93625/131072 end exec step2prev... 56175/131072 Merkelizing 2.... Interpolating reverse.... Layer ifft0 start block 12 4096 end block 12 4096 start block 12 28672 end block 12 28672 start block 12 32768 end block 12 32768 start block 12 36864 end block 12 36864 start block 12 40960 end block 12 40960 start block 12 12288 end block 12 12288 start block 12 49152 end block 12 49152 start block 12 53248 end block 12 53248 start block 12 57344 end block 12 57344 start block 12 61440 end block 12 61440 start block 12 65536 end block 12 65536 start block 12 69632 end block 12 69632 start block 12 73728 end block 12 73728 start block 12 77824 end block 12 77824 start block 12 81920 end block 12 81920 start block 12 86016 end block 12 86016 start block 12 94208 end block 12 94208 start block 12 102400 end block 12 102400 start block 12 110592 end block 12 110592 start block 12 118784 end block 12 118784 start block 12 126976 start block 12 45056 end block 12 45056 start block 12 90112 end block 12 90112 start block 12 98304 end block 12 98304 start block 12 106496 end block 12 106496 start block 12 114688 end block 12 114688 start block 12 122880 end block 12 122880 end block 12 126976 start block 12 8192 end block 12 8192 start block 17 8192 start block 12 20480 end block 12 20480 start block 17 20480 start block 12 0 end block 12 0 start block 17 0 Layer ifft12 start block 17 4096 end block 17 4096 start block 17 28672 end block 17 28672 start block 17 32768 end block 17 32768 start block 17 45056 end block 17 45056 start block 17 57344 end block 17 57344 start block 17 65536 start block 17 12288 end block 17 12288 start block 17 36864 end block 17 36864 start block 17 49152 end block 17 49152 start block 17 61440 end block 17 61440 start block 12 16384 end block 12 16384 start block 17 16384 start block 12 24576 end block 12 24576 start block 17 24576 end block 17 8192 start block 17 40960 end block 17 40960 start block 17 53248 end block 17 53248 start block 17 73728 end block 17 73728 start block 17 106496 start block 17 69632 end block 17 69632 start block 17 81920 end block 17 81920 start block 17 94208 end block 17 94208 end block 17 65536 start block 17 77824 end block 17 77824 start block 17 90112 end block 17 90112 start block 17 98304 end block 17 98304 start block 17 114688 end block 17 114688 start block 17 126976 end block 17 126976 end block 17 0 start block 17 86016 end block 17 86016 start block 17 118784 end block 17 118784 linear interpolatePrepare start.... 0/0 linear interpolatePrepare end.... 0/0 end block 17 20480 start block 17 102400 end block 17 102400 start block 17 122880 end block 17 122880 end block 17 24576 start block 17 110592 end block 17 110592 end block 17 106496 end block 17 16384 Interpolating prepare.... Bit reverse.... Layer fft 0 start block 12 0 start block 12 4096 start block 12 16384 start block 12 8192 end block 12 8192 start block 12 28672 end block 12 28672 start block 12 49152 end block 12 49152 start block 12 65536 start block 12 12288 end block 12 12288 start block 12 32768 end block 12 32768 start block 12 53248 end block 12 53248 start block 12 69632 start block 12 24576 end block 12 24576 start block 12 40960 end block 12 40960 start block 12 57344 end block 12 57344 start block 12 73728 end block 12 73728 start block 12 90112 end block 12 90112 start block 12 110592 end block 12 110592 end block 12 16384 start block 12 36864 end block 12 36864 start block 12 45056 end block 12 45056 start block 12 61440 end block 12 61440 start block 12 77824 end block 12 77824 start block 12 94208 end block 12 94208 start block 12 106496 end block 12 106496 start block 12 20480 end block 12 69632 start block 12 81920 end block 12 81920 start block 12 102400 end block 12 102400 start block 12 126976 end block 12 126976 start block 12 147456 end block 12 147456 start block 12 155648 end block 12 65536 start block 12 86016 end block 12 86016 start block 12 98304 end block 12 98304 start block 12 122880 end block 12 122880 start block 12 135168 end block 12 135168 start block 12 159744 end block 12 0 start block 12 114688 end block 12 114688 start block 12 143360 end block 12 143360 start block 12 163840 end block 12 163840 start block 12 172032 end block 12 172032 start block 12 180224 end block 12 180224 start block 12 212992 start block 12 131072 end block 12 131072 start block 12 139264 end block 12 139264 start block 12 151552 end block 12 151552 start block 12 167936 end block 12 167936 start block 12 196608 end block 12 196608 start block 12 204800 end block 12 204800 start block 12 221184 end block 12 159744 start block 12 176128 end block 12 176128 start block 12 188416 end block 12 188416 start block 12 208896 end block 12 208896 start block 12 225280 end block 12 225280 start block 12 241664 end block 12 241664 start block 12 258048 end block 12 258048 start block 12 274432 end block 12 155648 start block 12 192512 end block 12 192512 start block 12 217088 end block 12 217088 start block 12 229376 end block 12 229376 start block 12 245760 end block 12 245760 start block 12 266240 start block 12 118784 end block 12 118784 end block 12 20480 end block 12 212992 start block 12 233472 end block 12 233472 start block 12 253952 end block 12 253952 start block 12 282624 end block 12 282624 start block 12 299008 end block 12 299008 end block 12 221184 start block 12 237568 end block 12 237568 start block 12 249856 end block 12 249856 start block 12 262144 end block 12 262144 start block 12 270336 end block 12 270336 start block 12 286720 end block 12 286720 start block 12 290816 end block 12 290816 start block 12 307200 end block 12 307200 start block 12 311296 end block 12 266240 start block 12 278528 end block 12 278528 start block 12 294912 end block 12 294912 start block 12 319488 end block 12 319488 start block 12 331776 end block 12 331776 start block 12 352256 end block 12 352256 start block 12 364544 end block 12 274432 start block 12 303104 end block 12 303104 start block 12 327680 end block 12 327680 end block 12 311296 start block 12 323584 end block 12 323584 start block 12 335872 end block 12 335872 start block 12 339968 end block 12 339968 start block 12 348160 end block 12 348160 start block 12 368640 end block 12 368640 start block 12 389120 end block 12 389120 start block 12 405504 end block 12 405504 start block 12 315392 end block 12 315392 start block 12 344064 end block 12 344064 start block 12 376832 end block 12 376832 start block 12 393216 end block 12 393216 start block 12 409600 end block 12 409600 start block 12 184320 end block 12 184320 start block 12 200704 end block 12 200704 end block 12 364544 start block 12 385024 end block 12 385024 start block 12 401408 end block 12 401408 start block 12 425984 end block 12 425984 start block 12 446464 end block 12 446464 start block 12 466944 start block 12 360448 end block 12 360448 start block 12 380928 end block 12 380928 start block 12 397312 end block 12 397312 start block 12 421888 end block 12 421888 start block 12 438272 start block 12 356352 end block 12 356352 start block 12 372736 end block 12 372736 start block 12 450560 end block 12 4096 start block 12 417792 end block 12 417792 start block 19 4096 end block 19 4096 start block 19 32768 start block 12 430080 end block 12 430080 start block 12 442368 end block 12 442368 start block 12 458752 end block 12 458752 start block 12 475136 end block 12 475136 start block 12 491520 end block 12 491520 start block 12 499712 end block 12 499712 start block 12 516096 end block 12 516096 start block 19 16384 start block 12 434176 end block 12 434176 start block 12 454656 end block 12 454656 start block 12 471040 end block 12 471040 start block 12 487424 end block 12 487424 start block 12 512000 end block 12 512000 start block 19 24576 end block 12 438272 start block 12 462848 end block 12 462848 start block 12 479232 end block 12 479232 start block 12 495616 end block 12 495616 start block 12 507904 end block 12 507904 start block 19 8192 end block 19 8192 start block 19 40960 end block 12 466944 start block 12 483328 end block 12 483328 start block 12 503808 end block 12 503808 start block 12 520192 end block 12 520192 start block 19 12288 start block 12 413696 end block 12 413696 start block 19 0 end block 19 0 start block 19 28672 end block 19 28672 start block 19 53248 end block 19 53248 start block 19 69632 end block 19 69632 start block 19 81920 end block 12 450560 start block 19 20480 end block 19 20480 start block 19 36864 end block 19 36864 start block 19 57344 end block 19 57344 start block 19 73728 end block 19 73728 start block 19 86016 Layer fft 12 end block 19 24576 start block 19 45056 end block 19 45056 start block 19 61440 end block 19 61440 start block 19 90112 end block 19 32768 start block 19 49152 end block 19 49152 start block 19 65536 end block 19 65536 start block 19 77824 end block 19 77824 start block 19 94208 end block 19 81920 start block 19 98304 end block 19 86016 end block 19 16384 start block 19 106496 end block 19 106496 start block 19 118784 end block 19 12288 start block 19 110592 end block 19 110592 start block 19 122880 end block 19 40960 start block 19 114688 end block 19 114688 start block 19 126976 start block 19 102400 end block 19 102400 start block 19 167936 end block 19 118784 start block 19 131072 end block 19 131072 start block 19 143360 end block 19 143360 start block 19 155648 end block 19 90112 start block 19 135168 end block 19 135168 start block 19 147456 end block 19 147456 start block 19 159744 end block 19 122880 start block 19 139264 end block 19 139264 start block 19 151552 end block 19 126976 start block 19 163840 end block 19 94208 start block 19 172032 end block 19 98304 start block 19 176128 end block 19 167936 start block 19 180224 end block 19 172032 start block 19 184320 end block 19 176128 start block 19 188416 end block 19 151552 start block 19 192512 end block 19 184320 end block 19 180224 start block 19 196608 start block 19 200704 end block 19 163840 start block 19 204800 end block 19 188416 start block 19 208896 end block 19 196608 start block 19 212992 end block 19 200704 start block 19 217088 end block 19 217088 start block 19 229376 end block 19 208896 start block 19 221184 end block 19 212992 start block 19 225280 end block 19 221184 start block 19 233472 end block 19 155648 start block 19 237568 end block 19 192512 start block 19 241664 end block 19 159744 start block 19 245760 end block 19 204800 start block 19 249856 end block 19 245760 start block 19 253952 end block 19 237568 start block 19 258048 end block 19 258048 start block 19 274432 end block 19 241664 start block 19 262144 end block 19 262144 start block 19 278528 end block 19 249856 start block 19 266240 end block 19 253952 start block 19 270336 end block 19 270336 start block 19 282624 end block 19 274432 start block 19 286720 end block 19 278528 start block 19 290816 end block 19 282624 start block 19 294912 end block 19 286720 start block 19 299008 end block 19 266240 start block 19 307200 end block 19 307200 end block 19 225280 start block 19 303104 end block 19 303104 start block 19 319488 end block 19 319488 start block 19 339968 end block 19 229376 start block 19 311296 end block 19 311296 start block 19 335872 end block 19 233472 start block 19 315392 end block 19 315392 start block 19 323584 end block 19 290816 start block 19 327680 end block 19 335872 start block 19 344064 end block 19 344064 start block 19 356352 end block 19 323584 start block 19 348160 end block 19 348160 start block 19 360448 start block 19 331776 end block 19 339968 start block 19 352256 end block 19 352256 start block 19 364544 end block 19 294912 start block 19 368640 end block 19 368640 start block 19 385024 end block 19 299008 start block 19 372736 end block 19 327680 start block 19 376832 end block 19 331776 start block 19 380928 end block 19 360448 start block 19 389120 end block 19 372736 start block 19 393216 end block 19 393216 start block 19 413696 end block 19 413696 start block 19 430080 end block 19 385024 start block 19 397312 end block 19 397312 start block 19 417792 end block 19 417792 start block 19 434176 end block 19 356352 start block 19 401408 end block 19 401408 start block 19 425984 end block 19 425984 start block 19 438272 end block 19 380928 start block 19 405504 end block 19 405504 start block 19 450560 end block 19 376832 start block 19 409600 end block 19 409600 start block 19 421888 end block 19 421888 end block 19 364544 start block 19 446464 start block 19 442368 end block 19 389120 start block 19 454656 end block 19 446464 start block 19 458752 end block 19 430080 end block 19 454656 start block 19 466944 start block 19 462848 end block 19 438272 start block 19 471040 end block 19 450560 end block 19 458752 start block 19 479232 end block 19 466944 start block 19 483328 end block 19 483328 start block 19 495616 end block 19 495616 start block 19 507904 end block 19 479232 start block 19 487424 end block 19 487424 start block 19 503808 start block 19 475136 end block 19 475136 start block 19 516096 end block 19 442368 start block 19 491520 end block 19 491520 end block 19 471040 start block 19 499712 end block 19 499712 end block 19 434176 start block 19 512000 end block 19 512000 end block 19 462848 start block 19 520192 end block 19 520192 end block 19 516096 end block 19 503808 end block 19 507904 interpolation terminated pool terminated linear hash bn128 start.... 131072/524288 linear hash bn128 end.... 131072/524288 linear hash bn128 start.... 65536/524288 linear hash bn128 end.... 65536/524288 linear hash bn128 start.... 458752/524288 linear hash bn128 end.... 458752/524288 linear hash bn128 start.... 262144/524288 linear hash bn128 end.... 262144/524288 linear hash bn128 start.... 0/524288 linear hash bn128 start.... 196608/524288 linear hash bn128 end.... 196608/524288 linear hash bn128 end.... 0/524288 linear hash bn128 start.... 327680/524288 linear hash bn128 end.... 327680/524288 linear hash bn128 start.... 393216/524288 linear hash bn128 end.... 393216/524288 merkelizing bn128 hash start.... 18728/32768 merkelizing bn128 hash start.... 0/32768 merkelizing bn128 hash start.... 9364/32768 merkelizing bn128 hash start.... 4682/32768 merkelizing bn128 hash start.... 14046/32768 merkelizing bn128 hash start.... 23410/32768 merkelizing bn128 hash start.... 28092/32768 merkelizing bn128 hash end.... 9364/32768 merkelizing bn128 hash end.... 4682/32768 merkelizing bn128 hash end.... 23410/32768 merkelizing bn128 hash end.... 0/32768 merkelizing bn128 hash end.... 28092/32768 merkelizing bn128 hash end.... 14046/32768 merkelizing bn128 hash end.... 18728/32768 merkelizing bn128 hash start.... 0/2048 merkelizing bn128 hash end.... 0/2048 merkelizing bn128 hash start.... 0/128 merkelizing bn128 hash end.... 0/128 merkelizing bn128 hash start.... 0/8 merkelizing bn128 hash end.... 0/8 merkelizing bn128 hash start.... 0/1 merkelizing bn128 hash end.... 0/1 start exec step3prev... 0/131072 start exec step3prev... 18725/131072 start exec step3prev... 37450/131072 start exec step3prev... 56175/131072 start exec step3prev... 74900/131072 start exec step3prev... 93625/131072 start exec step3prev... 112350/131072 end exec step3prev... 0/131072 end exec step3prev... 18725/131072 end exec step3prev... 56175/131072 end exec step3prev... 37450/131072 end exec step3prev... 74900/131072 end exec step3prev... 93625/131072 end exec step3prev... 112350/131072 Calculating z for connection 0 Merkelizing 3.... Interpolating reverse.... Layer ifft0 start block 12 4096 start block 12 0 start block 12 20480 end block 12 0 start block 12 28672 end block 12 4096 start block 12 32768 end block 12 32768 start block 12 40960 end block 12 28672 start block 12 36864 start block 12 24576 end block 12 20480 start block 12 45056 end block 12 45056 start block 12 49152 start block 12 8192 end block 12 8192 start block 12 77824 end block 12 77824 start block 12 106496 start block 12 12288 end block 12 12288 start block 12 69632 end block 12 69632 start block 12 98304 end block 12 98304 end block 12 36864 start block 12 53248 end block 12 53248 start block 12 61440 end block 12 61440 start block 12 90112 end block 12 90112 start block 12 102400 end block 12 40960 start block 12 57344 end block 12 57344 start block 12 65536 end block 12 65536 start block 12 86016 end block 12 24576 start block 12 94208 end block 12 94208 end block 12 49152 start block 12 73728 end block 12 73728 start block 12 81920 end block 12 81920 start block 12 16384 end block 12 16384 start block 12 110592 end block 12 110592 start block 12 122880 end block 12 122880 end block 12 102400 start block 12 114688 end block 12 114688 end block 12 86016 start block 12 118784 end block 12 118784 end block 12 106496 start block 12 126976 end block 12 126976 Layer ifft12 start block 17 0 end block 17 0 start block 17 32768 start block 17 4096 end block 17 4096 start block 17 36864 start block 17 8192 end block 17 8192 start block 17 28672 start block 17 16384 end block 17 16384 start block 17 12288 end block 17 12288 start block 17 24576 end block 17 24576 start block 17 20480 end block 17 20480 start block 17 49152 start block 17 40960 end block 17 36864 start block 17 57344 start block 17 53248 end block 17 28672 start block 17 45056 end block 17 49152 start block 17 65536 end block 17 53248 start block 17 69632 start block 17 61440 end block 17 65536 start block 17 73728 end block 17 40960 start block 17 77824 end block 17 57344 start block 17 81920 end block 17 81920 start block 17 98304 end block 17 32768 start block 17 86016 end block 17 86016 start block 17 114688 end block 17 73728 start block 17 90112 end block 17 90112 start block 17 102400 end block 17 77824 start block 17 94208 end block 17 45056 start block 17 106496 end block 17 61440 start block 17 110592 end block 17 69632 start block 17 118784 end block 17 106496 start block 17 122880 end block 17 114688 start block 17 126976 end block 17 110592 end block 17 94208 end block 17 98304 end block 17 118784 end block 17 126976 end block 17 122880 end block 17 102400 Interpolating prepare.... linear interpolatePrepare start.... 0/6 linear interpolatePrepare start.... 1/6 linear interpolatePrepare end.... 1/6 linear interpolatePrepare start.... 2/6 linear interpolatePrepare end.... 2/6 linear interpolatePrepare start.... 3/6 linear interpolatePrepare start.... 4/6 linear interpolatePrepare start.... 6/6 linear interpolatePrepare end.... 3/6 linear interpolatePrepare start.... 5/6 linear interpolatePrepare end.... 4/6 linear interpolatePrepare end.... 6/6 linear interpolatePrepare end.... 5/6 linear interpolatePrepare end.... 0/6 Bit reverse.... Layer fft 0 start block 14 0 start block 14 16384 start block 14 32768 start block 14 49152 start block 14 65536 start block 14 81920 start block 14 98304 end block 14 32768 start block 14 114688 end block 14 16384 start block 14 131072 end block 14 49152 start block 14 147456 end block 14 0 end block 14 81920 start block 14 180224 start block 14 163840 end block 14 65536 start block 14 196608 end block 14 98304 start block 14 212992 end block 14 147456 start block 14 229376 end block 14 131072 end block 14 114688 start block 14 262144 end block 14 163840 start block 14 245760 start block 14 278528 end block 14 180224 start block 14 294912 end block 14 196608 start block 14 311296 end block 14 212992 start block 14 327680 end block 14 262144 start block 14 344064 end block 14 229376 start block 14 360448 end block 14 245760 start block 14 376832 end block 14 311296 start block 14 393216 end block 14 327680 start block 14 409600 end block 14 278528 start block 14 425984 end block 14 294912 start block 14 442368 end block 14 344064 start block 14 458752 end block 14 360448 start block 14 475136 end block 14 376832 start block 14 491520 end block 14 393216 start block 14 507904 end block 14 425984 end block 14 409600 end block 14 442368 end block 14 458752 end block 14 491520 end block 14 475136 end block 14 507904 Layer fft 14 start block 19 0 start block 19 16384 start block 19 32768 start block 19 49152 start block 19 65536 start block 19 81920 start block 19 98304 end block 19 0 end block 19 81920 end block 19 49152 end block 19 16384 end block 19 32768 start block 19 180224 start block 19 114688 start block 19 131072 start block 19 147456 start block 19 163840 end block 19 65536 start block 19 196608 end block 19 98304 start block 19 212992 end block 19 147456 start block 19 229376 end block 19 163840 start block 19 245760 end block 19 131072 start block 19 262144 end block 19 180224 start block 19 278528 end block 19 114688 start block 19 294912 end block 19 196608 start block 19 311296 end block 19 212992 start block 19 327680 end block 19 262144 start block 19 344064 end block 19 245760 start block 19 360448 end block 19 229376 start block 19 376832 end block 19 278528 start block 19 393216 end block 19 294912 start block 19 409600 end block 19 311296 start block 19 425984 end block 19 327680 end block 19 344064 start block 19 442368 end block 19 376832 end block 19 409600 start block 19 491520 start block 19 458752 start block 19 475136 end block 19 393216 end block 19 360448 start block 19 507904 end block 19 425984 end block 19 442368 end block 19 458752 end block 19 507904 end block 19 475136 end block 19 491520 interpolation terminated pool terminated linear hash bn128 start.... 327680/524288 linear hash bn128 start.... 131072/524288 linear hash bn128 start.... 196608/524288 linear hash bn128 start.... 0/524288 linear hash bn128 start.... 262144/524288 linear hash bn128 start.... 65536/524288 linear hash bn128 start.... 393216/524288 linear hash bn128 end.... 393216/524288 linear hash bn128 end.... 327680/524288 linear hash bn128 start.... 458752/524288 linear hash bn128 end.... 262144/524288 linear hash bn128 end.... 196608/524288 linear hash bn128 end.... 0/524288 linear hash bn128 end.... 131072/524288 linear hash bn128 end.... 65536/524288 linear hash bn128 end.... 458752/524288 merkelizing bn128 hash start.... 0/32768 merkelizing bn128 hash start.... 9364/32768 merkelizing bn128 hash start.... 14046/32768 merkelizing bn128 hash start.... 4682/32768 merkelizing bn128 hash start.... 18728/32768 merkelizing bn128 hash start.... 28092/32768 merkelizing bn128 hash start.... 23410/32768 merkelizing bn128 hash end.... 23410/32768 merkelizing bn128 hash end.... 4682/32768 merkelizing bn128 hash end.... 18728/32768 merkelizing bn128 hash end.... 0/32768 merkelizing bn128 hash end.... 14046/32768 merkelizing bn128 hash end.... 9364/32768 merkelizing bn128 hash end.... 28092/32768 merkelizing bn128 hash start.... 0/2048 merkelizing bn128 hash end.... 0/2048 merkelizing bn128 hash start.... 0/128 merkelizing bn128 hash end.... 0/128 merkelizing bn128 hash start.... 0/8 merkelizing bn128 hash end.... 0/8 merkelizing bn128 hash start.... 0/1 merkelizing bn128 hash end.... 0/1 start exec step4... 0/131072 start exec step4... 18725/131072 start exec step4... 37450/131072 start exec step4... 56175/131072 start exec step4... 74900/131072 start exec step4... 93625/131072 start exec step4... 112350/131072 end exec step4... 56175/131072 end exec step4... 112350/131072 end exec step4... 18725/131072 end exec step4... 37450/131072 end exec step4... 0/131072 end exec step4... 74900/131072 end exec step4... 93625/131072 Interpolating reverse.... Layer ifft0 start block 16 0 start block 16 65536 end block 16 0 end block 16 65536 Layer ifft16 start block 17 0 start block 17 65536 end block 17 0 end block 17 65536 Interpolating prepare.... linear interpolatePrepare start.... 0/39 linear interpolatePrepare start.... 1/39 linear interpolatePrepare end.... 1/39 linear interpolatePrepare end.... 0/39 linear interpolatePrepare start.... 7/39 linear interpolatePrepare start.... 8/39 linear interpolatePrepare end.... 7/39 linear interpolatePrepare start.... 10/39 linear interpolatePrepare end.... 10/39 linear interpolatePrepare start.... 12/39 linear interpolatePrepare end.... 8/39 linear interpolatePrepare start.... 9/39 linear interpolatePrepare end.... 9/39 linear interpolatePrepare start.... 11/39 linear interpolatePrepare end.... 11/39 linear interpolatePrepare end.... 12/39 linear interpolatePrepare start.... 13/39 linear interpolatePrepare start.... 14/39 linear interpolatePrepare end.... 14/39 linear interpolatePrepare start.... 15/39 linear interpolatePrepare end.... 13/39 linear interpolatePrepare start.... 16/39 linear interpolatePrepare end.... 15/39 linear interpolatePrepare start.... 17/39 linear interpolatePrepare end.... 16/39 linear interpolatePrepare start.... 18/39 linear interpolatePrepare end.... 18/39 linear interpolatePrepare end.... 17/39 linear interpolatePrepare start.... 20/39 linear interpolatePrepare start.... 2/39 linear interpolatePrepare start.... 4/39 linear interpolatePrepare start.... 5/39 linear interpolatePrepare start.... 19/39 linear interpolatePrepare end.... 19/39 linear interpolatePrepare start.... 22/39 linear interpolatePrepare end.... 22/39 linear interpolatePrepare start.... 25/39 linear interpolatePrepare start.... 6/39 linear interpolatePrepare end.... 6/39 linear interpolatePrepare start.... 24/39 linear interpolatePrepare end.... 20/39 linear interpolatePrepare start.... 21/39 linear interpolatePrepare start.... 3/39 linear interpolatePrepare end.... 2/39 linear interpolatePrepare end.... 4/39 linear interpolatePrepare end.... 5/39 linear interpolatePrepare end.... 21/39 linear interpolatePrepare start.... 23/39 linear interpolatePrepare start.... 27/39 linear interpolatePrepare start.... 26/39 linear interpolatePrepare end.... 26/39 linear interpolatePrepare end.... 3/39 linear interpolatePrepare start.... 28/39 linear interpolatePrepare start.... 29/39 linear interpolatePrepare end.... 29/39 linear interpolatePrepare end.... 23/39 linear interpolatePrepare start.... 31/39 linear interpolatePrepare end.... 25/39 linear interpolatePrepare start.... 35/39 linear interpolatePrepare end.... 24/39 linear interpolatePrepare start.... 30/39 linear interpolatePrepare end.... 28/39 linear interpolatePrepare start.... 33/39 linear interpolatePrepare start.... 32/39 linear interpolatePrepare start.... 34/39 linear interpolatePrepare end.... 34/39 linear interpolatePrepare end.... 27/39 linear interpolatePrepare start.... 38/39 linear interpolatePrepare end.... 38/39 linear interpolatePrepare end.... 32/39 linear interpolatePrepare start.... 37/39 linear interpolatePrepare end.... 37/39 linear interpolatePrepare end.... 35/39 linear interpolatePrepare start.... 36/39 linear interpolatePrepare end.... 36/39 linear interpolatePrepare end.... 30/39 linear interpolatePrepare start.... 39/39 linear interpolatePrepare end.... 39/39 linear interpolatePrepare end.... 31/39 linear interpolatePrepare end.... 33/39 Bit reverse.... Layer fft 0 start block 16 0 start block 16 65536 start block 16 131072 start block 16 196608 start block 16 262144 start block 16 327680 start block 16 393216 end block 16 196608 start block 16 458752 end block 16 327680 end block 16 262144 end block 16 393216 end block 16 131072 end block 16 0 end block 16 65536 end block 16 458752 Layer fft 16 start block 19 0 start block 19 65536 start block 19 131072 start block 19 196608 start block 19 262144 start block 19 327680 start block 19 393216 end block 19 196608 start block 19 458752 end block 19 131072 end block 19 0 end block 19 327680 end block 19 65536 end block 19 262144 end block 19 393216 end block 19 458752 interpolation terminated pool terminated start exec step42ns... 0/524288 start exec step42ns... 74899/524288 start exec step42ns... 149798/524288 start exec step42ns... 224697/524288 start exec step42ns... 299596/524288 start exec step42ns... 374495/524288 start exec step42ns... 449394/524288 end exec step42ns... 0/524288 end exec step42ns... 74899/524288 end exec step42ns... 149798/524288 end exec step42ns... 299596/524288 end exec step42ns... 224697/524288 end exec step42ns... 374495/524288 end exec step42ns... 449394/524288 Merkelizing 4.... linear hash bn128 start.... 65536/524288 linear hash bn128 start.... 0/524288 linear hash bn128 start.... 131072/524288 linear hash bn128 start.... 196608/524288 linear hash bn128 start.... 262144/524288 linear hash bn128 start.... 327680/524288 linear hash bn128 start.... 393216/524288 linear hash bn128 end.... 196608/524288 linear hash bn128 start.... 458752/524288 linear hash bn128 end.... 0/524288 linear hash bn128 end.... 262144/524288 linear hash bn128 end.... 393216/524288 linear hash bn128 end.... 131072/524288 linear hash bn128 end.... 327680/524288 linear hash bn128 end.... 65536/524288 linear hash bn128 end.... 458752/524288 merkelizing bn128 hash start.... 0/32768 merkelizing bn128 hash start.... 4682/32768 merkelizing bn128 hash start.... 9364/32768 merkelizing bn128 hash start.... 14046/32768 merkelizing bn128 hash start.... 18728/32768 merkelizing bn128 hash start.... 23410/32768 merkelizing bn128 hash start.... 28092/32768 merkelizing bn128 hash end.... 4682/32768 merkelizing bn128 hash end.... 28092/32768 merkelizing bn128 hash end.... 9364/32768 merkelizing bn128 hash end.... 23410/32768 merkelizing bn128 hash end.... 0/32768 merkelizing bn128 hash end.... 18728/32768 merkelizing bn128 hash end.... 14046/32768 merkelizing bn128 hash start.... 0/2048 merkelizing bn128 hash end.... 0/2048 merkelizing bn128 hash start.... 0/128 merkelizing bn128 hash end.... 0/128 merkelizing bn128 hash start.... 0/8 merkelizing bn128 hash end.... 0/8 merkelizing bn128 hash start.... 0/1 merkelizing bn128 hash end.... 0/1 start exec step52ns... 0/524288 start exec step52ns... 74899/524288 start exec step52ns... 149798/524288 start exec step52ns... 224697/524288 start exec step52ns... 299596/524288 start exec step52ns... 374495/524288 start exec step52ns... 449394/524288 end exec step52ns... 74899/524288 end exec step52ns... 0/524288 end exec step52ns... 224697/524288 end exec step52ns... 149798/524288 end exec step52ns... 374495/524288 end exec step52ns... 299596/524288 end exec step52ns... 449394/524288 linear hash bn128 start.... 18728/32768 linear hash bn128 start.... 14046/32768 linear hash bn128 start.... 4682/32768 linear hash bn128 start.... 0/32768 linear hash bn128 start.... 23410/32768 linear hash bn128 start.... 28092/32768 linear hash bn128 start.... 9364/32768 linear hash bn128 end.... 0/32768 linear hash bn128 end.... 14046/32768 linear hash bn128 end.... 18728/32768 linear hash bn128 end.... 4682/32768 linear hash bn128 end.... 9364/32768 linear hash bn128 end.... 28092/32768 linear hash bn128 end.... 23410/32768 merkelizing bn128 hash start.... 0/2048 merkelizing bn128 hash end.... 0/2048 merkelizing bn128 hash start.... 0/128 merkelizing bn128 hash end.... 0/128 merkelizing bn128 hash start.... 0/8 merkelizing bn128 hash end.... 0/8 merkelizing bn128 hash start.... 0/1 merkelizing bn128 hash end.... 0/1 linear hash bn128 start.... 0/2048 linear hash bn128 end.... 0/2048 merkelizing bn128 hash start.... 0/128 merkelizing bn128 hash end.... 0/128 merkelizing bn128 hash start.... 0/8 merkelizing bn128 hash end.... 0/8 merkelizing bn128 hash start.... 0/1 merkelizing bn128 hash end.... 0/1 linear hash bn128 start.... 0/128 linear hash bn128 end.... 0/128 merkelizing bn128 hash start.... 0/8 merkelizing bn128 hash end.... 0/8 merkelizing bn128 hash start.... 0/1 merkelizing bn128 hash end.... 0/1 linear hash bn128 start.... 0/16 linear hash bn128 end.... 0/16 merkelizing bn128 hash start.... 0/1 merkelizing bn128 hash end.... 0/1 Publics Hash: 0x702090191200537164411530605620165906781410959030051501669960618942365442542 files Generated Correctly
- 14.i.1)
-
15)debug运行
fibonacci C12 verify proof
:运行main_verifier.js
,输出为验证是否通过,输入有:- 15.i.1)
fibonacci.c12.proof.json
:STARK证明。 - 15.i.2)
fibonacci.c12.public.json
:公开输入。 - 15.i.3)
fibonacci.c12.pil
: - 15.i.4)
sm_fibonacci//fibonacci.c12.starkstruct.json
: - 15.i.5)
fibonacci.c12.verkey.json
:
/usr/local/bin/node --max-old-space-size=32000 src/main_verifier.js -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci//fibonacci.c12.starkstruct.json -o /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.proof.json -b /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.public.json -v /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.verkey.json Query:461815 Query:444599 Query:297818 Query:456141 Query:200968 Query:347811 Query:400070 Query:512708 Verification Ok!!
- 15.i.1)
参考资料
[1] https://github.com/iden3/snarkjs
[2] Circom docs