mirror of
https://github.com/luxfhe/example-fhe-voting.git
synced 2026-10-30 18:13:24 +00:00
1 line
63 KiB
JSON
1 line
63 KiB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"q","type":"string","internalType":"string"},{"name":"optList","type":"string[]","internalType":"string[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTally","inputs":[{"name":"sealingKey","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"options","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"query","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"vote","inputs":[{"name":"encOption","type":"tuple","internalType":"struct Euint8","components":[{"name":"ctHash","type":"uint256","internalType":"uint256"},{"name":"securityZone","type":"uint8","internalType":"uint8"},{"name":"utype","type":"uint8","internalType":"uint8"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"InvalidEncryptedInput","inputs":[{"name":"got","type":"uint8","internalType":"uint8"},{"name":"expected","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"SecurityZoneOutOfBounds","inputs":[{"name":"value","type":"int32","internalType":"int32"}]}],"bytecode":{"object":"0x608060405263ffffffff60035f6101000a81548163ffffffff021916908363ffffffff1602179055506005600360046101000a81548160ff021916908360ff16021790555034801561004f575f5ffd5b50604051611fe7380380611fe7833981810160405281019061007191906103f5565b600360049054906101000a900460ff1660ff16815111156100c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100be906104c5565b60405180910390fd5b815f90816100d591906106f3565b5080600190805190602001906100ec9291906100f4565b5050506107c2565b828054828255905f5260205f2090810192821561013a579160200282015b8281111561013957825182908161012991906106f3565b5091602001919060010190610112565b5b509050610147919061014b565b5090565b5b8082111561016a575f8181610161919061016e565b5060010161014c565b5090565b50805461017a9061051a565b5f825580601f1061018b57506101a8565b601f0160209004905f5260205f20908101906101a791906101ab565b5b50565b5b808211156101c2575f815f9055506001016101ac565b5090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610225826101df565b810181811067ffffffffffffffff82111715610244576102436101ef565b5b80604052505050565b5f6102566101c6565b9050610262828261021c565b919050565b5f67ffffffffffffffff821115610281576102806101ef565b5b61028a826101df565b9050602081019050919050565b8281835e5f83830152505050565b5f6102b76102b284610267565b61024d565b9050828152602081018484840111156102d3576102d26101db565b5b6102de848285610297565b509392505050565b5f82601f8301126102fa576102f96101d7565b5b815161030a8482602086016102a5565b91505092915050565b5f67ffffffffffffffff82111561032d5761032c6101ef565b5b602082029050602081019050919050565b5f5ffd5b5f61035461034f84610313565b61024d565b905080838252602082019050602084028301858111156103775761037661033e565b5b835b818110156103be57805167ffffffffffffffff81111561039c5761039b6101d7565b5b8086016103a989826102e6565b85526020850194505050602081019050610379565b5050509392505050565b5f82601f8301126103dc576103db6101d7565b5b81516103ec848260208601610342565b91505092915050565b5f5f6040838503121561040b5761040a6101cf565b5b5f83015167ffffffffffffffff811115610428576104276101d3565b5b610434858286016102e6565b925050602083015167ffffffffffffffff811115610455576104546101d3565b5b610461858286016103c8565b9150509250929050565b5f82825260208201905092915050565b7f746f6f206d616e79206f7074696f6e73210000000000000000000000000000005f82015250565b5f6104af60118361046b565b91506104ba8261047b565b602082019050919050565b5f6020820190508181035f8301526104dc816104a3565b9050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061053157607f821691505b602082108103610544576105436104ed565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261056b565b6105b0868361056b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105f46105ef6105ea846105c8565b6105d1565b6105c8565b9050919050565b5f819050919050565b61060d836105da565b610621610619826105fb565b848454610577565b825550505050565b5f5f905090565b610638610629565b610643818484610604565b505050565b5b818110156106665761065b5f82610630565b600181019050610649565b5050565b601f8211156106ab5761067c8161054a565b6106858461055c565b81016020851015610694578190505b6106a86106a08561055c565b830182610648565b50505b505050565b5f82821c905092915050565b5f6106cb5f19846008026106b0565b1980831691505092915050565b5f6106e383836106bc565b9150826002028217905092915050565b6106fc826104e3565b67ffffffffffffffff811115610715576107146101ef565b5b61071f825461051a565b61072a82828561066a565b5f60209050601f83116001811461075b575f8415610749578287015190505b61075385826106d8565b8655506107ba565b601f1984166107698661054a565b5f5b828110156107905784890151825560018201915060208501945060208101905061076b565b868310156107ad57848901516107a9601f8916826106bc565b8355505b6001600288020188555050505b505050505050565b611818806107cf5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806323da3991146100595780632c46b20514610089578063409e2205146100a7578063bc11cb3f146100d7578063e1c7392a146100f3575b5f5ffd5b610073600480360381019061006e9190610e9a565b6100fd565b6040516100809190610ff0565b60405180910390f35b6100916101c9565b60405161009e9190611062565b60405180910390f35b6100c160048036038101906100bc91906110b5565b610254565b6040516100ce9190611062565b60405180910390f35b6100f160048036038101906100ec9190611102565b6102fa565b005b6100fb6104dd565b005b60605f60028054905067ffffffffffffffff81111561011f5761011e611149565b5b60405190808252806020026020018201604052801561015257816020015b606081526020019060019003908161013d5790505b5090505f5f90505b6002805490508160ff1610156101bf5761018b60055f8360ff1660ff1681526020019081526020015f20548561055d565b828260ff16815181106101a1576101a0611176565b5b602002602001018190525080806101b7906111dc565b91505061015a565b5080915050919050565b5f80546101d590611231565b80601f016020809104026020016040519081016040528092919081815260200182805461020190611231565b801561024c5780601f106102235761010080835404028352916020019161024c565b820191905f5260205f20905b81548152906001019060200180831161022f57829003601f168201915b505050505081565b60018181548110610263575f80fd5b905f5260205f20015f91509050805461027b90611231565b80601f01602080910402602001604051908101604052809291908181526020018280546102a790611231565b80156102f25780601f106102c9576101008083540402835291602001916102f2565b820191905f5260205f20905b8154815290600101906020018083116102d557829003601f168201915b505050505081565b5f61030d8261030890611423565b61058e565b90505f60028054905011610356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034d9061147f565b60405180910390fd5b5f61037d8260025f8154811061036f5761036e611176565b5b905f5260205f200154610601565b90505f600190505b6002805490508110156103d0576103c1826103bc85600285815481106103ae576103ad611176565b5b905f5260205f200154610601565b61064a565b91508080600101915050610385565b5061041760045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610694565b156104835761048260045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461047d60035f9054906101000a900463ffffffff1663ffffffff166106a5565b6106b7565b5b8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506104d8826104d360016106a5565b6106b7565b505050565b5f5f90505b6001805490508160ff16101561055a576104fb5f6106a5565b60055f8360ff1660ff1681526020019081526020015f208190555060026105248260ff1661075f565b908060018154018082558091505060019003905f5260205f20015f90919091909150558080610552906111dc565b9150506104e2565b50565b60605f83905080836040516020016105769291906114bb565b60405160208183030381529060405291505092915050565b5f5f600290508060ff16836040015160ff16146105e8578260400151816040517f67cf30710000000000000000000000000000000000000000000000000000000081526004016105df9291906114f1565b60405180910390fd5b6105f96105f484610771565b6107b3565b915050919050565b5f61060b8361084a565b61061b576106185f61075f565b92505b6106248261084a565b610634576106315f61075f565b91505b61064260028484601861085b565b905092915050565b5f6106548361094a565b61066557610662600161095b565b92505b61066e8261094a565b61067f5761067c600161095b565b91505b61068c5f8484600b61085b565b905092915050565b5f61069e8261084a565b9050919050565b5f6106b0825f61096d565b9050919050565b5f5f90505b6002805490508160ff16101561075a575f6107086106f98560028560ff16815481106106eb576106ea611176565b5b905f5260205f200154610601565b846107035f6106a5565b610987565b905061072b60055f8460ff1660ff1681526020019081526020015f2054826109e9565b60055f8460ff1660ff1681526020019081526020015f2081905550508080610752906111dc565b9150506106bc565b505050565b5f61076a825f610a32565b9050919050565b610779610e2b565b6040518060800160405280835f01518152602001836020015160ff168152602001600260ff16815260200183606001518152509050919050565b5f73020000000000000000000000000000000000008073ffffffffffffffffffffffffffffffffffffffff166327f9c76283336040518363ffffffff1660e01b81526004016108039291906115d5565b6020604051808303815f875af115801561081f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108439190611617565b9050919050565b5f61085482610a4c565b9050919050565b5f73020000000000000000000000000000000000008073ffffffffffffffffffffffffffffffffffffffff16631888debd86846108988888610a58565b5f67ffffffffffffffff8111156108b2576108b1611149565b5b6040519080825280602002602001820160405280156108e05781602001602082028036833780820191505090505b506040518563ffffffff1660e01b8152600401610900949392919061175d565b6020604051808303815f875af115801561091c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109409190611617565b9050949350505050565b5f61095482610a4c565b9050919050565b5f610966825f610af2565b9050919050565b5f5f61097b84600485610b1b565b90508091505092915050565b5f6109918461094a565b6109a15761099e5f61095b565b93505b6109aa83610c16565b6109ba576109b75f6106a5565b92505b6109c382610c16565b6109d3576109d05f6106a5565b91505b6109e06004858585610c27565b90509392505050565b5f6109f383610c16565b610a0357610a005f6106a5565b92505b610a0c82610c16565b610a1c57610a195f6106a5565b91505b610a2a60048484600861085b565b905092915050565b5f5f610a4084600285610b1b565b90508091505092915050565b5f5f8214159050919050565b60605f600267ffffffffffffffff811115610a7657610a75611149565b5b604051908082528060200260200182016040528015610aa45781602001602082028036833780820191505090505b50905083815f81518110610abb57610aba611176565b5b6020026020010181815250508281600181518110610adc57610adb611176565b5b6020026020010181815250508091505092915050565b5f5f5f90508315610b0257600190505b5f610b0e825f86610b1b565b9050809250505092915050565b5f73020000000000000000000000000000000000008073ffffffffffffffffffffffffffffffffffffffff16631888debd84601a5f67ffffffffffffffff811115610b6957610b68611149565b5b604051908082528060200260200182016040528015610b975781602001602082028036833780820191505090505b50610bae898960ff16610ba98a610d18565b610d6f565b6040518563ffffffff1660e01b8152600401610bcd949392919061175d565b6020604051808303815f875af1158015610be9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0d9190611617565b90509392505050565b5f610c2082610a4c565b9050919050565b5f73020000000000000000000000000000000000008073ffffffffffffffffffffffffffffffffffffffff16631888debd866004610c66888888610d6f565b5f67ffffffffffffffff811115610c8057610c7f611149565b5b604051908082528060200260200182016040528015610cae5781602001602082028036833780820191505090505b506040518563ffffffff1660e01b8152600401610cce949392919061175d565b6020604051808303815f875af1158015610cea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0e9190611617565b9050949350505050565b5f5f8260030b1215610d6157816040517f8f568bf8000000000000000000000000000000000000000000000000000000008152600401610d5891906117c9565b60405180910390fd5b8163ffffffff169050919050565b60605f600367ffffffffffffffff811115610d8d57610d8c611149565b5b604051908082528060200260200182016040528015610dbb5781602001602082028036833780820191505090505b50905084815f81518110610dd257610dd1611176565b5b6020026020010181815250508381600181518110610df357610df2611176565b5b6020026020010181815250508281600281518110610e1457610e13611176565b5b602002602001018181525050809150509392505050565b60405180608001604052805f81526020015f60ff1681526020015f60ff168152602001606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b610e7981610e67565b8114610e83575f5ffd5b50565b5f81359050610e9481610e70565b92915050565b5f60208284031215610eaf57610eae610e5f565b5b5f610ebc84828501610e86565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610f3082610eee565b610f3a8185610ef8565b9350610f4a818560208601610f08565b610f5381610f16565b840191505092915050565b5f610f698383610f26565b905092915050565b5f602082019050919050565b5f610f8782610ec5565b610f918185610ecf565b935083602082028501610fa385610edf565b805f5b85811015610fde5784840389528151610fbf8582610f5e565b9450610fca83610f71565b925060208a01995050600181019050610fa6565b50829750879550505050505092915050565b5f6020820190508181035f8301526110088184610f7d565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61103482611010565b61103e818561101a565b935061104e818560208601610f08565b61105781610f16565b840191505092915050565b5f6020820190508181035f83015261107a818461102a565b905092915050565b5f819050919050565b61109481611082565b811461109e575f5ffd5b50565b5f813590506110af8161108b565b92915050565b5f602082840312156110ca576110c9610e5f565b5b5f6110d7848285016110a1565b91505092915050565b5f5ffd5b5f608082840312156110f9576110f86110e0565b5b81905092915050565b5f6020828403121561111757611116610e5f565b5b5f82013567ffffffffffffffff81111561113457611133610e63565b5b611140848285016110e4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f60ff82169050919050565b5f6111e6826111d0565b915060ff82036111f9576111f86111a3565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061124857607f821691505b60208210810361125b5761125a611204565b5b50919050565b5f5ffd5b61126e82610f16565b810181811067ffffffffffffffff8211171561128d5761128c611149565b5b80604052505050565b5f61129f610e56565b90506112ab8282611265565b919050565b5f5ffd5b6112bd816111d0565b81146112c7575f5ffd5b50565b5f813590506112d8816112b4565b92915050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff821115611300576112ff611149565b5b61130982610f16565b9050602081019050919050565b828183375f83830152505050565b5f611336611331846112e6565b611296565b905082815260208101848484011115611352576113516112e2565b5b61135d848285611316565b509392505050565b5f82601f830112611379576113786112de565b5b8135611389848260208601611324565b91505092915050565b5f608082840312156113a7576113a6611261565b5b6113b16080611296565b90505f6113c0848285016110a1565b5f8301525060206113d3848285016112ca565b60208301525060406113e7848285016112ca565b604083015250606082013567ffffffffffffffff81111561140b5761140a6112b0565b5b61141784828501611365565b60608301525092915050565b5f61142e3683611392565b9050919050565b7f6e6f7420696e697469616c697a656400000000000000000000000000000000005f82015250565b5f611469600f8361101a565b915061147482611435565b602082019050919050565b5f6020820190508181035f8301526114968161145d565b9050919050565b6114a681611082565b82525050565b6114b581610e67565b82525050565b5f6040820190506114ce5f83018561149d565b6114db60208301846114ac565b9392505050565b6114eb816111d0565b82525050565b5f6040820190506115045f8301856114e2565b61151160208301846114e2565b9392505050565b61152181611082565b82525050565b611530816111d0565b82525050565b5f608083015f83015161154b5f860182611518565b50602083015161155e6020860182611527565b5060408301516115716040860182611527565b50606083015184820360608601526115898282610f26565b9150508091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115bf82611596565b9050919050565b6115cf816115b5565b82525050565b5f6040820190508181035f8301526115ed8185611536565b90506115fc60208301846115c6565b9392505050565b5f815190506116118161108b565b92915050565b5f6020828403121561162c5761162b610e5f565b5b5f61163984828501611603565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b602081106116805761167f611642565b5b50565b5f8190506116908261166f565b919050565b5f61169f82611683565b9050919050565b6116af81611695565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6116e98383611518565b60208301905092915050565b5f602082019050919050565b5f61170b826116b5565b61171581856116bf565b9350611720836116cf565b805f5b8381101561175057815161173788826116de565b9750611742836116f5565b925050600181019050611723565b5085935050505092915050565b5f6080820190506117705f8301876114e2565b61177d60208301866116a6565b818103604083015261178f8185611701565b905081810360608301526117a38184611701565b905095945050505050565b5f8160030b9050919050565b6117c3816117ae565b82525050565b5f6020820190506117dc5f8301846117ba565b9291505056fea26469706673582212201dbd09aebeeb07430f2e3a44af52d879ac89d369faadbd2424a96f50a9c3f93564736f6c634300081b0033","sourceMap":"211:2141:1:-:0;;;342:11;325:28;;;;;;;;;;;;;;;;;;;;379:1;359:21;;;;;;;;;;;;;;;;;;;;481:177;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;571:11;;;;;;;;;;;553:29;;:7;:14;:29;;545:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;623:1;615:5;:9;;;;;;:::i;:::-;;644:7;634;:17;;;;;;;;;;;;:::i;:::-;;481:177;;211:2141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:7:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:321::-;2657:4;2747:18;2739:6;2736:30;2733:56;;;2769:18;;:::i;:::-;2733:56;2819:4;2811:6;2807:17;2799:25;;2879:4;2873;2869:15;2861:23;;2570:321;;;:::o;2897:117::-;3006:1;3003;2996:12;3036:960;3153:5;3178:91;3194:74;3261:6;3194:74;:::i;:::-;3178:91;:::i;:::-;3169:100;;3289:5;3318:6;3311:5;3304:21;3352:4;3345:5;3341:16;3334:23;;3405:4;3397:6;3393:17;3385:6;3381:30;3434:3;3426:6;3423:15;3420:122;;;3453:79;;:::i;:::-;3420:122;3568:6;3551:439;3585:6;3580:3;3577:15;3551:439;;;3667:3;3661:10;3703:18;3690:11;3687:35;3684:122;;;3725:79;;:::i;:::-;3684:122;3849:11;3841:6;3837:24;3887:58;3941:3;3929:10;3887:58;:::i;:::-;3882:3;3875:71;3975:4;3970:3;3966:14;3959:21;;3627:363;;3611:4;3606:3;3602:14;3595:21;;3551:439;;;3555:21;3159:837;;3036:960;;;;;:::o;4018:405::-;4110:5;4159:3;4152:4;4144:6;4140:17;4136:27;4126:122;;4167:79;;:::i;:::-;4126:122;4277:6;4271:13;4302:115;4413:3;4405:6;4398:4;4390:6;4386:17;4302:115;:::i;:::-;4293:124;;4116:307;4018:405;;;;:::o;4429:903::-;4553:6;4561;4610:2;4598:9;4589:7;4585:23;4581:32;4578:119;;;4616:79;;:::i;:::-;4578:119;4757:1;4746:9;4742:17;4736:24;4787:18;4779:6;4776:30;4773:117;;;4809:79;;:::i;:::-;4773:117;4914:74;4980:7;4971:6;4960:9;4956:22;4914:74;:::i;:::-;4904:84;;4707:291;5058:2;5047:9;5043:18;5037:25;5089:18;5081:6;5078:30;5075:117;;;5111:79;;:::i;:::-;5075:117;5216:99;5307:7;5298:6;5287:9;5283:22;5216:99;:::i;:::-;5206:109;;5008:317;4429:903;;;;;:::o;5338:169::-;5422:11;5456:6;5451:3;5444:19;5496:4;5491:3;5487:14;5472:29;;5338:169;;;;:::o;5513:167::-;5653:19;5649:1;5641:6;5637:14;5630:43;5513:167;:::o;5686:366::-;5828:3;5849:67;5913:2;5908:3;5849:67;:::i;:::-;5842:74;;5925:93;6014:3;5925:93;:::i;:::-;6043:2;6038:3;6034:12;6027:19;;5686:366;;;:::o;6058:419::-;6224:4;6262:2;6251:9;6247:18;6239:26;;6311:9;6305:4;6301:20;6297:1;6286:9;6282:17;6275:47;6339:131;6465:4;6339:131;:::i;:::-;6331:139;;6058:419;;;:::o;6483:99::-;6535:6;6569:5;6563:12;6553:22;;6483:99;;;:::o;6588:180::-;6636:77;6633:1;6626:88;6733:4;6730:1;6723:15;6757:4;6754:1;6747:15;6774:320;6818:6;6855:1;6849:4;6845:12;6835:22;;6902:1;6896:4;6892:12;6923:18;6913:81;;6979:4;6971:6;6967:17;6957:27;;6913:81;7041:2;7033:6;7030:14;7010:18;7007:38;7004:84;;7060:18;;:::i;:::-;7004:84;6825:269;6774:320;;;:::o;7100:141::-;7149:4;7172:3;7164:11;;7195:3;7192:1;7185:14;7229:4;7226:1;7216:18;7208:26;;7100:141;;;:::o;7247:93::-;7284:6;7331:2;7326;7319:5;7315:14;7311:23;7301:33;;7247:93;;;:::o;7346:107::-;7390:8;7440:5;7434:4;7430:16;7409:37;;7346:107;;;;:::o;7459:393::-;7528:6;7578:1;7566:10;7562:18;7601:97;7631:66;7620:9;7601:97;:::i;:::-;7719:39;7749:8;7738:9;7719:39;:::i;:::-;7707:51;;7791:4;7787:9;7780:5;7776:21;7767:30;;7840:4;7830:8;7826:19;7819:5;7816:30;7806:40;;7535:317;;7459:393;;;;;:::o;7858:77::-;7895:7;7924:5;7913:16;;7858:77;;;:::o;7941:60::-;7969:3;7990:5;7983:12;;7941:60;;;:::o;8007:142::-;8057:9;8090:53;8108:34;8117:24;8135:5;8117:24;:::i;:::-;8108:34;:::i;:::-;8090:53;:::i;:::-;8077:66;;8007:142;;;:::o;8155:75::-;8198:3;8219:5;8212:12;;8155:75;;;:::o;8236:269::-;8346:39;8377:7;8346:39;:::i;:::-;8407:91;8456:41;8480:16;8456:41;:::i;:::-;8448:6;8441:4;8435:11;8407:91;:::i;:::-;8401:4;8394:105;8312:193;8236:269;;;:::o;8511:73::-;8556:3;8577:1;8570:8;;8511:73;:::o;8590:189::-;8667:32;;:::i;:::-;8708:65;8766:6;8758;8752:4;8708:65;:::i;:::-;8643:136;8590:189;;:::o;8785:186::-;8845:120;8862:3;8855:5;8852:14;8845:120;;;8916:39;8953:1;8946:5;8916:39;:::i;:::-;8889:1;8882:5;8878:13;8869:22;;8845:120;;;8785:186;;:::o;8977:543::-;9078:2;9073:3;9070:11;9067:446;;;9112:38;9144:5;9112:38;:::i;:::-;9196:29;9214:10;9196:29;:::i;:::-;9186:8;9182:44;9379:2;9367:10;9364:18;9361:49;;;9400:8;9385:23;;9361:49;9423:80;9479:22;9497:3;9479:22;:::i;:::-;9469:8;9465:37;9452:11;9423:80;:::i;:::-;9082:431;;9067:446;8977:543;;;:::o;9526:117::-;9580:8;9630:5;9624:4;9620:16;9599:37;;9526:117;;;;:::o;9649:169::-;9693:6;9726:51;9774:1;9770:6;9762:5;9759:1;9755:13;9726:51;:::i;:::-;9722:56;9807:4;9801;9797:15;9787:25;;9700:118;9649:169;;;;:::o;9823:295::-;9899:4;10045:29;10070:3;10064:4;10045:29;:::i;:::-;10037:37;;10107:3;10104:1;10100:11;10094:4;10091:21;10083:29;;9823:295;;;;:::o;10123:1395::-;10240:37;10273:3;10240:37;:::i;:::-;10342:18;10334:6;10331:30;10328:56;;;10364:18;;:::i;:::-;10328:56;10408:38;10440:4;10434:11;10408:38;:::i;:::-;10493:67;10553:6;10545;10539:4;10493:67;:::i;:::-;10587:1;10611:4;10598:17;;10643:2;10635:6;10632:14;10660:1;10655:618;;;;11317:1;11334:6;11331:77;;;11383:9;11378:3;11374:19;11368:26;11359:35;;11331:77;11434:67;11494:6;11487:5;11434:67;:::i;:::-;11428:4;11421:81;11290:222;10625:887;;10655:618;10707:4;10703:9;10695:6;10691:22;10741:37;10773:4;10741:37;:::i;:::-;10800:1;10814:208;10828:7;10825:1;10822:14;10814:208;;;10907:9;10902:3;10898:19;10892:26;10884:6;10877:42;10958:1;10950:6;10946:14;10936:24;;11005:2;10994:9;10990:18;10977:31;;10851:4;10848:1;10844:12;10839:17;;10814:208;;;11050:6;11041:7;11038:19;11035:179;;;11108:9;11103:3;11099:19;11093:26;11151:48;11193:4;11185:6;11181:17;11170:9;11151:48;:::i;:::-;11143:6;11136:64;11058:156;11035:179;11260:1;11256;11248:6;11244:14;11240:22;11234:4;11227:36;10662:611;;;10625:887;;10215:1303;;;10123:1395;;:::o;211:2141:1:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806323da3991146100595780632c46b20514610089578063409e2205146100a7578063bc11cb3f146100d7578063e1c7392a146100f3575b5f5ffd5b610073600480360381019061006e9190610e9a565b6100fd565b6040516100809190610ff0565b60405180910390f35b6100916101c9565b60405161009e9190611062565b60405180910390f35b6100c160048036038101906100bc91906110b5565b610254565b6040516100ce9190611062565b60405180910390f35b6100f160048036038101906100ec9190611102565b6102fa565b005b6100fb6104dd565b005b60605f60028054905067ffffffffffffffff81111561011f5761011e611149565b5b60405190808252806020026020018201604052801561015257816020015b606081526020019060019003908161013d5790505b5090505f5f90505b6002805490508160ff1610156101bf5761018b60055f8360ff1660ff1681526020019081526020015f20548561055d565b828260ff16815181106101a1576101a0611176565b5b602002602001018190525080806101b7906111dc565b91505061015a565b5080915050919050565b5f80546101d590611231565b80601f016020809104026020016040519081016040528092919081815260200182805461020190611231565b801561024c5780601f106102235761010080835404028352916020019161024c565b820191905f5260205f20905b81548152906001019060200180831161022f57829003601f168201915b505050505081565b60018181548110610263575f80fd5b905f5260205f20015f91509050805461027b90611231565b80601f01602080910402602001604051908101604052809291908181526020018280546102a790611231565b80156102f25780601f106102c9576101008083540402835291602001916102f2565b820191905f5260205f20905b8154815290600101906020018083116102d557829003601f168201915b505050505081565b5f61030d8261030890611423565b61058e565b90505f60028054905011610356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034d9061147f565b60405180910390fd5b5f61037d8260025f8154811061036f5761036e611176565b5b905f5260205f200154610601565b90505f600190505b6002805490508110156103d0576103c1826103bc85600285815481106103ae576103ad611176565b5b905f5260205f200154610601565b61064a565b91508080600101915050610385565b5061041760045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610694565b156104835761048260045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461047d60035f9054906101000a900463ffffffff1663ffffffff166106a5565b6106b7565b5b8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506104d8826104d360016106a5565b6106b7565b505050565b5f5f90505b6001805490508160ff16101561055a576104fb5f6106a5565b60055f8360ff1660ff1681526020019081526020015f208190555060026105248260ff1661075f565b908060018154018082558091505060019003905f5260205f20015f90919091909150558080610552906111dc565b9150506104e2565b50565b60605f83905080836040516020016105769291906114bb565b60405160208183030381529060405291505092915050565b5f5f600290508060ff16836040015160ff16146105e8578260400151816040517f67cf30710000000000000000000000000000000000000000000000000000000081526004016105df9291906114f1565b60405180910390fd5b6105f96105f484610771565b6107b3565b915050919050565b5f61060b8361084a565b61061b576106185f61075f565b92505b6106248261084a565b610634576106315f61075f565b91505b61064260028484601861085b565b905092915050565b5f6106548361094a565b61066557610662600161095b565b92505b61066e8261094a565b61067f5761067c600161095b565b91505b61068c5f8484600b61085b565b905092915050565b5f61069e8261084a565b9050919050565b5f6106b0825f61096d565b9050919050565b5f5f90505b6002805490508160ff16101561075a575f6107086106f98560028560ff16815481106106eb576106ea611176565b5b905f5260205f200154610601565b846107035f6106a5565b610987565b905061072b60055f8460ff1660ff1681526020019081526020015f2054826109e9565b60055f8460ff1660ff1681526020019081526020015f2081905550508080610752906111dc565b9150506106bc565b505050565b5f61076a825f610a32565b9050919050565b610779610e2b565b6040518060800160405280835f01518152602001836020015160ff168152602001600260ff16815260200183606001518152509050919050565b5f73020000000000000000000000000000000000008073ffffffffffffffffffffffffffffffffffffffff166327f9c76283336040518363ffffffff1660e01b81526004016108039291906115d5565b6020604051808303815f875af115801561081f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108439190611617565b9050919050565b5f61085482610a4c565b9050919050565b5f73020000000000000000000000000000000000008073ffffffffffffffffffffffffffffffffffffffff16631888debd86846108988888610a58565b5f67ffffffffffffffff8111156108b2576108b1611149565b5b6040519080825280602002602001820160405280156108e05781602001602082028036833780820191505090505b506040518563ffffffff1660e01b8152600401610900949392919061175d565b6020604051808303815f875af115801561091c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109409190611617565b9050949350505050565b5f61095482610a4c565b9050919050565b5f610966825f610af2565b9050919050565b5f5f61097b84600485610b1b565b90508091505092915050565b5f6109918461094a565b6109a15761099e5f61095b565b93505b6109aa83610c16565b6109ba576109b75f6106a5565b92505b6109c382610c16565b6109d3576109d05f6106a5565b91505b6109e06004858585610c27565b90509392505050565b5f6109f383610c16565b610a0357610a005f6106a5565b92505b610a0c82610c16565b610a1c57610a195f6106a5565b91505b610a2a60048484600861085b565b905092915050565b5f5f610a4084600285610b1b565b90508091505092915050565b5f5f8214159050919050565b60605f600267ffffffffffffffff811115610a7657610a75611149565b5b604051908082528060200260200182016040528015610aa45781602001602082028036833780820191505090505b50905083815f81518110610abb57610aba611176565b5b6020026020010181815250508281600181518110610adc57610adb611176565b5b6020026020010181815250508091505092915050565b5f5f5f90508315610b0257600190505b5f610b0e825f86610b1b565b9050809250505092915050565b5f73020000000000000000000000000000000000008073ffffffffffffffffffffffffffffffffffffffff16631888debd84601a5f67ffffffffffffffff811115610b6957610b68611149565b5b604051908082528060200260200182016040528015610b975781602001602082028036833780820191505090505b50610bae898960ff16610ba98a610d18565b610d6f565b6040518563ffffffff1660e01b8152600401610bcd949392919061175d565b6020604051808303815f875af1158015610be9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0d9190611617565b90509392505050565b5f610c2082610a4c565b9050919050565b5f73020000000000000000000000000000000000008073ffffffffffffffffffffffffffffffffffffffff16631888debd866004610c66888888610d6f565b5f67ffffffffffffffff811115610c8057610c7f611149565b5b604051908082528060200260200182016040528015610cae5781602001602082028036833780820191505090505b506040518563ffffffff1660e01b8152600401610cce949392919061175d565b6020604051808303815f875af1158015610cea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0e9190611617565b9050949350505050565b5f5f8260030b1215610d6157816040517f8f568bf8000000000000000000000000000000000000000000000000000000008152600401610d5891906117c9565b60405180910390fd5b8163ffffffff169050919050565b60605f600367ffffffffffffffff811115610d8d57610d8c611149565b5b604051908082528060200260200182016040528015610dbb5781602001602082028036833780820191505090505b50905084815f81518110610dd257610dd1611176565b5b6020026020010181815250508381600181518110610df357610df2611176565b5b6020026020010181815250508281600281518110610e1457610e13611176565b5b602002602001018181525050809150509392505050565b60405180608001604052805f81526020015f60ff1681526020015f60ff168152602001606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b610e7981610e67565b8114610e83575f5ffd5b50565b5f81359050610e9481610e70565b92915050565b5f60208284031215610eaf57610eae610e5f565b5b5f610ebc84828501610e86565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610f3082610eee565b610f3a8185610ef8565b9350610f4a818560208601610f08565b610f5381610f16565b840191505092915050565b5f610f698383610f26565b905092915050565b5f602082019050919050565b5f610f8782610ec5565b610f918185610ecf565b935083602082028501610fa385610edf565b805f5b85811015610fde5784840389528151610fbf8582610f5e565b9450610fca83610f71565b925060208a01995050600181019050610fa6565b50829750879550505050505092915050565b5f6020820190508181035f8301526110088184610f7d565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61103482611010565b61103e818561101a565b935061104e818560208601610f08565b61105781610f16565b840191505092915050565b5f6020820190508181035f83015261107a818461102a565b905092915050565b5f819050919050565b61109481611082565b811461109e575f5ffd5b50565b5f813590506110af8161108b565b92915050565b5f602082840312156110ca576110c9610e5f565b5b5f6110d7848285016110a1565b91505092915050565b5f5ffd5b5f608082840312156110f9576110f86110e0565b5b81905092915050565b5f6020828403121561111757611116610e5f565b5b5f82013567ffffffffffffffff81111561113457611133610e63565b5b611140848285016110e4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f60ff82169050919050565b5f6111e6826111d0565b915060ff82036111f9576111f86111a3565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061124857607f821691505b60208210810361125b5761125a611204565b5b50919050565b5f5ffd5b61126e82610f16565b810181811067ffffffffffffffff8211171561128d5761128c611149565b5b80604052505050565b5f61129f610e56565b90506112ab8282611265565b919050565b5f5ffd5b6112bd816111d0565b81146112c7575f5ffd5b50565b5f813590506112d8816112b4565b92915050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff821115611300576112ff611149565b5b61130982610f16565b9050602081019050919050565b828183375f83830152505050565b5f611336611331846112e6565b611296565b905082815260208101848484011115611352576113516112e2565b5b61135d848285611316565b509392505050565b5f82601f830112611379576113786112de565b5b8135611389848260208601611324565b91505092915050565b5f608082840312156113a7576113a6611261565b5b6113b16080611296565b90505f6113c0848285016110a1565b5f8301525060206113d3848285016112ca565b60208301525060406113e7848285016112ca565b604083015250606082013567ffffffffffffffff81111561140b5761140a6112b0565b5b61141784828501611365565b60608301525092915050565b5f61142e3683611392565b9050919050565b7f6e6f7420696e697469616c697a656400000000000000000000000000000000005f82015250565b5f611469600f8361101a565b915061147482611435565b602082019050919050565b5f6020820190508181035f8301526114968161145d565b9050919050565b6114a681611082565b82525050565b6114b581610e67565b82525050565b5f6040820190506114ce5f83018561149d565b6114db60208301846114ac565b9392505050565b6114eb816111d0565b82525050565b5f6040820190506115045f8301856114e2565b61151160208301846114e2565b9392505050565b61152181611082565b82525050565b611530816111d0565b82525050565b5f608083015f83015161154b5f860182611518565b50602083015161155e6020860182611527565b5060408301516115716040860182611527565b50606083015184820360608601526115898282610f26565b9150508091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115bf82611596565b9050919050565b6115cf816115b5565b82525050565b5f6040820190508181035f8301526115ed8185611536565b90506115fc60208301846115c6565b9392505050565b5f815190506116118161108b565b92915050565b5f6020828403121561162c5761162b610e5f565b5b5f61163984828501611603565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b602081106116805761167f611642565b5b50565b5f8190506116908261166f565b919050565b5f61169f82611683565b9050919050565b6116af81611695565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6116e98383611518565b60208301905092915050565b5f602082019050919050565b5f61170b826116b5565b61171581856116bf565b9350611720836116cf565b805f5b8381101561175057815161173788826116de565b9750611742836116f5565b925050600181019050611723565b5085935050505092915050565b5f6080820190506117705f8301876114e2565b61177d60208301866116a6565b818103604083015261178f8185611701565b905081810360608301526117a38184611701565b905095945050505050565b5f8160030b9050919050565b6117c3816117ae565b82525050565b5f6020820190506117dc5f8301846117ba565b9291505056fea26469706673582212201dbd09aebeeb07430f2e3a44af52d879ac89d369faadbd2424a96f50a9c3f93564736f6c634300081b0033","sourceMap":"211:2141:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:307;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;235:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;261:23;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;859:829;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;664:189;;;:::i;:::-;;1694:307;1753:14;1779:24;1818:10;:17;;;;1806:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:57;;1851:7;1861:1;1851:11;;1846:122;1868:10;:17;;;;1864:1;:21;;;1846:122;;;1921:36;1936:5;:8;1942:1;1936:8;;;;;;;;;;;;;;;;1946:10;1921:14;:36::i;:::-;1906:9;1916:1;1906:12;;;;;;;;;;:::i;:::-;;;;;;;:51;;;;1887:3;;;;;:::i;:::-;;;;1846:122;;;;1985:9;1978:16;;;1694:307;;;:::o;235:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;261:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;859:829::-;917:13;933:23;946:9;933:23;;;:::i;:::-;:12;:23::i;:::-;917:39;;1065:1;1045:10;:17;;;;:21;1037:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;1180:13;1196:29;1203:6;1211:10;1222:1;1211:13;;;;;;;;:::i;:::-;;;;;;;;;;1196:6;:29::i;:::-;1180:45;;1240:6;1249:1;1240:10;;1235:126;1256:10;:17;;;;1252:1;:21;1235:126;;;1304:46;1311:7;1320:29;1327:6;1335:10;1346:1;1335:13;;;;;;;;:::i;:::-;;;;;;;;;;1320:6;:29::i;:::-;1304:6;:46::i;:::-;1294:56;;1275:3;;;;;;;1235:126;;;;1431:36;1449:5;:17;1455:10;1449:17;;;;;;;;;;;;;;;;1431;:36::i;:::-;1427:172;;;1483:62;1494:5;:17;1500:10;1494:17;;;;;;;;;;;;;;;;1513:31;1535:7;;;;;;;;;;;1527:16;;1513:13;:31::i;:::-;1483:10;:62::i;:::-;1427:172;1629:6;1609:5;:17;1615:10;1609:17;;;;;;;;;;;;;;;:26;;;;1645:36;1656:6;1664:16;1678:1;1664:13;:16::i;:::-;1645:10;:36::i;:::-;907:781;;859:829;:::o;664:189::-;702:7;712:1;702:11;;697:150;719:7;:14;;;;715:1;:18;;;697:150;;;765:16;779:1;765:13;:16::i;:::-;754:5;:8;760:1;754:8;;;;;;;;;;;;;;;:27;;;;795:10;811:24;832:1;824:10;;811:12;:24::i;:::-;795:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;735:3;;;;;:::i;:::-;;;;697:150;;;;664:189::o;154592:190:2:-;154670:12;154694;154724:5;154694:36;;154758:4;154764:10;154747:28;;;;;;;;;:::i;:::-;;;;;;;;;;;;;154740:35;;;154592:190;;;;:::o;114161:329::-;114218:6;114236:19;7678:1:6;114236:39:2;;114304:13;114289:28;;:5;:11;;;:28;;;114285:115;;114362:5;:11;;;114375:13;114340:49;;;;;;;;;;;;:::i;:::-;;;;;;;;114285:115;114430:52;114453:28;114475:5;114453:21;:28::i;:::-;114430:22;:52::i;:::-;114411:72;;;114161:329;;;:::o;52681:::-;52735:5;52757:12;52765:3;52757:7;:12::i;:::-;52752:61;;52791:11;52800:1;52791:8;:11::i;:::-;52785:17;;52752:61;52827:12;52835:3;52827:7;:12::i;:::-;52822:61;;52861:11;52870:1;52861:8;:11::i;:::-;52855:17;;52822:61;52911:91;7678:1:6;52962:3:2;52982;52988:13;52911:17;:91::i;:::-;52893:110;;52681:329;;;;:::o;44071:328::-;44123:5;44145:12;44153:3;44145:7;:12::i;:::-;44140:63;;44179:13;44187:4;44179:7;:13::i;:::-;44173:19;;44140:63;44217:12;44225:3;44217:7;:12::i;:::-;44212:63;;44251:13;44259:4;44251:7;:13::i;:::-;44245:19;;44212:63;44303:88;8001:1:6;44352:3:2;44371;44377:13;44303:17;:88::i;:::-;44285:107;;44071:328;;;;:::o;2960:84::-;3016:4;3031:10;3039:1;3031:7;:10::i;:::-;3024:17;;2960:84;;;:::o;127894:104::-;127946:7;127972:19;127982:5;127989:1;127972:9;:19::i;:::-;127965:26;;127894:104;;;:::o;2007:343:1:-;2082:7;2092:1;2082:11;;2077:267;2099:10;:17;;;;2095:1;:21;;;2077:267;;;2201:13;2217:67;2228:29;2235:6;2243:10;2254:1;2243:13;;;;;;;;;;:::i;:::-;;;;;;;;;;2228:6;:29::i;:::-;2259:6;2267:16;2281:1;2267:13;:16::i;:::-;2217:10;:67::i;:::-;2201:83;;2309:24;2317:5;:8;2323:1;2317:8;;;;;;;;;;;;;;;;2327:5;2309:7;:24::i;:::-;2298:5;:8;2304:1;2298:8;;;;;;;;;;;;;;;:35;;;;2123:221;2118:3;;;;;:::i;:::-;;;;2077:267;;;;2007:343;;:::o;126418:101:2:-;126469:6;126494:18;126503:5;126510:1;126494:8;:18::i;:::-;126487:25;;126418:101;;;:::o;10079:294:6:-;10148:21;;:::i;:::-;10188:178;;;;;;;;10225:5;:12;;;10188:178;;;;10265:5;:18;;;10188:178;;;;;;7678:1;10188:178;;;;;;10340:5;:15;;;10188:178;;;10181:185;;10079:294;;;:::o;5059:165:4:-;5127:7;745:42:5;5153:45:4;;;5199:5;5206:10;5153:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5146:71;;5059:165;;;:::o;1847:108:2:-;1896:4;1911:41;1949:1;1911:23;:41::i;:::-;1904:48;;1847:108;;;:::o;2614:319:4:-;2715:7;745:42:5;2741:44:4;;;2799:10;2823;2847:39;2877:3;2882;2847:29;:39::i;:::-;2914:1;2900:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2741:185;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2734:192;;2614:319;;;;;;:::o;1736:106:2:-;1784:4;1799:40;1836:1;1799:23;:40::i;:::-;1792:47;;1736:106;;;:::o;125538:95::-;125585:5;125609:17;125617:5;125624:1;125609:7;:17::i;:::-;125602:24;;125538:95;;;:::o;128225:210::-;128297:7;128316:10;128329:66;128355:5;7770:1:6;128382:12:2;128329:25;:66::i;:::-;128316:79;;128425:2;128405:23;;;128225:210;;;;:::o;98634:468::-;98714:7;98738:15;98746:6;98738:7;:15::i;:::-;98733:70;;98778:14;98786:5;98778:7;:14::i;:::-;98769:23;;98733:70;98817:15;98825:6;98817:7;:15::i;:::-;98812:68;;98857:12;98867:1;98857:9;:12::i;:::-;98848:21;;98812:68;98894:15;98902:6;98894:7;:15::i;:::-;98889:68;;98934:12;98944:1;98934:9;:12::i;:::-;98925:21;;98889:68;98987:107;7770:1:6;99038:6:2;99062;99086;98987:17;:107::i;:::-;98967:128;;98634:468;;;;;:::o;5596:342::-;5653:7;5677:12;5685:3;5677:7;:12::i;:::-;5672:62;;5711:12;5721:1;5711:9;:12::i;:::-;5705:18;;5672:62;5748:12;5756:3;5748:7;:12::i;:::-;5743:62;;5782:12;5792:1;5782:9;:12::i;:::-;5776:18;;5743:62;5835:95;7770:1:6;5888:3:2;5909;5915:14;5835:17;:95::i;:::-;5815:116;;5596:342;;;;:::o;126745:206::-;126816:6;126834:10;126847:65;126873:5;7678:1:6;126899:12:2;126847:25;:65::i;:::-;126834:78;;126941:2;126922:22;;;126745:206;;;;:::o;1020:99:3:-;1080:4;1111:1;1103:4;:9;;1096:16;;1020:99;;;:::o;1440:240::-;1524:16;1552:23;1592:1;1578:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1552:42;;1616:6;1604;1611:1;1604:9;;;;;;;;:::i;:::-;;;;;;;:18;;;;;1644:6;1632;1639:1;1632:9;;;;;;;;:::i;:::-;;;;;;;:18;;;;;1667:6;1660:13;;;1440:240;;;;:::o;125941:277:2:-;126008:5;126025:12;126040:1;126025:16;;126055:5;126051:44;;;126083:1;126076:8;;126051:44;126104:10;126117:63;126143:4;8001:1:6;126167:12:2;126117:25;:63::i;:::-;126104:76;;126208:2;126190:21;;;;125941:277;;;;:::o;743:372:4:-;834:7;745:42:5;860:44:4;;;918:6;938:25;991:1;977:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:91;1037:5;1044:6;1007:91;;1052:45;1084:12;1052:31;:45::i;:::-;1007:29;:91::i;:::-;860:248;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;853:255;;743:372;;;;;:::o;2075:110:2:-;2125:4;2140:42;2179:1;2140:23;:42::i;:::-;2133:49;;2075:110;;;:::o;1956:343:4:-;2058:7;745:42:5;2084:44:4;;;2142:10;2166:17;2197:55;2227:7;2236:6;2244:7;2197:29;:55::i;:::-;2280:1;2266:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:208;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2077:215;;1956:343;;;;;;:::o;629:208:3:-;696:7;727:1;719:5;:9;;;715:77;;;775:5;751:30;;;;;;;;;;;:::i;:::-;;;;;;;;715:77;823:5;808:22;;801:29;;629:208;;;:::o;1745:284::-;1845:16;1873:23;1913:1;1899:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1873:42;;1937:6;1925;1932:1;1925:9;;;;;;;;:::i;:::-;;;;;;;:18;;;;;1965:6;1953;1960:1;1953:9;;;;;;;;:::i;:::-;;;;;;;:18;;;;;1993:6;1981;1988:1;1981:9;;;;;;;;:::i;:::-;;;;;;;:18;;;;;2016:6;2009:13;;;1745:284;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:75:7:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:123::-;1101:6;1135:5;1129:12;1119:22;;1025:123;;;:::o;1154:193::-;1262:11;1296:6;1291:3;1284:19;1336:4;1331:3;1327:14;1312:29;;1154:193;;;;:::o;1353:141::-;1429:4;1452:3;1444:11;;1482:4;1477:3;1473:14;1465:22;;1353:141;;;:::o;1500:98::-;1551:6;1585:5;1579:12;1569:22;;1500:98;;;:::o;1604:158::-;1677:11;1711:6;1706:3;1699:19;1751:4;1746:3;1742:14;1727:29;;1604:158;;;;:::o;1768:139::-;1857:6;1852:3;1847;1841:23;1898:1;1889:6;1884:3;1880:16;1873:27;1768:139;;;:::o;1913:102::-;1954:6;2005:2;2001:7;1996:2;1989:5;1985:14;1981:28;1971:38;;1913:102;;;:::o;2021:353::-;2097:3;2125:38;2157:5;2125:38;:::i;:::-;2179:60;2232:6;2227:3;2179:60;:::i;:::-;2172:67;;2248:65;2306:6;2301:3;2294:4;2287:5;2283:16;2248:65;:::i;:::-;2338:29;2360:6;2338:29;:::i;:::-;2333:3;2329:39;2322:46;;2101:273;2021:353;;;;:::o;2380:192::-;2467:10;2502:64;2562:3;2554:6;2502:64;:::i;:::-;2488:78;;2380:192;;;;:::o;2578:122::-;2657:4;2689;2684:3;2680:14;2672:22;;2578:122;;;:::o;2732:983::-;2869:3;2898:63;2955:5;2898:63;:::i;:::-;2977:95;3065:6;3060:3;2977:95;:::i;:::-;2970:102;;3098:3;3143:4;3135:6;3131:17;3126:3;3122:27;3173:65;3232:5;3173:65;:::i;:::-;3261:7;3292:1;3277:393;3302:6;3299:1;3296:13;3277:393;;;3373:9;3367:4;3363:20;3358:3;3351:33;3424:6;3418:13;3452:82;3529:4;3514:13;3452:82;:::i;:::-;3444:90;;3557:69;3619:6;3557:69;:::i;:::-;3547:79;;3655:4;3650:3;3646:14;3639:21;;3337:333;3324:1;3321;3317:9;3312:14;;3277:393;;;3281:14;3686:4;3679:11;;3706:3;3699:10;;2874:841;;;;;2732:983;;;;:::o;3721:409::-;3882:4;3920:2;3909:9;3905:18;3897:26;;3969:9;3963:4;3959:20;3955:1;3944:9;3940:17;3933:47;3997:126;4118:4;4109:6;3997:126;:::i;:::-;3989:134;;3721:409;;;;:::o;4136:99::-;4188:6;4222:5;4216:12;4206:22;;4136:99;;;:::o;4241:169::-;4325:11;4359:6;4354:3;4347:19;4399:4;4394:3;4390:14;4375:29;;4241:169;;;;:::o;4416:377::-;4504:3;4532:39;4565:5;4532:39;:::i;:::-;4587:71;4651:6;4646:3;4587:71;:::i;:::-;4580:78;;4667:65;4725:6;4720:3;4713:4;4706:5;4702:16;4667:65;:::i;:::-;4757:29;4779:6;4757:29;:::i;:::-;4752:3;4748:39;4741:46;;4508:285;4416:377;;;;:::o;4799:313::-;4912:4;4950:2;4939:9;4935:18;4927:26;;4999:9;4993:4;4989:20;4985:1;4974:9;4970:17;4963:47;5027:78;5100:4;5091:6;5027:78;:::i;:::-;5019:86;;4799:313;;;;:::o;5118:77::-;5155:7;5184:5;5173:16;;5118:77;;;:::o;5201:122::-;5274:24;5292:5;5274:24;:::i;:::-;5267:5;5264:35;5254:63;;5313:1;5310;5303:12;5254:63;5201:122;:::o;5329:139::-;5375:5;5413:6;5400:20;5391:29;;5429:33;5456:5;5429:33;:::i;:::-;5329:139;;;;:::o;5474:329::-;5533:6;5582:2;5570:9;5561:7;5557:23;5553:32;5550:119;;;5588:79;;:::i;:::-;5550:119;5708:1;5733:53;5778:7;5769:6;5758:9;5754:22;5733:53;:::i;:::-;5723:63;;5679:117;5474:329;;;;:::o;5809:117::-;5918:1;5915;5908:12;5953:232;6026:5;6067:3;6058:6;6053:3;6049:16;6045:26;6042:113;;;6074:79;;:::i;:::-;6042:113;6173:6;6164:15;;5953:232;;;;:::o;6191:543::-;6277:6;6326:2;6314:9;6305:7;6301:23;6297:32;6294:119;;;6332:79;;:::i;:::-;6294:119;6480:1;6469:9;6465:17;6452:31;6510:18;6502:6;6499:30;6496:117;;;6532:79;;:::i;:::-;6496:117;6637:80;6709:7;6700:6;6689:9;6685:22;6637:80;:::i;:::-;6627:90;;6423:304;6191:543;;;;:::o;6740:180::-;6788:77;6785:1;6778:88;6885:4;6882:1;6875:15;6909:4;6906:1;6899:15;6926:180;6974:77;6971:1;6964:88;7071:4;7068:1;7061:15;7095:4;7092:1;7085:15;7112:180;7160:77;7157:1;7150:88;7257:4;7254:1;7247:15;7281:4;7278:1;7271:15;7298:86;7333:7;7373:4;7366:5;7362:16;7351:27;;7298:86;;;:::o;7390:167::-;7427:3;7450:22;7466:5;7450:22;:::i;:::-;7441:31;;7494:4;7487:5;7484:15;7481:41;;7502:18;;:::i;:::-;7481:41;7549:1;7542:5;7538:13;7531:20;;7390:167;;;:::o;7563:180::-;7611:77;7608:1;7601:88;7708:4;7705:1;7698:15;7732:4;7729:1;7722:15;7749:320;7793:6;7830:1;7824:4;7820:12;7810:22;;7877:1;7871:4;7867:12;7898:18;7888:81;;7954:4;7946:6;7942:17;7932:27;;7888:81;8016:2;8008:6;8005:14;7985:18;7982:38;7979:84;;8035:18;;:::i;:::-;7979:84;7800:269;7749:320;;;:::o;8075:117::-;8184:1;8181;8174:12;8198:281;8281:27;8303:4;8281:27;:::i;:::-;8273:6;8269:40;8411:6;8399:10;8396:22;8375:18;8363:10;8360:34;8357:62;8354:88;;;8422:18;;:::i;:::-;8354:88;8462:10;8458:2;8451:22;8241:238;8198:281;;:::o;8485:129::-;8519:6;8546:20;;:::i;:::-;8536:30;;8575:33;8603:4;8595:6;8575:33;:::i;:::-;8485:129;;;:::o;8620:117::-;8729:1;8726;8719:12;8743:118;8814:22;8830:5;8814:22;:::i;:::-;8807:5;8804:33;8794:61;;8851:1;8848;8841:12;8794:61;8743:118;:::o;8867:135::-;8911:5;8949:6;8936:20;8927:29;;8965:31;8990:5;8965:31;:::i;:::-;8867:135;;;;:::o;9008:117::-;9117:1;9114;9107:12;9131:117;9240:1;9237;9230:12;9254:307;9315:4;9405:18;9397:6;9394:30;9391:56;;;9427:18;;:::i;:::-;9391:56;9465:29;9487:6;9465:29;:::i;:::-;9457:37;;9549:4;9543;9539:15;9531:23;;9254:307;;;:::o;9567:148::-;9665:6;9660:3;9655;9642:30;9706:1;9697:6;9692:3;9688:16;9681:27;9567:148;;;:::o;9721:423::-;9798:5;9823:65;9839:48;9880:6;9839:48;:::i;:::-;9823:65;:::i;:::-;9814:74;;9911:6;9904:5;9897:21;9949:4;9942:5;9938:16;9987:3;9978:6;9973:3;9969:16;9966:25;9963:112;;;9994:79;;:::i;:::-;9963:112;10084:54;10131:6;10126:3;10121;10084:54;:::i;:::-;9804:340;9721:423;;;;;:::o;10163:338::-;10218:5;10267:3;10260:4;10252:6;10248:17;10244:27;10234:122;;10275:79;;:::i;:::-;10234:122;10392:6;10379:20;10417:78;10491:3;10483:6;10476:4;10468:6;10464:17;10417:78;:::i;:::-;10408:87;;10224:277;10163:338;;;;:::o;10528:1077::-;10602:5;10646:4;10634:9;10629:3;10625:19;10621:30;10618:117;;;10654:79;;:::i;:::-;10618:117;10753:21;10769:4;10753:21;:::i;:::-;10744:30;;10835:1;10875:49;10920:3;10911:6;10900:9;10896:22;10875:49;:::i;:::-;10868:4;10861:5;10857:16;10850:75;10784:152;11003:2;11044:47;11087:3;11078:6;11067:9;11063:22;11044:47;:::i;:::-;11037:4;11030:5;11026:16;11019:73;10946:157;11163:2;11204:47;11247:3;11238:6;11227:9;11223:22;11204:47;:::i;:::-;11197:4;11190:5;11186:16;11179:73;11113:150;11355:2;11344:9;11340:18;11327:32;11386:18;11378:6;11375:30;11372:117;;;11408:79;;:::i;:::-;11372:117;11528:58;11582:3;11573:6;11562:9;11558:22;11528:58;:::i;:::-;11521:4;11514:5;11510:16;11503:84;11273:325;10528:1077;;;;:::o;11611:211::-;11713:9;11747:68;11800:14;11793:5;11747:68;:::i;:::-;11734:81;;11611:211;;;:::o;11828:165::-;11968:17;11964:1;11956:6;11952:14;11945:41;11828:165;:::o;11999:366::-;12141:3;12162:67;12226:2;12221:3;12162:67;:::i;:::-;12155:74;;12238:93;12327:3;12238:93;:::i;:::-;12356:2;12351:3;12347:12;12340:19;;11999:366;;;:::o;12371:419::-;12537:4;12575:2;12564:9;12560:18;12552:26;;12624:9;12618:4;12614:20;12610:1;12599:9;12595:17;12588:47;12652:131;12778:4;12652:131;:::i;:::-;12644:139;;12371:419;;;:::o;12796:118::-;12883:24;12901:5;12883:24;:::i;:::-;12878:3;12871:37;12796:118;;:::o;12920:::-;13007:24;13025:5;13007:24;:::i;:::-;13002:3;12995:37;12920:118;;:::o;13044:332::-;13165:4;13203:2;13192:9;13188:18;13180:26;;13216:71;13284:1;13273:9;13269:17;13260:6;13216:71;:::i;:::-;13297:72;13365:2;13354:9;13350:18;13341:6;13297:72;:::i;:::-;13044:332;;;;;:::o;13382:112::-;13465:22;13481:5;13465:22;:::i;:::-;13460:3;13453:35;13382:112;;:::o;13500:316::-;13613:4;13651:2;13640:9;13636:18;13628:26;;13664:67;13728:1;13717:9;13713:17;13704:6;13664:67;:::i;:::-;13741:68;13805:2;13794:9;13790:18;13781:6;13741:68;:::i;:::-;13500:316;;;;;:::o;13822:108::-;13899:24;13917:5;13899:24;:::i;:::-;13894:3;13887:37;13822:108;;:::o;13936:102::-;14009:22;14025:5;14009:22;:::i;:::-;14004:3;13997:35;13936:102;;:::o;14098:976::-;14233:3;14269:4;14264:3;14260:14;14358:4;14351:5;14347:16;14341:23;14377:63;14434:4;14429:3;14425:14;14411:12;14377:63;:::i;:::-;14284:166;14540:4;14533:5;14529:16;14523:23;14559:59;14612:4;14607:3;14603:14;14589:12;14559:59;:::i;:::-;14460:168;14711:4;14704:5;14700:16;14694:23;14730:59;14783:4;14778:3;14774:14;14760:12;14730:59;:::i;:::-;14638:161;14886:4;14879:5;14875:16;14869:23;14939:3;14933:4;14929:14;14922:4;14917:3;14913:14;14906:38;14965:71;15031:4;15017:12;14965:71;:::i;:::-;14957:79;;14809:238;15064:4;15057:11;;14238:836;14098:976;;;;:::o;15080:126::-;15117:7;15157:42;15150:5;15146:54;15135:65;;15080:126;;;:::o;15212:96::-;15249:7;15278:24;15296:5;15278:24;:::i;:::-;15267:35;;15212:96;;;:::o;15314:118::-;15401:24;15419:5;15401:24;:::i;:::-;15396:3;15389:37;15314:118;;:::o;15438:515::-;15625:4;15663:2;15652:9;15648:18;15640:26;;15712:9;15706:4;15702:20;15698:1;15687:9;15683:17;15676:47;15740:124;15859:4;15850:6;15740:124;:::i;:::-;15732:132;;15874:72;15942:2;15931:9;15927:18;15918:6;15874:72;:::i;:::-;15438:515;;;;;:::o;15959:143::-;16016:5;16047:6;16041:13;16032:22;;16063:33;16090:5;16063:33;:::i;:::-;15959:143;;;;:::o;16108:351::-;16178:6;16227:2;16215:9;16206:7;16202:23;16198:32;16195:119;;;16233:79;;:::i;:::-;16195:119;16353:1;16378:64;16434:7;16425:6;16414:9;16410:22;16378:64;:::i;:::-;16368:74;;16324:128;16108:351;;;;:::o;16465:180::-;16513:77;16510:1;16503:88;16610:4;16607:1;16600:15;16634:4;16631:1;16624:15;16651:122;16740:2;16733:5;16730:13;16720:47;;16747:18;;:::i;:::-;16720:47;16651:122;:::o;16779:143::-;16832:7;16861:5;16850:16;;16867:49;16910:5;16867:49;:::i;:::-;16779:143;;;:::o;16928:::-;16992:9;17025:40;17059:5;17025:40;:::i;:::-;17012:53;;16928:143;;;:::o;17077:159::-;17178:51;17223:5;17178:51;:::i;:::-;17173:3;17166:64;17077:159;;:::o;17242:114::-;17309:6;17343:5;17337:12;17327:22;;17242:114;;;:::o;17362:184::-;17461:11;17495:6;17490:3;17483:19;17535:4;17530:3;17526:14;17511:29;;17362:184;;;;:::o;17552:132::-;17619:4;17642:3;17634:11;;17672:4;17667:3;17663:14;17655:22;;17552:132;;;:::o;17690:179::-;17759:10;17780:46;17822:3;17814:6;17780:46;:::i;:::-;17858:4;17853:3;17849:14;17835:28;;17690:179;;;;:::o;17875:113::-;17945:4;17977;17972:3;17968:14;17960:22;;17875:113;;;:::o;18024:732::-;18143:3;18172:54;18220:5;18172:54;:::i;:::-;18242:86;18321:6;18316:3;18242:86;:::i;:::-;18235:93;;18352:56;18402:5;18352:56;:::i;:::-;18431:7;18462:1;18447:284;18472:6;18469:1;18466:13;18447:284;;;18548:6;18542:13;18575:63;18634:3;18619:13;18575:63;:::i;:::-;18568:70;;18661:60;18714:6;18661:60;:::i;:::-;18651:70;;18507:224;18494:1;18491;18487:9;18482:14;;18447:284;;;18451:14;18747:3;18740:10;;18148:608;;;18024:732;;;;:::o;18762:875::-;19049:4;19087:3;19076:9;19072:19;19064:27;;19101:67;19165:1;19154:9;19150:17;19141:6;19101:67;:::i;:::-;19178:86;19260:2;19249:9;19245:18;19236:6;19178:86;:::i;:::-;19311:9;19305:4;19301:20;19296:2;19285:9;19281:18;19274:48;19339:108;19442:4;19433:6;19339:108;:::i;:::-;19331:116;;19494:9;19488:4;19484:20;19479:2;19468:9;19464:18;19457:48;19522:108;19625:4;19616:6;19522:108;:::i;:::-;19514:116;;18762:875;;;;;;;:::o;19643:90::-;19678:7;19721:5;19718:1;19707:20;19696:31;;19643:90;;;:::o;19739:112::-;19822:22;19838:5;19822:22;:::i;:::-;19817:3;19810:35;19739:112;;:::o;19857:214::-;19946:4;19984:2;19973:9;19969:18;19961:26;;19997:67;20061:1;20050:9;20046:17;20037:6;19997:67;:::i;:::-;19857:214;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getTally(bytes32)":"23da3991","init()":"e1c7392a","options(uint256)":"409e2205","query()":"2c46b205","vote((uint256,uint8,uint8,bytes))":"bc11cb3f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"q\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"optList\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"got\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"expected\",\"type\":\"uint8\"}],\"name\":\"InvalidEncryptedInput\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int32\",\"name\":\"value\",\"type\":\"int32\"}],\"name\":\"SecurityZoneOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sealingKey\",\"type\":\"bytes32\"}],\"name\":\"getTally\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"options\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"query\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"ctHash\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"securityZone\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"utype\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct Euint8\",\"name\":\"encOption\",\"type\":\"tuple\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/FHVoting.sol\":\"FHVoting\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@luxfi/contracts/=node_modules/@luxfi/contracts/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/FHVoting.sol\":{\"keccak256\":\"0x78541b978b1eac29fa8e2867f13874642f1034b7e6c25dfb26526a605df1ecc8\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://43de012b93b612ecbf48397f58f327f6d3edd31624f659a99b4f87f09ab02686\",\"dweb:/ipfs/QmdYcRzHNGwu8tgwY7h3ZgFAqCkyWqAbQJ9HgrmYu9hiiq\"]},\"node_modules/@luxfi/contracts/fhe/FHE.sol\":{\"keccak256\":\"0xa23998a8d39f62962df308163685e1efd5120e2204b74e20188e6144123d5424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c031db6aa4df5d66a45f07a789eece0675d8c8ecf87f34cdf6f1641cd750a6e9\",\"dweb:/ipfs/QmWJvZjkPAo8VrPpFQGCvvt4yqiX3tRLBFteYHj2qMtTqn\"]},\"node_modules/@luxfi/contracts/fhe/FHECommon.sol\":{\"keccak256\":\"0xb6e8e21a662629948f1b7ed86b847876f2f91059f35747a704a3ef0cd8d29c01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76a878fa2af0597bdd79c85eb13736c6cc31137cb3da5f70d2512dc29b61d37\",\"dweb:/ipfs/QmXaaPiZkcDbZhqoW87mXuHgsvuXZfwxkrx48WMUBjhVFY\"]},\"node_modules/@luxfi/contracts/fhe/FHENetwork.sol\":{\"keccak256\":\"0x942a1bdad358f6e410e9713069e03876ee17434ae262fc725d6ccc978fdff337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888d85d302d90b4b0ad8ca529c27b0fec8aabcb46aedc4b314bc506a1b80682f\",\"dweb:/ipfs/QmTMWn1dF96KxZyNrpDUFDjafFqN2x9eDhcSpAWUqJhwbF\"]},\"node_modules/@luxfi/contracts/fhe/FHETypes.sol\":{\"keccak256\":\"0xc011b88033bd7ea040641926afd5a6df60180bb180d5fd46f835f127223cd445\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://838082044b5750417ba392770fd03b22c1709db6da79ce1572fecbab5503e264\",\"dweb:/ipfs/QmZGoP3XFmXxEaB5xh2nbBNst46ZmfuMWfpDVaZTeHZbhn\"]},\"node_modules/@luxfi/contracts/fhe/IFHE.sol\":{\"keccak256\":\"0x399d058a146a945053860ed404ca6b864b97e75ab253e14bd9b43c3a1a73bbb4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a7ae39b1701425c3946d12021818fb6474ad1de01c9af9c36a1b7df021264cc\",\"dweb:/ipfs/Qmc6qnbLTZQuAoxeyy7iWtCGynQVA3bqyEL4qsbtrfqP3y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"q","type":"string"},{"internalType":"string[]","name":"optList","type":"string[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"got","type":"uint8"},{"internalType":"uint8","name":"expected","type":"uint8"}],"type":"error","name":"InvalidEncryptedInput"},{"inputs":[{"internalType":"int32","name":"value","type":"int32"}],"type":"error","name":"SecurityZoneOutOfBounds"},{"inputs":[{"internalType":"bytes32","name":"sealingKey","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTally","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"options","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"query","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"struct Euint8","name":"encOption","type":"tuple","components":[{"internalType":"uint256","name":"ctHash","type":"uint256"},{"internalType":"uint8","name":"securityZone","type":"uint8"},{"internalType":"uint8","name":"utype","type":"uint8"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"vote"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@luxfi/contracts/=node_modules/@luxfi/contracts/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","eth-gas-reporter/=node_modules/eth-gas-reporter/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/FHVoting.sol":"FHVoting"},"evmVersion":"cancun","libraries":{}},"sources":{"contracts/FHVoting.sol":{"keccak256":"0x78541b978b1eac29fa8e2867f13874642f1034b7e6c25dfb26526a605df1ecc8","urls":["bzz-raw://43de012b93b612ecbf48397f58f327f6d3edd31624f659a99b4f87f09ab02686","dweb:/ipfs/QmdYcRzHNGwu8tgwY7h3ZgFAqCkyWqAbQJ9HgrmYu9hiiq"],"license":"BSD-3-Clause-Clear"},"node_modules/@luxfi/contracts/fhe/FHE.sol":{"keccak256":"0xa23998a8d39f62962df308163685e1efd5120e2204b74e20188e6144123d5424","urls":["bzz-raw://c031db6aa4df5d66a45f07a789eece0675d8c8ecf87f34cdf6f1641cd750a6e9","dweb:/ipfs/QmWJvZjkPAo8VrPpFQGCvvt4yqiX3tRLBFteYHj2qMtTqn"],"license":"MIT"},"node_modules/@luxfi/contracts/fhe/FHECommon.sol":{"keccak256":"0xb6e8e21a662629948f1b7ed86b847876f2f91059f35747a704a3ef0cd8d29c01","urls":["bzz-raw://d76a878fa2af0597bdd79c85eb13736c6cc31137cb3da5f70d2512dc29b61d37","dweb:/ipfs/QmXaaPiZkcDbZhqoW87mXuHgsvuXZfwxkrx48WMUBjhVFY"],"license":"MIT"},"node_modules/@luxfi/contracts/fhe/FHENetwork.sol":{"keccak256":"0x942a1bdad358f6e410e9713069e03876ee17434ae262fc725d6ccc978fdff337","urls":["bzz-raw://888d85d302d90b4b0ad8ca529c27b0fec8aabcb46aedc4b314bc506a1b80682f","dweb:/ipfs/QmTMWn1dF96KxZyNrpDUFDjafFqN2x9eDhcSpAWUqJhwbF"],"license":"MIT"},"node_modules/@luxfi/contracts/fhe/FHETypes.sol":{"keccak256":"0xc011b88033bd7ea040641926afd5a6df60180bb180d5fd46f835f127223cd445","urls":["bzz-raw://838082044b5750417ba392770fd03b22c1709db6da79ce1572fecbab5503e264","dweb:/ipfs/QmZGoP3XFmXxEaB5xh2nbBNst46ZmfuMWfpDVaZTeHZbhn"],"license":"MIT"},"node_modules/@luxfi/contracts/fhe/IFHE.sol":{"keccak256":"0x399d058a146a945053860ed404ca6b864b97e75ab253e14bd9b43c3a1a73bbb4","urls":["bzz-raw://8a7ae39b1701425c3946d12021818fb6474ad1de01c9af9c36a1b7df021264cc","dweb:/ipfs/Qmc6qnbLTZQuAoxeyy7iWtCGynQVA3bqyEL4qsbtrfqP3y"],"license":"MIT"}},"version":1},"id":1} |