remix-project mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
remix-project/libs/remix-debug/compilation.json

6415 lines
217 KiB

{
"data": {
"contracts": {
"browser/ballot.sol": {
"Ballot": {
"abi": [{
"constant": false,
"inputs": [{
"name": "to",
"type": "address"
}],
"name": "delegate",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}, {
"constant": false,
"inputs": [{
"name": "toVoter",
"type": "address"
}],
"name": "giveRightToVote",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}, {
"inputs": [{
"name": "_numProposals",
"type": "uint8"
}],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}, {
"constant": false,
"inputs": [{
"name": "toProposal",
"type": "uint8"
}],
"name": "vote",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}, {
"constant": true,
"inputs": [],
"name": "winningProposal",
"outputs": [{
"name": "_winningProposal",
"type": "uint8"
}],
"payable": false,
"stateMutability": "view",
"type": "function"
}],
"devdoc": {
"methods": {}
},
"evm": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50604051602080610487833981016040908152905160008054600160a060020a0319163317808255600160a060020a03168152600160208190529290209190915560ff8116610060600282610067565b50506100b1565b81548183558181111561008b5760008381526020902061008b918101908301610090565b505050565b6100ae91905b808211156100aa5760008155600101610096565b5090565b90565b6103c7806100c06000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635c19a95c8114610066578063609ff1bd146100895780639e7b8d61146100b4578063b3f98adc146100d5575b600080fd5b34801561007257600080fd5b50610087600160a060020a03600435166100f0565b005b34801561009557600080fd5b5061009e610250565b6040805160ff9092168252519081900360200190f35b3480156100c057600080fd5b50610087600160a060020a03600435166102bb565b3480156100e157600080fd5b5061008760ff6004351661031b565b33600090815260016020819052604082209081015490919060ff16156101155761024b565b5b600160a060020a0383811660009081526001602081905260409091200154620100009004161580159061016d5750600160a060020a0383811660009081526001602081905260409091200154620100009004163314155b1561019f57600160a060020a039283166000908152600160208190526040909120015462010000900490921691610116565b600160a060020a0383163314156101b55761024b565b506001818101805460ff1916821775ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a0386169081029190911790915560009081526020829052604090209081015460ff16156102435781546001820154600280549091610100900460ff1690811061022c57fe5b60009182526020909120018054909101905561024b565b815481540181555b505050565b600080805b60025460ff821610156102b6578160028260ff1681548110151561027557fe5b906000526020600020016000015411156102ae576002805460ff831690811061029a57fe5b906000526020600020016000015491508092505b600101610255565b505090565b600054600160a060020a0316331415806102f15750600160a060020a0381166000908152600160208190526040909120015460ff165b156102fb57610318565b600160a060020a0381166000908152600160208190526040909120555b50565b3360009081526001602081905260409091209081015460ff1680610344575060025460ff831610155b1561034e57610397565b6001818101805460ff191690911761ff00191661010060ff85169081029190911790915581546002805491929091811061038457fe5b6000918252602090912001805490910190555b50505600a165627a7a72305820ce66bb0ee0898d1afc8d56202dd09955892767cfba6bcf0ddb23181288192c450029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x487 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP1 DUP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP3 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0xFF DUP2 AND PUSH2 0x60 PUSH1 0x2 DUP3 PUSH2 0x67 JUMP JUMPDEST POP POP PUSH2 0xB1 JUMP JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0x8B JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0x8B SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0x90 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xAE SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x96 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x3C7 DUP1 PUSH2 0xC0 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5C19A95C DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x609FF1BD EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x9E7B8D61 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xB3F98ADC EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9E PUSH2 0x250 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0xFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x31B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x115 JUMPI PUSH2 0x24B JUMP JUMPDEST JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x16D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV AND CALLER EQ ISZERO JUMPDEST ISZERO PUSH2 0x19F JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV SWAP1 SWAP3 AND SWAP2 PUSH2 0x116 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND CALLER EQ ISZERO PUSH2 0x1B5 JUMPI PUSH2 0x24B JUMP JUMPDEST POP PUSH1 0x1 DUP2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 OR PUSH22 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x243 JUMPI DUP2 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP1 SLOAD SWAP1 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP2 LT PUSH2 0x22C JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP1 SWAP2 ADD SWAP1 SSTORE PUSH2 0x24B JUMP JUMPDEST DUP2 SLOAD DUP2 SLOAD ADD DUP2 SSTORE JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF DUP3 AND LT ISZERO PUSH2 0x2B6 JUMPI DUP2 PUSH1 0x2 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x275 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 ADD SLOAD GT ISZERO PUSH2 0x2AE JUMPI PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF DUP4 AND SWAP1 DUP2 LT PUSH2 0x29A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 ADD SLOAD SWAP2 POP DUP1 SWAP3 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x255 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ ISZERO DUP1 PUSH2 0x2F1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2FB JUMPI PUSH2 0x318 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0xFF AND DUP1 PUSH2 0x344 JUMPI POP PUSH1 0x2 SLOAD PUSH1 0xFF DUP4 AND LT ISZERO JUMPDEST ISZERO PUSH2 0x34E JUMPI PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP6 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 SLOAD PUSH1 0x2 DUP1 SLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP2 LT PUSH2 0x384 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP1 SWAP2 ADD SWAP1 SSTORE JUMPDEST POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xce PUSH7 0xBB0EE0898D1AFC DUP14 JUMP KECCAK256 0x2d 0xd0 SWAP10 SSTORE DUP10 0x27 PUSH8 0xCFBA6BCF0DDB2318 SLT DUP9 NOT 0x2c GASLIMIT STOP 0x29 ",
"sourceMap": "24:2138:0:-;;;373:167;8:9:-1;5:2;;;30:1;27;20:12;5:2;373:167:0;;;;;;;;;;;;;;;;427:11;:24;;-1:-1:-1;;;;;;427:24:0;441:10;427:24;;;;-1:-1:-1;;;;;468:11:0;461:19;;427:24;373:167;461:19;;;;;;:30;;;;501:32;;;;:9;:32;;:::i;:::-;;373:167;24:2138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635c19a95c8114610066578063609ff1bd146100895780639e7b8d61146100b4578063b3f98adc146100d5575b600080fd5b34801561007257600080fd5b50610087600160a060020a03600435166100f0565b005b34801561009557600080fd5b5061009e610250565b6040805160ff9092168252519081900360200190f35b3480156100c057600080fd5b50610087600160a060020a03600435166102bb565b3480156100e157600080fd5b5061008760ff6004351661031b565b33600090815260016020819052604082209081015490919060ff16156101155761024b565b5b600160a060020a0383811660009081526001602081905260409091200154620100009004161580159061016d5750600160a060020a0383811660009081526001602081905260409091200154620100009004163314155b1561019f57600160a060020a039283166000908152600160208190526040909120015462010000900490921691610116565b600160a060020a0383163314156101b55761024b565b506001818101805460ff1916821775ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a0386169081029190911790915560009081526020829052604090209081015460ff16156102435781546001820154600280549091610100900460ff1690811061022c57fe5b60009182526020909120018054909101905561024b565b815481540181555b505050565b600080805b60025460ff821610156102b6578160028260ff1681548110151561027557fe5b906000526020600020016000015411156102ae576002805460ff831690811061029a57fe5b906000526020600020016000015491508092505b600101610255565b505090565b600054600160a060020a0316331415806102f15750600160a060020a0381166000908152600160208190526040909120015460ff165b156102fb57610318565b600160a060020a0381166000908152600160208190526040909120555b50565b3360009081526001602081905260409091209081015460ff1680610344575060025460ff831610155b1561034e57610397565b6001818101805460ff191690911761ff00191661010060ff85169081029190911790915581546002805491929091811061038457fe5b6000918252602090912001805490910190555b50505600a165627a7a72305820ce66bb0ee0898d1afc8d56202dd09955892767cfba6bcf0ddb23181288192c450029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5C19A95C DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x609FF1BD EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x9E7B8D61 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xB3F98ADC EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9E PUSH2 0x250 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0xFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x31B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x115 JUMPI PUSH2 0x24B JUMP JUMPDEST JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x16D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV AND CALLER EQ ISZERO JUMPDEST ISZERO PUSH2 0x19F JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV SWAP1 SWAP3 AND SWAP2 PUSH2 0x116 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND CALLER EQ ISZERO PUSH2 0x1B5 JUMPI PUSH2 0x24B JUMP JUMPDEST POP PUSH1 0x1 DUP2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 OR PUSH22 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x243 JUMPI DUP2 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP1 SLOAD SWAP1 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP2 LT PUSH2 0x22C JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP1 SWAP2 ADD SWAP1 SSTORE PUSH2 0x24B JUMP JUMPDEST DUP2 SLOAD DUP2 SLOAD ADD DUP2 SSTORE JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF DUP3 AND LT ISZERO PUSH2 0x2B6 JUMPI DUP2 PUSH1 0x2 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x275 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 ADD SLOAD GT ISZERO PUSH2 0x2AE JUMPI PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF DUP4 AND SWAP1 DUP2 LT PUSH2 0x29A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 ADD SLOAD SWAP2 POP DUP1 SWAP3 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x255 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ ISZERO DUP1 PUSH2 0x2F1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2FB JUMPI PUSH2 0x318 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0xFF AND DUP1 PUSH2 0x344 JUMPI POP PUSH1 0x2 SLOAD PUSH1 0xFF DUP4 AND LT ISZERO JUMPDEST ISZERO PUSH2 0x34E JUMPI PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP6 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP2 SLOAD PUSH1 0x2 DUP1 SLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP2 LT PUSH2 0x384 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP1 SWAP2 ADD SWAP1 SSTORE JUMPDEST POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xce PUSH7 0xBB0EE0898D1AFC DUP14 JUMP KECCAK256 0x2d 0xd0 SWAP10 SSTORE DUP10 0x27 PUSH8 0xCFBA6BCF0DDB2318 SLT DUP9 NOT 0x2c GASLIMIT STOP 0x29 ",
"sourceMap": "24:2138:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;867:577;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;867:577:0;-1:-1:-1;;;;;867:577:0;;;;;;;1796:364;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1796:364:0;;;;;;;;;;;;;;;;;;;;;;;650:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;650:164:0;-1:-1:-1;;;;;650:164:0;;;;;1504:286;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1504:286:0;;;;;;;867:577;944:10;914:20;937:18;;;:6;:18;;;;;;;990:12;;;;937:18;;914:20;990:12;;986:25;;;1004:7;;986:25;1020:115;-1:-1:-1;;;;;1027:10:0;;;1058:1;1027:10;;;:6;:10;;;;;;;;:19;;;;;;:33;;;;:70;;-1:-1:-1;;;;;;1064:10:0;;;;;;;:6;:10;;;;;;;;:19;;;;;;1087:10;1064:33;;1027:70;1020:115;;;-1:-1:-1;;;;;1116:10:0;;;;;;;:6;:10;;;;;;;;:19;;;;;;;;;1020:115;;;-1:-1:-1;;;;;1149:16:0;;1155:10;1149:16;1145:29;;;1167:7;;1145:29;-1:-1:-1;1198:4:0;1183:12;;;:19;;-1:-1:-1;;1183:19:0;;;-1:-1:-1;;1212:20:0;;-1:-1:-1;;;;;1212:20:0;;;;;;;;;;;;-1:-1:-1;1269:10:0;;;;;;;;;;1293:16;;;;1183:19;1293:16;1289:148;;;1363:13;;1333:15;;;;1323:9;:26;;:9;;1333:15;;;;;;1323:26;;;;;;;;;;;;;;;:53;;;;;;;1289:148;;;1424:13;;1403:34;;;;;1289:148;867:577;;;:::o;1796:364::-;1848:22;;;1920:234;1948:9;:16;1941:23;;;;1920:234;;;2018:16;1990:9;2000:4;1990:15;;;;;;;;;;;;;;;;;;;:25;;;:44;1986:168;;;2073:9;:15;;;;;;;;;;;;;;;;;;;:25;;;2054:44;;2135:4;2116:23;;1986:168;1966:6;;1920:234;;;1796:364;;;:::o;650:164::-;727:11;;-1:-1:-1;;;;;727:11:0;713:10;:25;;;:50;;-1:-1:-1;;;;;;742:15:0;;;;;;:6;:15;;;;;;;;:21;;;;713:50;709:63;;;765:7;;709:63;-1:-1:-1;;;;;781:15:0;;;;;;806:1;781:15;;;;;;;;:26;650:164;;:::o;1504:286::-;1583:10;1553:20;1576:18;;;:6;:18;;;;;;;;1608:12;;;;;;;:46;;-1:-1:-1;1638:9:0;:16;1624:30;;;;;1608:46;1604:59;;;1656:7;;1604:59;1687:4;1672:12;;;:19;;-1:-1:-1;;1672:19:0;;;;-1:-1:-1;;1701:24:0;1672:19;;1701:24;;;;;;;;;;;;1770:13;;1735:9;:21;;1770:13;;1735:9;;:21;;;;;;;;;;;;;;;:48;;;;;;;1504:286;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "193400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"delegate(address)": "infinite",
"giveRightToVote(address)": "21101",
"vote(uint8)": "41761",
"winningProposal()": "infinite"
}
},
"legacyAssembly": {
".code": [{
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "80"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "40"
}, {
"begin": 24,
"end": 2162,
"name": "MSTORE"
}, {
"begin": 373,
"end": 540,
"name": "CALLVALUE"
}, {
"begin": 8,
"end": 17,
"name": "DUP1"
}, {
"begin": 5,
"end": 7,
"name": "ISZERO"
}, {
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
}, {
"begin": 5,
"end": 7,
"name": "JUMPI"
}, {
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
}, {
"begin": 27,
"end": 28,
"name": "DUP1"
}, {
"begin": 20,
"end": 32,
"name": "REVERT"
}, {
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
}, {
"begin": 5,
"end": 7,
"name": "JUMPDEST"
}, {
"begin": 373,
"end": 540,
"name": "POP"
}, {
"begin": 373,
"end": 540,
"name": "PUSH",
"value": "40"
}, {
"begin": 373,
"end": 540,
"name": "MLOAD"
}, {
"begin": 373,
"end": 540,
"name": "PUSH",
"value": "20"
}, {
"begin": 373,
"end": 540,
"name": "DUP1"
}, {
"begin": 373,
"end": 540,
"name": "PUSHSIZE"
}, {
"begin": 373,
"end": 540,
"name": "DUP4"
}, {
"begin": 373,
"end": 540,
"name": "CODECOPY"
}, {
"begin": 373,
"end": 540,
"name": "DUP2"
}, {
"begin": 373,
"end": 540,
"name": "ADD"
}, {
"begin": 373,
"end": 540,
"name": "PUSH",
"value": "40"
}, {
"begin": 373,
"end": 540,
"name": "SWAP1"
}, {
"begin": 373,
"end": 540,
"name": "DUP2"
}, {
"begin": 373,
"end": 540,
"name": "MSTORE"
}, {
"begin": 373,
"end": 540,
"name": "SWAP1"
}, {
"begin": 373,
"end": 540,
"name": "MLOAD"
}, {
"begin": 427,
"end": 438,
"name": "PUSH",
"value": "0"
}, {
"begin": 427,
"end": 451,
"name": "DUP1"
}, {
"begin": 427,
"end": 451,
"name": "SLOAD"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": -1,
"end": -1,
"name": "NOT"
}, {
"begin": 427,
"end": 451,
"name": "AND"
}, {
"begin": 441,
"end": 451,
"name": "CALLER"
}, {
"begin": 427,
"end": 451,
"name": "OR"
}, {
"begin": 427,
"end": 451,
"name": "DUP1"
}, {
"begin": 427,
"end": 451,
"name": "DUP3"
}, {
"begin": 427,
"end": 451,
"name": "SSTORE"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 468,
"end": 479,
"name": "AND"
}, {
"begin": 461,
"end": 480,
"name": "DUP2"
}, {
"begin": 461,
"end": 480,
"name": "MSTORE"
}, {
"begin": 427,
"end": 451,
"name": "PUSH",
"value": "1"
}, {
"begin": 373,
"end": 540,
"name": "PUSH",
"value": "20"
}, {
"begin": 461,
"end": 480,
"name": "DUP2"
}, {
"begin": 461,
"end": 480,
"name": "SWAP1"
}, {
"begin": 461,
"end": 480,
"name": "MSTORE"
}, {
"begin": 461,
"end": 480,
"name": "SWAP3"
}, {
"begin": 461,
"end": 480,
"name": "SWAP1"
}, {
"begin": 461,
"end": 480,
"name": "KECCAK256"
}, {
"begin": 461,
"end": 491,
"name": "SWAP2"
}, {
"begin": 461,
"end": 491,
"name": "SWAP1"
}, {
"begin": 461,
"end": 491,
"name": "SWAP2"
}, {
"begin": 461,
"end": 491,
"name": "SSTORE"
}, {
"begin": 501,
"end": 533,
"name": "PUSH",
"value": "FF"
}, {
"begin": 501,
"end": 533,
"name": "DUP2"
}, {
"begin": 501,
"end": 533,
"name": "AND"
}, {
"begin": 501,
"end": 533,
"name": "PUSH [tag]",
"value": "4"
}, {
"begin": 501,
"end": 510,
"name": "PUSH",
"value": "2"
}, {
"begin": 501,
"end": 533,
"name": "DUP3"
}, {
"begin": 501,
"end": 533,
"name": "PUSH [tag]",
"value": "5"
}, {
"begin": 501,
"end": 533,
"name": "JUMP",
"value": "[in]"
}, {
"begin": 501,
"end": 533,
"name": "tag",
"value": "4"
}, {
"begin": 501,
"end": 533,
"name": "JUMPDEST"
}, {
"begin": 501,
"end": 533,
"name": "POP"
}, {
"begin": 373,
"end": 540,
"name": "POP"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "6"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "5"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "SLOAD"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "DUP4"
}, {
"begin": 24,
"end": 2162,
"name": "SSTORE"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "GT"
}, {
"begin": 24,
"end": 2162,
"name": "ISZERO"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "8"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "DUP4"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "MSTORE"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "20"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP1"
}, {
"begin": 24,
"end": 2162,
"name": "KECCAK256"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "8"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP2"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "ADD"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP1"
}, {
"begin": 24,
"end": 2162,
"name": "DUP4"
}, {
"begin": 24,
"end": 2162,
"name": "ADD"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "9"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP",
"value": "[in]"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "8"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "POP"
}, {
"begin": 24,
"end": 2162,
"name": "POP"
}, {
"begin": 24,
"end": 2162,
"name": "POP"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP",
"value": "[out]"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "9"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "10"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP2"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP1"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "11"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "DUP3"
}, {
"begin": 24,
"end": 2162,
"name": "GT"
}, {
"begin": 24,
"end": 2162,
"name": "ISZERO"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "12"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "SSTORE"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "1"
}, {
"begin": 24,
"end": 2162,
"name": "ADD"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "11"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "12"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "POP"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP1"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "10"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP1"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP",
"value": "[out]"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "6"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "CODECOPY"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "RETURN"
}],
".data": {
"0": {
".auxdata": "a165627a7a72305820ce66bb0ee0898d1afc8d56202dd09955892767cfba6bcf0ddb23181288192c450029",
".code": [{
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "80"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "40"
}, {
"begin": 24,
"end": 2162,
"name": "MSTORE"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "4"
}, {
"begin": 24,
"end": 2162,
"name": "CALLDATASIZE"
}, {
"begin": 24,
"end": 2162,
"name": "LT"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "1"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "FFFFFFFF"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "100000000000000000000000000000000000000000000000000000000"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "CALLDATALOAD"
}, {
"begin": 24,
"end": 2162,
"name": "DIV"
}, {
"begin": 24,
"end": 2162,
"name": "AND"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "5C19A95C"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "EQ"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "2"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "609FF1BD"
}, {
"begin": 24,
"end": 2162,
"name": "EQ"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "3"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "9E7B8D61"
}, {
"begin": 24,
"end": 2162,
"name": "EQ"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "4"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "B3F98ADC"
}, {
"begin": 24,
"end": 2162,
"name": "EQ"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "5"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "1"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "REVERT"
}, {
"begin": 867,
"end": 1444,
"name": "tag",
"value": "2"
}, {
"begin": 867,
"end": 1444,
"name": "JUMPDEST"
}, {
"begin": 867,
"end": 1444,
"name": "CALLVALUE"
}, {
"begin": 8,
"end": 17,
"name": "DUP1"
}, {
"begin": 5,
"end": 7,
"name": "ISZERO"
}, {
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "6"
}, {
"begin": 5,
"end": 7,
"name": "JUMPI"
}, {
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
}, {
"begin": 27,
"end": 28,
"name": "DUP1"
}, {
"begin": 20,
"end": 32,
"name": "REVERT"
}, {
"begin": 5,
"end": 7,
"name": "tag",
"value": "6"
}, {
"begin": 5,
"end": 7,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": 867,
"end": 1444,
"name": "PUSH [tag]",
"value": "7"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 867,
"end": 1444,
"name": "PUSH",
"value": "4"
}, {
"begin": 867,
"end": 1444,
"name": "CALLDATALOAD"
}, {
"begin": 867,
"end": 1444,
"name": "AND"
}, {
"begin": 867,
"end": 1444,
"name": "PUSH [tag]",
"value": "8"
}, {
"begin": 867,
"end": 1444,
"name": "JUMP"
}, {
"begin": 867,
"end": 1444,
"name": "tag",
"value": "7"
}, {
"begin": 867,
"end": 1444,
"name": "JUMPDEST"
}, {
"begin": 867,
"end": 1444,
"name": "STOP"
}, {
"begin": 1796,
"end": 2160,
"name": "tag",
"value": "3"
}, {
"begin": 1796,
"end": 2160,
"name": "JUMPDEST"
}, {
"begin": 1796,
"end": 2160,
"name": "CALLVALUE"
}, {
"begin": 8,
"end": 17,
"name": "DUP1"
}, {
"begin": 5,
"end": 7,
"name": "ISZERO"
}, {
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "9"
}, {
"begin": 5,
"end": 7,
"name": "JUMPI"
}, {
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
}, {
"begin": 27,
"end": 28,
"name": "DUP1"
}, {
"begin": 20,
"end": 32,
"name": "REVERT"
}, {
"begin": 5,
"end": 7,
"name": "tag",
"value": "9"
}, {
"begin": 5,
"end": 7,
"name": "JUMPDEST"
}, {
"begin": 1796,
"end": 2160,
"name": "POP"
}, {
"begin": 1796,
"end": 2160,
"name": "PUSH [tag]",
"value": "10"
}, {
"begin": 1796,
"end": 2160,
"name": "PUSH [tag]",
"value": "11"
}, {
"begin": 1796,
"end": 2160,
"name": "JUMP"
}, {
"begin": 1796,
"end": 2160,
"name": "tag",
"value": "10"
}, {
"begin": 1796,
"end": 2160,
"name": "JUMPDEST"
}, {
"begin": 1796,
"end": 2160,
"name": "PUSH",
"value": "40"
}, {
"begin": 1796,
"end": 2160,
"name": "DUP1"
}, {
"begin": 1796,
"end": 2160,
"name": "MLOAD"
}, {
"begin": 1796,
"end": 2160,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP1"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP3"
}, {
"begin": 1796,
"end": 2160,
"name": "AND"
}, {
"begin": 1796,
"end": 2160,
"name": "DUP3"
}, {
"begin": 1796,
"end": 2160,
"name": "MSTORE"
}, {
"begin": 1796,
"end": 2160,
"name": "MLOAD"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP1"
}, {
"begin": 1796,
"end": 2160,
"name": "DUP2"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP1"
}, {
"begin": 1796,
"end": 2160,
"name": "SUB"
}, {
"begin": 1796,
"end": 2160,
"name": "PUSH",
"value": "20"
}, {
"begin": 1796,
"end": 2160,
"name": "ADD"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP1"
}, {
"begin": 1796,
"end": 2160,
"name": "RETURN"
}, {
"begin": 650,
"end": 814,
"name": "tag",
"value": "4"
}, {
"begin": 650,
"end": 814,
"name": "JUMPDEST"
}, {
"begin": 650,
"end": 814,
"name": "CALLVALUE"
}, {
"begin": 8,
"end": 17,
"name": "DUP1"
}, {
"begin": 5,
"end": 7,
"name": "ISZERO"
}, {
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "12"
}, {
"begin": 5,
"end": 7,
"name": "JUMPI"
}, {
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
}, {
"begin": 27,
"end": 28,
"name": "DUP1"
}, {
"begin": 20,
"end": 32,
"name": "REVERT"
}, {
"begin": 5,
"end": 7,
"name": "tag",
"value": "12"
}, {
"begin": 5,
"end": 7,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": 650,
"end": 814,
"name": "PUSH [tag]",
"value": "7"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 650,
"end": 814,
"name": "PUSH",
"value": "4"
}, {
"begin": 650,
"end": 814,
"name": "CALLDATALOAD"
}, {
"begin": 650,
"end": 814,
"name": "AND"
}, {
"begin": 650,
"end": 814,
"name": "PUSH [tag]",
"value": "14"
}, {
"begin": 650,
"end": 814,
"name": "JUMP"
}, {
"begin": 1504,
"end": 1790,
"name": "tag",
"value": "5"
}, {
"begin": 1504,
"end": 1790,
"name": "JUMPDEST"
}, {
"begin": 1504,
"end": 1790,
"name": "CALLVALUE"
}, {
"begin": 8,
"end": 17,
"name": "DUP1"
}, {
"begin": 5,
"end": 7,
"name": "ISZERO"
}, {
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "15"
}, {
"begin": 5,
"end": 7,
"name": "JUMPI"
}, {
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
}, {
"begin": 27,
"end": 28,
"name": "DUP1"
}, {
"begin": 20,
"end": 32,
"name": "REVERT"
}, {
"begin": 5,
"end": 7,
"name": "tag",
"value": "15"
}, {
"begin": 5,
"end": 7,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": 1504,
"end": 1790,
"name": "PUSH [tag]",
"value": "7"
}, {
"begin": 1504,
"end": 1790,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1504,
"end": 1790,
"name": "PUSH",
"value": "4"
}, {
"begin": 1504,
"end": 1790,
"name": "CALLDATALOAD"
}, {
"begin": 1504,
"end": 1790,
"name": "AND"
}, {
"begin": 1504,
"end": 1790,
"name": "PUSH [tag]",
"value": "17"
}, {
"begin": 1504,
"end": 1790,
"name": "JUMP"
}, {
"begin": 867,
"end": 1444,
"name": "tag",
"value": "8"
}, {
"begin": 867,
"end": 1444,
"name": "JUMPDEST"
}, {
"begin": 944,
"end": 954,
"name": "CALLER"
}, {
"begin": 914,
"end": 934,
"name": "PUSH",
"value": "0"
}, {
"begin": 937,
"end": 955,
"name": "SWAP1"
}, {
"begin": 937,
"end": 955,
"name": "DUP2"
}, {
"begin": 937,
"end": 955,
"name": "MSTORE"
}, {
"begin": 937,
"end": 943,
"name": "PUSH",
"value": "1"
}, {
"begin": 937,
"end": 955,
"name": "PUSH",
"value": "20"
}, {
"begin": 937,
"end": 955,
"name": "DUP2"
}, {
"begin": 937,
"end": 955,
"name": "SWAP1"
}, {
"begin": 937,
"end": 955,
"name": "MSTORE"
}, {
"begin": 937,
"end": 955,
"name": "PUSH",
"value": "40"
}, {
"begin": 937,
"end": 955,
"name": "DUP3"
}, {
"begin": 937,
"end": 955,
"name": "KECCAK256"
}, {
"begin": 990,
"end": 1002,
"name": "SWAP1"
}, {
"begin": 990,
"end": 1002,
"name": "DUP2"
}, {
"begin": 990,
"end": 1002,
"name": "ADD"
}, {
"begin": 990,
"end": 1002,
"name": "SLOAD"
}, {
"begin": 937,
"end": 955,
"name": "SWAP1"
}, {
"begin": 937,
"end": 955,
"name": "SWAP2"
}, {
"begin": 914,
"end": 934,
"name": "SWAP1"
}, {
"begin": 990,
"end": 1002,
"name": "PUSH",
"value": "FF"
}, {
"begin": 990,
"end": 1002,
"name": "AND"
}, {
"begin": 986,
"end": 1011,
"name": "ISZERO"
}, {
"begin": 986,
"end": 1011,
"name": "PUSH [tag]",
"value": "19"
}, {
"begin": 986,
"end": 1011,
"name": "JUMPI"
}, {
"begin": 1004,
"end": 1011,
"name": "PUSH [tag]",
"value": "27"
}, {
"begin": 1004,
"end": 1011,
"name": "JUMP"
}, {
"begin": 986,
"end": 1011,
"name": "tag",
"value": "19"
}, {
"begin": 986,
"end": 1011,
"name": "JUMPDEST"
}, {
"begin": 1020,
"end": 1135,
"name": "tag",
"value": "20"
}, {
"begin": 1020,
"end": 1135,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 1027,
"end": 1037,
"name": "DUP4"
}, {
"begin": 1027,
"end": 1037,
"name": "DUP2"
}, {
"begin": 1027,
"end": 1037,
"name": "AND"
}, {
"begin": 1058,
"end": 1059,
"name": "PUSH",
"value": "0"
}, {
"begin": 1027,
"end": 1037,
"name": "SWAP1"
}, {
"begin": 1027,
"end": 1037,
"name": "DUP2"
}, {
"begin": 1027,
"end": 1037,
"name": "MSTORE"
}, {
"begin": 1027,
"end": 1033,
"name": "PUSH",
"value": "1"
}, {
"begin": 1027,
"end": 1037,
"name": "PUSH",
"value": "20"
}, {
"begin": 1027,
"end": 1037,
"name": "DUP2"
}, {
"begin": 1027,
"end": 1037,
"name": "SWAP1"
}, {
"begin": 1027,
"end": 1037,
"name": "MSTORE"
}, {
"begin": 1027,
"end": 1037,
"name": "PUSH",
"value": "40"
}, {
"begin": 1027,
"end": 1037,
"name": "SWAP1"
}, {
"begin": 1027,
"end": 1037,
"name": "SWAP2"
}, {
"begin": 1027,
"end": 1037,
"name": "KECCAK256"
}, {
"begin": 1027,
"end": 1046,
"name": "ADD"
}, {
"begin": 1027,
"end": 1046,
"name": "SLOAD"
}, {
"begin": 1027,
"end": 1046,
"name": "PUSH",
"value": "10000"
}, {
"begin": 1027,
"end": 1046,
"name": "SWAP1"
}, {
"begin": 1027,
"end": 1046,
"name": "DIV"
}, {
"begin": 1027,
"end": 1046,
"name": "AND"
}, {
"begin": 1027,
"end": 1060,
"name": "ISZERO"
}, {
"begin": 1027,
"end": 1060,
"name": "DUP1"
}, {
"begin": 1027,
"end": 1060,
"name": "ISZERO"
}, {
"begin": 1027,
"end": 1060,
"name": "SWAP1"
}, {
"begin": 1027,
"end": 1097,
"name": "PUSH [tag]",
"value": "22"
}, {
"begin": 1027,
"end": 1097,
"name": "JUMPI"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 1064,
"end": 1074,
"name": "DUP4"
}, {
"begin": 1064,
"end": 1074,
"name": "DUP2"
}, {
"begin": 1064,
"end": 1074,
"name": "AND"
}, {
"begin": 1064,
"end": 1074,
"name": "PUSH",
"value": "0"
}, {
"begin": 1064,
"end": 1074,
"name": "SWAP1"
}, {
"begin": 1064,
"end": 1074,
"name": "DUP2"
}, {
"begin": 1064,
"end": 1074,
"name": "MSTORE"
}, {
"begin": 1064,
"end": 1070,
"name": "PUSH",
"value": "1"
}, {
"begin": 1064,
"end": 1074,
"name": "PUSH",
"value": "20"
}, {
"begin": 1064,
"end": 1074,
"name": "DUP2"
}, {
"begin": 1064,
"end": 1074,
"name": "SWAP1"
}, {
"begin": 1064,
"end": 1074,
"name": "MSTORE"
}, {
"begin": 1064,
"end": 1074,
"name": "PUSH",
"value": "40"
}, {
"begin": 1064,
"end": 1074,
"name": "SWAP1"
}, {
"begin": 1064,
"end": 1074,
"name": "SWAP2"
}, {
"begin": 1064,
"end": 1074,
"name": "KECCAK256"
}, {
"begin": 1064,
"end": 1083,
"name": "ADD"
}, {
"begin": 1064,
"end": 1083,
"name": "SLOAD"
}, {
"begin": 1064,
"end": 1083,
"name": "PUSH",
"value": "10000"
}, {
"begin": 1064,
"end": 1083,
"name": "SWAP1"
}, {
"begin": 1064,
"end": 1083,
"name": "DIV"
}, {
"begin": 1064,
"end": 1083,
"name": "AND"
}, {
"begin": 1087,
"end": 1097,
"name": "CALLER"
}, {
"begin": 1064,
"end": 1097,
"name": "EQ"
}, {
"begin": 1064,
"end": 1097,
"name": "ISZERO"
}, {
"begin": 1027,
"end": 1097,
"name": "tag",
"value": "22"
}, {
"begin": 1027,
"end": 1097,
"name": "JUMPDEST"
}, {
"begin": 1020,
"end": 1135,
"name": "ISZERO"
}, {
"begin": 1020,
"end": 1135,
"name": "PUSH [tag]",
"value": "21"
}, {
"begin": 1020,
"end": 1135,
"name": "JUMPI"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 1116,
"end": 1126,
"name": "SWAP3"
}, {
"begin": 1116,
"end": 1126,
"name": "DUP4"
}, {
"begin": 1116,
"end": 1126,
"name": "AND"
}, {
"begin": 1116,
"end": 1126,
"name": "PUSH",
"value": "0"
}, {
"begin": 1116,
"end": 1126,
"name": "SWAP1"
}, {
"begin": 1116,
"end": 1126,
"name": "DUP2"
}, {
"begin": 1116,
"end": 1126,
"name": "MSTORE"
}, {
"begin": 1116,
"end": 1122,
"name": "PUSH",
"value": "1"
}, {
"begin": 1116,
"end": 1126,
"name": "PUSH",
"value": "20"
}, {
"begin": 1116,
"end": 1126,
"name": "DUP2"
}, {
"begin": 1116,
"end": 1126,
"name": "SWAP1"
}, {
"begin": 1116,
"end": 1126,
"name": "MSTORE"
}, {
"begin": 1116,
"end": 1126,
"name": "PUSH",
"value": "40"
}, {
"begin": 1116,
"end": 1126,
"name": "SWAP1"
}, {
"begin": 1116,
"end": 1126,
"name": "SWAP2"
}, {
"begin": 1116,
"end": 1126,
"name": "KECCAK256"
}, {
"begin": 1116,
"end": 1135,
"name": "ADD"
}, {
"begin": 1116,
"end": 1135,
"name": "SLOAD"
}, {
"begin": 1116,
"end": 1135,
"name": "PUSH",
"value": "10000"
}, {
"begin": 1116,
"end": 1135,
"name": "SWAP1"
}, {
"begin": 1116,
"end": 1135,
"name": "DIV"
}, {
"begin": 1116,
"end": 1135,
"name": "SWAP1"
}, {
"begin": 1116,
"end": 1135,
"name": "SWAP3"
}, {
"begin": 1116,
"end": 1135,
"name": "AND"
}, {
"begin": 1116,
"end": 1135,
"name": "SWAP2"
}, {
"begin": 1020,
"end": 1135,
"name": "PUSH [tag]",
"value": "20"
}, {
"begin": 1020,
"end": 1135,
"name": "JUMP"
}, {
"begin": 1020,
"end": 1135,
"name": "tag",
"value": "21"
}, {
"begin": 1020,
"end": 1135,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 1149,
"end": 1165,
"name": "DUP4"
}, {
"begin": 1149,
"end": 1165,
"name": "AND"
}, {
"begin": 1155,
"end": 1165,
"name": "CALLER"
}, {
"begin": 1149,
"end": 1165,
"name": "EQ"
}, {
"begin": 1145,
"end": 1174,
"name": "ISZERO"
}, {
"begin": 1145,
"end": 1174,
"name": "PUSH [tag]",
"value": "23"
}, {
"begin": 1145,
"end": 1174,
"name": "JUMPI"
}, {
"begin": 1167,
"end": 1174,
"name": "PUSH [tag]",
"value": "27"
}, {
"begin": 1167,
"end": 1174,
"name": "JUMP"
}, {
"begin": 1145,
"end": 1174,
"name": "tag",
"value": "23"
}, {
"begin": 1145,
"end": 1174,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": 1198,
"end": 1202,
"name": "PUSH",
"value": "1"
}, {
"begin": 1183,
"end": 1195,
"name": "DUP2"
}, {
"begin": 1183,
"end": 1195,
"name": "DUP2"
}, {
"begin": 1183,
"end": 1195,
"name": "ADD"
}, {
"begin": 1183,
"end": 1202,
"name": "DUP1"
}, {
"begin": 1183,
"end": 1202,
"name": "SLOAD"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "FF"
}, {
"begin": -1,
"end": -1,
"name": "NOT"
}, {
"begin": 1183,
"end": 1202,
"name": "AND"
}, {
"begin": 1183,
"end": 1202,
"name": "DUP3"
}, {
"begin": 1183,
"end": 1202,
"name": "OR"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000"
}, {
"begin": -1,
"end": -1,
"name": "NOT"
}, {
"begin": 1212,
"end": 1232,
"name": "AND"
}, {
"begin": 1212,
"end": 1232,
"name": "PUSH",
"value": "10000"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 1212,
"end": 1232,
"name": "DUP7"
}, {
"begin": 1212,
"end": 1232,
"name": "AND"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP1"
}, {
"begin": 1212,
"end": 1232,
"name": "DUP2"
}, {
"begin": 1212,
"end": 1232,
"name": "MUL"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP2"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP1"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP2"
}, {
"begin": 1212,
"end": 1232,
"name": "OR"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP1"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP2"
}, {
"begin": 1212,
"end": 1232,
"name": "SSTORE"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "0"
}, {
"begin": 1269,
"end": 1279,
"name": "SWAP1"
}, {
"begin": 1269,
"end": 1279,
"name": "DUP2"
}, {
"begin": 1269,
"end": 1279,
"name": "MSTORE"
}, {
"begin": 1269,
"end": 1279,
"name": "PUSH",
"value": "20"
}, {
"begin": 1269,
"end": 1279,
"name": "DUP3"
}, {
"begin": 1269,
"end": 1279,
"name": "SWAP1"
}, {
"begin": 1269,
"end": 1279,
"name": "MSTORE"
}, {
"begin": 1269,
"end": 1279,
"name": "PUSH",
"value": "40"
}, {
"begin": 1269,
"end": 1279,
"name": "SWAP1"
}, {
"begin": 1269,
"end": 1279,
"name": "KECCAK256"
}, {
"begin": 1293,
"end": 1309,
"name": "SWAP1"
}, {
"begin": 1293,
"end": 1309,
"name": "DUP2"
}, {
"begin": 1293,
"end": 1309,
"name": "ADD"
}, {
"begin": 1293,
"end": 1309,
"name": "SLOAD"
}, {
"begin": 1183,
"end": 1202,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1293,
"end": 1309,
"name": "AND"
}, {
"begin": 1289,
"end": 1437,
"name": "ISZERO"
}, {
"begin": 1289,
"end": 1437,
"name": "PUSH [tag]",
"value": "24"
}, {
"begin": 1289,
"end": 1437,
"name": "JUMPI"
}, {
"begin": 1363,
"end": 1376,
"name": "DUP2"
}, {
"begin": 1363,
"end": 1376,
"name": "SLOAD"
}, {
"begin": 1333,
"end": 1348,
"name": "PUSH",
"value": "1"
}, {
"begin": 1333,
"end": 1348,
"name": "DUP3"
}, {
"begin": 1333,
"end": 1348,
"name": "ADD"
}, {
"begin": 1333,
"end": 1348,
"name": "SLOAD"
}, {
"begin": 1323,
"end": 1332,
"name": "PUSH",
"value": "2"
}, {
"begin": 1323,
"end": 1349,
"name": "DUP1"
}, {
"begin": 1323,
"end": 1349,
"name": "SLOAD"
}, {
"begin": 1323,
"end": 1332,
"name": "SWAP1"
}, {
"begin": 1323,
"end": 1332,
"name": "SWAP2"
}, {
"begin": 1333,
"end": 1348,
"name": "PUSH",
"value": "100"
}, {
"begin": 1333,
"end": 1348,
"name": "SWAP1"
}, {
"begin": 1333,
"end": 1348,
"name": "DIV"
}, {
"begin": 1333,
"end": 1348,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1333,
"end": 1348,
"name": "AND"
}, {
"begin": 1333,
"end": 1348,
"name": "SWAP1"
}, {
"begin": 1323,
"end": 1349,
"name": "DUP2"
}, {
"begin": 1323,
"end": 1349,
"name": "LT"
}, {
"begin": 1323,
"end": 1349,
"name": "PUSH [tag]",
"value": "25"
}, {
"begin": 1323,
"end": 1349,
"name": "JUMPI"
}, {
"begin": 1323,
"end": 1349,
"name": "INVALID"
}, {
"begin": 1323,
"end": 1349,
"name": "tag",
"value": "25"
}, {
"begin": 1323,
"end": 1349,
"name": "JUMPDEST"
}, {
"begin": 1323,
"end": 1349,
"name": "PUSH",
"value": "0"
}, {
"begin": 1323,
"end": 1349,
"name": "SWAP2"
}, {
"begin": 1323,
"end": 1349,
"name": "DUP3"
}, {
"begin": 1323,
"end": 1349,
"name": "MSTORE"
}, {
"begin": 1323,
"end": 1349,
"name": "PUSH",
"value": "20"
}, {
"begin": 1323,
"end": 1349,
"name": "SWAP1"
}, {
"begin": 1323,
"end": 1349,
"name": "SWAP2"
}, {
"begin": 1323,
"end": 1349,
"name": "KECCAK256"
}, {
"begin": 1323,
"end": 1349,
"name": "ADD"
}, {
"begin": 1323,
"end": 1376,
"name": "DUP1"
}, {
"begin": 1323,
"end": 1376,
"name": "SLOAD"
}, {
"begin": 1323,
"end": 1376,
"name": "SWAP1"
}, {
"begin": 1323,
"end": 1376,
"name": "SWAP2"
}, {
"begin": 1323,
"end": 1376,
"name": "ADD"
}, {
"begin": 1323,
"end": 1376,
"name": "SWAP1"
}, {
"begin": 1323,
"end": 1376,
"name": "SSTORE"
}, {
"begin": 1289,
"end": 1437,
"name": "PUSH [tag]",
"value": "27"
}, {
"begin": 1289,
"end": 1437,
"name": "JUMP"
}, {
"begin": 1289,
"end": 1437,
"name": "tag",
"value": "24"
}, {
"begin": 1289,
"end": 1437,
"name": "JUMPDEST"
}, {
"begin": 1424,
"end": 1437,
"name": "DUP2"
}, {
"begin": 1424,
"end": 1437,
"name": "SLOAD"
}, {
"begin": 1403,
"end": 1437,
"name": "DUP2"
}, {
"begin": 1403,
"end": 1437,
"name": "SLOAD"
}, {
"begin": 1403,
"end": 1437,
"name": "ADD"
}, {
"begin": 1403,
"end": 1437,
"name": "DUP2"
}, {
"begin": 1403,
"end": 1437,
"name": "SSTORE"
}, {
"begin": 1289,
"end": 1437,
"name": "tag",
"value": "27"
}, {
"begin": 1289,
"end": 1437,
"name": "JUMPDEST"
}, {
"begin": 867,
"end": 1444,
"name": "POP"
}, {
"begin": 867,
"end": 1444,
"name": "POP"
}, {
"begin": 867,
"end": 1444,
"name": "POP"
}, {
"begin": 867,
"end": 1444,
"name": "JUMP",
"value": "[out]"
}, {
"begin": 1796,
"end": 2160,
"name": "tag",
"value": "11"
}, {
"begin": 1796,
"end": 2160,
"name": "JUMPDEST"
}, {
"begin": 1848,
"end": 1870,
"name": "PUSH",
"value": "0"
}, {
"begin": 1848,
"end": 1870,
"name": "DUP1"
}, {
"begin": 1848,
"end": 1870,
"name": "DUP1"
}, {
"begin": 1920,
"end": 2154,
"name": "tag",
"value": "29"
}, {
"begin": 1920,
"end": 2154,
"name": "JUMPDEST"
}, {
"begin": 1948,
"end": 1957,
"name": "PUSH",
"value": "2"
}, {
"begin": 1948,
"end": 1964,
"name": "SLOAD"
}, {
"begin": 1941,
"end": 1964,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1941,
"end": 1964,
"name": "DUP3"
}, {
"begin": 1941,
"end": 1964,
"name": "AND"
}, {
"begin": 1941,
"end": 1964,
"name": "LT"
}, {
"begin": 1920,
"end": 2154,
"name": "ISZERO"
}, {
"begin": 1920,
"end": 2154,
"name": "PUSH [tag]",
"value": "30"
}, {
"begin": 1920,
"end": 2154,
"name": "JUMPI"
}, {
"begin": 2018,
"end": 2034,
"name": "DUP2"
}, {
"begin": 1990,
"end": 1999,
"name": "PUSH",
"value": "2"
}, {
"begin": 2000,
"end": 2004,
"name": "DUP3"
}, {
"begin": 1990,
"end": 2005,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1990,
"end": 2005,
"name": "AND"
}, {
"begin": 1990,
"end": 2005,
"name": "DUP2"
}, {
"begin": 1990,
"end": 2005,
"name": "SLOAD"
}, {
"begin": 1990,
"end": 2005,
"name": "DUP2"
}, {
"begin": 1990,
"end": 2005,
"name": "LT"
}, {
"begin": 1990,
"end": 2005,
"name": "ISZERO"
}, {
"begin": 1990,
"end": 2005,
"name": "ISZERO"
}, {
"begin": 1990,
"end": 2005,
"name": "PUSH [tag]",
"value": "32"
}, {
"begin": 1990,
"end": 2005,
"name": "JUMPI"
}, {
"begin": 1990,
"end": 2005,
"name": "INVALID"
}, {
"begin": 1990,
"end": 2005,
"name": "tag",
"value": "32"
}, {
"begin": 1990,
"end": 2005,
"name": "JUMPDEST"
}, {
"begin": 1990,
"end": 2005,
"name": "SWAP1"
}, {
"begin": 1990,
"end": 2005,
"name": "PUSH",
"value": "0"
}, {
"begin": 1990,
"end": 2005,
"name": "MSTORE"
}, {
"begin": 1990,
"end": 2005,
"name": "PUSH",
"value": "20"
}, {
"begin": 1990,
"end": 2005,
"name": "PUSH",
"value": "0"
}, {
"begin": 1990,
"end": 2005,
"name": "KECCAK256"
}, {
"begin": 1990,
"end": 2005,
"name": "ADD"
}, {
"begin": 1990,
"end": 2015,
"name": "PUSH",
"value": "0"
}, {
"begin": 1990,
"end": 2015,
"name": "ADD"
}, {
"begin": 1990,
"end": 2015,
"name": "SLOAD"
}, {
"begin": 1990,
"end": 2034,
"name": "GT"
}, {
"begin": 1986,
"end": 2154,
"name": "ISZERO"
}, {
"begin": 1986,
"end": 2154,
"name": "PUSH [tag]",
"value": "34"
}, {
"begin": 1986,
"end": 2154,
"name": "JUMPI"
}, {
"begin": 2073,
"end": 2082,
"name": "PUSH",
"value": "2"
}, {
"begin": 2073,
"end": 2088,
"name": "DUP1"
}, {
"begin": 2073,
"end": 2088,
"name": "SLOAD"
}, {
"begin": 2073,
"end": 2088,
"name": "PUSH",
"value": "FF"
}, {
"begin": 2073,
"end": 2088,
"name": "DUP4"
}, {
"begin": 2073,
"end": 2088,
"name": "AND"
}, {
"begin": 2073,
"end": 2088,
"name": "SWAP1"
}, {
"begin": 2073,
"end": 2088,
"name": "DUP2"
}, {
"begin": 2073,
"end": 2088,
"name": "LT"
}, {
"begin": 2073,
"end": 2088,
"name": "PUSH [tag]",
"value": "35"
}, {
"begin": 2073,
"end": 2088,
"name": "JUMPI"
}, {
"begin": 2073,
"end": 2088,
"name": "INVALID"
}, {
"begin": 2073,
"end": 2088,
"name": "tag",
"value": "35"
}, {
"begin": 2073,
"end": 2088,
"name": "JUMPDEST"
}, {
"begin": 2073,
"end": 2088,
"name": "SWAP1"
}, {
"begin": 2073,
"end": 2088,
"name": "PUSH",
"value": "0"
}, {
"begin": 2073,
"end": 2088,
"name": "MSTORE"
}, {
"begin": 2073,
"end": 2088,
"name": "PUSH",
"value": "20"
}, {
"begin": 2073,
"end": 2088,
"name": "PUSH",
"value": "0"
}, {
"begin": 2073,
"end": 2088,
"name": "KECCAK256"
}, {
"begin": 2073,
"end": 2088,
"name": "ADD"
}, {
"begin": 2073,
"end": 2098,
"name": "PUSH",
"value": "0"
}, {
"begin": 2073,
"end": 2098,
"name": "ADD"
}, {
"begin": 2073,
"end": 2098,
"name": "SLOAD"
}, {
"begin": 2054,
"end": 2098,
"name": "SWAP2"
}, {
"begin": 2054,
"end": 2098,
"name": "POP"
}, {
"begin": 2135,
"end": 2139,
"name": "DUP1"
}, {
"begin": 2116,
"end": 2139,
"name": "SWAP3"
}, {
"begin": 2116,
"end": 2139,
"name": "POP"
}, {
"begin": 1986,
"end": 2154,
"name": "tag",
"value": "34"
}, {
"begin": 1986,
"end": 2154,
"name": "JUMPDEST"
}, {
"begin": 1966,
"end": 1972,
"name": "PUSH",
"value": "1"
}, {
"begin": 1966,
"end": 1972,
"name": "ADD"
}, {
"begin": 1920,
"end": 2154,
"name": "PUSH [tag]",
"value": "29"
}, {
"begin": 1920,
"end": 2154,
"name": "JUMP"
}, {
"begin": 1920,
"end": 2154,
"name": "tag",
"value": "30"
}, {
"begin": 1920,
"end": 2154,
"name": "JUMPDEST"
}, {
"begin": 1796,
"end": 2160,
"name": "POP"
}, {
"begin": 1796,
"end": 2160,
"name": "POP"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP1"
}, {
"begin": 1796,
"end": 2160,
"name": "JUMP",
"value": "[out]"
}, {
"begin": 650,
"end": 814,
"name": "tag",
"value": "14"
}, {
"begin": 650,
"end": 814,
"name": "JUMPDEST"
}, {
"begin": 727,
"end": 738,
"name": "PUSH",
"value": "0"
}, {
"begin": 727,
"end": 738,
"name": "SLOAD"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 727,
"end": 738,
"name": "AND"
}, {
"begin": 713,
"end": 723,
"name": "CALLER"
}, {
"begin": 713,
"end": 738,
"name": "EQ"
}, {
"begin": 713,
"end": 738,
"name": "ISZERO"
}, {
"begin": 713,
"end": 738,
"name": "DUP1"
}, {
"begin": 713,
"end": 763,
"name": "PUSH [tag]",
"value": "38"
}, {
"begin": 713,
"end": 763,
"name": "JUMPI"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 742,
"end": 757,
"name": "DUP2"
}, {
"begin": 742,
"end": 757,
"name": "AND"
}, {
"begin": 742,
"end": 757,
"name": "PUSH",
"value": "0"
}, {
"begin": 742,
"end": 757,
"name": "SWAP1"
}, {
"begin": 742,
"end": 757,
"name": "DUP2"
}, {
"begin": 742,
"end": 757,
"name": "MSTORE"
}, {
"begin": 742,
"end": 748,
"name": "PUSH",
"value": "1"
}, {
"begin": 742,
"end": 757,
"name": "PUSH",
"value": "20"
}, {
"begin": 742,
"end": 757,
"name": "DUP2"
}, {
"begin": 742,
"end": 757,
"name": "SWAP1"
}, {
"begin": 742,
"end": 757,
"name": "MSTORE"
}, {
"begin": 742,
"end": 757,
"name": "PUSH",
"value": "40"
}, {
"begin": 742,
"end": 757,
"name": "SWAP1"
}, {
"begin": 742,
"end": 757,
"name": "SWAP2"
}, {
"begin": 742,
"end": 757,
"name": "KECCAK256"
}, {
"begin": 742,
"end": 763,
"name": "ADD"
}, {
"begin": 742,
"end": 763,
"name": "SLOAD"
}, {
"begin": 742,
"end": 763,
"name": "PUSH",
"value": "FF"
}, {
"begin": 742,
"end": 763,
"name": "AND"
}, {
"begin": 713,
"end": 763,
"name": "tag",
"value": "38"
}, {
"begin": 713,
"end": 763,
"name": "JUMPDEST"
}, {
"begin": 709,
"end": 772,
"name": "ISZERO"
}, {
"begin": 709,
"end": 772,
"name": "PUSH [tag]",
"value": "39"
}, {
"begin": 709,
"end": 772,
"name": "JUMPI"
}, {
"begin": 765,
"end": 772,
"name": "PUSH [tag]",
"value": "37"
}, {
"begin": 765,
"end": 772,
"name": "JUMP"
}, {
"begin": 709,
"end": 772,
"name": "tag",
"value": "39"
}, {
"begin": 709,
"end": 772,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 781,
"end": 796,
"name": "DUP2"
}, {
"begin": 781,
"end": 796,
"name": "AND"
}, {
"begin": 781,
"end": 796,
"name": "PUSH",
"value": "0"
}, {
"begin": 781,
"end": 796,
"name": "SWAP1"
}, {
"begin": 781,
"end": 796,
"name": "DUP2"
}, {
"begin": 781,
"end": 796,
"name": "MSTORE"
}, {
"begin": 806,
"end": 807,
"name": "PUSH",
"value": "1"
}, {
"begin": 781,
"end": 796,
"name": "PUSH",
"value": "20"
}, {
"begin": 781,
"end": 796,
"name": "DUP2"
}, {
"begin": 781,
"end": 796,
"name": "SWAP1"
}, {
"begin": 781,
"end": 796,
"name": "MSTORE"
}, {
"begin": 781,
"end": 796,
"name": "PUSH",
"value": "40"
}, {
"begin": 781,
"end": 796,
"name": "SWAP1"
}, {
"begin": 781,
"end": 796,
"name": "SWAP2"
}, {
"begin": 781,
"end": 796,
"name": "KECCAK256"
}, {
"begin": 781,
"end": 807,
"name": "SSTORE"
}, {
"begin": 650,
"end": 814,
"name": "tag",
"value": "37"
}, {
"begin": 650,
"end": 814,
"name": "JUMPDEST"
}, {
"begin": 650,
"end": 814,
"name": "POP"
}, {
"begin": 650,
"end": 814,
"name": "JUMP",
"value": "[out]"
}, {
"begin": 1504,
"end": 1790,
"name": "tag",
"value": "17"
}, {
"begin": 1504,
"end": 1790,
"name": "JUMPDEST"
}, {
"begin": 1583,
"end": 1593,
"name": "CALLER"
}, {
"begin": 1553,
"end": 1573,
"name": "PUSH",
"value": "0"
}, {
"begin": 1576,
"end": 1594,
"name": "SWAP1"
}, {
"begin": 1576,
"end": 1594,
"name": "DUP2"
}, {
"begin": 1576,
"end": 1594,
"name": "MSTORE"
}, {
"begin": 1576,
"end": 1582,
"name": "PUSH",
"value": "1"
}, {
"begin": 1576,
"end": 1594,
"name": "PUSH",
"value": "20"
}, {
"begin": 1576,
"end": 1594,
"name": "DUP2"
}, {
"begin": 1576,
"end": 1594,
"name": "SWAP1"
}, {
"begin": 1576,
"end": 1594,
"name": "MSTORE"
}, {
"begin": 1576,
"end": 1594,
"name": "PUSH",
"value": "40"
}, {
"begin": 1576,
"end": 1594,
"name": "SWAP1"
}, {
"begin": 1576,
"end": 1594,
"name": "SWAP2"
}, {
"begin": 1576,
"end": 1594,
"name": "KECCAK256"
}, {
"begin": 1608,
"end": 1620,
"name": "SWAP1"
}, {
"begin": 1608,
"end": 1620,
"name": "DUP2"
}, {
"begin": 1608,
"end": 1620,
"name": "ADD"
}, {
"begin": 1608,
"end": 1620,
"name": "SLOAD"
}, {
"begin": 1608,
"end": 1620,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1608,
"end": 1620,
"name": "AND"
}, {
"begin": 1608,
"end": 1620,
"name": "DUP1"
}, {
"begin": 1608,
"end": 1654,
"name": "PUSH [tag]",
"value": "41"
}, {
"begin": 1608,
"end": 1654,
"name": "JUMPI"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": 1638,
"end": 1647,
"name": "PUSH",
"value": "2"
}, {
"begin": 1638,
"end": 1654,
"name": "SLOAD"
}, {
"begin": 1624,
"end": 1654,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1624,
"end": 1654,
"name": "DUP4"
}, {
"begin": 1624,
"end": 1654,
"name": "AND"
}, {
"begin": 1624,
"end": 1654,
"name": "LT"
}, {
"begin": 1624,
"end": 1654,
"name": "ISZERO"
}, {
"begin": 1608,
"end": 1654,
"name": "tag",
"value": "41"
}, {
"begin": 1608,
"end": 1654,
"name": "JUMPDEST"
}, {
"begin": 1604,
"end": 1663,
"name": "ISZERO"
}, {
"begin": 1604,
"end": 1663,
"name": "PUSH [tag]",
"value": "42"
}, {
"begin": 1604,
"end": 1663,
"name": "JUMPI"
}, {
"begin": 1656,
"end": 1663,
"name": "PUSH [tag]",
"value": "40"
}, {
"begin": 1656,
"end": 1663,
"name": "JUMP"
}, {
"begin": 1604,
"end": 1663,
"name": "tag",
"value": "42"
}, {
"begin": 1604,
"end": 1663,
"name": "JUMPDEST"
}, {
"begin": 1687,
"end": 1691,
"name": "PUSH",
"value": "1"
}, {
"begin": 1672,
"end": 1684,
"name": "DUP2"
}, {
"begin": 1672,
"end": 1684,
"name": "DUP2"
}, {
"begin": 1672,
"end": 1684,
"name": "ADD"
}, {
"begin": 1672,
"end": 1691,
"name": "DUP1"
}, {
"begin": 1672,
"end": 1691,
"name": "SLOAD"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "FF"
}, {
"begin": -1,
"end": -1,
"name": "NOT"
}, {
"begin": 1672,
"end": 1691,
"name": "AND"
}, {
"begin": 1672,
"end": 1691,
"name": "SWAP1"
}, {
"begin": 1672,
"end": 1691,
"name": "SWAP2"
}, {
"begin": 1672,
"end": 1691,
"name": "OR"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "FF00"
}, {
"begin": -1,
"end": -1,
"name": "NOT"
}, {
"begin": 1701,
"end": 1725,
"name": "AND"
}, {
"begin": 1672,
"end": 1691,
"name": "PUSH",
"value": "100"
}, {
"begin": 1672,
"end": 1691,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1701,
"end": 1725,
"name": "DUP6"
}, {
"begin": 1701,
"end": 1725,
"name": "AND"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP1"
}, {
"begin": 1701,
"end": 1725,
"name": "DUP2"
}, {
"begin": 1701,
"end": 1725,
"name": "MUL"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP2"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP1"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP2"
}, {
"begin": 1701,
"end": 1725,
"name": "OR"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP1"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP2"
}, {
"begin": 1701,
"end": 1725,
"name": "SSTORE"
}, {
"begin": 1770,
"end": 1783,
"name": "DUP2"
}, {
"begin": 1770,
"end": 1783,
"name": "SLOAD"
}, {
"begin": 1735,
"end": 1744,
"name": "PUSH",
"value": "2"
}, {
"begin": 1735,
"end": 1756,
"name": "DUP1"
}, {
"begin": 1735,
"end": 1756,
"name": "SLOAD"
}, {
"begin": 1770,
"end": 1783,
"name": "SWAP2"
}, {
"begin": 1770,
"end": 1783,
"name": "SWAP3"
}, {
"begin": 1735,
"end": 1744,
"name": "SWAP1"
}, {
"begin": 1735,
"end": 1744,
"name": "SWAP2"
}, {
"begin": 1735,
"end": 1756,
"name": "DUP2"
}, {
"begin": 1735,
"end": 1756,
"name": "LT"
}, {
"begin": 1735,
"end": 1756,
"name": "PUSH [tag]",
"value": "43"
}, {
"begin": 1735,
"end": 1756,
"name": "JUMPI"
}, {
"begin": 1735,
"end": 1756,
"name": "INVALID"
}, {
"begin": 1735,
"end": 1756,
"name": "tag",
"value": "43"
}, {
"begin": 1735,
"end": 1756,
"name": "JUMPDEST"
}, {
"begin": 1735,
"end": 1756,
"name": "PUSH",
"value": "0"
}, {
"begin": 1735,
"end": 1756,
"name": "SWAP2"
}, {
"begin": 1735,
"end": 1756,
"name": "DUP3"
}, {
"begin": 1735,
"end": 1756,
"name": "MSTORE"
}, {
"begin": 1735,
"end": 1756,
"name": "PUSH",
"value": "20"
}, {
"begin": 1735,
"end": 1756,
"name": "SWAP1"
}, {
"begin": 1735,
"end": 1756,
"name": "SWAP2"
}, {
"begin": 1735,
"end": 1756,
"name": "KECCAK256"
}, {
"begin": 1735,
"end": 1756,
"name": "ADD"
}, {
"begin": 1735,
"end": 1783,
"name": "DUP1"
}, {
"begin": 1735,
"end": 1783,
"name": "SLOAD"
}, {
"begin": 1735,
"end": 1783,
"name": "SWAP1"
}, {
"begin": 1735,
"end": 1783,
"name": "SWAP2"
}, {
"begin": 1735,
"end": 1783,
"name": "ADD"
}, {
"begin": 1735,
"end": 1783,
"name": "SWAP1"
}, {
"begin": 1735,
"end": 1783,
"name": "SSTORE"
}, {
"begin": 1504,
"end": 1790,
"name": "tag",
"value": "40"
}, {
"begin": 1504,
"end": 1790,
"name": "JUMPDEST"
}, {
"begin": 1504,
"end": 1790,
"name": "POP"
}, {
"begin": 1504,
"end": 1790,
"name": "POP"
}, {
"begin": 1504,
"end": 1790,
"name": "JUMP",
"value": "[out]"
}]
}
}
},
"methodIdentifiers": {
"delegate(address)": "5c19a95c",
"giveRightToVote(address)": "9e7b8d61",
"vote(uint8)": "b3f98adc",
"winningProposal()": "609ff1bd"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"winningProposal\",\"outputs\":[{\"name\":\"_winningProposal\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"toVoter\",\"type\":\"address\"}],\"name\":\"giveRightToVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"toProposal\",\"type\":\"uint8\"}],\"name\":\"vote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_numProposals\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"delegate(address)\":{\"notice\":\"Delegate your vote to the voter $(to).\"},\"giveRightToVote(address)\":{\"notice\":\"Give $(toVoter) the right to vote on this ballot. May only be called by $(chairperson).\"},\"vote(uint8)\":{\"notice\":\"Give a single vote to proposal $(toProposal).\"}}}},\"settings\":{\"compilationTarget\":{\"browser/ballot.sol\":\"Ballot\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"browser/ballot.sol\":{\"keccak256\":\"0xf5e17a682643d68dac41e468e63c07dd2de956fe2627f6d4925bd0d7a5613b8d\",\"urls\":[\"bzzr://5405f025f3fe1155284788e11f994c2bd78aa861e0fab004b1da38b8a4e91d0e\"]}},\"version\":1}",
"userdoc": {
"methods": {
"delegate(address)": {
"notice": "Delegate your vote to the voter $(to)."
},
"giveRightToVote(address)": {
"notice": "Give $(toVoter) the right to vote on this ballot. May only be called by $(chairperson)."
},
"vote(uint8)": {
"notice": "Give a single vote to proposal $(toProposal)."
}
}
}
}
}
},
"errors": [{
"component": "general",
"formattedMessage": "browser/ballot.sol:19:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use \"constructor(...) { ... }\" instead.\n function Ballot(uint8 _numProposals) public {\n ^ (Relevant source part starts here and spans across multiple lines).\n",
"message": "Defining constructors as functions with the same name as the contract is deprecated. Use \"constructor(...) { ... }\" instead.",
"severity": "warning",
"sourceLocation": {
"end": 540,
"file": "browser/ballot.sol",
"start": 373
},
"type": "Warning"
}],
"sources": {
"browser/ballot.sol": {
"id": 0,
"legacyAST": {
"attributes": {
"absolutePath": "browser/ballot.sol",
"exportedSymbols": {
"Ballot": [238]
}
},
"children": [{
"attributes": {
"literals": ["solidity", "^", "0.4", ".0"]
},
"id": 1,
"name": "PragmaDirective",
"src": "0:23:0"
}, {
"attributes": {
"baseContracts": [null],
"contractDependencies": [null],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"linearizedBaseContracts": [238],
"name": "Ballot",
"scope": 239
},
"children": [{
"attributes": {
"canonicalName": "Ballot.Voter",
"name": "Voter",
"scope": 238,
"visibility": "public"
},
"children": [{
"attributes": {
"constant": false,
"name": "weight",
"scope": 10,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint",
"type": "uint256"
},
"id": 2,
"name": "ElementaryTypeName",
"src": "70:4:0"
}],
"id": 3,
"name": "VariableDeclaration",
"src": "70:11:0"
}, {
"attributes": {
"constant": false,
"name": "voted",
"scope": 10,
"stateVariable": false,
"storageLocation": "default",
"type": "bool",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "bool",
"type": "bool"
},
"id": 4,
"name": "ElementaryTypeName",
"src": "91:4:0"
}],
"id": 5,
"name": "VariableDeclaration",
"src": "91:10:0"
}, {
"attributes": {
"constant": false,
"name": "vote",
"scope": 10,
"stateVariable": false,
"storageLocation": "default",
"type": "uint8",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint8",
"type": "uint8"
},
"id": 6,
"name": "ElementaryTypeName",
"src": "111:5:0"
}],
"id": 7,
"name": "VariableDeclaration",
"src": "111:10:0"
}, {
"attributes": {
"constant": false,
"name": "delegate",
"scope": 10,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "address",
"type": "address"
},
"id": 8,
"name": "ElementaryTypeName",
"src": "131:7:0"
}],
"id": 9,
"name": "VariableDeclaration",
"src": "131:16:0"
}],
"id": 10,
"name": "StructDefinition",
"src": "47:107:0"
}, {
"attributes": {
"canonicalName": "Ballot.Proposal",
"name": "Proposal",
"scope": 238,
"visibility": "public"
},
"children": [{
"attributes": {
"constant": false,
"name": "voteCount",
"scope": 13,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint",
"type": "uint256"
},
"id": 11,
"name": "ElementaryTypeName",
"src": "185:4:0"
}],
"id": 12,
"name": "VariableDeclaration",
"src": "185:14:0"
}],
"id": 13,
"name": "StructDefinition",
"src": "159:47:0"
}, {
"attributes": {
"constant": false,
"name": "chairperson",
"scope": 238,
"stateVariable": true,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "address",
"type": "address"
},
"id": 14,
"name": "ElementaryTypeName",
"src": "212:7:0"
}],
"id": 15,
"name": "VariableDeclaration",
"src": "212:19:0"
}, {
"attributes": {
"constant": false,
"name": "voters",
"scope": 238,
"stateVariable": true,
"storageLocation": "default",
"type": "mapping(address => struct Ballot.Voter)",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"type": "mapping(address => struct Ballot.Voter)"
},
"children": [{
"attributes": {
"name": "address",
"type": "address"
},
"id": 16,
"name": "ElementaryTypeName",
"src": "245:7:0"
}, {
"attributes": {
"contractScope": null,
"name": "Voter",
"referencedDeclaration": 10,
"type": "struct Ballot.Voter"
},
"id": 17,
"name": "UserDefinedTypeName",
"src": "256:5:0"
}],
"id": 18,
"name": "Mapping",
"src": "237:25:0"
}],
"id": 19,
"name": "VariableDeclaration",
"src": "237:32:0"
}, {
"attributes": {
"constant": false,
"name": "proposals",
"scope": 238,
"stateVariable": true,
"storageLocation": "default",
"type": "struct Ballot.Proposal[]",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"length": null,
"type": "struct Ballot.Proposal[]"
},
"children": [{
"attributes": {
"contractScope": null,
"name": "Proposal",
"referencedDeclaration": 13,
"type": "struct Ballot.Proposal"
},
"id": 20,
"name": "UserDefinedTypeName",
"src": "275:8:0"
}],
"id": 21,
"name": "ArrayTypeName",
"src": "275:10:0"
}],
"id": 22,
"name": "VariableDeclaration",
"src": "275:20:0"
}, {
"attributes": {
"constant": false,
"documentation": "Create a new ballot with $(_numProposals) different proposals.",
"implemented": true,
"isConstructor": true,
"modifiers": [null],
"name": "Ballot",
"payable": false,
"scope": 238,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
"children": [{
"children": [{
"attributes": {
"constant": false,
"name": "_numProposals",
"scope": 46,
"stateVariable": false,
"storageLocation": "default",
"type": "uint8",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint8",
"type": "uint8"
},
"id": 23,
"name": "ElementaryTypeName",
"src": "389:5:0"
}],
"id": 24,
"name": "VariableDeclaration",
"src": "389:19:0"
}],
"id": 25,
"name": "ParameterList",
"src": "388:21:0"
}, {
"attributes": {
"parameters": [null]
},
"children": [],
"id": 26,
"name": "ParameterList",
"src": "417:0:0"
}, {
"children": [{
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 15,
"type": "address",
"value": "chairperson"
},
"id": 27,
"name": "Identifier",
"src": "427:11:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 28,
"name": "Identifier",
"src": "441:3:0"
}],
"id": 29,
"name": "MemberAccess",
"src": "441:10:0"
}],
"id": 30,
"name": "Assignment",
"src": "427:24:0"
}],
"id": 31,
"name": "ExpressionStatement",
"src": "427:24:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 32,
"name": "Identifier",
"src": "461:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 15,
"type": "address",
"value": "chairperson"
},
"id": 33,
"name": "Identifier",
"src": "468:11:0"
}],
"id": 34,
"name": "IndexAccess",
"src": "461:19:0"
}],
"id": 35,
"name": "MemberAccess",
"src": "461:26:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "31",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 1",
"value": "1"
},
"id": 36,
"name": "Literal",
"src": "490:1:0"
}],
"id": 37,
"name": "Assignment",
"src": "461:30:0"
}],
"id": 38,
"name": "ExpressionStatement",
"src": "461:30:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "length",
"referencedDeclaration": null,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 39,
"name": "Identifier",
"src": "501:9:0"
}],
"id": 41,
"name": "MemberAccess",
"src": "501:16:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 24,
"type": "uint8",
"value": "_numProposals"
},
"id": 42,
"name": "Identifier",
"src": "520:13:0"
}],
"id": 43,
"name": "Assignment",
"src": "501:32:0"
}],
"id": 44,
"name": "ExpressionStatement",
"src": "501:32:0"
}],
"id": 45,
"name": "Block",
"src": "417:123:0"
}],
"id": 46,
"name": "FunctionDefinition",
"src": "373:167:0"
}, {
"attributes": {
"constant": false,
"documentation": "Give $(toVoter) the right to vote on this ballot.\n May only be called by $(chairperson).",
"implemented": true,
"isConstructor": false,
"modifiers": [null],
"name": "giveRightToVote",
"payable": false,
"scope": 238,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
"children": [{
"children": [{
"attributes": {
"constant": false,
"name": "toVoter",
"scope": 70,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "address",
"type": "address"
},
"id": 47,
"name": "ElementaryTypeName",
"src": "675:7:0"
}],
"id": 48,
"name": "VariableDeclaration",
"src": "675:15:0"
}],
"id": 49,
"name": "ParameterList",
"src": "674:17:0"
}, {
"attributes": {
"parameters": [null]
},
"children": [],
"id": 50,
"name": "ParameterList",
"src": "699:0:0"
}, {
"children": [{
"attributes": {
"falseBody": null
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "||",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "!=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 51,
"name": "Identifier",
"src": "713:3:0"
}],
"id": 52,
"name": "MemberAccess",
"src": "713:10:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 15,
"type": "address",
"value": "chairperson"
},
"id": 53,
"name": "Identifier",
"src": "727:11:0"
}],
"id": 54,
"name": "BinaryOperation",
"src": "713:25:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 55,
"name": "Identifier",
"src": "742:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 48,
"type": "address",
"value": "toVoter"
},
"id": 56,
"name": "Identifier",
"src": "749:7:0"
}],
"id": 57,
"name": "IndexAccess",
"src": "742:15:0"
}],
"id": 58,
"name": "MemberAccess",
"src": "742:21:0"
}],
"id": 59,
"name": "BinaryOperation",
"src": "713:50:0"
}, {
"attributes": {
"expression": null,
"functionReturnParameters": 50
},
"id": 60,
"name": "Return",
"src": "765:7:0"
}],
"id": 61,
"name": "IfStatement",
"src": "709:63:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 62,
"name": "Identifier",
"src": "781:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 48,
"type": "address",
"value": "toVoter"
},
"id": 63,
"name": "Identifier",
"src": "788:7:0"
}],
"id": 64,
"name": "IndexAccess",
"src": "781:15:0"
}],
"id": 65,
"name": "MemberAccess",
"src": "781:22:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "31",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 1",
"value": "1"
},
"id": 66,
"name": "Literal",
"src": "806:1:0"
}],
"id": 67,
"name": "Assignment",
"src": "781:26:0"
}],
"id": 68,
"name": "ExpressionStatement",
"src": "781:26:0"
}],
"id": 69,
"name": "Block",
"src": "699:115:0"
}],
"id": 70,
"name": "FunctionDefinition",
"src": "650:164:0"
}, {
"attributes": {
"constant": false,
"documentation": "Delegate your vote to the voter $(to).",
"implemented": true,
"isConstructor": false,
"modifiers": [null],
"name": "delegate",
"payable": false,
"scope": 238,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
"children": [{
"children": [{
"attributes": {
"constant": false,
"name": "to",
"scope": 154,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "address",
"type": "address"
},
"id": 71,
"name": "ElementaryTypeName",
"src": "885:7:0"
}],
"id": 72,
"name": "VariableDeclaration",
"src": "885:10:0"
}],
"id": 73,
"name": "ParameterList",
"src": "884:12:0"
}, {
"attributes": {
"parameters": [null]
},
"children": [],
"id": 74,
"name": "ParameterList",
"src": "904:0:0"
}, {
"children": [{
"attributes": {
"assignments": [76]
},
"children": [{
"attributes": {
"constant": false,
"name": "sender",
"scope": 154,
"stateVariable": false,
"storageLocation": "storage",
"type": "struct Ballot.Voter",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"contractScope": null,
"name": "Voter",
"referencedDeclaration": 10,
"type": "struct Ballot.Voter"
},
"id": 75,
"name": "UserDefinedTypeName",
"src": "914:5:0"
}],
"id": 76,
"name": "VariableDeclaration",
"src": "914:20:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 77,
"name": "Identifier",
"src": "937:6:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 78,
"name": "Identifier",
"src": "944:3:0"
}],
"id": 79,
"name": "MemberAccess",
"src": "944:10:0"
}],
"id": 80,
"name": "IndexAccess",
"src": "937:18:0"
}],
"id": 81,
"name": "VariableDeclarationStatement",
"src": "914:41:0"
}, {
"attributes": {
"falseBody": null
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 76,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 82,
"name": "Identifier",
"src": "990:6:0"
}],
"id": 83,
"name": "MemberAccess",
"src": "990:12:0"
}, {
"attributes": {
"expression": null,
"functionReturnParameters": 74
},
"id": 84,
"name": "Return",
"src": "1004:7:0"
}],
"id": 85,
"name": "IfStatement",
"src": "986:25:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "&&",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "!=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "delegate",
"referencedDeclaration": 9,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 86,
"name": "Identifier",
"src": "1027:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 87,
"name": "Identifier",
"src": "1034:2:0"
}],
"id": 88,
"name": "IndexAccess",
"src": "1027:10:0"
}],
"id": 89,
"name": "MemberAccess",
"src": "1027:19:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": true,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [null],
"type": "address",
"type_conversion": true
},
"children": [{
"attributes": {
"argumentTypes": [{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}],
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"type": "type(address)",
"value": "address"
},
"id": 90,
"name": "ElementaryTypeNameExpression",
"src": "1050:7:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "30",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 0",
"value": "0"
},
"id": 91,
"name": "Literal",
"src": "1058:1:0"
}],
"id": 92,
"name": "FunctionCall",
"src": "1050:10:0"
}],
"id": 93,
"name": "BinaryOperation",
"src": "1027:33:0"
}, {
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "!=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "delegate",
"referencedDeclaration": 9,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 94,
"name": "Identifier",
"src": "1064:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 95,
"name": "Identifier",
"src": "1071:2:0"
}],
"id": 96,
"name": "IndexAccess",
"src": "1064:10:0"
}],
"id": 97,
"name": "MemberAccess",
"src": "1064:19:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 98,
"name": "Identifier",
"src": "1087:3:0"
}],
"id": 99,
"name": "MemberAccess",
"src": "1087:10:0"
}],
"id": 100,
"name": "BinaryOperation",
"src": "1064:33:0"
}],
"id": 101,
"name": "BinaryOperation",
"src": "1027:70:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 102,
"name": "Identifier",
"src": "1111:2:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "delegate",
"referencedDeclaration": 9,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 103,
"name": "Identifier",
"src": "1116:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 104,
"name": "Identifier",
"src": "1123:2:0"
}],
"id": 105,
"name": "IndexAccess",
"src": "1116:10:0"
}],
"id": 106,
"name": "MemberAccess",
"src": "1116:19:0"
}],
"id": 107,
"name": "Assignment",
"src": "1111:24:0"
}],
"id": 108,
"name": "ExpressionStatement",
"src": "1111:24:0"
}],
"id": 109,
"name": "WhileStatement",
"src": "1020:115:0"
}, {
"attributes": {
"falseBody": null
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "==",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 110,
"name": "Identifier",
"src": "1149:2:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 111,
"name": "Identifier",
"src": "1155:3:0"
}],
"id": 112,
"name": "MemberAccess",
"src": "1155:10:0"
}],
"id": 113,
"name": "BinaryOperation",
"src": "1149:16:0"
}, {
"attributes": {
"expression": null,
"functionReturnParameters": 74
},
"id": 114,
"name": "Return",
"src": "1167:7:0"
}],
"id": 115,
"name": "IfStatement",
"src": "1145:29:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 76,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 116,
"name": "Identifier",
"src": "1183:6:0"
}],
"id": 118,
"name": "MemberAccess",
"src": "1183:12:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "74727565",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "bool",
"type": "bool",
"value": "true"
},
"id": 119,
"name": "Literal",
"src": "1198:4:0"
}],
"id": 120,
"name": "Assignment",
"src": "1183:19:0"
}],
"id": 121,
"name": "ExpressionStatement",
"src": "1183:19:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "delegate",
"referencedDeclaration": 9,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 76,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 122,
"name": "Identifier",
"src": "1212:6:0"
}],
"id": 124,
"name": "MemberAccess",
"src": "1212:15:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 125,
"name": "Identifier",
"src": "1230:2:0"
}],
"id": 126,
"name": "Assignment",
"src": "1212:20:0"
}],
"id": 127,
"name": "ExpressionStatement",
"src": "1212:20:0"
}, {
"attributes": {
"assignments": [129]
},
"children": [{
"attributes": {
"constant": false,
"name": "delegateTo",
"scope": 154,
"stateVariable": false,
"storageLocation": "storage",
"type": "struct Ballot.Voter",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"contractScope": null,
"name": "Voter",
"referencedDeclaration": 10,
"type": "struct Ballot.Voter"
},
"id": 128,
"name": "UserDefinedTypeName",
"src": "1242:5:0"
}],
"id": 129,
"name": "VariableDeclaration",
"src": "1242:24:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 130,
"name": "Identifier",
"src": "1269:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 131,
"name": "Identifier",
"src": "1276:2:0"
}],
"id": 132,
"name": "IndexAccess",
"src": "1269:10:0"
}],
"id": 133,
"name": "VariableDeclarationStatement",
"src": "1242:37:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 129,
"type": "struct Ballot.Voter storage pointer",
"value": "delegateTo"
},
"id": 134,
"name": "Identifier",
"src": "1293:10:0"
}],
"id": 135,
"name": "MemberAccess",
"src": "1293:16:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "+=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "voteCount",
"referencedDeclaration": 12,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Proposal storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 136,
"name": "Identifier",
"src": "1323:9:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "vote",
"referencedDeclaration": 7,
"type": "uint8"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 129,
"type": "struct Ballot.Voter storage pointer",
"value": "delegateTo"
},
"id": 137,
"name": "Identifier",
"src": "1333:10:0"
}],
"id": 138,
"name": "MemberAccess",
"src": "1333:15:0"
}],
"id": 139,
"name": "IndexAccess",
"src": "1323:26:0"
}],
"id": 140,
"name": "MemberAccess",
"src": "1323:36:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 76,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 141,
"name": "Identifier",
"src": "1363:6:0"
}],
"id": 142,
"name": "MemberAccess",
"src": "1363:13:0"
}],
"id": 143,
"name": "Assignment",
"src": "1323:53:0"
}],
"id": 144,
"name": "ExpressionStatement",
"src": "1323:53:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "+=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 129,
"type": "struct Ballot.Voter storage pointer",
"value": "delegateTo"
},
"id": 145,
"name": "Identifier",
"src": "1403:10:0"
}],
"id": 147,
"name": "MemberAccess",
"src": "1403:17:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 76,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 148,
"name": "Identifier",
"src": "1424:6:0"
}],
"id": 149,
"name": "MemberAccess",
"src": "1424:13:0"
}],
"id": 150,
"name": "Assignment",
"src": "1403:34:0"
}],
"id": 151,
"name": "ExpressionStatement",
"src": "1403:34:0"
}],
"id": 152,
"name": "IfStatement",
"src": "1289:148:0"
}],
"id": 153,
"name": "Block",
"src": "904:540:0"
}],
"id": 154,
"name": "FunctionDefinition",
"src": "867:577:0"
}, {
"attributes": {
"constant": false,
"documentation": "Give a single vote to proposal $(toProposal).",
"implemented": true,
"isConstructor": false,
"modifiers": [null],
"name": "vote",
"payable": false,
"scope": 238,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
"children": [{
"children": [{
"attributes": {
"constant": false,
"name": "toProposal",
"scope": 196,
"stateVariable": false,
"storageLocation": "default",
"type": "uint8",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint8",
"type": "uint8"
},
"id": 155,
"name": "ElementaryTypeName",
"src": "1518:5:0"
}],
"id": 156,
"name": "VariableDeclaration",
"src": "1518:16:0"
}],
"id": 157,
"name": "ParameterList",
"src": "1517:18:0"
}, {
"attributes": {
"parameters": [null]
},
"children": [],
"id": 158,
"name": "ParameterList",
"src": "1543:0:0"
}, {
"children": [{
"attributes": {
"assignments": [160]
},
"children": [{
"attributes": {
"constant": false,
"name": "sender",
"scope": 196,
"stateVariable": false,
"storageLocation": "storage",
"type": "struct Ballot.Voter",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"contractScope": null,
"name": "Voter",
"referencedDeclaration": 10,
"type": "struct Ballot.Voter"
},
"id": 159,
"name": "UserDefinedTypeName",
"src": "1553:5:0"
}],
"id": 160,
"name": "VariableDeclaration",
"src": "1553:20:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 161,
"name": "Identifier",
"src": "1576:6:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 162,
"name": "Identifier",
"src": "1583:3:0"
}],
"id": 163,
"name": "MemberAccess",
"src": "1583:10:0"
}],
"id": 164,
"name": "IndexAccess",
"src": "1576:18:0"
}],
"id": 165,
"name": "VariableDeclarationStatement",
"src": "1553:41:0"
}, {
"attributes": {
"falseBody": null
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "||",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 160,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 166,
"name": "Identifier",
"src": "1608:6:0"
}],
"id": 167,
"name": "MemberAccess",
"src": "1608:12:0"
}, {
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": ">=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 156,
"type": "uint8",
"value": "toProposal"
},
"id": 168,
"name": "Identifier",
"src": "1624:10:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "length",
"referencedDeclaration": null,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 169,
"name": "Identifier",
"src": "1638:9:0"
}],
"id": 170,
"name": "MemberAccess",
"src": "1638:16:0"
}],
"id": 171,
"name": "BinaryOperation",
"src": "1624:30:0"
}],
"id": 172,
"name": "BinaryOperation",
"src": "1608:46:0"
}, {
"attributes": {
"expression": null,
"functionReturnParameters": 158
},
"id": 173,
"name": "Return",
"src": "1656:7:0"
}],
"id": 174,
"name": "IfStatement",
"src": "1604:59:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 160,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 175,
"name": "Identifier",
"src": "1672:6:0"
}],
"id": 177,
"name": "MemberAccess",
"src": "1672:12:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "74727565",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "bool",
"type": "bool",
"value": "true"
},
"id": 178,
"name": "Literal",
"src": "1687:4:0"
}],
"id": 179,
"name": "Assignment",
"src": "1672:19:0"
}],
"id": 180,
"name": "ExpressionStatement",
"src": "1672:19:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint8"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "vote",
"referencedDeclaration": 7,
"type": "uint8"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 160,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 181,
"name": "Identifier",
"src": "1701:6:0"
}],
"id": 183,
"name": "MemberAccess",
"src": "1701:11:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 156,
"type": "uint8",
"value": "toProposal"
},
"id": 184,
"name": "Identifier",
"src": "1715:10:0"
}],
"id": 185,
"name": "Assignment",
"src": "1701:24:0"
}],
"id": 186,
"name": "ExpressionStatement",
"src": "1701:24:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "+=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "voteCount",
"referencedDeclaration": 12,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Proposal storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 187,
"name": "Identifier",
"src": "1735:9:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 156,
"type": "uint8",
"value": "toProposal"
},
"id": 188,
"name": "Identifier",
"src": "1745:10:0"
}],
"id": 189,
"name": "IndexAccess",
"src": "1735:21:0"
}],
"id": 190,
"name": "MemberAccess",
"src": "1735:31:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 160,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 191,
"name": "Identifier",
"src": "1770:6:0"
}],
"id": 192,
"name": "MemberAccess",
"src": "1770:13:0"
}],
"id": 193,
"name": "Assignment",
"src": "1735:48:0"
}],
"id": 194,
"name": "ExpressionStatement",
"src": "1735:48:0"
}],
"id": 195,
"name": "Block",
"src": "1543:247:0"
}],
"id": 196,
"name": "FunctionDefinition",
"src": "1504:286:0"
}, {
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [null],
"name": "winningProposal",
"payable": false,
"scope": 238,
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
"children": [{
"attributes": {
"parameters": [null]
},
"children": [],
"id": 197,
"name": "ParameterList",
"src": "1820:2:0"
}, {
"children": [{
"attributes": {
"constant": false,
"name": "_winningProposal",
"scope": 237,
"stateVariable": false,
"storageLocation": "default",
"type": "uint8",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint8",
"type": "uint8"
},
"id": 198,
"name": "ElementaryTypeName",
"src": "1848:5:0"
}],
"id": 199,
"name": "VariableDeclaration",
"src": "1848:22:0"
}],
"id": 200,
"name": "ParameterList",
"src": "1847:24:0"
}, {
"children": [{
"attributes": {
"assignments": [202]
},
"children": [{
"attributes": {
"constant": false,
"name": "winningVoteCount",
"scope": 237,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 201,
"name": "ElementaryTypeName",
"src": "1882:7:0"
}],
"id": 202,
"name": "VariableDeclaration",
"src": "1882:24:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "30",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 0",
"value": "0"
},
"id": 203,
"name": "Literal",
"src": "1909:1:0"
}],
"id": 204,
"name": "VariableDeclarationStatement",
"src": "1882:28:0"
}, {
"children": [{
"attributes": {
"assignments": [206]
},
"children": [{
"attributes": {
"constant": false,
"name": "prop",
"scope": 237,
"stateVariable": false,
"storageLocation": "default",
"type": "uint8",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint8",
"type": "uint8"
},
"id": 205,
"name": "ElementaryTypeName",
"src": "1925:5:0"
}],
"id": 206,
"name": "VariableDeclaration",
"src": "1925:10:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "30",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 0",
"value": "0"
},
"id": 207,
"name": "Literal",
"src": "1938:1:0"
}],
"id": 208,
"name": "VariableDeclarationStatement",
"src": "1925:14:0"
}, {
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "<",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 206,
"type": "uint8",
"value": "prop"
},
"id": 209,
"name": "Identifier",
"src": "1941:4:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "length",
"referencedDeclaration": null,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 210,
"name": "Identifier",
"src": "1948:9:0"
}],
"id": 211,
"name": "MemberAccess",
"src": "1948:16:0"
}],
"id": 212,
"name": "BinaryOperation",
"src": "1941:23:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "++",
"prefix": false,
"type": "uint8"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 206,
"type": "uint8",
"value": "prop"
},
"id": 213,
"name": "Identifier",
"src": "1966:4:0"
}],
"id": 214,
"name": "UnaryOperation",
"src": "1966:6:0"
}],
"id": 215,
"name": "ExpressionStatement",
"src": "1966:6:0"
}, {
"attributes": {
"falseBody": null
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": ">",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voteCount",
"referencedDeclaration": 12,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Proposal storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 216,
"name": "Identifier",
"src": "1990:9:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 206,
"type": "uint8",
"value": "prop"
},
"id": 217,
"name": "Identifier",
"src": "2000:4:0"
}],
"id": 218,
"name": "IndexAccess",
"src": "1990:15:0"
}],
"id": 219,
"name": "MemberAccess",
"src": "1990:25:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 202,
"type": "uint256",
"value": "winningVoteCount"
},
"id": 220,
"name": "Identifier",
"src": "2018:16:0"
}],
"id": 221,
"name": "BinaryOperation",
"src": "1990:44:0"
}, {
"children": [{
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 202,
"type": "uint256",
"value": "winningVoteCount"
},
"id": 222,
"name": "Identifier",
"src": "2054:16:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voteCount",
"referencedDeclaration": 12,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Proposal storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 223,
"name": "Identifier",
"src": "2073:9:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 206,
"type": "uint8",
"value": "prop"
},
"id": 224,
"name": "Identifier",
"src": "2083:4:0"
}],
"id": 225,
"name": "IndexAccess",
"src": "2073:15:0"
}],
"id": 226,
"name": "MemberAccess",
"src": "2073:25:0"
}],
"id": 227,
"name": "Assignment",
"src": "2054:44:0"
}],
"id": 228,
"name": "ExpressionStatement",
"src": "2054:44:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint8"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 199,
"type": "uint8",
"value": "_winningProposal"
},
"id": 229,
"name": "Identifier",
"src": "2116:16:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 206,
"type": "uint8",
"value": "prop"
},
"id": 230,
"name": "Identifier",
"src": "2135:4:0"
}],
"id": 231,
"name": "Assignment",
"src": "2116:23:0"
}],
"id": 232,
"name": "ExpressionStatement",
"src": "2116:23:0"
}],
"id": 233,
"name": "Block",
"src": "2036:118:0"
}],
"id": 234,
"name": "IfStatement",
"src": "1986:168:0"
}],
"id": 235,
"name": "ForStatement",
"src": "1920:234:0"
}],
"id": 236,
"name": "Block",
"src": "1872:288:0"
}],
"id": 237,
"name": "FunctionDefinition",
"src": "1796:364:0"
}],
"id": 238,
"name": "ContractDefinition",
"src": "24:2138:0"
}],
"id": 239,
"name": "SourceUnit",
"src": "0:2162:0"
}
}
}
},
"source": {
"sources": {
"browser/ballot.sol": {
"content": "pragma solidity ^0.4.0;\ncontract Ballot {\n\n struct Voter {\n uint weight;\n bool voted;\n uint8 vote;\n address delegate;\n }\n struct Proposal {\n uint voteCount;\n }\n\n address chairperson;\n mapping(address => Voter) voters;\n Proposal[] proposals;\n\n /// Create a new ballot with $(_numProposals) different proposals.\n function Ballot(uint8 _numProposals) public {\n chairperson = msg.sender;\n voters[chairperson].weight = 1;\n proposals.length = _numProposals;\n }\n\n /// Give $(toVoter) the right to vote on this ballot.\n /// May only be called by $(chairperson).\n function giveRightToVote(address toVoter) public {\n if (msg.sender != chairperson || voters[toVoter].voted) return;\n voters[toVoter].weight = 1;\n }\n\n /// Delegate your vote to the voter $(to).\n function delegate(address to) public {\n Voter storage sender = voters[msg.sender]; // assigns reference\n if (sender.voted) return;\n while (voters[to].delegate != address(0) && voters[to].delegate != msg.sender)\n to = voters[to].delegate;\n if (to == msg.sender) return;\n sender.voted = true;\n sender.delegate = to;\n Voter storage delegateTo = voters[to];\n if (delegateTo.voted)\n proposals[delegateTo.vote].voteCount += sender.weight;\n else\n delegateTo.weight += sender.weight;\n }\n\n /// Give a single vote to proposal $(toProposal).\n function vote(uint8 toProposal) public {\n Voter storage sender = voters[msg.sender];\n if (sender.voted || toProposal >= proposals.length) return;\n sender.voted = true;\n sender.vote = toProposal;\n proposals[toProposal].voteCount += sender.weight;\n }\n\n function winningProposal() public constant returns (uint8 _winningProposal) {\n uint256 winningVoteCount = 0;\n for (uint8 prop = 0; prop < proposals.length; prop++)\n if (proposals[prop].voteCount > winningVoteCount) {\n winningVoteCount = proposals[prop].voteCount;\n _winningProposal = prop;\n }\n }\n}"
}
},
"target": "browser/ballot.sol"
}
}