Skip to content

Instantly share code, notes, and snippets.

@rawsh
Created October 10, 2021 10:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rawsh/a6e76a2f31e6ecef0560cee7cc0632e6 to your computer and use it in GitHub Desktop.
Save rawsh/a6e76a2f31e6ecef0560cee7cc0632e6 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer.
It contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity.
SCRIPTS
The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract.
For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required).
Scripts have full access to the web3.js and ethers.js libraries.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405260006005553480156200001657600080fd5b506040516200105e3803806200105e83398101604090815281516020830151918301519092918201910160148310156200004f57600080fd5b42830160045581516200006a9060009060208501906200008a565b508051620000809060019060208401906200008a565b505050506200012f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000cd57805160ff1916838001178555620000fd565b82800160010185558215620000fd579182015b82811115620000fd578251825591602001919060010190620000e0565b506200010b9291506200010f565b5090565b6200012c91905b808211156200010b576000815560010162000116565b90565b610f1f806200013f6000396000f3006080604052600436106100a35763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663031b6dbf81146100a85780630bbfc206146100cf57806322ce9bac1461012c5780633e8589231461014157806349e811c51461015957806387cfa5bf146101e35780638e7ea5b2146101f8578063a61935041461020d578063baa13bb514610222578063bf9d069814610237575b600080fd5b3480156100b457600080fd5b506100bd61024f565b60408051918252519081900360200190f35b3480156100db57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261012a94369492936024939284019190819084018382808284375094975050933594506102559350505050565b005b34801561013857600080fd5b506100bd6107a4565b34801561014d57600080fd5b5061012a6004356107aa565b34801561016557600080fd5b5061016e61097f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a8578181015183820152602001610190565b50505050905090810190601f1680156101d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ef57600080fd5b5061016e610a0d565b34801561020457600080fd5b5061016e610a67565b34801561021957600080fd5b506100bd610e10565b34801561022e57600080fd5b506100bd610e16565b34801561024357600080fd5b506100bd600435610e1c565b60035481565b60608060045442101561026757600080fd5b60008381526007602090815260409182902080548351601f6002610100600185161502600019019093169290920491820184900484028101840190945280845290918301828280156102fa5780601f106102cf576101008083540402835291602001916102fa565b820191906000526020600020905b8154815290600101906020018083116102dd57829003601f168201915b50505050509150815160001415610384576040805160208082526028908201527f4120766f74652077697468207468697320766f7465436f6d6d69742077617320818301527f6e6f74206361737400000000000000000000000000000000000000000000000060608201529051600080516020610ed48339815191529181900360800190a1610443565b81600081518110151561039357fe5b90602001015160f860020a900460f860020a027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f430000000000000000000000000000000000000000000000000000000000000014151561044357604080516020808252601a908201527f5468697320766f74652077617320616c72656164792063617374000000000000818301529051600080516020610ed48339815191529181900360600190a161079e565b836040518082805190602001908083835b602083106104735780518252601f199092019160209182019101610454565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912086149250610520915050576040805160208082526024908201527f566f7465206861736820646f6573206e6f74206d6174636820766f746520636f818301527f6d6d69740000000000000000000000000000000000000000000000000000000060608201529051600080516020610ed48339815191529181900360800190a161079e565b83905080600081518110151561053257fe5b90602001015160f860020a900460f860020a027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f310000000000000000000000000000000000000000000000000000000000000014156105ea57600280546001019055604080516020808252601a908201527f566f746520666f722063686f696365203120636f756e7465642e000000000000818301529051600080516020610ed48339815191529181900360600190a161074c565b8060008151811015156105f957fe5b90602001015160f860020a900460f860020a027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f320000000000000000000000000000000000000000000000000000000000000014156106b157600380546001019055604080516020808252601a908201527f566f746520666f722063686f696365203220636f756e7465642e000000000000818301529051600080516020610ed48339815191529181900360600190a161074c565b604080516020808252604c908201527f566f746520636f756c64206e6f7420626520726561642120566f746573206d75818301527f737420737461727420776974682074686520415343494920636861726163746560608201527f7220603160206f7220603260000000000000000000000000000000000000000060808201529051600080516020610ed48339815191529181900360a00190a15b604080518082018252600881527f52657665616c656400000000000000000000000000000000000000000000000060208083019182526000878152600790915292909220905161079c9290610e3b565b505b50505050565b60055481565b60606004544211156107bb57600080fd5b60008281526007602090815260409182902080548351601f60026101006001851615026000190190931692909204918201849004840281018401909452808452909183018282801561084e5780601f106108235761010080835404028352916020019161084e565b820191906000526020600020905b81548152906001019060200180831161083157829003601f168201915b505050505090508051600014151561086557600080fd5b60068054600181019091557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01829055604080518082018252600981527f436f6d6d697474656400000000000000000000000000000000000000000000006020828101918252600086815260079091529290922090516108e59290610e3b565b5060058054600101905560408051602081018490528181526027818301527f566f746520636f6d6d697474656420776974682074686520666f6c6c6f77696e60608201527f6720686173683a00000000000000000000000000000000000000000000000000608082015290517f651840caa1b0e1c52ec1324c2c0aca317ef17e709f0016630d8739f84c0f3f369181900360a00190a15050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a055780601f106109da57610100808354040283529160200191610a05565b820191906000526020600020905b8154815290600101906020018083116109e857829003601f168201915b505050505081565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a055780601f106109da57610100808354040283529160200191610a05565b6060600454421015610a7857600080fd5b6006546003546002540114610a8c57600080fd5b6003546002541115610c115760408051818152601e918101919091527f416e64207468652077696e6e6572206f662074686520766f74652069733a0000606082015260806020820181815260008054600260001961010060018416150201909116049284018390527fcc195fb57a2597148f15fecade38a000847ff770596f679a4b83fe923007520b9390929091829160a083019085908015610b705780601f10610b4557610100808354040283529160200191610b70565b820191906000526020600020905b815481529060010190602001808311610b5357829003601f168201915b5050935050505060405180910390a16000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c055780601f10610bda57610100808354040283529160200191610c05565b820191906000526020600020905b815481529060010190602001808311610be857829003601f168201915b50505050509050610e0d565b6002546003541115610d5d5760408051818152601e918101919091527f416e64207468652077696e6e6572206f662074686520766f74652069733a00006060820152608060208201818152600180546002600019610100838516150201909116049284018390527fcc195fb57a2597148f15fecade38a000847ff770596f679a4b83fe923007520b9390929091829160a083019085908015610cf45780601f10610cc957610100808354040283529160200191610cf4565b820191906000526020600020905b815481529060010190602001808311610cd757829003601f168201915b5050935050505060405180910390a160018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c055780601f10610bda57610100808354040283529160200191610c05565b6003546002541415610e0d57604080518181526018818301527f54686520766f746520656e64656420696e206120746965210000000000000000606082015260806020820181905260009082015290517fcc195fb57a2597148f15fecade38a000847ff770596f679a4b83fe923007520b9181900360c00190a15060408051808201909152600d81527f497420776173206120746965210000000000000000000000000000000000000060208201525b90565b60045481565b60025481565b6006805482908110610e2a57fe5b600091825260209091200154905081565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610e7c57805160ff1916838001178555610ea9565b82800160010185558215610ea9579182015b82811115610ea9578251825591602001919060010190610e8e565b50610eb5929150610eb9565b5090565b610e0d91905b80821115610eb55760008155600101610ebf56000bb563d6789cea5d754d1b7f85bfebdfe7a1a86e2e0ffccfb8a6bbdb07826ae2a165627a7a723058209bc33498c05289baa764ac6bdc5c6bb40482e202e40e1ba7ee284a7e245843ac0029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x5 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x105E CODESIZE SUB DUP1 PUSH3 0x105E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD SWAP1 SWAP3 SWAP2 DUP3 ADD SWAP2 ADD PUSH1 0x14 DUP4 LT ISZERO PUSH3 0x4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST TIMESTAMP DUP4 ADD PUSH1 0x4 SSTORE DUP2 MLOAD PUSH3 0x6A SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x8A JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x80 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x8A JUMP JUMPDEST POP POP POP POP PUSH3 0x12F JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0xCD JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xFD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xFD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xFD JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xE0 JUMP JUMPDEST POP PUSH3 0x10B SWAP3 SWAP2 POP PUSH3 0x10F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x12C SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x10B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x116 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xF1F DUP1 PUSH3 0x13F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x31B6DBF DUP2 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0xBBFC206 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0x22CE9BAC EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0x3E858923 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x49E811C5 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x87CFA5BF EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0x8E7EA5B2 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xA6193504 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xBAA13BB5 EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0xBF9D0698 EQ PUSH2 0x237 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP6 ADD DUP5 ADD SWAP1 SWAP6 MSTORE DUP5 DUP5 MSTORE PUSH2 0x12A SWAP5 CALLDATASIZE SWAP5 SWAP3 SWAP4 PUSH1 0x24 SWAP4 SWAP3 DUP5 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x255 SWAP4 POP POP POP POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x7A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH1 0x4 CALLDATALOAD PUSH2 0x7AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x165 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16E PUSH2 0x97F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1A8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x190 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1D5 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16E PUSH2 0xA0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16E PUSH2 0xA67 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0xE10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0xE16 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH1 0x4 CALLDATALOAD PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x4 SLOAD TIMESTAMP LT ISZERO PUSH2 0x267 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH2 0x100 PUSH1 0x1 DUP6 AND ISZERO MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x2FA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2CF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP DUP2 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x384 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x4120766F74652077697468207468697320766F7465436F6D6D69742077617320 DUP2 DUP4 ADD MSTORE PUSH32 0x6E6F742063617374000000000000000000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 PUSH2 0x443 JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x393 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xF8 PUSH1 0x2 EXP MUL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH32 0x4300000000000000000000000000000000000000000000000000000000000000 EQ ISZERO ISZERO PUSH2 0x443 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1A SWAP1 DUP3 ADD MSTORE PUSH32 0x5468697320766F74652077617320616C72656164792063617374000000000000 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH2 0x79E JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x473 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x454 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH1 0x40 MLOAD SWAP3 ADD DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 DUP7 EQ SWAP3 POP PUSH2 0x520 SWAP2 POP POP JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x24 SWAP1 DUP3 ADD MSTORE PUSH32 0x566F7465206861736820646F6573206E6F74206D6174636820766F746520636F DUP2 DUP4 ADD MSTORE PUSH32 0x6D6D697400000000000000000000000000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 PUSH2 0x79E JUMP JUMPDEST DUP4 SWAP1 POP DUP1 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x532 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xF8 PUSH1 0x2 EXP MUL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH32 0x3100000000000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0x5EA JUMPI PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1A SWAP1 DUP3 ADD MSTORE PUSH32 0x566F746520666F722063686F696365203120636F756E7465642E000000000000 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH2 0x74C JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x5F9 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xF8 PUSH1 0x2 EXP MUL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH32 0x3200000000000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0x6B1 JUMPI PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1A SWAP1 DUP3 ADD MSTORE PUSH32 0x566F746520666F722063686F696365203220636F756E7465642E000000000000 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH2 0x74C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x4C SWAP1 DUP3 ADD MSTORE PUSH32 0x566F746520636F756C64206E6F7420626520726561642120566F746573206D75 DUP2 DUP4 ADD MSTORE PUSH32 0x7374207374617274207769746820746865204153434949206368617261637465 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x7220603160206F72206032600000000000000000000000000000000000000000 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG1 JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x8 DUP2 MSTORE PUSH32 0x52657665616C6564000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD PUSH2 0x79C SWAP3 SWAP1 PUSH2 0xE3B JUMP JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 SLOAD TIMESTAMP GT ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH2 0x100 PUSH1 0x1 DUP6 AND ISZERO MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x84E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x823 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x831 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO ISZERO PUSH2 0x865 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE PUSH32 0xF652222313E28459528D920B65115C16C04F3EFC82AAEDC97BE59F3F377C0D3F ADD DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x436F6D6D69747465640000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 DUP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD PUSH2 0x8E5 SWAP3 SWAP1 PUSH2 0xE3B JUMP JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP2 DUP2 MSTORE PUSH1 0x27 DUP2 DUP4 ADD MSTORE PUSH32 0x566F746520636F6D6D697474656420776974682074686520666F6C6C6F77696E PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x6720686173683A00000000000000000000000000000000000000000000000000 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x651840CAA1B0E1C52EC1324C2C0ACA317EF17E709F0016630D8739F84C0F3F36 SWAP2 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xA05 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA05 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9E8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xA05 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA05 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 SLOAD TIMESTAMP LT ISZERO PUSH2 0xA78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD ADD EQ PUSH2 0xA8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD GT ISZERO PUSH2 0xC11 JUMPI PUSH1 0x40 DUP1 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1E SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x416E64207468652077696E6E6572206F662074686520766F74652069733A0000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP5 AND ISZERO MUL ADD SWAP1 SWAP2 AND DIV SWAP3 DUP5 ADD DUP4 SWAP1 MSTORE PUSH32 0xCC195FB57A2597148F15FECADE38A000847FF770596F679A4B83FE923007520B SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0xA0 DUP4 ADD SWAP1 DUP6 SWAP1 DUP1 ISZERO PUSH2 0xB70 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB45 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB70 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB53 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xC05 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBDA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC05 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBE8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH2 0xE0D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD GT ISZERO PUSH2 0xD5D JUMPI PUSH1 0x40 DUP1 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1E SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x416E64207468652077696E6E6572206F662074686520766F74652069733A0000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 DUP4 DUP6 AND ISZERO MUL ADD SWAP1 SWAP2 AND DIV SWAP3 DUP5 ADD DUP4 SWAP1 MSTORE PUSH32 0xCC195FB57A2597148F15FECADE38A000847FF770596F679A4B83FE923007520B SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0xA0 DUP4 ADD SWAP1 DUP6 SWAP1 DUP1 ISZERO PUSH2 0xCF4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCC9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCF4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCD7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xC05 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBDA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC05 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD EQ ISZERO PUSH2 0xE0D JUMPI PUSH1 0x40 DUP1 MLOAD DUP2 DUP2 MSTORE PUSH1 0x18 DUP2 DUP4 ADD MSTORE PUSH32 0x54686520766F746520656E64656420696E206120746965210000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0xCC195FB57A2597148F15FECADE38A000847FF770596F679A4B83FE923007520B SWAP2 DUP2 SWAP1 SUB PUSH1 0xC0 ADD SWAP1 LOG1 POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xD DUP2 MSTORE PUSH32 0x4974207761732061207469652100000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xE2A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xE7C JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xEA9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xEA9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xEA9 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xE8E JUMP JUMPDEST POP PUSH2 0xEB5 SWAP3 SWAP2 POP PUSH2 0xEB9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xE0D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xEB5 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xEBF JUMP STOP SIGNEXTEND 0xb5 PUSH4 0xD6789CEA 0x5d PUSH22 0x4D1B7F85BFEBDFE7A1A86E2E0FFCCFB8A6BBDB07826A 0xe2 LOG1 PUSH6 0x627A7A723058 KECCAK256 SWAP12 0xc3 CALLVALUE SWAP9 0xc0 MSTORE DUP10 0xba 0xa7 PUSH5 0xAC6BDC5C6B 0xb4 DIV DUP3 0xe2 MUL 0xe4 0xe SHL 0xa7 0xee 0x28 0x4a PUSH31 0x245843AC002900000000000000000000000000000000000000000000000000 ",
"sourceMap": "25:3740:0:-;;;347:1;315:33;;757:384;8:9:-1;5:2;;;30:1;27;20:12;5:2;757:384:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;969:2;939:32;;935:68;;;987:5;;;935:68;1033:3;:45;;1012:18;:66;1088:18;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;1116:18:0;;;;:7;;:18;;;;;:::i;:::-;;757:384;;;25:3740;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25:3740:0;;;-1:-1:-1;25:3740:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100a35763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663031b6dbf81146100a85780630bbfc206146100cf57806322ce9bac1461012c5780633e8589231461014157806349e811c51461015957806387cfa5bf146101e35780638e7ea5b2146101f8578063a61935041461020d578063baa13bb514610222578063bf9d069814610237575b600080fd5b3480156100b457600080fd5b506100bd61024f565b60408051918252519081900360200190f35b3480156100db57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261012a94369492936024939284019190819084018382808284375094975050933594506102559350505050565b005b34801561013857600080fd5b506100bd6107a4565b34801561014d57600080fd5b5061012a6004356107aa565b34801561016557600080fd5b5061016e61097f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a8578181015183820152602001610190565b50505050905090810190601f1680156101d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ef57600080fd5b5061016e610a0d565b34801561020457600080fd5b5061016e610a67565b34801561021957600080fd5b506100bd610e10565b34801561022e57600080fd5b506100bd610e16565b34801561024357600080fd5b506100bd600435610e1c565b60035481565b60608060045442101561026757600080fd5b60008381526007602090815260409182902080548351601f6002610100600185161502600019019093169290920491820184900484028101840190945280845290918301828280156102fa5780601f106102cf576101008083540402835291602001916102fa565b820191906000526020600020905b8154815290600101906020018083116102dd57829003601f168201915b50505050509150815160001415610384576040805160208082526028908201527f4120766f74652077697468207468697320766f7465436f6d6d69742077617320818301527f6e6f74206361737400000000000000000000000000000000000000000000000060608201529051600080516020610ed48339815191529181900360800190a1610443565b81600081518110151561039357fe5b90602001015160f860020a900460f860020a027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f430000000000000000000000000000000000000000000000000000000000000014151561044357604080516020808252601a908201527f5468697320766f74652077617320616c72656164792063617374000000000000818301529051600080516020610ed48339815191529181900360600190a161079e565b836040518082805190602001908083835b602083106104735780518252601f199092019160209182019101610454565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912086149250610520915050576040805160208082526024908201527f566f7465206861736820646f6573206e6f74206d6174636820766f746520636f818301527f6d6d69740000000000000000000000000000000000000000000000000000000060608201529051600080516020610ed48339815191529181900360800190a161079e565b83905080600081518110151561053257fe5b90602001015160f860020a900460f860020a027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f310000000000000000000000000000000000000000000000000000000000000014156105ea57600280546001019055604080516020808252601a908201527f566f746520666f722063686f696365203120636f756e7465642e000000000000818301529051600080516020610ed48339815191529181900360600190a161074c565b8060008151811015156105f957fe5b90602001015160f860020a900460f860020a027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f320000000000000000000000000000000000000000000000000000000000000014156106b157600380546001019055604080516020808252601a908201527f566f746520666f722063686f696365203220636f756e7465642e000000000000818301529051600080516020610ed48339815191529181900360600190a161074c565b604080516020808252604c908201527f566f746520636f756c64206e6f7420626520726561642120566f746573206d75818301527f737420737461727420776974682074686520415343494920636861726163746560608201527f7220603160206f7220603260000000000000000000000000000000000000000060808201529051600080516020610ed48339815191529181900360a00190a15b604080518082018252600881527f52657665616c656400000000000000000000000000000000000000000000000060208083019182526000878152600790915292909220905161079c9290610e3b565b505b50505050565b60055481565b60606004544211156107bb57600080fd5b60008281526007602090815260409182902080548351601f60026101006001851615026000190190931692909204918201849004840281018401909452808452909183018282801561084e5780601f106108235761010080835404028352916020019161084e565b820191906000526020600020905b81548152906001019060200180831161083157829003601f168201915b505050505090508051600014151561086557600080fd5b60068054600181019091557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01829055604080518082018252600981527f436f6d6d697474656400000000000000000000000000000000000000000000006020828101918252600086815260079091529290922090516108e59290610e3b565b5060058054600101905560408051602081018490528181526027818301527f566f746520636f6d6d697474656420776974682074686520666f6c6c6f77696e60608201527f6720686173683a00000000000000000000000000000000000000000000000000608082015290517f651840caa1b0e1c52ec1324c2c0aca317ef17e709f0016630d8739f84c0f3f369181900360a00190a15050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a055780601f106109da57610100808354040283529160200191610a05565b820191906000526020600020905b8154815290600101906020018083116109e857829003601f168201915b505050505081565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a055780601f106109da57610100808354040283529160200191610a05565b6060600454421015610a7857600080fd5b6006546003546002540114610a8c57600080fd5b6003546002541115610c115760408051818152601e918101919091527f416e64207468652077696e6e6572206f662074686520766f74652069733a0000606082015260806020820181815260008054600260001961010060018416150201909116049284018390527fcc195fb57a2597148f15fecade38a000847ff770596f679a4b83fe923007520b9390929091829160a083019085908015610b705780601f10610b4557610100808354040283529160200191610b70565b820191906000526020600020905b815481529060010190602001808311610b5357829003601f168201915b5050935050505060405180910390a16000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c055780601f10610bda57610100808354040283529160200191610c05565b820191906000526020600020905b815481529060010190602001808311610be857829003601f168201915b50505050509050610e0d565b6002546003541115610d5d5760408051818152601e918101919091527f416e64207468652077696e6e6572206f662074686520766f74652069733a00006060820152608060208201818152600180546002600019610100838516150201909116049284018390527fcc195fb57a2597148f15fecade38a000847ff770596f679a4b83fe923007520b9390929091829160a083019085908015610cf45780601f10610cc957610100808354040283529160200191610cf4565b820191906000526020600020905b815481529060010190602001808311610cd757829003601f168201915b5050935050505060405180910390a160018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c055780601f10610bda57610100808354040283529160200191610c05565b6003546002541415610e0d57604080518181526018818301527f54686520766f746520656e64656420696e206120746965210000000000000000606082015260806020820181905260009082015290517fcc195fb57a2597148f15fecade38a000847ff770596f679a4b83fe923007520b9181900360c00190a15060408051808201909152600d81527f497420776173206120746965210000000000000000000000000000000000000060208201525b90565b60045481565b60025481565b6006805482908110610e2a57fe5b600091825260209091200154905081565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610e7c57805160ff1916838001178555610ea9565b82800160010185558215610ea9579182015b82811115610ea9578251825591602001919060010190610e8e565b50610eb5929150610eb9565b5090565b610e0d91905b80821115610eb55760008155600101610ebf56000bb563d6789cea5d754d1b7f85bfebdfe7a1a86e2e0ffccfb8a6bbdb07826ae2a165627a7a723058209bc33498c05289baa764ac6bdc5c6bb40482e202e40e1ba7ee284a7e245843ac0029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x31B6DBF DUP2 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0xBBFC206 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0x22CE9BAC EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0x3E858923 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x49E811C5 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x87CFA5BF EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0x8E7EA5B2 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xA6193504 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xBAA13BB5 EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0xBF9D0698 EQ PUSH2 0x237 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP6 ADD DUP5 ADD SWAP1 SWAP6 MSTORE DUP5 DUP5 MSTORE PUSH2 0x12A SWAP5 CALLDATASIZE SWAP5 SWAP3 SWAP4 PUSH1 0x24 SWAP4 SWAP3 DUP5 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x255 SWAP4 POP POP POP POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x7A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH1 0x4 CALLDATALOAD PUSH2 0x7AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x165 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16E PUSH2 0x97F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1A8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x190 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1D5 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16E PUSH2 0xA0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16E PUSH2 0xA67 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0xE10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0xE16 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH1 0x4 CALLDATALOAD PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x4 SLOAD TIMESTAMP LT ISZERO PUSH2 0x267 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH2 0x100 PUSH1 0x1 DUP6 AND ISZERO MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x2FA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2CF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP DUP2 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x384 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x4120766F74652077697468207468697320766F7465436F6D6D69742077617320 DUP2 DUP4 ADD MSTORE PUSH32 0x6E6F742063617374000000000000000000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 PUSH2 0x443 JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x393 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xF8 PUSH1 0x2 EXP MUL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH32 0x4300000000000000000000000000000000000000000000000000000000000000 EQ ISZERO ISZERO PUSH2 0x443 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1A SWAP1 DUP3 ADD MSTORE PUSH32 0x5468697320766F74652077617320616C72656164792063617374000000000000 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH2 0x79E JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x473 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x454 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH1 0x40 MLOAD SWAP3 ADD DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 DUP7 EQ SWAP3 POP PUSH2 0x520 SWAP2 POP POP JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x24 SWAP1 DUP3 ADD MSTORE PUSH32 0x566F7465206861736820646F6573206E6F74206D6174636820766F746520636F DUP2 DUP4 ADD MSTORE PUSH32 0x6D6D697400000000000000000000000000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 PUSH2 0x79E JUMP JUMPDEST DUP4 SWAP1 POP DUP1 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x532 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xF8 PUSH1 0x2 EXP MUL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH32 0x3100000000000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0x5EA JUMPI PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1A SWAP1 DUP3 ADD MSTORE PUSH32 0x566F746520666F722063686F696365203120636F756E7465642E000000000000 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH2 0x74C JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x5F9 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xF8 PUSH1 0x2 EXP MUL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH32 0x3200000000000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0x6B1 JUMPI PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1A SWAP1 DUP3 ADD MSTORE PUSH32 0x566F746520666F722063686F696365203220636F756E7465642E000000000000 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH2 0x74C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x4C SWAP1 DUP3 ADD MSTORE PUSH32 0x566F746520636F756C64206E6F7420626520726561642120566F746573206D75 DUP2 DUP4 ADD MSTORE PUSH32 0x7374207374617274207769746820746865204153434949206368617261637465 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x7220603160206F72206032600000000000000000000000000000000000000000 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG1 JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x8 DUP2 MSTORE PUSH32 0x52657665616C6564000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD PUSH2 0x79C SWAP3 SWAP1 PUSH2 0xE3B JUMP JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 SLOAD TIMESTAMP GT ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH2 0x100 PUSH1 0x1 DUP6 AND ISZERO MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x84E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x823 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x831 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO ISZERO PUSH2 0x865 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE PUSH32 0xF652222313E28459528D920B65115C16C04F3EFC82AAEDC97BE59F3F377C0D3F ADD DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x436F6D6D69747465640000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 DUP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD PUSH2 0x8E5 SWAP3 SWAP1 PUSH2 0xE3B JUMP JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP2 DUP2 MSTORE PUSH1 0x27 DUP2 DUP4 ADD MSTORE PUSH32 0x566F746520636F6D6D697474656420776974682074686520666F6C6C6F77696E PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x6720686173683A00000000000000000000000000000000000000000000000000 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x651840CAA1B0E1C52EC1324C2C0ACA317EF17E709F0016630D8739F84C0F3F36 SWAP2 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xA05 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA05 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9E8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xA05 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA05 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 SLOAD TIMESTAMP LT ISZERO PUSH2 0xA78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD ADD EQ PUSH2 0xA8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD GT ISZERO PUSH2 0xC11 JUMPI PUSH1 0x40 DUP1 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1E SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x416E64207468652077696E6E6572206F662074686520766F74652069733A0000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP5 AND ISZERO MUL ADD SWAP1 SWAP2 AND DIV SWAP3 DUP5 ADD DUP4 SWAP1 MSTORE PUSH32 0xCC195FB57A2597148F15FECADE38A000847FF770596F679A4B83FE923007520B SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0xA0 DUP4 ADD SWAP1 DUP6 SWAP1 DUP1 ISZERO PUSH2 0xB70 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB45 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB70 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB53 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xC05 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBDA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC05 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBE8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH2 0xE0D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD GT ISZERO PUSH2 0xD5D JUMPI PUSH1 0x40 DUP1 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1E SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x416E64207468652077696E6E6572206F662074686520766F74652069733A0000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 DUP4 DUP6 AND ISZERO MUL ADD SWAP1 SWAP2 AND DIV SWAP3 DUP5 ADD DUP4 SWAP1 MSTORE PUSH32 0xCC195FB57A2597148F15FECADE38A000847FF770596F679A4B83FE923007520B SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0xA0 DUP4 ADD SWAP1 DUP6 SWAP1 DUP1 ISZERO PUSH2 0xCF4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCC9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCF4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCD7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xC05 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBDA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC05 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD EQ ISZERO PUSH2 0xE0D JUMPI PUSH1 0x40 DUP1 MLOAD DUP2 DUP2 MSTORE PUSH1 0x18 DUP2 DUP4 ADD MSTORE PUSH32 0x54686520766F746520656E64656420696E206120746965210000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0xCC195FB57A2597148F15FECADE38A000847FF770596F679A4B83FE923007520B SWAP2 DUP2 SWAP1 SUB PUSH1 0xC0 ADD SWAP1 LOG1 POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xD DUP2 MSTORE PUSH32 0x4974207761732061207469652100000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xE2A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xE7C JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xEA9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xEA9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xEA9 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xE8E JUMP JUMPDEST POP PUSH2 0xEB5 SWAP3 SWAP2 POP PUSH2 0xEB9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xE0D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xEB5 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xEBF JUMP STOP SIGNEXTEND 0xb5 PUSH4 0xD6789CEA 0x5d PUSH22 0x4D1B7F85BFEBDFE7A1A86E2E0FFCCFB8A6BBDB07826A 0xe2 LOG1 PUSH6 0x627A7A723058 KECCAK256 SWAP12 0xc3 CALLVALUE SWAP9 0xc0 MSTORE DUP10 0xba 0xa7 PUSH5 0xAC6BDC5C6B 0xb4 DIV DUP3 0xe2 MUL 0xe4 0xe SHL 0xa7 0xee 0x28 0x4a PUSH31 0x245843AC002900000000000000000000000000000000000000000000000000 ",
"sourceMap": "25:3740:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;246:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;246:27:0;;;;;;;;;;;;;;;;;;;;1769:1236;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1769:1236:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1769:1236:0;;-1:-1:-1;;1769:1236:0;;;-1:-1:-1;1769:1236:0;;-1:-1:-1;;;;1769:1236:0;;;315:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;315:33:0;;;;1151:608;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1151:608:0;;;;;98:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;98:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;125:21:0;;;;3015:748;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3015:748:0;;;;279:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;279:30:0;;;;213:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;213:27:0;;;;396:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;396:28:0;;;;;246:27;;;;:::o;1769:1236::-;1993:28;2498:22;1844:18;;1838:3;:24;1834:35;;;1864:5;;;1834:35;2030:25;;;;:12;:25;;;;;;;;;1993:63;;;;;;;;;;;;-1:-1:-1;;1993:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;2030:25;;1993:63;;2030:25;1993:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2070:15;:22;2096:1;2070:27;2066:232;;;2113:53;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2113:53:0;;;;;;;;2066:232;;;2187:15;2203:1;2187:18;;;;;;;;;;;;;;;-1:-1:-1;;;2187:18:0;;-1:-1:-1;;;2187:18:0;:25;;;;;;2183:115;;;2228:39;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2228:39:0;;;;;;;;2281:7;;2183:115;2345:5;2335:16;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;2335:16:0;;;;;;;;;;2320:31;;;-1:-1:-1;2316:131:0;;-1:-1:-1;;2316:131:0;2367:49;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2367:49:0;;;;;;;;2430:7;;2316:131;2529:5;2498:37;;2549:9;2559:1;2549:12;;;;;;;;;;;;;;;-1:-1:-1;;;2549:12:0;;-1:-1:-1;;;2549:12:0;:19;;;;;2545:406;;;2602:15;;;2620:1;2602:19;2584:37;;2635:39;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2635:39:0;;;;;;;;2545:406;;;2695:9;2705:1;2695:12;;;;;;;;;;;;;;;-1:-1:-1;;;2695:12:0;;-1:-1:-1;;;2695:12:0;:19;;;;;2691:260;;;2748:15;;;2766:1;2748:19;2730:37;;2781:39;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2781:39:0;;;;;;;;2691:260;;;2851:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2851:89:0;;;;;;;;2691:260;2960:38;;;;;;;;;;;;;;;;;;;-1:-1:-1;2960:25:0;;;:12;:25;;;;;;;:38;;;;;;:::i;:::-;;1769:1236;;;;;:::o;315:33::-;;;;:::o;1151:608::-;1356:28;1212:18;;1206:3;:24;1202:35;;;1232:5;;;1202:35;1393:25;;;;:12;:25;;;;;;;;;1356:63;;;;;;;;;;;;-1:-1:-1;;1356:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;1393:25;;1356:63;;1393:25;1356:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1433:15;:22;1459:1;1433:27;;1429:38;;;1462:5;;;1429:38;1565:11;27:10:-1;;39:1;23:18;;45:23;;;1565:29:0;;;;;1604:39;;;;;;;;;;;;1565:29;1604:39;;;;;;-1:-1:-1;1604:25:0;;;:12;:25;;;;;;;:39;;;;;;:::i;:::-;-1:-1:-1;1653:17:0;:20;;;;;;1683:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:608;;:::o;98:21::-;;;;;;;;;;;;;;;-1:-1:-1;;98:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;125:::-;;;;;;;;;;;;;;;-1:-1:-1;;125:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3015:748;3054:6;3139:18;;3133:3;:24;3129:35;;;3159:5;;;3129:35;3268:11;:18;3249:15;;3231;;:33;:55;3227:66;;3288:5;;;3227:66;3334:15;;3316;;:33;3312:445;;;3365:53;;;;;;;;;;;;;;;;;;;;;;;;;;3410:7;3365:53;;;-1:-1:-1;;3365:53:0;;;;;;;;;;;;;;;;;;;3410:7;;3365:53;;;;;;;;3410:7;;3365:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3439:7;3432:14;;;;;;;;;;;;;-1:-1:-1;;3432:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3439:7;3432:14;;3439:7;3432:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3312:445;3485:15;;3467;;:33;3463:294;;;3516:53;;;;;;;;;;;;;;;;;;;;;;;;;;3561:7;3516:53;;;-1:-1:-1;;3516:53:0;;;;;;;;;;;;;;;;;;;3561:7;;3516:53;;;;;;;;3561:7;;3516:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3590:7;3583:14;;;;;;;;;;;;;-1:-1:-1;;3583:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3590:7;3583:14;;3590:7;3583:14;;;;;;;;;;;;;;;;;;;;;;;;3463:294;3637:15;;3618;;:34;3614:143;;;3668:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3724:22:0;;;;;;;;;;;;;;;;;3614:143;3015:748;:::o;279:30::-;;;;:::o;213:27::-;;;;:::o;396:28::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;396:28:0;:::o;25:3740::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25:3740:0;;;-1:-1:-1;25:3740:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "774200",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"choice1()": "infinite",
"choice2()": "infinite",
"commitPhaseEndTime()": "538",
"commitVote(bytes32)": "infinite",
"getWinner()": "infinite",
"numberOfVotesCast()": "428",
"revealVote(string,bytes32)": "infinite",
"voteCommits(uint256)": "882",
"votesForChoice1()": "560",
"votesForChoice2()": "384"
}
},
"methodIdentifiers": {
"choice1()": "49e811c5",
"choice2()": "87cfa5bf",
"commitPhaseEndTime()": "a6193504",
"commitVote(bytes32)": "3e858923",
"getWinner()": "8e7ea5b2",
"numberOfVotesCast()": "22ce9bac",
"revealVote(string,bytes32)": "0bbfc206",
"voteCommits(uint256)": "bf9d0698",
"votesForChoice1()": "baa13bb5",
"votesForChoice2()": "031b6dbf"
}
},
"abi": [
{
"constant": true,
"inputs": [],
"name": "votesForChoice2",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_vote",
"type": "string"
},
{
"name": "_voteCommit",
"type": "bytes32"
}
],
"name": "revealVote",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "numberOfVotesCast",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_voteCommit",
"type": "bytes32"
}
],
"name": "commitVote",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "choice1",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "choice2",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getWinner",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "commitPhaseEndTime",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "votesForChoice1",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "voteCommits",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "_commitPhaseLengthInSeconds",
"type": "uint256"
},
{
"name": "_choice1",
"type": "string"
},
{
"name": "_choice2",
"type": "string"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "",
"type": "string"
}
],
"name": "logString",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "",
"type": "string"
},
{
"indexed": false,
"name": "",
"type": "bytes32"
}
],
"name": "newVoteCommit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "",
"type": "string"
},
{
"indexed": false,
"name": "",
"type": "string"
}
],
"name": "voteWinner",
"type": "event"
}
]
}
{
"compiler": {
"version": "0.4.26+commit.4563c3fc"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "votesForChoice2",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_vote",
"type": "string"
},
{
"name": "_voteCommit",
"type": "bytes32"
}
],
"name": "revealVote",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "numberOfVotesCast",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_voteCommit",
"type": "bytes32"
}
],
"name": "commitVote",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "choice1",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "choice2",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getWinner",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "commitPhaseEndTime",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "votesForChoice1",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "voteCommits",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "_commitPhaseLengthInSeconds",
"type": "uint256"
},
{
"name": "_choice1",
"type": "string"
},
{
"name": "_choice2",
"type": "string"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "",
"type": "string"
}
],
"name": "logString",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "",
"type": "string"
},
{
"indexed": false,
"name": "",
"type": "bytes32"
}
],
"name": "newVoteCommit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "",
"type": "string"
},
{
"indexed": false,
"name": "",
"type": "string"
}
],
"name": "voteWinner",
"type": "event"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/RPS_commit.sol": "CommitRevealElection"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/RPS_commit.sol": {
"keccak256": "0xb057e2fdeed6555002fb5f6a14e39f9751dd75afa3de73e246df287ace6b2064",
"urls": [
"bzzr://2666eb1cd09d0cc1aeade0cc5bba55c40bd1e521d3a4fb3cd9eecaaccb5186f8"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_75": {
"entryPoint": null,
"id": 75,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 70,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:200:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "95:103:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "141:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "150:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "153:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "143:6:1"
},
"nodeType": "YulFunctionCall",
"src": "143:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "143:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "116:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "125:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "112:3:1"
},
"nodeType": "YulFunctionCall",
"src": "112:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "137:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "108:3:1"
},
"nodeType": "YulFunctionCall",
"src": "108:32:1"
},
"nodeType": "YulIf",
"src": "105:52:1"
},
{
"nodeType": "YulAssignment",
"src": "166:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "182:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "176:5:1"
},
"nodeType": "YulFunctionCall",
"src": "176:16:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "166:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "61:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "72:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "84:6:1",
"type": ""
}
],
"src": "14:184:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405260001960095560405161107238038061107283398101604081905261002891610046565b600080546001600160a01b031916331790553460025560085561005f565b60006020828403121561005857600080fd5b5051919050565b6110048061006e6000396000f3fe6080604052600436106100e85760003560e01c8063b688a3631161008a578063cfe0a1de11610059578063cfe0a1de1461027f578063d24257c014610295578063d30895e4146102ab578063ea8a1af0146102cb57600080fd5b8063b688a363146101d1578063bdb337d1146101d9578063c19d93fb14610203578063c2bfc99f1461025f57600080fd5b80634daa2e11116100c65780634daa2e111461014e57806359a5f12d1461016e57806370dea79a146101a65780638e7ea5b2146101bc57600080fd5b80630ca5efd7146100ed5780630e76f9db1461010f5780631f6bb0a514610138575b600080fd5b3480156100f957600080fd5b5061010d610108366004610e7c565b6102e0565b005b34801561011b57600080fd5b5061012560085481565b6040519081526020015b60405180910390f35b34801561014457600080fd5b50610125600b5481565b34801561015a57600080fd5b5061010d610169366004610ed2565b6104ae565b34801561017a57600080fd5b5060015461018e906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b3480156101b257600080fd5b5061012560095481565b3480156101c857600080fd5b5061018e6106b4565b61010d610867565b3480156101e557600080fd5b506003546101f39060ff1681565b604051901515815260200161012f565b34801561020f57600080fd5b506004546005546006546007546102329360ff169291906001600160a01b031684565b6040805160ff90951685526020850193909352918301526001600160a01b0316606082015260800161012f565b34801561026b57600080fd5b5061010d61027a366004610efc565b6109db565b34801561028b57600080fd5b50610125600a5481565b3480156102a157600080fd5b5061012560025481565b3480156102b757600080fd5b5060005461018e906001600160a01b031681565b3480156102d757600080fd5b5061010d610b60565b6009544210156102ef57600080fd5b806102f957600080fd5b81516020830120811461034c5760405162461bcd60e51b81526020600482015260166024820152751b5bdd99481b5d5cdd081b585d18da0818dbdb5b5a5d60521b60448201526064015b60405180910390fd5b8160008151811061035f5761035f610f65565b6020910101516001600160f81b031916600360fc1b14806103a557508160008151811061038e5761038e610f65565b6020910101516001600160f81b031916603160f81b145b806103d55750816000815181106103be576103be610f65565b6020910101516001600160f81b031916601960f91b145b6103de57600080fd5b6000826000815181106103f3576103f3610f65565b6020910101516001600160f81b031916600360fc1b141561041c575063524f434b60e01b610467565b8260008151811061042f5761042f610f65565b6020910101516001600160f81b031916603160f81b14156104595750642820a822a960d91b610467565b506753434953534f525360c01b5b6000546001600160a01b031633141561049457600554821461048857600080fd5b600a5550506000600555565b60065482146104a257600080fd5b600b5550506000600655565b60035460ff16156104f35760405162461bcd60e51b815260206004820152600f60248201526e23b0b6b2903430b99032b73232b21760891b6044820152606401610343565b6007546001600160a01b0316331461053e5760405162461bcd60e51b815260206004820152600e60248201526d2737ba103cb7bab9103a3ab9371760911b6044820152606401610343565b60045460ff8381169116146105955760405162461bcd60e51b815260206004820152601a60248201527f496e636f72726563742073657175656e6365206e756d6265722e0000000000006044820152606401610343565b60095442106105d55760405162461bcd60e51b815260206004820152600c60248201526b135bdd995cc818db1bdcd95960a21b6044820152606401610343565b6000546001600160a01b03163314156105ff57600554156105f557600080fd5b6005819055610612565b6006541561060c57600080fd5b60068190555b61061b33610c4b565b600780546001600160a01b0319166001600160a01b0392909216919091179055600480546001919060009061065490849060ff16610f91565b82546101009290920a60ff81810219909316918316021790915560408051338152918516602083015281018390527f0b282c437c3c4bdfdc1b2c44d71b0632059bd9b31f8151d3fc4f8608f3f0d335915060600160405180910390a15050565b60006009544210156106c557600080fd5b600a546106d157600080fd5b600b546106dd57600080fd5b600063524f434b60e01b600a541480156107005750642820a822a960d91b600b54145b1561071757506001546001600160a01b0316610855565b642820a822a960d91b600a54148015610738575063524f434b60e01b600b54145b1561074f57506000546001600160a01b0316610855565b6753434953534f525360c01b600a541480156107745750642820a822a960d91b600b54145b1561078b57506000546001600160a01b0316610855565b642820a822a960d91b600a541480156107b057506753434953534f525360c01b600b54145b156107c757506001546001600160a01b0316610855565b63524f434b60e01b600a541480156107eb57506753434953534f525360c01b600b54145b1561080257506000546001600160a01b0316610855565b6753434953534f525360c01b600a54148015610826575063524f434b60e01b600b54145b1561083d57506001546001600160a01b0316610855565b60085461084a9042610fb6565b600955506000919050565b6003805460ff19166001179055919050565b6001546001600160a01b0316156108bc5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b60035460ff16156109045760405162461bcd60e51b815260206004820152601260248201527123b0b6b2903bb0b99031b0b731b2b632b21760711b6044820152606401610343565b60025434146109495760405162461bcd60e51b81526020600482015260116024820152702bb937b733903132ba1030b6b7bab73a1760791b6044820152606401610343565b600180546001600160a01b0319908116331790915560008054600780549093166001600160a01b0391909116179091556040517f762f260439bb4be3ef6e4dc2786e2e7bd187d3d80b79057d7a424fe98563e3359190a16008546109ad9042610fb6565b6009556040517f02bdd5174ce27e71542ca96bbba5c2c21920793759d94795d2f17eff6f7f2a0f90600090a1565b60045460ff9081169086161015610a405760405162461bcd60e51b8152602060048201526024808201527f53657175656e6365206e756d6265722063616e6e6f7420676f206261636b77616044820152633932399760e11b6064820152608401610343565b6040516bffffffffffffffffffffffff193060601b1660208201526001600160f81b031960f887901b1660348201526035810184905260558101839052600090610af090607501604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b9050610afb33610c4b565b6001600160a01b0316610b0e8287610d2b565b6001600160a01b031614610b2157600080fd5b6004805460ff881660ff1990911617905560058490556006839055600780546001600160a01b03191633179055610b5886836104ae565b505050505050565b6000546001600160a01b03163314610bba5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920666972737420706c61796572206d61792063616e63656c2e0000006044820152606401610343565b6001546001600160a01b031615610c0f5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b6003805460ff1916600117905560405133904780156108fc02916000818181858888f19350505050158015610c48573d6000803e3d6000fd5b50565b6001546000906001600160a01b0316610c9e5760405162461bcd60e51b815260206004820152601560248201527423b0b6b2903430b9903737ba1039ba30b93a32b21760591b6044820152606401610343565b6000546001600160a01b0383811691161415610cc55750506001546001600160a01b031690565b6001546001600160a01b0383811691161415610cec5750506000546001600160a01b031690565b60405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b210383630bcb2b91760891b6044820152606401610343565b919050565b600080600080610d3a85610daa565b6040805160008152602081018083528b905260ff8516918101919091526060810183905260808101829052929550909350915060019060a0016020604051602081039080840390855afa158015610d95573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60008060008351604114610dbd57600080fd5b5050506020810151604082015160609092015160001a92909190565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610e0057600080fd5b813567ffffffffffffffff80821115610e1b57610e1b610dd9565b604051601f8301601f19908116603f01168101908282118183101715610e4357610e43610dd9565b81604052838152866020858801011115610e5c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610e8f57600080fd5b823567ffffffffffffffff811115610ea657600080fd5b610eb285828601610def565b95602094909401359450505050565b803560ff81168114610d2657600080fd5b60008060408385031215610ee557600080fd5b610eee83610ec1565b946020939093013593505050565b600080600080600060a08688031215610f1457600080fd5b610f1d86610ec1565b9450602086013567ffffffffffffffff811115610f3957600080fd5b610f4588828901610def565b959895975050505060408401359360608101359360809091013592509050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168060ff03821115610fae57610fae610f7b565b019392505050565b60008219821115610fc957610fc9610f7b565b50019056fea2646970667358221220ed81373b5ffd2d78c0bcf164d53c5554704f42113a8cdbe37af54cce8acce3b664736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 NOT PUSH1 0x9 SSTORE PUSH1 0x40 MLOAD PUSH2 0x1072 CODESIZE SUB DUP1 PUSH2 0x1072 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x28 SWAP2 PUSH2 0x46 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE CALLVALUE PUSH1 0x2 SSTORE PUSH1 0x8 SSTORE PUSH2 0x5F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1004 DUP1 PUSH2 0x6E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB688A363 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xCFE0A1DE GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xCFE0A1DE EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xD24257C0 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0xD30895E4 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0xEA8A1AF0 EQ PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB688A363 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xBDB337D1 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xC19D93FB EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0xC2BFC99F EQ PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4DAA2E11 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x4DAA2E11 EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0x59A5F12D EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x70DEA79A EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x8E7EA5B2 EQ PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA5EFD7 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0xE76F9DB EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x1F6BB0A5 EQ PUSH2 0x138 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x108 CALLDATASIZE PUSH1 0x4 PUSH2 0xE7C JUMP JUMPDEST PUSH2 0x2E0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x169 CALLDATASIZE PUSH1 0x4 PUSH2 0xED2 JUMP JUMPDEST PUSH2 0x4AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x867 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x1F3 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH2 0x232 SWAP4 PUSH1 0xFF AND SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x27A CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x9DB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD KECCAK256 DUP2 EQ PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1B5BDD99481B5D5CDD081B585D18DA0818DBDB5B5A5D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x35F JUMPI PUSH2 0x35F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ DUP1 PUSH2 0x3A5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x38E JUMPI PUSH2 0x38E PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ JUMPDEST DUP1 PUSH2 0x3D5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3BE JUMPI PUSH2 0x3BE PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x19 PUSH1 0xF9 SHL EQ JUMPDEST PUSH2 0x3DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3F3 JUMPI PUSH2 0x3F3 PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ ISZERO PUSH2 0x41C JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH2 0x467 JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x42F JUMPI PUSH2 0x42F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ ISZERO PUSH2 0x459 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH2 0x467 JUMP JUMPDEST POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x494 JUMPI PUSH1 0x5 SLOAD DUP3 EQ PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SSTORE POP POP PUSH1 0x0 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD DUP3 EQ PUSH2 0x4A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SSTORE POP POP PUSH1 0x0 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x23B0B6B2903430B99032B73232B217 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x2737BA103CB7BAB9103A3AB93717 PUSH1 0x91 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF DUP4 DUP2 AND SWAP2 AND EQ PUSH2 0x595 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E636F72726563742073657175656E6365206E756D6265722E000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT PUSH2 0x5D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x135BDD995CC818DB1BDCD959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x5FF JUMPI PUSH1 0x5 SLOAD ISZERO PUSH2 0x5F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE PUSH2 0x612 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x60C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP2 SWAP1 SSTORE JUMPDEST PUSH2 0x61B CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x654 SWAP1 DUP5 SWAP1 PUSH1 0xFF AND PUSH2 0xF91 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP2 DUP6 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xB282C437C3C4BDFDC1B2C44D71B0632059BD9B31F8151D3FC4F8608F3F0D335 SWAP2 POP PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x700 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x717 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x738 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x74F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x774 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x78B JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7B0 JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x7C7 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7EB JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x802 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x826 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x83D JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x84A SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x8BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x904 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x23B0B6B2903BB0B99031B0B731B2B632B217 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x2 SLOAD CALLVALUE EQ PUSH2 0x949 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x2BB937B733903132BA1030B6B7BAB73A17 PUSH1 0x79 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x762F260439BB4BE3EF6E4DC2786E2E7BD187D3D80B79057D7A424FE98563E335 SWAP2 SWAP1 LOG1 PUSH1 0x8 SLOAD PUSH2 0x9AD SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2BDD5174CE27E71542CA96BBBA5C2C21920793759D94795D2F17EFF6F7F2A0F SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF SWAP1 DUP2 AND SWAP1 DUP7 AND LT ISZERO PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x53657175656E6365206E756D6265722063616E6E6F7420676F206261636B7761 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x39323997 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0xF8 DUP8 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x55 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xAF0 SWAP1 PUSH1 0x75 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3C DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x5C ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 POP PUSH2 0xAFB CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB0E DUP3 DUP8 PUSH2 0xD2B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF DUP9 AND PUSH1 0xFF NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x5 DUP5 SWAP1 SSTORE PUSH1 0x6 DUP4 SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0xB58 DUP7 DUP4 PUSH2 0x4AE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xBBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C7920666972737420706C61796572206D61792063616E63656C2E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xC0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD CALLER SWAP1 SELFBALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xC48 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x23B0B6B2903430B9903737BA1039BA30B93A32B217 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCC5 JUMPI POP POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCEC JUMPI POP POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B210383630BCB2B917 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xD3A DUP6 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE DUP12 SWAP1 MSTORE PUSH1 0xFF DUP6 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0xDBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x60 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 BYTE SWAP3 SWAP1 SWAP2 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH2 0xE1B PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xE43 JUMPI PUSH2 0xE43 PUSH2 0xDD9 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xE5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEB2 DUP6 DUP3 DUP7 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xD26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEEE DUP4 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xF14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF1D DUP7 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF45 DUP9 DUP3 DUP10 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 SWAP9 SWAP6 SWAP8 POP POP POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP4 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP1 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xFAE JUMPI PUSH2 0xFAE PUSH2 0xF7B JUMP JUMPDEST ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xFC9 JUMPI PUSH2 0xFC9 PUSH2 0xF7B JUMP JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED DUP2 CALLDATACOPY EXTCODESIZE 0x5F REVERT 0x2D PUSH25 0xC0BCF164D53C5554704F42113A8CDBE37AF54CCE8ACCE3B664 PUSH20 0x6F6C634300080900330000000000000000000000 ",
"sourceMap": "65:7281:0:-:0;;;-1:-1:-1;;524:35:0;;774:158;;;;;;;;;;;;;;;;;;:::i;:::-;830:7;:20;;-1:-1:-1;;;;;;830:20:0;840:10;830:20;;;872:9;860;:21;891:15;:34;65:7281;;14:184:1;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:1;;14:184;-1:-1:-1;14:184:1:o;:::-;65:7281:0;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@betAmount_16": {
"entryPoint": null,
"id": 16,
"parameterSlots": 0,
"returnSlots": 0
},
"@cancel_166": {
"entryPoint": 2912,
"id": 166,
"parameterSlots": 0,
"returnSlots": 0
},
"@gameOver_18": {
"entryPoint": null,
"id": 18,
"parameterSlots": 0,
"returnSlots": 0
},
"@getWinner_608": {
"entryPoint": 1716,
"id": 608,
"parameterSlots": 0,
"returnSlots": 1
},
"@join_127": {
"entryPoint": 2151,
"id": 127,
"parameterSlots": 0,
"returnSlots": 0
},
"@moveFromState_347": {
"entryPoint": 2523,
"id": 347,
"parameterSlots": 5,
"returnSlots": 0
},
"@move_266": {
"entryPoint": 1198,
"id": 266,
"parameterSlots": 2,
"returnSlots": 0
},
"@opponentOf_645": {
"entryPoint": 3147,
"id": 645,
"parameterSlots": 1,
"returnSlots": 1
},
"@player1_12": {
"entryPoint": null,
"id": 12,
"parameterSlots": 0,
"returnSlots": 0
},
"@player1move_41": {
"entryPoint": null,
"id": 41,
"parameterSlots": 0,
"returnSlots": 0
},
"@player2_14": {
"entryPoint": null,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
},
"@player2move_43": {
"entryPoint": null,
"id": 43,
"parameterSlots": 0,
"returnSlots": 0
},
"@prefixed_730": {
"entryPoint": null,
"id": 730,
"parameterSlots": 1,
"returnSlots": 1
},
"@recoverSigner_714": {
"entryPoint": 3371,
"id": 714,
"parameterSlots": 2,
"returnSlots": 1
},
"@revealMove_477": {
"entryPoint": 736,
"id": 477,
"parameterSlots": 2,
"returnSlots": 0
},
"@splitSignature_679": {
"entryPoint": 3498,
"id": 679,
"parameterSlots": 1,
"returnSlots": 3
},
"@state_30": {
"entryPoint": null,
"id": 30,
"parameterSlots": 0,
"returnSlots": 0
},
"@timeoutInterval_32": {
"entryPoint": null,
"id": 32,
"parameterSlots": 0,
"returnSlots": 0
},
"@timeout_39": {
"entryPoint": null,
"id": 39,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_bytes": {
"entryPoint": 3567,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes_memory_ptrt_bytes32": {
"entryPoint": 3708,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint8t_bytes32": {
"entryPoint": 3794,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint8t_bytes_memory_ptrt_bytes32t_bytes32t_bytes32": {
"entryPoint": 3836,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_uint8": {
"entryPoint": 3777,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_address_t_uint8_t_bytes32_t_bytes32__to_t_address_t_uint8_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint8_t_bytes32__to_t_address_t_uint8_t_bytes32__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_044fd81d418bf62b20af635198f63632277e3bfb22a134d0c53cfd4dd9d4974b__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_124aefa704cdd407a2403e74675d3926834fa5fabd6ae58107a7b9fd1906ef54__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_16f77c79c1a2609f3237b9b5aa9f2956b73b6e67f18448e897441e51ed3de64d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_1d36627e1510ec4829841427bef49fae7a65d4f0374862a1def1ce927571f793__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_21914824ead4132f6cc39af30546822d90293b773e78a531d1c65d2f7dc26ddb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_37e485df2657cc220ee36672205ee7c3cc5e3c4c914afd66fbfda5c851598efb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_3cbc588e4d1ecfdf64e47f1e54a082d2c336b8228cf0f55aadaa6495f242d77c__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_507ce349b9060e0e598da3a12cdc76c1c5e81243abd956e8ed976ed64eb674e8__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_51b79df1a40f6eade4f7c6efb6604398969116a4c002b822d353536582071c64__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_69de070a7e9fd31aaf1220285a32a1aafa2aaabdd8a0a65c53d9faa020ec0d52__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9b3b3ec960f4f8902c361019561daa84849c1ba720f77a9bb2397ef8a8488f03__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9d48a83ffa746d9c6a18a1ade1b13118041d408147adef9e381b25038ed56049__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint8_t_bytes32_t_bytes32_t_address__to_t_uint8_t_bytes32_t_bytes32_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 4022,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint8": {
"entryPoint": 3985,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 3963,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 3941,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 3545,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:9913:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "46:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "198:666:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "247:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "256:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "259:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "249:6:1"
},
"nodeType": "YulFunctionCall",
"src": "249:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "249:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "226:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "234:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "222:3:1"
},
"nodeType": "YulFunctionCall",
"src": "222:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "241:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "218:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "211:6:1"
},
"nodeType": "YulFunctionCall",
"src": "211:35:1"
},
"nodeType": "YulIf",
"src": "208:55:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "272:30:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "295:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "282:12:1"
},
"nodeType": "YulFunctionCall",
"src": "282:20:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "276:2:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "311:28:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "321:18:1",
"type": "",
"value": "0xffffffffffffffff"
},
"variables": [
{
"name": "_2",
"nodeType": "YulTypedName",
"src": "315:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "362:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "364:16:1"
},
"nodeType": "YulFunctionCall",
"src": "364:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "364:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "354:2:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "358:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "351:2:1"
},
"nodeType": "YulFunctionCall",
"src": "351:10:1"
},
"nodeType": "YulIf",
"src": "348:36:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "393:17:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "407:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "403:3:1"
},
"nodeType": "YulFunctionCall",
"src": "403:7:1"
},
"variables": [
{
"name": "_3",
"nodeType": "YulTypedName",
"src": "397:2:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "419:23:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "439:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "433:5:1"
},
"nodeType": "YulFunctionCall",
"src": "433:9:1"
},
"variables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "423:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "451:71:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "497:2:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "501:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "493:3:1"
},
"nodeType": "YulFunctionCall",
"src": "493:13:1"
},
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "508:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "489:3:1"
},
"nodeType": "YulFunctionCall",
"src": "489:22:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "513:2:1",
"type": "",
"value": "63"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "485:3:1"
},
"nodeType": "YulFunctionCall",
"src": "485:31:1"
},
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "518:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "481:3:1"
},
"nodeType": "YulFunctionCall",
"src": "481:40:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "469:3:1"
},
"nodeType": "YulFunctionCall",
"src": "469:53:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "455:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "581:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "583:16:1"
},
"nodeType": "YulFunctionCall",
"src": "583:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "583:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "540:10:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "552:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "537:2:1"
},
"nodeType": "YulFunctionCall",
"src": "537:18:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "560:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "572:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "557:2:1"
},
"nodeType": "YulFunctionCall",
"src": "557:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "534:2:1"
},
"nodeType": "YulFunctionCall",
"src": "534:46:1"
},
"nodeType": "YulIf",
"src": "531:72:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "619:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "623:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "612:6:1"
},
"nodeType": "YulFunctionCall",
"src": "612:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "612:22:1"
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "650:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "658:2:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "643:6:1"
},
"nodeType": "YulFunctionCall",
"src": "643:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "643:18:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "709:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "718:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "721:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "711:6:1"
},
"nodeType": "YulFunctionCall",
"src": "711:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "711:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "684:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "692:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "680:3:1"
},
"nodeType": "YulFunctionCall",
"src": "680:15:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "697:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "676:3:1"
},
"nodeType": "YulFunctionCall",
"src": "676:26:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "704:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "673:2:1"
},
"nodeType": "YulFunctionCall",
"src": "673:35:1"
},
"nodeType": "YulIf",
"src": "670:55:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "751:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "759:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "747:3:1"
},
"nodeType": "YulFunctionCall",
"src": "747:17:1"
},
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "770:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "778:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "766:3:1"
},
"nodeType": "YulFunctionCall",
"src": "766:17:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "785:2:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "734:12:1"
},
"nodeType": "YulFunctionCall",
"src": "734:54:1"
},
"nodeType": "YulExpressionStatement",
"src": "734:54:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "812:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "820:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "808:3:1"
},
"nodeType": "YulFunctionCall",
"src": "808:15:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "825:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "804:3:1"
},
"nodeType": "YulFunctionCall",
"src": "804:26:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "797:6:1"
},
"nodeType": "YulFunctionCall",
"src": "797:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "797:37:1"
},
{
"nodeType": "YulAssignment",
"src": "843:15:1",
"value": {
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "852:6:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "843:5:1"
}
]
}
]
},
"name": "abi_decode_bytes",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "172:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "180:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "188:5:1",
"type": ""
}
],
"src": "146:718:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "965:292:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1011:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1020:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1023:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1013:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1013:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1013:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "986:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "995:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "982:3:1"
},
"nodeType": "YulFunctionCall",
"src": "982:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1007:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "978:3:1"
},
"nodeType": "YulFunctionCall",
"src": "978:32:1"
},
"nodeType": "YulIf",
"src": "975:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1036:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1063:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1050:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1050:23:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1040:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1116:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1125:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1128:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1118:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1118:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1118:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1088:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1096:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1085:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1085:30:1"
},
"nodeType": "YulIf",
"src": "1082:50:1"
},
{
"nodeType": "YulAssignment",
"src": "1141:59:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1172:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1183:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1168:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1168:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1192:7:1"
}
],
"functionName": {
"name": "abi_decode_bytes",
"nodeType": "YulIdentifier",
"src": "1151:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1151:49:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1141:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1209:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1236:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1247:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1232:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1232:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1219:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1219:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1209:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes_memory_ptrt_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "923:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "934:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "946:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "954:6:1",
"type": ""
}
],
"src": "869:388:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1363:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1373:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1385:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1396:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1381:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1381:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1373:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1415:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1426:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1408:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1408:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "1408:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1332:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1343:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1354:4:1",
"type": ""
}
],
"src": "1262:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1545:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1555:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1567:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1578:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1563:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1563:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1555:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1597:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1608:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1590:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1590:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "1590:25:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1514:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1525:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1536:4:1",
"type": ""
}
],
"src": "1444:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1673:109:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1683:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1705:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1692:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1692:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1683:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1760:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1769:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1772:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1762:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1762:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1762:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1734:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1745:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1752:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1741:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1741:16:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1731:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1731:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1724:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1724:35:1"
},
"nodeType": "YulIf",
"src": "1721:55:1"
}
]
},
"name": "abi_decode_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1652:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1663:5:1",
"type": ""
}
],
"src": "1626:156:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1872:165:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1918:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1927:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1930:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1920:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1920:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1920:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1893:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1902:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1889:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1889:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1914:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1885:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1885:32:1"
},
"nodeType": "YulIf",
"src": "1882:52:1"
},
{
"nodeType": "YulAssignment",
"src": "1943:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1970:9:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "1953:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1953:27:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1943:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1989:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2016:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2027:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2012:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2012:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1999:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1999:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1989:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint8t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1830:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1841:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1853:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1861:6:1",
"type": ""
}
],
"src": "1787:250:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2143:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2153:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2165:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2176:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2161:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2161:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2153:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2195:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2210:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2226:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2231:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "2222:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2222:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2235:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2218:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2206:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2206:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2188:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2188:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "2188:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2112:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2123:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2134:4:1",
"type": ""
}
],
"src": "2042:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2345:92:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2355:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2367:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2378:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2363:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2363:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2355:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2397:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2422:6:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2415:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2415:14:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2408:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2408:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2390:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2390:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "2390:41:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2314:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2325:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2336:4:1",
"type": ""
}
],
"src": "2250:187:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2623:243:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2633:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2645:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2656:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2641:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2641:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2633:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2676:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2691:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2699:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2687:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2687:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2669:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2669:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "2669:36:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2725:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2736:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2721:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2721:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2741:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2714:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2714:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "2714:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2768:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2779:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2764:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2764:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "2784:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2757:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2757:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "2757:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2811:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2822:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2807:18:1"
},
{
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "2831:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2847:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2852:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "2843:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2843:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2856:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2839:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2839:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2827:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2827:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2800:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2800:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "2800:60:1"
}
]
},
"name": "abi_encode_tuple_t_uint8_t_bytes32_t_bytes32_t_address__to_t_uint8_t_bytes32_t_bytes32_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2568:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "2579:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2587:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2595:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2603:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2614:4:1",
"type": ""
}
],
"src": "2442:424:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3016:451:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3063:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3072:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3075:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3065:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3065:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3065:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3037:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3046:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3033:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3033:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3058:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3029:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3029:33:1"
},
"nodeType": "YulIf",
"src": "3026:53:1"
},
{
"nodeType": "YulAssignment",
"src": "3088:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3115:9:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "3098:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3098:27:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3088:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3134:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3165:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3176:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3161:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3161:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3148:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3148:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3138:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3223:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3232:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3235:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3225:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3225:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3225:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3195:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3203:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3192:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3192:30:1"
},
"nodeType": "YulIf",
"src": "3189:50:1"
},
{
"nodeType": "YulAssignment",
"src": "3248:59:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3279:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3290:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3275:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3275:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3299:7:1"
}
],
"functionName": {
"name": "abi_decode_bytes",
"nodeType": "YulIdentifier",
"src": "3258:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3258:49:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3248:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3316:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3343:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3354:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3339:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3339:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3326:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3326:32:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3316:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3367:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3394:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3405:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3390:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3377:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3377:32:1"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "3367:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3418:43:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3445:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3456:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3441:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3441:19:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3428:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3428:33:1"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "3418:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint8t_bytes_memory_ptrt_bytes32t_bytes32t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2950:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2961:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2973:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2981:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2989:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "2997:6:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "3005:6:1",
"type": ""
}
],
"src": "2871:596:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3646:172:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3663:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3674:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3656:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3656:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "3656:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3697:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3708:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3693:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3693:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3713:2:1",
"type": "",
"value": "22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3686:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3686:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "3686:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3736:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3747:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3732:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3732:18:1"
},
{
"hexValue": "6d6f7665206d757374206d6174636820636f6d6d6974",
"kind": "string",
"nodeType": "YulLiteral",
"src": "3752:24:1",
"type": "",
"value": "move must match commit"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3725:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3725:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "3725:52:1"
},
{
"nodeType": "YulAssignment",
"src": "3786:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3798:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3809:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3794:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3794:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3786:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_37e485df2657cc220ee36672205ee7c3cc5e3c4c914afd66fbfda5c851598efb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3623:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3637:4:1",
"type": ""
}
],
"src": "3472:346:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3855:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3872:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3879:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3884:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "3875:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3875:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3865:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3865:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "3865:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3912:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3915:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3905:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3905:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3905:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3936:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3939:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3929:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3929:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3929:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "3823:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4129:165:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4146:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4157:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4139:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4139:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4139:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4180:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4191:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4176:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4176:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4196:2:1",
"type": "",
"value": "15"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4169:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4169:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4169:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4219:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4230:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4215:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4215:18:1"
},
{
"hexValue": "47616d652068617320656e6465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4235:17:1",
"type": "",
"value": "Game has ended."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4208:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4208:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "4208:45:1"
},
{
"nodeType": "YulAssignment",
"src": "4262:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4274:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4285:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4270:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4270:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4262:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_124aefa704cdd407a2403e74675d3926834fa5fabd6ae58107a7b9fd1906ef54__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4106:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4120:4:1",
"type": ""
}
],
"src": "3955:339:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4473:164:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4490:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4501:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4483:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4483:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4483:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4524:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4535:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4520:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4520:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4540:2:1",
"type": "",
"value": "14"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4513:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4513:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4513:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4563:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4574:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4559:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4559:18:1"
},
{
"hexValue": "4e6f7420796f7572207475726e2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4579:16:1",
"type": "",
"value": "Not your turn."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4552:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4552:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "4552:44:1"
},
{
"nodeType": "YulAssignment",
"src": "4605:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4617:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4628:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4613:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4613:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4605:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_69de070a7e9fd31aaf1220285a32a1aafa2aaabdd8a0a65c53d9faa020ec0d52__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4450:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4464:4:1",
"type": ""
}
],
"src": "4299:338:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4816:176:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4833:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4844:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4826:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4826:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4826:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4867:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4878:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4863:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4863:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4883:2:1",
"type": "",
"value": "26"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4856:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4856:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4856:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4906:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4917:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4902:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4902:18:1"
},
{
"hexValue": "496e636f72726563742073657175656e6365206e756d6265722e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4922:28:1",
"type": "",
"value": "Incorrect sequence number."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4895:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4895:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "4895:56:1"
},
{
"nodeType": "YulAssignment",
"src": "4960:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4972:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4983:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4968:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4968:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4960:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9d48a83ffa746d9c6a18a1ade1b13118041d408147adef9e381b25038ed56049__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4793:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4807:4:1",
"type": ""
}
],
"src": "4642:350:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5171:162:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5188:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5199:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5181:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5181:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "5181:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5222:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5233:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5218:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5238:2:1",
"type": "",
"value": "12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5211:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5211:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "5211:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5261:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5272:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5257:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5257:18:1"
},
{
"hexValue": "4d6f76657320636c6f736564",
"kind": "string",
"nodeType": "YulLiteral",
"src": "5277:14:1",
"type": "",
"value": "Moves closed"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5250:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5250:42:1"
},
"nodeType": "YulExpressionStatement",
"src": "5250:42:1"
},
{
"nodeType": "YulAssignment",
"src": "5301:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5313:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5324:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5309:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5309:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5301:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_16f77c79c1a2609f3237b9b5aa9f2956b73b6e67f18448e897441e51ed3de64d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5148:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5162:4:1",
"type": ""
}
],
"src": "4997:336:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5370:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5387:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5394:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5399:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5390:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5380:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5380:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "5380:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5427:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5430:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5420:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5420:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5420:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5451:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5454:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5444:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5444:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5444:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "5338:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5516:158:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5526:23:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5541:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5544:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5537:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5537:12:1"
},
"variables": [
{
"name": "x_1",
"nodeType": "YulTypedName",
"src": "5530:3:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "5558:23:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5573:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5576:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5569:12:1"
},
"variables": [
{
"name": "y_1",
"nodeType": "YulTypedName",
"src": "5562:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5617:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "5619:16:1"
},
"nodeType": "YulFunctionCall",
"src": "5619:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "5619:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x_1",
"nodeType": "YulIdentifier",
"src": "5596:3:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5605:4:1",
"type": "",
"value": "0xff"
},
{
"name": "y_1",
"nodeType": "YulIdentifier",
"src": "5611:3:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5601:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5601:14:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5593:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5593:23:1"
},
"nodeType": "YulIf",
"src": "5590:49:1"
},
{
"nodeType": "YulAssignment",
"src": "5648:20:1",
"value": {
"arguments": [
{
"name": "x_1",
"nodeType": "YulIdentifier",
"src": "5659:3:1"
},
{
"name": "y_1",
"nodeType": "YulIdentifier",
"src": "5664:3:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5655:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5655:13:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "5648:3:1"
}
]
}
]
},
"name": "checked_add_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "5499:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "5502:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "5508:3:1",
"type": ""
}
],
"src": "5470:204:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5832:199:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5842:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5854:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5865:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5850:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5850:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5842:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5884:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5899:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5915:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5920:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5911:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5911:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5924:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5907:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5907:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5895:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5895:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5877:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5877:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "5877:51:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5948:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5959:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5944:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5944:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5968:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5976:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5964:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5964:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5937:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5937:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "5937:45:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6002:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6013:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5998:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5998:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6018:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5991:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5991:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5991:34:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint8_t_bytes32__to_t_address_t_uint8_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5785:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5796:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5804:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5812:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5823:4:1",
"type": ""
}
],
"src": "5679:352:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6084:80:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6111:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "6113:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6113:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6113:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6100:1:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6107:1:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "6103:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6103:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6097:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6097:13:1"
},
"nodeType": "YulIf",
"src": "6094:39:1"
},
{
"nodeType": "YulAssignment",
"src": "6142:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6153:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6156:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6149:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6149:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "6142:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "6067:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "6070:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "6076:3:1",
"type": ""
}
],
"src": "6036:128:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6343:175:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6360:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6371:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6353:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6353:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "6353:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6394:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6405:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6390:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6410:2:1",
"type": "",
"value": "25"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6383:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6383:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "6383:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6433:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6444:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6429:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6429:18:1"
},
{
"hexValue": "47616d652068617320616c726561647920737461727465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6449:27:1",
"type": "",
"value": "Game has already started."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6422:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6422:55:1"
},
"nodeType": "YulExpressionStatement",
"src": "6422:55:1"
},
{
"nodeType": "YulAssignment",
"src": "6486:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6498:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6509:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6494:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6494:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6486:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_1d36627e1510ec4829841427bef49fae7a65d4f0374862a1def1ce927571f793__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6320:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6334:4:1",
"type": ""
}
],
"src": "6169:349:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6697:168:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6714:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6725:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6707:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6707:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "6707:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6748:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6759:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6744:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6744:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6764:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6737:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6737:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "6737:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6787:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6798:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6783:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6783:18:1"
},
{
"hexValue": "47616d65207761732063616e63656c65642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6803:20:1",
"type": "",
"value": "Game was canceled."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6776:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6776:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "6776:48:1"
},
{
"nodeType": "YulAssignment",
"src": "6833:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6845:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6856:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6841:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6841:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6833:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_3cbc588e4d1ecfdf64e47f1e54a082d2c336b8228cf0f55aadaa6495f242d77c__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6674:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6688:4:1",
"type": ""
}
],
"src": "6523:342:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7044:167:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7061:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7072:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7054:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7054:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7054:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7095:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7106:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7091:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7091:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7111:2:1",
"type": "",
"value": "17"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7084:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7084:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7084:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7134:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7145:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7130:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7130:18:1"
},
{
"hexValue": "57726f6e672062657420616d6f756e742e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7150:19:1",
"type": "",
"value": "Wrong bet amount."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7123:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7123:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "7123:47:1"
},
{
"nodeType": "YulAssignment",
"src": "7179:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7191:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7202:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7187:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7187:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7179:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_044fd81d418bf62b20af635198f63632277e3bfb22a134d0c53cfd4dd9d4974b__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7021:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7035:4:1",
"type": ""
}
],
"src": "6870:341:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7390:226:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7407:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7418:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7400:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7400:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7400:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7441:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7452:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7437:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7437:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7457:2:1",
"type": "",
"value": "36"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7430:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7430:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7430:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7480:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7491:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7476:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7476:18:1"
},
{
"hexValue": "53657175656e6365206e756d6265722063616e6e6f7420676f206261636b7761",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7496:34:1",
"type": "",
"value": "Sequence number cannot go backwa"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7469:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7469:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "7469:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7551:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7562:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7547:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7547:18:1"
},
{
"hexValue": "7264732e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7567:6:1",
"type": "",
"value": "rds."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7540:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7540:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "7540:34:1"
},
{
"nodeType": "YulAssignment",
"src": "7583:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7595:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7606:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7591:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7591:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7583:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_21914824ead4132f6cc39af30546822d90293b773e78a531d1c65d2f7dc26ddb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7367:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7381:4:1",
"type": ""
}
],
"src": "7216:400:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7820:251:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7837:3:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7850:2:1",
"type": "",
"value": "96"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7854:6:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "7846:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7846:15:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7867:26:1",
"type": "",
"value": "0xffffffffffffffffffffffff"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "7863:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7863:31:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7842:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7842:53:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7830:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7830:66:1"
},
"nodeType": "YulExpressionStatement",
"src": "7830:66:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7916:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7921:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7912:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7912:12:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7934:3:1",
"type": "",
"value": "248"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "7939:6:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "7930:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7930:16:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7952:3:1",
"type": "",
"value": "248"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7957:3:1",
"type": "",
"value": "255"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "7948:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7948:13:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7926:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7926:36:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7905:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7905:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "7905:58:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7983:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7988:2:1",
"type": "",
"value": "21"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7979:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7979:12:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "7993:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7972:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7972:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "7972:28:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8020:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8025:2:1",
"type": "",
"value": "53"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8016:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8016:12:1"
},
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "8030:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8009:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8009:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "8009:28:1"
},
{
"nodeType": "YulAssignment",
"src": "8046:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8057:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8062:2:1",
"type": "",
"value": "85"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8053:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8053:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8046:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_address_t_uint8_t_bytes32_t_bytes32__to_t_address_t_uint8_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7772:3:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "7777:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "7785:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "7793:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7801:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7812:3:1",
"type": ""
}
],
"src": "7621:450:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8250:179:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8267:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8278:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8260:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8260:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8260:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8301:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8312:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8297:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8297:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8317:2:1",
"type": "",
"value": "29"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8290:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8290:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8290:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8340:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8351:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8336:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8336:18:1"
},
{
"hexValue": "4f6e6c7920666972737420706c61796572206d61792063616e63656c2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8356:31:1",
"type": "",
"value": "Only first player may cancel."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8329:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8329:59:1"
},
"nodeType": "YulExpressionStatement",
"src": "8329:59:1"
},
{
"nodeType": "YulAssignment",
"src": "8397:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8409:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8420:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8405:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8405:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8397:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_51b79df1a40f6eade4f7c6efb6604398969116a4c002b822d353536582071c64__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8227:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8241:4:1",
"type": ""
}
],
"src": "8076:353:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8608:171:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8625:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8636:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8618:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8618:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8618:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8659:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8670:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8655:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8655:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8675:2:1",
"type": "",
"value": "21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8648:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8648:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8648:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8698:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8709:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8694:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8694:18:1"
},
{
"hexValue": "47616d6520686173206e6f7420737461727465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8714:23:1",
"type": "",
"value": "Game has not started."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8687:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8687:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "8687:51:1"
},
{
"nodeType": "YulAssignment",
"src": "8747:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8759:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8770:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8755:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8755:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8747:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_507ce349b9060e0e598da3a12cdc76c1c5e81243abd956e8ed976ed64eb674e8__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8585:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8599:4:1",
"type": ""
}
],
"src": "8434:345:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8958:165:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8975:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8986:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8968:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8968:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8968:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9009:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9020:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9005:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9005:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9025:2:1",
"type": "",
"value": "15"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8998:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8998:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8998:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9048:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9059:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9044:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9044:18:1"
},
{
"hexValue": "496e76616c696420706c617965722e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9064:17:1",
"type": "",
"value": "Invalid player."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9037:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9037:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "9037:45:1"
},
{
"nodeType": "YulAssignment",
"src": "9091:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9103:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9114:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9099:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9099:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9091:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9b3b3ec960f4f8902c361019561daa84849c1ba720f77a9bb2397ef8a8488f03__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8935:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8949:4:1",
"type": ""
}
],
"src": "8784:339:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9348:160:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9365:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9370:66:1",
"type": "",
"value": "0x19457468657265756d205369676e6564204d6573736167653a0a333200000000"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9358:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9358:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "9358:79:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9457:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9462:2:1",
"type": "",
"value": "28"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9453:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9453:12:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9467:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9446:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9446:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "9446:28:1"
},
{
"nodeType": "YulAssignment",
"src": "9483:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9494:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9499:2:1",
"type": "",
"value": "60"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9490:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9490:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9483:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9324:3:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9329:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9340:3:1",
"type": ""
}
],
"src": "9128:380:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9694:217:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9704:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9716:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9727:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9712:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9712:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9704:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9747:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9758:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9740:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9740:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "9740:25:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9785:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9796:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9781:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9781:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "9805:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9813:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "9801:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9801:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9774:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9774:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "9774:45:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9839:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9850:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9835:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9835:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "9855:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9828:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9828:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "9828:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9882:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9893:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9878:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9878:18:1"
},
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "9898:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9871:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9871:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "9871:34:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9639:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "9650:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "9658:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "9666:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9674:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9685:4:1",
"type": ""
}
],
"src": "9513:398:1"
}
]
},
"contents": "{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_bytes_memory_ptrt_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint8t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint8_t_bytes32_t_bytes32_t_address__to_t_uint8_t_bytes32_t_bytes32_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, and(value0, 0xff))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint8t_bytes_memory_ptrt_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_encode_tuple_t_stringliteral_37e485df2657cc220ee36672205ee7c3cc5e3c4c914afd66fbfda5c851598efb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"move must match commit\")\n tail := add(headStart, 96)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_124aefa704cdd407a2403e74675d3926834fa5fabd6ae58107a7b9fd1906ef54__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Game has ended.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_69de070a7e9fd31aaf1220285a32a1aafa2aaabdd8a0a65c53d9faa020ec0d52__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not your turn.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9d48a83ffa746d9c6a18a1ade1b13118041d408147adef9e381b25038ed56049__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Incorrect sequence number.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_16f77c79c1a2609f3237b9b5aa9f2956b73b6e67f18448e897441e51ed3de64d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 12)\n mstore(add(headStart, 64), \"Moves closed\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint8(x, y) -> sum\n {\n let x_1 := and(x, 0xff)\n let y_1 := and(y, 0xff)\n if gt(x_1, sub(0xff, y_1)) { panic_error_0x11() }\n sum := add(x_1, y_1)\n }\n function abi_encode_tuple_t_address_t_uint8_t_bytes32__to_t_address_t_uint8_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_1d36627e1510ec4829841427bef49fae7a65d4f0374862a1def1ce927571f793__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"Game has already started.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3cbc588e4d1ecfdf64e47f1e54a082d2c336b8228cf0f55aadaa6495f242d77c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Game was canceled.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_044fd81d418bf62b20af635198f63632277e3bfb22a134d0c53cfd4dd9d4974b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"Wrong bet amount.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_21914824ead4132f6cc39af30546822d90293b773e78a531d1c65d2f7dc26ddb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"Sequence number cannot go backwa\")\n mstore(add(headStart, 96), \"rds.\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_packed_t_address_t_uint8_t_bytes32_t_bytes32__to_t_address_t_uint8_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), and(shl(248, value1), shl(248, 255)))\n mstore(add(pos, 21), value2)\n mstore(add(pos, 53), value3)\n end := add(pos, 85)\n }\n function abi_encode_tuple_t_stringliteral_51b79df1a40f6eade4f7c6efb6604398969116a4c002b822d353536582071c64__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Only first player may cancel.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_507ce349b9060e0e598da3a12cdc76c1c5e81243abd956e8ed976ed64eb674e8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"Game has not started.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b3b3ec960f4f8902c361019561daa84849c1ba720f77a9bb2397ef8a8488f03__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Invalid player.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000)\n mstore(add(pos, 28), value0)\n end := add(pos, 60)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100e85760003560e01c8063b688a3631161008a578063cfe0a1de11610059578063cfe0a1de1461027f578063d24257c014610295578063d30895e4146102ab578063ea8a1af0146102cb57600080fd5b8063b688a363146101d1578063bdb337d1146101d9578063c19d93fb14610203578063c2bfc99f1461025f57600080fd5b80634daa2e11116100c65780634daa2e111461014e57806359a5f12d1461016e57806370dea79a146101a65780638e7ea5b2146101bc57600080fd5b80630ca5efd7146100ed5780630e76f9db1461010f5780631f6bb0a514610138575b600080fd5b3480156100f957600080fd5b5061010d610108366004610e7c565b6102e0565b005b34801561011b57600080fd5b5061012560085481565b6040519081526020015b60405180910390f35b34801561014457600080fd5b50610125600b5481565b34801561015a57600080fd5b5061010d610169366004610ed2565b6104ae565b34801561017a57600080fd5b5060015461018e906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b3480156101b257600080fd5b5061012560095481565b3480156101c857600080fd5b5061018e6106b4565b61010d610867565b3480156101e557600080fd5b506003546101f39060ff1681565b604051901515815260200161012f565b34801561020f57600080fd5b506004546005546006546007546102329360ff169291906001600160a01b031684565b6040805160ff90951685526020850193909352918301526001600160a01b0316606082015260800161012f565b34801561026b57600080fd5b5061010d61027a366004610efc565b6109db565b34801561028b57600080fd5b50610125600a5481565b3480156102a157600080fd5b5061012560025481565b3480156102b757600080fd5b5060005461018e906001600160a01b031681565b3480156102d757600080fd5b5061010d610b60565b6009544210156102ef57600080fd5b806102f957600080fd5b81516020830120811461034c5760405162461bcd60e51b81526020600482015260166024820152751b5bdd99481b5d5cdd081b585d18da0818dbdb5b5a5d60521b60448201526064015b60405180910390fd5b8160008151811061035f5761035f610f65565b6020910101516001600160f81b031916600360fc1b14806103a557508160008151811061038e5761038e610f65565b6020910101516001600160f81b031916603160f81b145b806103d55750816000815181106103be576103be610f65565b6020910101516001600160f81b031916601960f91b145b6103de57600080fd5b6000826000815181106103f3576103f3610f65565b6020910101516001600160f81b031916600360fc1b141561041c575063524f434b60e01b610467565b8260008151811061042f5761042f610f65565b6020910101516001600160f81b031916603160f81b14156104595750642820a822a960d91b610467565b506753434953534f525360c01b5b6000546001600160a01b031633141561049457600554821461048857600080fd5b600a5550506000600555565b60065482146104a257600080fd5b600b5550506000600655565b60035460ff16156104f35760405162461bcd60e51b815260206004820152600f60248201526e23b0b6b2903430b99032b73232b21760891b6044820152606401610343565b6007546001600160a01b0316331461053e5760405162461bcd60e51b815260206004820152600e60248201526d2737ba103cb7bab9103a3ab9371760911b6044820152606401610343565b60045460ff8381169116146105955760405162461bcd60e51b815260206004820152601a60248201527f496e636f72726563742073657175656e6365206e756d6265722e0000000000006044820152606401610343565b60095442106105d55760405162461bcd60e51b815260206004820152600c60248201526b135bdd995cc818db1bdcd95960a21b6044820152606401610343565b6000546001600160a01b03163314156105ff57600554156105f557600080fd5b6005819055610612565b6006541561060c57600080fd5b60068190555b61061b33610c4b565b600780546001600160a01b0319166001600160a01b0392909216919091179055600480546001919060009061065490849060ff16610f91565b82546101009290920a60ff81810219909316918316021790915560408051338152918516602083015281018390527f0b282c437c3c4bdfdc1b2c44d71b0632059bd9b31f8151d3fc4f8608f3f0d335915060600160405180910390a15050565b60006009544210156106c557600080fd5b600a546106d157600080fd5b600b546106dd57600080fd5b600063524f434b60e01b600a541480156107005750642820a822a960d91b600b54145b1561071757506001546001600160a01b0316610855565b642820a822a960d91b600a54148015610738575063524f434b60e01b600b54145b1561074f57506000546001600160a01b0316610855565b6753434953534f525360c01b600a541480156107745750642820a822a960d91b600b54145b1561078b57506000546001600160a01b0316610855565b642820a822a960d91b600a541480156107b057506753434953534f525360c01b600b54145b156107c757506001546001600160a01b0316610855565b63524f434b60e01b600a541480156107eb57506753434953534f525360c01b600b54145b1561080257506000546001600160a01b0316610855565b6753434953534f525360c01b600a54148015610826575063524f434b60e01b600b54145b1561083d57506001546001600160a01b0316610855565b60085461084a9042610fb6565b600955506000919050565b6003805460ff19166001179055919050565b6001546001600160a01b0316156108bc5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b60035460ff16156109045760405162461bcd60e51b815260206004820152601260248201527123b0b6b2903bb0b99031b0b731b2b632b21760711b6044820152606401610343565b60025434146109495760405162461bcd60e51b81526020600482015260116024820152702bb937b733903132ba1030b6b7bab73a1760791b6044820152606401610343565b600180546001600160a01b0319908116331790915560008054600780549093166001600160a01b0391909116179091556040517f762f260439bb4be3ef6e4dc2786e2e7bd187d3d80b79057d7a424fe98563e3359190a16008546109ad9042610fb6565b6009556040517f02bdd5174ce27e71542ca96bbba5c2c21920793759d94795d2f17eff6f7f2a0f90600090a1565b60045460ff9081169086161015610a405760405162461bcd60e51b8152602060048201526024808201527f53657175656e6365206e756d6265722063616e6e6f7420676f206261636b77616044820152633932399760e11b6064820152608401610343565b6040516bffffffffffffffffffffffff193060601b1660208201526001600160f81b031960f887901b1660348201526035810184905260558101839052600090610af090607501604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b9050610afb33610c4b565b6001600160a01b0316610b0e8287610d2b565b6001600160a01b031614610b2157600080fd5b6004805460ff881660ff1990911617905560058490556006839055600780546001600160a01b03191633179055610b5886836104ae565b505050505050565b6000546001600160a01b03163314610bba5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920666972737420706c61796572206d61792063616e63656c2e0000006044820152606401610343565b6001546001600160a01b031615610c0f5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b6003805460ff1916600117905560405133904780156108fc02916000818181858888f19350505050158015610c48573d6000803e3d6000fd5b50565b6001546000906001600160a01b0316610c9e5760405162461bcd60e51b815260206004820152601560248201527423b0b6b2903430b9903737ba1039ba30b93a32b21760591b6044820152606401610343565b6000546001600160a01b0383811691161415610cc55750506001546001600160a01b031690565b6001546001600160a01b0383811691161415610cec5750506000546001600160a01b031690565b60405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b210383630bcb2b91760891b6044820152606401610343565b919050565b600080600080610d3a85610daa565b6040805160008152602081018083528b905260ff8516918101919091526060810183905260808101829052929550909350915060019060a0016020604051602081039080840390855afa158015610d95573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60008060008351604114610dbd57600080fd5b5050506020810151604082015160609092015160001a92909190565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610e0057600080fd5b813567ffffffffffffffff80821115610e1b57610e1b610dd9565b604051601f8301601f19908116603f01168101908282118183101715610e4357610e43610dd9565b81604052838152866020858801011115610e5c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610e8f57600080fd5b823567ffffffffffffffff811115610ea657600080fd5b610eb285828601610def565b95602094909401359450505050565b803560ff81168114610d2657600080fd5b60008060408385031215610ee557600080fd5b610eee83610ec1565b946020939093013593505050565b600080600080600060a08688031215610f1457600080fd5b610f1d86610ec1565b9450602086013567ffffffffffffffff811115610f3957600080fd5b610f4588828901610def565b959895975050505060408401359360608101359360809091013592509050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168060ff03821115610fae57610fae610f7b565b019392505050565b60008219821115610fc957610fc9610f7b565b50019056fea2646970667358221220ed81373b5ffd2d78c0bcf164d53c5554704f42113a8cdbe37af54cce8acce3b664736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB688A363 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xCFE0A1DE GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xCFE0A1DE EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xD24257C0 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0xD30895E4 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0xEA8A1AF0 EQ PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB688A363 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xBDB337D1 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xC19D93FB EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0xC2BFC99F EQ PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4DAA2E11 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x4DAA2E11 EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0x59A5F12D EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x70DEA79A EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x8E7EA5B2 EQ PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA5EFD7 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0xE76F9DB EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x1F6BB0A5 EQ PUSH2 0x138 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x108 CALLDATASIZE PUSH1 0x4 PUSH2 0xE7C JUMP JUMPDEST PUSH2 0x2E0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x169 CALLDATASIZE PUSH1 0x4 PUSH2 0xED2 JUMP JUMPDEST PUSH2 0x4AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x867 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x1F3 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH2 0x232 SWAP4 PUSH1 0xFF AND SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x27A CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x9DB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD KECCAK256 DUP2 EQ PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1B5BDD99481B5D5CDD081B585D18DA0818DBDB5B5A5D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x35F JUMPI PUSH2 0x35F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ DUP1 PUSH2 0x3A5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x38E JUMPI PUSH2 0x38E PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ JUMPDEST DUP1 PUSH2 0x3D5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3BE JUMPI PUSH2 0x3BE PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x19 PUSH1 0xF9 SHL EQ JUMPDEST PUSH2 0x3DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3F3 JUMPI PUSH2 0x3F3 PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ ISZERO PUSH2 0x41C JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH2 0x467 JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x42F JUMPI PUSH2 0x42F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ ISZERO PUSH2 0x459 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH2 0x467 JUMP JUMPDEST POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x494 JUMPI PUSH1 0x5 SLOAD DUP3 EQ PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SSTORE POP POP PUSH1 0x0 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD DUP3 EQ PUSH2 0x4A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SSTORE POP POP PUSH1 0x0 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x23B0B6B2903430B99032B73232B217 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x2737BA103CB7BAB9103A3AB93717 PUSH1 0x91 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF DUP4 DUP2 AND SWAP2 AND EQ PUSH2 0x595 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E636F72726563742073657175656E6365206E756D6265722E000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT PUSH2 0x5D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x135BDD995CC818DB1BDCD959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x5FF JUMPI PUSH1 0x5 SLOAD ISZERO PUSH2 0x5F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE PUSH2 0x612 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x60C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP2 SWAP1 SSTORE JUMPDEST PUSH2 0x61B CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x654 SWAP1 DUP5 SWAP1 PUSH1 0xFF AND PUSH2 0xF91 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP2 DUP6 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xB282C437C3C4BDFDC1B2C44D71B0632059BD9B31F8151D3FC4F8608F3F0D335 SWAP2 POP PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x700 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x717 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x738 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x74F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x774 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x78B JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7B0 JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x7C7 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7EB JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x802 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x826 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x83D JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x84A SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x8BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x904 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x23B0B6B2903BB0B99031B0B731B2B632B217 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x2 SLOAD CALLVALUE EQ PUSH2 0x949 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x2BB937B733903132BA1030B6B7BAB73A17 PUSH1 0x79 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x762F260439BB4BE3EF6E4DC2786E2E7BD187D3D80B79057D7A424FE98563E335 SWAP2 SWAP1 LOG1 PUSH1 0x8 SLOAD PUSH2 0x9AD SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2BDD5174CE27E71542CA96BBBA5C2C21920793759D94795D2F17EFF6F7F2A0F SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF SWAP1 DUP2 AND SWAP1 DUP7 AND LT ISZERO PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x53657175656E6365206E756D6265722063616E6E6F7420676F206261636B7761 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x39323997 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0xF8 DUP8 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x55 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xAF0 SWAP1 PUSH1 0x75 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3C DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x5C ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 POP PUSH2 0xAFB CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB0E DUP3 DUP8 PUSH2 0xD2B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF DUP9 AND PUSH1 0xFF NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x5 DUP5 SWAP1 SSTORE PUSH1 0x6 DUP4 SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0xB58 DUP7 DUP4 PUSH2 0x4AE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xBBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C7920666972737420706C61796572206D61792063616E63656C2E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xC0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD CALLER SWAP1 SELFBALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xC48 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x23B0B6B2903430B9903737BA1039BA30B93A32B217 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCC5 JUMPI POP POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCEC JUMPI POP POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B210383630BCB2B917 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xD3A DUP6 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE DUP12 SWAP1 MSTORE PUSH1 0xFF DUP6 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0xDBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x60 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 BYTE SWAP3 SWAP1 SWAP2 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH2 0xE1B PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xE43 JUMPI PUSH2 0xE43 PUSH2 0xDD9 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xE5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEB2 DUP6 DUP3 DUP7 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xD26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEEE DUP4 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xF14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF1D DUP7 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF45 DUP9 DUP3 DUP10 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 SWAP9 SWAP6 SWAP8 POP POP POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP4 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP1 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xFAE JUMPI PUSH2 0xFAE PUSH2 0xF7B JUMP JUMPDEST ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xFC9 JUMPI PUSH2 0xFC9 PUSH2 0xF7B JUMP JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED DUP2 CALLDATACOPY EXTCODESIZE 0x5F REVERT 0x2D PUSH25 0xC0BCF164D53C5554704F42113A8CDBE37AF54CCE8ACCE3B664 PUSH20 0x6F6C634300080900330000000000000000000000 ",
"sourceMap": "65:7281:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3292:1046;;;;;;;;;;-1:-1:-1;3292:1046:0;;;;;:::i;:::-;;:::i;:::-;;488:30;;;;;;;;;;;;;;;;;;;1408:25:1;;;1396:2;1381:18;488:30:0;;;;;;;;597:26;;;;;;;;;;;;;;;;1639:1019;;;;;;;;;;-1:-1:-1;1639:1019:0;;;;;:::i;:::-;;:::i;233:22::-;;;;;;;;;;-1:-1:-1;233:22:0;;;;-1:-1:-1;;;;;233:22:0;;;;;;-1:-1:-1;;;;;2206:32:1;;;2188:51;;2176:2;2161:18;233:22:0;2042:203:1;524:35:0;;;;;;;;;;;;;;;;4348:990;;;;;;;;;;;;;:::i;938:406::-;;;:::i;291:20::-;;;;;;;;;;-1:-1:-1;291:20:0;;;;;;;;;;;2415:14:1;;2408:22;2390:41;;2378:2;2363:18;291:20:0;2250:187:1;460:22:0;;;;;;;;;;-1:-1:-1;460:22:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;460:22:0;;;;;;;2699:4:1;2687:17;;;2669:36;;2736:2;2721:18;;2714:34;;;;2764:18;;;2757:34;-1:-1:-1;;;;;2827:32:1;2822:2;2807:18;;2800:60;2656:3;2641:19;460:22:0;2442:424:1;2664:618:0;;;;;;;;;;-1:-1:-1;2664:618:0;;;;;:::i;:::-;;:::i;565:26::-;;;;;;;;;;;;;;;;261:24;;;;;;;;;;;;;;;;205:22;;;;;;;;;;-1:-1:-1;205:22:0;;;;-1:-1:-1;;;;;205:22:0;;;1350:261;;;;;;;;;;;;;:::i;3292:1046::-;3393:7;;3374:15;:26;;3366:35;;;;;;3533:21;3525:30;;;;;;3584:16;;;;;;3573:27;;3565:62;;;;-1:-1:-1;;;3565:62:0;;3674:2:1;3565:62:0;;;3656:21:1;3713:2;3693:18;;;3686:30;-1:-1:-1;;;3732:18:1;;;3725:52;3794:18;;3565:62:0;;;;;;;;;3687:5;3693:1;3687:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3687:8:0;-1:-1:-1;;;3687:15:0;;:34;;;3706:5;3712:1;3706:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3706:8:0;-1:-1:-1;;;3706:15:0;3687:34;:53;;;;3725:5;3731:1;3725:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3725:8:0;-1:-1:-1;;;3725:15:0;3687:53;3679:62;;;;;;3760:20;3794:5;3800:1;3794:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3794:8:0;-1:-1:-1;;;3794:15:0;3790:191;;;-1:-1:-1;;;;3790:191:0;;;3865:5;3871:1;3865:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3865:8:0;-1:-1:-1;;;3865:15:0;3861:120;;;-1:-1:-1;;;;3861:120:0;;;-1:-1:-1;;;;3861:120:0;4017:7;;-1:-1:-1;;;;;4017:7:0;4003:10;:21;3999:333;;;4059:19;;4048:30;;4040:39;;;;;;4093:11;:26;-1:-1:-1;;4163:1:0;4133:19;:32;3292:1046::o;3999:333::-;4215:19;;4204:30;;4196:39;;;;;;4249:11;:26;-1:-1:-1;;4319:1:0;4289:19;:32;3292:1046::o;1639:1019::-;1706:8;;;;1705:9;1697:37;;;;-1:-1:-1;;;1697:37:0;;4157:2:1;1697:37:0;;;4139:21:1;4196:2;4176:18;;;4169:30;-1:-1:-1;;;4215:18:1;;;4208:45;4270:18;;1697:37:0;3955:339:1;1697:37:0;1766:15;;-1:-1:-1;;;;;1766:15:0;1752:10;:29;1744:56;;;;-1:-1:-1;;;1744:56:0;;4501:2:1;1744:56:0;;;4483:21:1;4540:2;4520:18;;;4513:30;-1:-1:-1;;;4559:18:1;;;4552:44;4613:18;;1744:56:0;4299:338:1;1744:56:0;1818:5;:9;:16;;;;:9;;:16;1810:55;;;;-1:-1:-1;;;1810:55:0;;4844:2:1;1810:55:0;;;4826:21:1;4883:2;4863:18;;;4856:30;4922:28;4902:18;;;4895:56;4968:18;;1810:55:0;4642:350:1;1810:55:0;1901:7;;1883:15;:25;1875:50;;;;-1:-1:-1;;;1875:50:0;;5199:2:1;1875:50:0;;;5181:21:1;5238:2;5218:18;;;5211:30;-1:-1:-1;;;5257:18:1;;;5250:42;5309:18;;1875:50:0;4997:336:1;1875:50:0;2049:7;;-1:-1:-1;;;;;2049:7:0;2035:10;:21;2031:251;;;2080:19;;:33;2072:42;;;;;;2128:19;:28;;;2031:251;;;2195:19;;:33;2187:42;;;;;;2243:19;:28;;;2031:251;2341:22;2352:10;2341;:22::i;:::-;2323:15;:40;;-1:-1:-1;;;;;;2323:40:0;-1:-1:-1;;;;;2323:40:0;;;;;;;;;;:5;2373:14;;-1:-1:-1;;2323:5:0;-1:-1:-1;;2373:14:0;;-1:-1:-1;;2373:14:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2403:33;;;2412:10;5877:51:1;;5964:17;;;5959:2;5944:18;;5937:45;5998:18;;5991:34;;;2403:33:0;;-1:-1:-1;5865:2:1;5850:18;2403:33:0;;;;;;;1639:1019;;:::o;4348:990::-;4386:7;4432;;4413:15;:26;;4405:35;;;;;;4458:11;;4450:34;;;;;;4502:11;;4494:34;;;;;;4543:14;-1:-1:-1;;;4571:11:0;;:19;:43;;;;;-1:-1:-1;;;4594:11:0;;:20;4571:43;4567:708;;;-1:-1:-1;4639:7:0;;-1:-1:-1;;;;;4639:7:0;4567:708;;;-1:-1:-1;;;4667:11:0;;:20;:43;;;;;-1:-1:-1;;;4691:11:0;;:19;4667:43;4663:612;;;-1:-1:-1;4735:7:0;;-1:-1:-1;;;;;4735:7:0;4663:612;;;-1:-1:-1;;;4763:11:0;;:23;:47;;;;;-1:-1:-1;;;4790:11:0;;:20;4763:47;4759:516;;;-1:-1:-1;4835:7:0;;-1:-1:-1;;;;;4835:7:0;4759:516;;;-1:-1:-1;;;4863:11:0;;:20;:47;;;;;-1:-1:-1;;;4887:11:0;;:23;4863:47;4859:416;;;-1:-1:-1;4935:7:0;;-1:-1:-1;;;;;4935:7:0;4859:416;;;-1:-1:-1;;;4963:11:0;;:19;:46;;;;;-1:-1:-1;;;4986:11:0;;:23;4963:46;4959:316;;;-1:-1:-1;5034:7:0;;-1:-1:-1;;;;;5034:7:0;4959:316;;;-1:-1:-1;;;5062:11:0;;:23;:46;;;;;-1:-1:-1;;;5089:11:0;;:19;5062:46;5058:217;;;-1:-1:-1;5133:7:0;;-1:-1:-1;;;;;5133:7:0;5058:217;;;5218:15;;5200:33;;:15;:33;:::i;:::-;5190:7;:43;-1:-1:-1;5262:1:0;;4348:990;-1:-1:-1;4348:990:0:o;5058:217::-;5293:8;:15;;-1:-1:-1;;5293:15:0;5304:4;5293:15;;;5325:6;4348:990;-1:-1:-1;4348:990:0:o;938:406::-;987:7;;-1:-1:-1;;;;;987:7:0;:21;979:59;;;;-1:-1:-1;;;979:59:0;;6371:2:1;979:59:0;;;6353:21:1;6410:2;6390:18;;;6383:30;-1:-1:-1;;;6429:18:1;;;6422:55;6494:18;;979:59:0;6169:349:1;979:59:0;1057:8;;;;1056:9;1048:40;;;;-1:-1:-1;;;1048:40:0;;6725:2:1;1048:40:0;;;6707:21:1;6764:2;6744:18;;;6737:30;-1:-1:-1;;;6783:18:1;;;6776:48;6841:18;;1048:40:0;6523:342:1;1048:40:0;1119:9;;1106;:22;1098:52;;;;-1:-1:-1;;;1098:52:0;;7072:2:1;1098:52:0;;;7054:21:1;7111:2;7091:18;;;7084:30;-1:-1:-1;;;7130:18:1;;;7123:47;7187:18;;1098:52:0;6870:341:1;1098:52:0;1161:7;:20;;-1:-1:-1;;;;;;1161:20:0;;;1171:10;1161:20;;;;:7;1209;;1191:15;:25;;;;;-1:-1:-1;;;;;1209:7:0;;;;1191:25;;;;1231:13;;;;1161:7;1231:13;1291:15;;1273:33;;:15;:33;:::i;:::-;1263:7;:43;1321:16;;;;;;;938:406::o;2664:618::-;2810:5;:9;;;;;2803:16;;;;;2795:65;;;;-1:-1:-1;;;2795:65:0;;7418:2:1;2795:65:0;;;7400:21:1;7457:2;7437:18;;;7430:30;7496:34;7476:18;;;7469:62;-1:-1:-1;;;7547:18:1;;;7540:34;7591:19;;2795:65:0;7216:400:1;2795:65:0;2908:66;;-1:-1:-1;;2933:4:0;7850:2:1;7846:15;7842:53;2908:66:0;;;7830::1;-1:-1:-1;;;;;;7952:3:1;7930:16;;;7926:36;7912:12;;;7905:58;7979:12;;;7972:28;;;8016:12;;;8009:28;;;2871:15:0;;2889:87;;8053:12:1;;2908:66:0;;;;;;;;;;;;2898:77;;;;;;7278:58;;9370:66:1;7278:58:0;;;9358:79:1;9453:12;;;9446:28;;;7242:7:0;;9490:12:1;;7278:58:0;;;;;;;;;;;;7268:69;;;;;;7261:76;;7187:157;;;;2889:87;2871:105;;3025:22;3036:10;3025;:22::i;:::-;-1:-1:-1;;;;;2994:53:0;:27;3008:7;3017:3;2994:13;:27::i;:::-;-1:-1:-1;;;;;2994:53:0;;2986:62;;;;;;3067:5;:15;;;;;-1:-1:-1;;3067:15:0;;;;;;3092:19;:35;;;3137:19;:35;;;3182:15;:28;;-1:-1:-1;;;;;;3182:28:0;3200:10;3182:28;;;3258:17;3079:3;3268:6;3258:4;:17::i;:::-;2785:497;2664:618;;;;;:::o;1350:261::-;1407:7;;-1:-1:-1;;;;;1407:7:0;1393:10;:21;1385:63;;;;-1:-1:-1;;;1385:63:0;;8278:2:1;1385:63:0;;;8260:21:1;8317:2;8297:18;;;8290:30;8356:31;8336:18;;;8329:59;8405:18;;1385:63:0;8076:353:1;1385:63:0;1466:7;;-1:-1:-1;;;;;1466:7:0;:21;1458:59;;;;-1:-1:-1;;;1458:59:0;;6371:2:1;1458:59:0;;;6353:21:1;6410:2;6390:18;;;6383:30;-1:-1:-1;;;6429:18:1;;;6422:55;6494:18;;1458:59:0;6169:349:1;1458:59:0;1528:8;:15;;-1:-1:-1;;1528:15:0;1539:4;1528:15;;;1553:51;;1561:10;;1582:21;1553:51;;;;;1528:8;1553:51;1528:8;1553:51;1582:21;1561:10;1553:51;;;;;;;;;;;;;;;;;;;;;1350:261::o;5344:336::-;5430:7;;5403;;-1:-1:-1;;;;;5430:7:0;5422:55;;;;-1:-1:-1;;;5422:55:0;;8636:2:1;5422:55:0;;;8618:21:1;8675:2;8655:18;;;8648:30;-1:-1:-1;;;8694:18:1;;;8687:51;8755:18;;5422:55:0;8434:345:1;5422:55:0;5502:7;;-1:-1:-1;;;;;5492:17:0;;;5502:7;;5492:17;5488:186;;;-1:-1:-1;;5532:7:0;;-1:-1:-1;;;;;5532:7:0;;5344:336::o;5488:186::-;5570:7;;-1:-1:-1;;;;;5560:17:0;;;5570:7;;5560:17;5556:118;;;-1:-1:-1;;5600:7:0;;-1:-1:-1;;;;;5600:7:0;;5344:336::o;5556:118::-;5638:25;;-1:-1:-1;;;5638:25:0;;8986:2:1;5638:25:0;;;8968:21:1;9025:2;9005:18;;;8998:30;-1:-1:-1;;;9044:18:1;;;9037:45;9099:18;;5638:25:0;8784:339:1;5556:118:0;5344:336;;;:::o;6849:267::-;6954:7;6977;6994:9;7013;7045:19;7060:3;7045:14;:19::i;:::-;7082:27;;;;;;;;;;;;9740:25:1;;;9813:4;9801:17;;9781:18;;;9774:45;;;;9835:18;;;9828:34;;;9878:18;;;9871:34;;;7033:31:0;;-1:-1:-1;7033:31:0;;-1:-1:-1;7033:31:0;-1:-1:-1;7082:27:0;;9712:19:1;;7082:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7082:27:0;;-1:-1:-1;;7082:27:0;;;6849:267;-1:-1:-1;;;;;;;6849:267:0:o;6304:539::-;6393:5;6400:7;6409;6440:3;:10;6454:2;6440:16;6432:25;;;;;;-1:-1:-1;;;6622:2:0;6613:12;;6607:19;6690:2;6681:12;;6675:19;6795:2;6786:12;;;6780:19;6468:9;6772:28;;6607:19;;6675;6304:539::o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:1;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:388::-;946:6;954;1007:2;995:9;986:7;982:23;978:32;975:52;;;1023:1;1020;1013:12;975:52;1063:9;1050:23;1096:18;1088:6;1085:30;1082:50;;;1128:1;1125;1118:12;1082:50;1151:49;1192:7;1183:6;1172:9;1168:22;1151:49;:::i;:::-;1141:59;1247:2;1232:18;;;;1219:32;;-1:-1:-1;;;;869:388:1:o;1626:156::-;1692:20;;1752:4;1741:16;;1731:27;;1721:55;;1772:1;1769;1762:12;1787:250;1853:6;1861;1914:2;1902:9;1893:7;1889:23;1885:32;1882:52;;;1930:1;1927;1920:12;1882:52;1953:27;1970:9;1953:27;:::i;:::-;1943:37;2027:2;2012:18;;;;1999:32;;-1:-1:-1;;;1787:250:1:o;2871:596::-;2973:6;2981;2989;2997;3005;3058:3;3046:9;3037:7;3033:23;3029:33;3026:53;;;3075:1;3072;3065:12;3026:53;3098:27;3115:9;3098:27;:::i;:::-;3088:37;;3176:2;3165:9;3161:18;3148:32;3203:18;3195:6;3192:30;3189:50;;;3235:1;3232;3225:12;3189:50;3258:49;3299:7;3290:6;3279:9;3275:22;3258:49;:::i;:::-;2871:596;;3248:59;;-1:-1:-1;;;;3354:2:1;3339:18;;3326:32;;3405:2;3390:18;;3377:32;;3456:3;3441:19;;;3428:33;;-1:-1:-1;2871:596:1;-1:-1:-1;2871:596:1:o;3823:127::-;3884:10;3879:3;3875:20;3872:1;3865:31;3915:4;3912:1;3905:15;3939:4;3936:1;3929:15;5338:127;5399:10;5394:3;5390:20;5387:1;5380:31;5430:4;5427:1;5420:15;5454:4;5451:1;5444:15;5470:204;5508:3;5544:4;5541:1;5537:12;5576:4;5573:1;5569:12;5611:3;5605:4;5601:14;5596:3;5593:23;5590:49;;;5619:18;;:::i;:::-;5655:13;;5470:204;-1:-1:-1;;;5470:204:1:o;6036:128::-;6076:3;6107:1;6103:6;6100:1;6097:13;6094:39;;;6113:18;;:::i;:::-;-1:-1:-1;6149:9:1;;6036:128::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "820000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"betAmount()": "2328",
"cancel()": "infinite",
"gameOver()": "2355",
"getWinner()": "58656",
"join()": "82938",
"move(uint8,bytes32)": "96233",
"moveFromState(uint8,bytes,bytes32,bytes32,bytes32)": "infinite",
"player1()": "2403",
"player1move()": "2306",
"player2()": "2382",
"player2move()": "2352",
"revealMove(bytes,bytes32)": "infinite",
"state()": "8791",
"timeout()": "2351",
"timeoutInterval()": "2330"
},
"internal": {
"opponentOf(address)": "infinite",
"prefixed(bytes32)": "infinite",
"recoverSigner(bytes32,bytes memory)": "infinite",
"splitSignature(bytes memory)": "infinite"
}
},
"methodIdentifiers": {
"betAmount()": "d24257c0",
"cancel()": "ea8a1af0",
"gameOver()": "bdb337d1",
"getWinner()": "8e7ea5b2",
"join()": "b688a363",
"move(uint8,bytes32)": "4daa2e11",
"moveFromState(uint8,bytes,bytes32,bytes32,bytes32)": "c2bfc99f",
"player1()": "d30895e4",
"player1move()": "cfe0a1de",
"player2()": "59a5f12d",
"player2move()": "1f6bb0a5",
"revealMove(bytes,bytes32)": "0ca5efd7",
"state()": "c19d93fb",
"timeout()": "70dea79a",
"timeoutInterval()": "0e76f9db"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_timeoutInterval",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [],
"name": "GameStarted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "player",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "MoveMade",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "TimeoutStarted",
"type": "event"
},
{
"inputs": [],
"name": "betAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cancel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "gameOver",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getWinner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "join",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "move",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "sig",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "player1commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "player2commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "moveFromState",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "player1",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player1move",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player2",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player2move",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "_move",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "_commit",
"type": "bytes32"
}
],
"name": "revealMove",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "state",
"outputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "player1commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "player2commit",
"type": "bytes32"
},
{
"internalType": "address",
"name": "whoseTurn",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeout",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeoutInterval",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_75": {
"entryPoint": null,
"id": 75,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 70,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:200:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "95:103:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "141:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "150:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "153:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "143:6:1"
},
"nodeType": "YulFunctionCall",
"src": "143:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "143:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "116:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "125:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "112:3:1"
},
"nodeType": "YulFunctionCall",
"src": "112:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "137:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "108:3:1"
},
"nodeType": "YulFunctionCall",
"src": "108:32:1"
},
"nodeType": "YulIf",
"src": "105:52:1"
},
{
"nodeType": "YulAssignment",
"src": "166:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "182:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "176:5:1"
},
"nodeType": "YulFunctionCall",
"src": "176:16:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "166:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "61:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "72:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "84:6:1",
"type": ""
}
],
"src": "14:184:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405260001960095560405161107238038061107283398101604081905261002891610046565b600080546001600160a01b031916331790553460025560085561005f565b60006020828403121561005857600080fd5b5051919050565b6110048061006e6000396000f3fe6080604052600436106100e85760003560e01c8063b688a3631161008a578063cfe0a1de11610059578063cfe0a1de1461027f578063d24257c014610295578063d30895e4146102ab578063ea8a1af0146102cb57600080fd5b8063b688a363146101d1578063bdb337d1146101d9578063c19d93fb14610203578063c2bfc99f1461025f57600080fd5b80634daa2e11116100c65780634daa2e111461014e57806359a5f12d1461016e57806370dea79a146101a65780638e7ea5b2146101bc57600080fd5b80630ca5efd7146100ed5780630e76f9db1461010f5780631f6bb0a514610138575b600080fd5b3480156100f957600080fd5b5061010d610108366004610e7c565b6102e0565b005b34801561011b57600080fd5b5061012560085481565b6040519081526020015b60405180910390f35b34801561014457600080fd5b50610125600b5481565b34801561015a57600080fd5b5061010d610169366004610ed2565b6104ae565b34801561017a57600080fd5b5060015461018e906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b3480156101b257600080fd5b5061012560095481565b3480156101c857600080fd5b5061018e6106b4565b61010d610867565b3480156101e557600080fd5b506003546101f39060ff1681565b604051901515815260200161012f565b34801561020f57600080fd5b506004546005546006546007546102329360ff169291906001600160a01b031684565b6040805160ff90951685526020850193909352918301526001600160a01b0316606082015260800161012f565b34801561026b57600080fd5b5061010d61027a366004610efc565b6109db565b34801561028b57600080fd5b50610125600a5481565b3480156102a157600080fd5b5061012560025481565b3480156102b757600080fd5b5060005461018e906001600160a01b031681565b3480156102d757600080fd5b5061010d610b60565b6009544210156102ef57600080fd5b806102f957600080fd5b81516020830120811461034c5760405162461bcd60e51b81526020600482015260166024820152751b5bdd99481b5d5cdd081b585d18da0818dbdb5b5a5d60521b60448201526064015b60405180910390fd5b8160008151811061035f5761035f610f65565b6020910101516001600160f81b031916600360fc1b14806103a557508160008151811061038e5761038e610f65565b6020910101516001600160f81b031916603160f81b145b806103d55750816000815181106103be576103be610f65565b6020910101516001600160f81b031916601960f91b145b6103de57600080fd5b6000826000815181106103f3576103f3610f65565b6020910101516001600160f81b031916600360fc1b141561041c575063524f434b60e01b610467565b8260008151811061042f5761042f610f65565b6020910101516001600160f81b031916603160f81b14156104595750642820a822a960d91b610467565b506753434953534f525360c01b5b6000546001600160a01b031633141561049457600554821461048857600080fd5b600a5550506000600555565b60065482146104a257600080fd5b600b5550506000600655565b60035460ff16156104f35760405162461bcd60e51b815260206004820152600f60248201526e23b0b6b2903430b99032b73232b21760891b6044820152606401610343565b6007546001600160a01b0316331461053e5760405162461bcd60e51b815260206004820152600e60248201526d2737ba103cb7bab9103a3ab9371760911b6044820152606401610343565b60045460ff8381169116146105955760405162461bcd60e51b815260206004820152601a60248201527f496e636f72726563742073657175656e6365206e756d6265722e0000000000006044820152606401610343565b60095442106105d55760405162461bcd60e51b815260206004820152600c60248201526b135bdd995cc818db1bdcd95960a21b6044820152606401610343565b6000546001600160a01b03163314156105ff57600554156105f557600080fd5b6005819055610612565b6006541561060c57600080fd5b60068190555b61061b33610c4b565b600780546001600160a01b0319166001600160a01b0392909216919091179055600480546001919060009061065490849060ff16610f91565b82546101009290920a60ff81810219909316918316021790915560408051338152918516602083015281018390527f0b282c437c3c4bdfdc1b2c44d71b0632059bd9b31f8151d3fc4f8608f3f0d335915060600160405180910390a15050565b60006009544210156106c557600080fd5b600a546106d157600080fd5b600b546106dd57600080fd5b600063524f434b60e01b600a541480156107005750642820a822a960d91b600b54145b1561071757506001546001600160a01b0316610855565b642820a822a960d91b600a54148015610738575063524f434b60e01b600b54145b1561074f57506000546001600160a01b0316610855565b6753434953534f525360c01b600a541480156107745750642820a822a960d91b600b54145b1561078b57506000546001600160a01b0316610855565b642820a822a960d91b600a541480156107b057506753434953534f525360c01b600b54145b156107c757506001546001600160a01b0316610855565b63524f434b60e01b600a541480156107eb57506753434953534f525360c01b600b54145b1561080257506000546001600160a01b0316610855565b6753434953534f525360c01b600a54148015610826575063524f434b60e01b600b54145b1561083d57506001546001600160a01b0316610855565b60085461084a9042610fb6565b600955506000919050565b6003805460ff19166001179055919050565b6001546001600160a01b0316156108bc5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b60035460ff16156109045760405162461bcd60e51b815260206004820152601260248201527123b0b6b2903bb0b99031b0b731b2b632b21760711b6044820152606401610343565b60025434146109495760405162461bcd60e51b81526020600482015260116024820152702bb937b733903132ba1030b6b7bab73a1760791b6044820152606401610343565b600180546001600160a01b0319908116331790915560008054600780549093166001600160a01b0391909116179091556040517f762f260439bb4be3ef6e4dc2786e2e7bd187d3d80b79057d7a424fe98563e3359190a16008546109ad9042610fb6565b6009556040517f02bdd5174ce27e71542ca96bbba5c2c21920793759d94795d2f17eff6f7f2a0f90600090a1565b60045460ff9081169086161015610a405760405162461bcd60e51b8152602060048201526024808201527f53657175656e6365206e756d6265722063616e6e6f7420676f206261636b77616044820152633932399760e11b6064820152608401610343565b6040516bffffffffffffffffffffffff193060601b1660208201526001600160f81b031960f887901b1660348201526035810184905260558101839052600090610af090607501604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b9050610afb33610c4b565b6001600160a01b0316610b0e8287610d2b565b6001600160a01b031614610b2157600080fd5b6004805460ff881660ff1990911617905560058490556006839055600780546001600160a01b03191633179055610b5886836104ae565b505050505050565b6000546001600160a01b03163314610bba5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920666972737420706c61796572206d61792063616e63656c2e0000006044820152606401610343565b6001546001600160a01b031615610c0f5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b6003805460ff1916600117905560405133904780156108fc02916000818181858888f19350505050158015610c48573d6000803e3d6000fd5b50565b6001546000906001600160a01b0316610c9e5760405162461bcd60e51b815260206004820152601560248201527423b0b6b2903430b9903737ba1039ba30b93a32b21760591b6044820152606401610343565b6000546001600160a01b0383811691161415610cc55750506001546001600160a01b031690565b6001546001600160a01b0383811691161415610cec5750506000546001600160a01b031690565b60405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b210383630bcb2b91760891b6044820152606401610343565b919050565b600080600080610d3a85610daa565b6040805160008152602081018083528b905260ff8516918101919091526060810183905260808101829052929550909350915060019060a0016020604051602081039080840390855afa158015610d95573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60008060008351604114610dbd57600080fd5b5050506020810151604082015160609092015160001a92909190565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610e0057600080fd5b813567ffffffffffffffff80821115610e1b57610e1b610dd9565b604051601f8301601f19908116603f01168101908282118183101715610e4357610e43610dd9565b81604052838152866020858801011115610e5c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610e8f57600080fd5b823567ffffffffffffffff811115610ea657600080fd5b610eb285828601610def565b95602094909401359450505050565b803560ff81168114610d2657600080fd5b60008060408385031215610ee557600080fd5b610eee83610ec1565b946020939093013593505050565b600080600080600060a08688031215610f1457600080fd5b610f1d86610ec1565b9450602086013567ffffffffffffffff811115610f3957600080fd5b610f4588828901610def565b959895975050505060408401359360608101359360809091013592509050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168060ff03821115610fae57610fae610f7b565b019392505050565b60008219821115610fc957610fc9610f7b565b50019056fea264697066735822122021a5b682a90393bf975d01d38e58c389aaff1f82308d3979ee948e60e6b3ff4964736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 NOT PUSH1 0x9 SSTORE PUSH1 0x40 MLOAD PUSH2 0x1072 CODESIZE SUB DUP1 PUSH2 0x1072 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x28 SWAP2 PUSH2 0x46 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE CALLVALUE PUSH1 0x2 SSTORE PUSH1 0x8 SSTORE PUSH2 0x5F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1004 DUP1 PUSH2 0x6E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB688A363 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xCFE0A1DE GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xCFE0A1DE EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xD24257C0 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0xD30895E4 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0xEA8A1AF0 EQ PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB688A363 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xBDB337D1 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xC19D93FB EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0xC2BFC99F EQ PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4DAA2E11 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x4DAA2E11 EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0x59A5F12D EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x70DEA79A EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x8E7EA5B2 EQ PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA5EFD7 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0xE76F9DB EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x1F6BB0A5 EQ PUSH2 0x138 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x108 CALLDATASIZE PUSH1 0x4 PUSH2 0xE7C JUMP JUMPDEST PUSH2 0x2E0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x169 CALLDATASIZE PUSH1 0x4 PUSH2 0xED2 JUMP JUMPDEST PUSH2 0x4AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x867 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x1F3 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH2 0x232 SWAP4 PUSH1 0xFF AND SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x27A CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x9DB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD KECCAK256 DUP2 EQ PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1B5BDD99481B5D5CDD081B585D18DA0818DBDB5B5A5D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x35F JUMPI PUSH2 0x35F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ DUP1 PUSH2 0x3A5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x38E JUMPI PUSH2 0x38E PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ JUMPDEST DUP1 PUSH2 0x3D5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3BE JUMPI PUSH2 0x3BE PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x19 PUSH1 0xF9 SHL EQ JUMPDEST PUSH2 0x3DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3F3 JUMPI PUSH2 0x3F3 PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ ISZERO PUSH2 0x41C JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH2 0x467 JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x42F JUMPI PUSH2 0x42F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ ISZERO PUSH2 0x459 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH2 0x467 JUMP JUMPDEST POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x494 JUMPI PUSH1 0x5 SLOAD DUP3 EQ PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SSTORE POP POP PUSH1 0x0 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD DUP3 EQ PUSH2 0x4A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SSTORE POP POP PUSH1 0x0 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x23B0B6B2903430B99032B73232B217 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x2737BA103CB7BAB9103A3AB93717 PUSH1 0x91 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF DUP4 DUP2 AND SWAP2 AND EQ PUSH2 0x595 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E636F72726563742073657175656E6365206E756D6265722E000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT PUSH2 0x5D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x135BDD995CC818DB1BDCD959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x5FF JUMPI PUSH1 0x5 SLOAD ISZERO PUSH2 0x5F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE PUSH2 0x612 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x60C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP2 SWAP1 SSTORE JUMPDEST PUSH2 0x61B CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x654 SWAP1 DUP5 SWAP1 PUSH1 0xFF AND PUSH2 0xF91 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP2 DUP6 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xB282C437C3C4BDFDC1B2C44D71B0632059BD9B31F8151D3FC4F8608F3F0D335 SWAP2 POP PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x700 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x717 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x738 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x74F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x774 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x78B JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7B0 JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x7C7 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7EB JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x802 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x826 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x83D JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x84A SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x8BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x904 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x23B0B6B2903BB0B99031B0B731B2B632B217 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x2 SLOAD CALLVALUE EQ PUSH2 0x949 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x2BB937B733903132BA1030B6B7BAB73A17 PUSH1 0x79 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x762F260439BB4BE3EF6E4DC2786E2E7BD187D3D80B79057D7A424FE98563E335 SWAP2 SWAP1 LOG1 PUSH1 0x8 SLOAD PUSH2 0x9AD SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2BDD5174CE27E71542CA96BBBA5C2C21920793759D94795D2F17EFF6F7F2A0F SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF SWAP1 DUP2 AND SWAP1 DUP7 AND LT ISZERO PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x53657175656E6365206E756D6265722063616E6E6F7420676F206261636B7761 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x39323997 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0xF8 DUP8 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x55 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xAF0 SWAP1 PUSH1 0x75 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3C DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x5C ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 POP PUSH2 0xAFB CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB0E DUP3 DUP8 PUSH2 0xD2B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF DUP9 AND PUSH1 0xFF NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x5 DUP5 SWAP1 SSTORE PUSH1 0x6 DUP4 SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0xB58 DUP7 DUP4 PUSH2 0x4AE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xBBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C7920666972737420706C61796572206D61792063616E63656C2E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xC0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD CALLER SWAP1 SELFBALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xC48 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x23B0B6B2903430B9903737BA1039BA30B93A32B217 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCC5 JUMPI POP POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCEC JUMPI POP POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B210383630BCB2B917 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xD3A DUP6 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE DUP12 SWAP1 MSTORE PUSH1 0xFF DUP6 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0xDBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x60 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 BYTE SWAP3 SWAP1 SWAP2 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH2 0xE1B PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xE43 JUMPI PUSH2 0xE43 PUSH2 0xDD9 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xE5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEB2 DUP6 DUP3 DUP7 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xD26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEEE DUP4 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xF14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF1D DUP7 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF45 DUP9 DUP3 DUP10 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 SWAP9 SWAP6 SWAP8 POP POP POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP4 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP1 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xFAE JUMPI PUSH2 0xFAE PUSH2 0xF7B JUMP JUMPDEST ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xFC9 JUMPI PUSH2 0xFC9 PUSH2 0xF7B JUMP JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xA5 0xB6 DUP3 0xA9 SUB SWAP4 0xBF SWAP8 0x5D ADD 0xD3 DUP15 PC 0xC3 DUP10 0xAA SELFDESTRUCT 0x1F DUP3 ADDRESS DUP14 CODECOPY PUSH26 0xEE948E60E6B3FF4964736F6C6343000809003300000000000000 ",
"sourceMap": "65:7285:0:-:0;;;-1:-1:-1;;528:35:0;;778:158;;;;;;;;;;;;;;;;;;:::i;:::-;834:7;:20;;-1:-1:-1;;;;;;834:20:0;844:10;834:20;;;876:9;864;:21;895:15;:34;65:7285;;14:184:1;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:1;;14:184;-1:-1:-1;14:184:1:o;:::-;65:7285:0;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@betAmount_16": {
"entryPoint": null,
"id": 16,
"parameterSlots": 0,
"returnSlots": 0
},
"@cancel_166": {
"entryPoint": 2912,
"id": 166,
"parameterSlots": 0,
"returnSlots": 0
},
"@gameOver_18": {
"entryPoint": null,
"id": 18,
"parameterSlots": 0,
"returnSlots": 0
},
"@getWinner_608": {
"entryPoint": 1716,
"id": 608,
"parameterSlots": 0,
"returnSlots": 1
},
"@join_127": {
"entryPoint": 2151,
"id": 127,
"parameterSlots": 0,
"returnSlots": 0
},
"@moveFromState_347": {
"entryPoint": 2523,
"id": 347,
"parameterSlots": 5,
"returnSlots": 0
},
"@move_266": {
"entryPoint": 1198,
"id": 266,
"parameterSlots": 2,
"returnSlots": 0
},
"@opponentOf_645": {
"entryPoint": 3147,
"id": 645,
"parameterSlots": 1,
"returnSlots": 1
},
"@player1_12": {
"entryPoint": null,
"id": 12,
"parameterSlots": 0,
"returnSlots": 0
},
"@player1move_41": {
"entryPoint": null,
"id": 41,
"parameterSlots": 0,
"returnSlots": 0
},
"@player2_14": {
"entryPoint": null,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
},
"@player2move_43": {
"entryPoint": null,
"id": 43,
"parameterSlots": 0,
"returnSlots": 0
},
"@prefixed_730": {
"entryPoint": null,
"id": 730,
"parameterSlots": 1,
"returnSlots": 1
},
"@recoverSigner_714": {
"entryPoint": 3371,
"id": 714,
"parameterSlots": 2,
"returnSlots": 1
},
"@revealMove_477": {
"entryPoint": 736,
"id": 477,
"parameterSlots": 2,
"returnSlots": 0
},
"@splitSignature_679": {
"entryPoint": 3498,
"id": 679,
"parameterSlots": 1,
"returnSlots": 3
},
"@state_30": {
"entryPoint": null,
"id": 30,
"parameterSlots": 0,
"returnSlots": 0
},
"@timeoutInterval_32": {
"entryPoint": null,
"id": 32,
"parameterSlots": 0,
"returnSlots": 0
},
"@timeout_39": {
"entryPoint": null,
"id": 39,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_bytes": {
"entryPoint": 3567,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes_memory_ptrt_bytes32": {
"entryPoint": 3708,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint8t_bytes32": {
"entryPoint": 3794,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint8t_bytes_memory_ptrt_bytes32t_bytes32t_bytes32": {
"entryPoint": 3836,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_uint8": {
"entryPoint": 3777,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_address_t_uint8_t_bytes32_t_bytes32__to_t_address_t_uint8_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint8_t_bytes32__to_t_address_t_uint8_t_bytes32__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_044fd81d418bf62b20af635198f63632277e3bfb22a134d0c53cfd4dd9d4974b__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_124aefa704cdd407a2403e74675d3926834fa5fabd6ae58107a7b9fd1906ef54__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_16f77c79c1a2609f3237b9b5aa9f2956b73b6e67f18448e897441e51ed3de64d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_1d36627e1510ec4829841427bef49fae7a65d4f0374862a1def1ce927571f793__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_21914824ead4132f6cc39af30546822d90293b773e78a531d1c65d2f7dc26ddb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_37e485df2657cc220ee36672205ee7c3cc5e3c4c914afd66fbfda5c851598efb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_3cbc588e4d1ecfdf64e47f1e54a082d2c336b8228cf0f55aadaa6495f242d77c__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_507ce349b9060e0e598da3a12cdc76c1c5e81243abd956e8ed976ed64eb674e8__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_51b79df1a40f6eade4f7c6efb6604398969116a4c002b822d353536582071c64__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_69de070a7e9fd31aaf1220285a32a1aafa2aaabdd8a0a65c53d9faa020ec0d52__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9b3b3ec960f4f8902c361019561daa84849c1ba720f77a9bb2397ef8a8488f03__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9d48a83ffa746d9c6a18a1ade1b13118041d408147adef9e381b25038ed56049__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint8_t_bytes32_t_bytes32_t_address__to_t_uint8_t_bytes32_t_bytes32_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 4022,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint8": {
"entryPoint": 3985,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 3963,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 3941,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 3545,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:9913:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "46:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "198:666:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "247:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "256:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "259:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "249:6:1"
},
"nodeType": "YulFunctionCall",
"src": "249:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "249:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "226:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "234:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "222:3:1"
},
"nodeType": "YulFunctionCall",
"src": "222:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "241:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "218:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "211:6:1"
},
"nodeType": "YulFunctionCall",
"src": "211:35:1"
},
"nodeType": "YulIf",
"src": "208:55:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "272:30:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "295:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "282:12:1"
},
"nodeType": "YulFunctionCall",
"src": "282:20:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "276:2:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "311:28:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "321:18:1",
"type": "",
"value": "0xffffffffffffffff"
},
"variables": [
{
"name": "_2",
"nodeType": "YulTypedName",
"src": "315:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "362:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "364:16:1"
},
"nodeType": "YulFunctionCall",
"src": "364:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "364:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "354:2:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "358:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "351:2:1"
},
"nodeType": "YulFunctionCall",
"src": "351:10:1"
},
"nodeType": "YulIf",
"src": "348:36:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "393:17:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "407:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "403:3:1"
},
"nodeType": "YulFunctionCall",
"src": "403:7:1"
},
"variables": [
{
"name": "_3",
"nodeType": "YulTypedName",
"src": "397:2:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "419:23:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "439:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "433:5:1"
},
"nodeType": "YulFunctionCall",
"src": "433:9:1"
},
"variables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "423:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "451:71:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "497:2:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "501:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "493:3:1"
},
"nodeType": "YulFunctionCall",
"src": "493:13:1"
},
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "508:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "489:3:1"
},
"nodeType": "YulFunctionCall",
"src": "489:22:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "513:2:1",
"type": "",
"value": "63"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "485:3:1"
},
"nodeType": "YulFunctionCall",
"src": "485:31:1"
},
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "518:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "481:3:1"
},
"nodeType": "YulFunctionCall",
"src": "481:40:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "469:3:1"
},
"nodeType": "YulFunctionCall",
"src": "469:53:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "455:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "581:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "583:16:1"
},
"nodeType": "YulFunctionCall",
"src": "583:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "583:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "540:10:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "552:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "537:2:1"
},
"nodeType": "YulFunctionCall",
"src": "537:18:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "560:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "572:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "557:2:1"
},
"nodeType": "YulFunctionCall",
"src": "557:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "534:2:1"
},
"nodeType": "YulFunctionCall",
"src": "534:46:1"
},
"nodeType": "YulIf",
"src": "531:72:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "619:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "623:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "612:6:1"
},
"nodeType": "YulFunctionCall",
"src": "612:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "612:22:1"
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "650:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "658:2:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "643:6:1"
},
"nodeType": "YulFunctionCall",
"src": "643:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "643:18:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "709:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "718:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "721:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "711:6:1"
},
"nodeType": "YulFunctionCall",
"src": "711:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "711:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "684:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "692:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "680:3:1"
},
"nodeType": "YulFunctionCall",
"src": "680:15:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "697:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "676:3:1"
},
"nodeType": "YulFunctionCall",
"src": "676:26:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "704:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "673:2:1"
},
"nodeType": "YulFunctionCall",
"src": "673:35:1"
},
"nodeType": "YulIf",
"src": "670:55:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "751:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "759:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "747:3:1"
},
"nodeType": "YulFunctionCall",
"src": "747:17:1"
},
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "770:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "778:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "766:3:1"
},
"nodeType": "YulFunctionCall",
"src": "766:17:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "785:2:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "734:12:1"
},
"nodeType": "YulFunctionCall",
"src": "734:54:1"
},
"nodeType": "YulExpressionStatement",
"src": "734:54:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "812:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "820:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "808:3:1"
},
"nodeType": "YulFunctionCall",
"src": "808:15:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "825:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "804:3:1"
},
"nodeType": "YulFunctionCall",
"src": "804:26:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "797:6:1"
},
"nodeType": "YulFunctionCall",
"src": "797:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "797:37:1"
},
{
"nodeType": "YulAssignment",
"src": "843:15:1",
"value": {
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "852:6:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "843:5:1"
}
]
}
]
},
"name": "abi_decode_bytes",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "172:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "180:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "188:5:1",
"type": ""
}
],
"src": "146:718:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "965:292:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1011:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1020:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1023:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1013:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1013:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1013:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "986:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "995:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "982:3:1"
},
"nodeType": "YulFunctionCall",
"src": "982:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1007:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "978:3:1"
},
"nodeType": "YulFunctionCall",
"src": "978:32:1"
},
"nodeType": "YulIf",
"src": "975:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1036:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1063:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1050:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1050:23:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1040:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1116:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1125:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1128:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1118:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1118:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1118:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1088:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1096:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1085:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1085:30:1"
},
"nodeType": "YulIf",
"src": "1082:50:1"
},
{
"nodeType": "YulAssignment",
"src": "1141:59:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1172:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1183:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1168:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1168:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1192:7:1"
}
],
"functionName": {
"name": "abi_decode_bytes",
"nodeType": "YulIdentifier",
"src": "1151:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1151:49:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1141:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1209:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1236:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1247:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1232:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1232:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1219:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1219:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1209:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes_memory_ptrt_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "923:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "934:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "946:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "954:6:1",
"type": ""
}
],
"src": "869:388:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1363:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1373:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1385:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1396:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1381:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1381:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1373:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1415:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1426:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1408:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1408:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "1408:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1332:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1343:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1354:4:1",
"type": ""
}
],
"src": "1262:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1545:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1555:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1567:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1578:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1563:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1563:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1555:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1597:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1608:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1590:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1590:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "1590:25:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1514:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1525:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1536:4:1",
"type": ""
}
],
"src": "1444:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1673:109:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1683:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1705:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1692:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1692:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1683:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1760:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1769:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1772:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1762:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1762:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1762:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1734:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1745:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1752:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1741:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1741:16:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1731:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1731:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1724:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1724:35:1"
},
"nodeType": "YulIf",
"src": "1721:55:1"
}
]
},
"name": "abi_decode_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1652:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1663:5:1",
"type": ""
}
],
"src": "1626:156:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1872:165:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1918:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1927:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1930:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1920:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1920:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1920:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1893:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1902:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1889:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1889:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1914:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1885:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1885:32:1"
},
"nodeType": "YulIf",
"src": "1882:52:1"
},
{
"nodeType": "YulAssignment",
"src": "1943:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1970:9:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "1953:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1953:27:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1943:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1989:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2016:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2027:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2012:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2012:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1999:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1999:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1989:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint8t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1830:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1841:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1853:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1861:6:1",
"type": ""
}
],
"src": "1787:250:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2143:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2153:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2165:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2176:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2161:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2161:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2153:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2195:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2210:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2226:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2231:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "2222:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2222:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2235:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2218:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2206:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2206:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2188:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2188:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "2188:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2112:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2123:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2134:4:1",
"type": ""
}
],
"src": "2042:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2345:92:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2355:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2367:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2378:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2363:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2363:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2355:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2397:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2422:6:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2415:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2415:14:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2408:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2408:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2390:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2390:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "2390:41:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2314:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2325:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2336:4:1",
"type": ""
}
],
"src": "2250:187:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2623:243:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2633:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2645:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2656:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2641:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2641:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2633:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2676:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2691:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2699:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2687:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2687:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2669:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2669:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "2669:36:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2725:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2736:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2721:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2721:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2741:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2714:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2714:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "2714:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2768:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2779:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2764:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2764:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "2784:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2757:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2757:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "2757:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2811:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2822:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2807:18:1"
},
{
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "2831:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2847:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2852:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "2843:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2843:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2856:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2839:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2839:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2827:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2827:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2800:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2800:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "2800:60:1"
}
]
},
"name": "abi_encode_tuple_t_uint8_t_bytes32_t_bytes32_t_address__to_t_uint8_t_bytes32_t_bytes32_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2568:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "2579:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2587:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2595:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2603:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2614:4:1",
"type": ""
}
],
"src": "2442:424:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3016:451:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3063:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3072:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3075:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3065:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3065:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3065:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3037:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3046:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3033:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3033:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3058:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3029:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3029:33:1"
},
"nodeType": "YulIf",
"src": "3026:53:1"
},
{
"nodeType": "YulAssignment",
"src": "3088:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3115:9:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "3098:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3098:27:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3088:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3134:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3165:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3176:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3161:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3161:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3148:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3148:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3138:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3223:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3232:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3235:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3225:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3225:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3225:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3195:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3203:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3192:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3192:30:1"
},
"nodeType": "YulIf",
"src": "3189:50:1"
},
{
"nodeType": "YulAssignment",
"src": "3248:59:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3279:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3290:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3275:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3275:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3299:7:1"
}
],
"functionName": {
"name": "abi_decode_bytes",
"nodeType": "YulIdentifier",
"src": "3258:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3258:49:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3248:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3316:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3343:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3354:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3339:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3339:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3326:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3326:32:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3316:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3367:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3394:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3405:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3390:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3377:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3377:32:1"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "3367:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3418:43:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3445:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3456:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3441:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3441:19:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3428:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3428:33:1"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "3418:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint8t_bytes_memory_ptrt_bytes32t_bytes32t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2950:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2961:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2973:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2981:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2989:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "2997:6:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "3005:6:1",
"type": ""
}
],
"src": "2871:596:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3646:172:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3663:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3674:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3656:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3656:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "3656:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3697:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3708:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3693:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3693:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3713:2:1",
"type": "",
"value": "22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3686:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3686:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "3686:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3736:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3747:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3732:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3732:18:1"
},
{
"hexValue": "6d6f7665206d757374206d6174636820636f6d6d6974",
"kind": "string",
"nodeType": "YulLiteral",
"src": "3752:24:1",
"type": "",
"value": "move must match commit"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3725:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3725:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "3725:52:1"
},
{
"nodeType": "YulAssignment",
"src": "3786:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3798:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3809:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3794:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3794:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3786:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_37e485df2657cc220ee36672205ee7c3cc5e3c4c914afd66fbfda5c851598efb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3623:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3637:4:1",
"type": ""
}
],
"src": "3472:346:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3855:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3872:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3879:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3884:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "3875:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3875:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3865:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3865:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "3865:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3912:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3915:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3905:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3905:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3905:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3936:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3939:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3929:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3929:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3929:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "3823:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4129:165:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4146:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4157:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4139:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4139:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4139:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4180:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4191:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4176:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4176:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4196:2:1",
"type": "",
"value": "15"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4169:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4169:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4169:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4219:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4230:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4215:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4215:18:1"
},
{
"hexValue": "47616d652068617320656e6465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4235:17:1",
"type": "",
"value": "Game has ended."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4208:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4208:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "4208:45:1"
},
{
"nodeType": "YulAssignment",
"src": "4262:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4274:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4285:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4270:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4270:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4262:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_124aefa704cdd407a2403e74675d3926834fa5fabd6ae58107a7b9fd1906ef54__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4106:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4120:4:1",
"type": ""
}
],
"src": "3955:339:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4473:164:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4490:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4501:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4483:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4483:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4483:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4524:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4535:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4520:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4520:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4540:2:1",
"type": "",
"value": "14"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4513:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4513:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4513:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4563:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4574:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4559:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4559:18:1"
},
{
"hexValue": "4e6f7420796f7572207475726e2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4579:16:1",
"type": "",
"value": "Not your turn."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4552:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4552:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "4552:44:1"
},
{
"nodeType": "YulAssignment",
"src": "4605:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4617:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4628:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4613:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4613:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4605:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_69de070a7e9fd31aaf1220285a32a1aafa2aaabdd8a0a65c53d9faa020ec0d52__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4450:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4464:4:1",
"type": ""
}
],
"src": "4299:338:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4816:176:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4833:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4844:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4826:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4826:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4826:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4867:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4878:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4863:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4863:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4883:2:1",
"type": "",
"value": "26"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4856:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4856:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4856:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4906:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4917:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4902:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4902:18:1"
},
{
"hexValue": "496e636f72726563742073657175656e6365206e756d6265722e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4922:28:1",
"type": "",
"value": "Incorrect sequence number."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4895:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4895:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "4895:56:1"
},
{
"nodeType": "YulAssignment",
"src": "4960:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4972:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4983:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4968:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4968:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4960:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9d48a83ffa746d9c6a18a1ade1b13118041d408147adef9e381b25038ed56049__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4793:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4807:4:1",
"type": ""
}
],
"src": "4642:350:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5171:162:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5188:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5199:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5181:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5181:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "5181:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5222:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5233:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5218:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5238:2:1",
"type": "",
"value": "12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5211:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5211:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "5211:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5261:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5272:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5257:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5257:18:1"
},
{
"hexValue": "4d6f76657320636c6f736564",
"kind": "string",
"nodeType": "YulLiteral",
"src": "5277:14:1",
"type": "",
"value": "Moves closed"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5250:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5250:42:1"
},
"nodeType": "YulExpressionStatement",
"src": "5250:42:1"
},
{
"nodeType": "YulAssignment",
"src": "5301:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5313:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5324:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5309:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5309:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5301:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_16f77c79c1a2609f3237b9b5aa9f2956b73b6e67f18448e897441e51ed3de64d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5148:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5162:4:1",
"type": ""
}
],
"src": "4997:336:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5370:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5387:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5394:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5399:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5390:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5380:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5380:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "5380:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5427:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5430:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5420:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5420:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5420:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5451:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5454:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5444:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5444:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5444:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "5338:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5516:158:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5526:23:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5541:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5544:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5537:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5537:12:1"
},
"variables": [
{
"name": "x_1",
"nodeType": "YulTypedName",
"src": "5530:3:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "5558:23:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5573:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5576:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5569:12:1"
},
"variables": [
{
"name": "y_1",
"nodeType": "YulTypedName",
"src": "5562:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5617:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "5619:16:1"
},
"nodeType": "YulFunctionCall",
"src": "5619:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "5619:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x_1",
"nodeType": "YulIdentifier",
"src": "5596:3:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5605:4:1",
"type": "",
"value": "0xff"
},
{
"name": "y_1",
"nodeType": "YulIdentifier",
"src": "5611:3:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5601:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5601:14:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5593:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5593:23:1"
},
"nodeType": "YulIf",
"src": "5590:49:1"
},
{
"nodeType": "YulAssignment",
"src": "5648:20:1",
"value": {
"arguments": [
{
"name": "x_1",
"nodeType": "YulIdentifier",
"src": "5659:3:1"
},
{
"name": "y_1",
"nodeType": "YulIdentifier",
"src": "5664:3:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5655:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5655:13:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "5648:3:1"
}
]
}
]
},
"name": "checked_add_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "5499:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "5502:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "5508:3:1",
"type": ""
}
],
"src": "5470:204:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5832:199:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5842:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5854:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5865:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5850:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5850:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5842:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5884:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5899:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5915:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5920:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5911:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5911:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5924:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5907:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5907:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5895:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5895:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5877:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5877:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "5877:51:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5948:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5959:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5944:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5944:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5968:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5976:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5964:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5964:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5937:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5937:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "5937:45:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6002:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6013:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5998:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5998:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6018:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5991:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5991:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5991:34:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint8_t_bytes32__to_t_address_t_uint8_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5785:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5796:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5804:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5812:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5823:4:1",
"type": ""
}
],
"src": "5679:352:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6084:80:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6111:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "6113:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6113:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6113:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6100:1:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6107:1:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "6103:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6103:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6097:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6097:13:1"
},
"nodeType": "YulIf",
"src": "6094:39:1"
},
{
"nodeType": "YulAssignment",
"src": "6142:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6153:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6156:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6149:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6149:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "6142:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "6067:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "6070:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "6076:3:1",
"type": ""
}
],
"src": "6036:128:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6343:175:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6360:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6371:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6353:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6353:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "6353:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6394:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6405:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6390:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6410:2:1",
"type": "",
"value": "25"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6383:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6383:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "6383:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6433:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6444:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6429:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6429:18:1"
},
{
"hexValue": "47616d652068617320616c726561647920737461727465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6449:27:1",
"type": "",
"value": "Game has already started."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6422:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6422:55:1"
},
"nodeType": "YulExpressionStatement",
"src": "6422:55:1"
},
{
"nodeType": "YulAssignment",
"src": "6486:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6498:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6509:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6494:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6494:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6486:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_1d36627e1510ec4829841427bef49fae7a65d4f0374862a1def1ce927571f793__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6320:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6334:4:1",
"type": ""
}
],
"src": "6169:349:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6697:168:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6714:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6725:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6707:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6707:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "6707:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6748:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6759:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6744:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6744:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6764:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6737:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6737:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "6737:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6787:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6798:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6783:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6783:18:1"
},
{
"hexValue": "47616d65207761732063616e63656c65642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6803:20:1",
"type": "",
"value": "Game was canceled."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6776:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6776:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "6776:48:1"
},
{
"nodeType": "YulAssignment",
"src": "6833:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6845:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6856:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6841:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6841:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6833:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_3cbc588e4d1ecfdf64e47f1e54a082d2c336b8228cf0f55aadaa6495f242d77c__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6674:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6688:4:1",
"type": ""
}
],
"src": "6523:342:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7044:167:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7061:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7072:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7054:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7054:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7054:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7095:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7106:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7091:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7091:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7111:2:1",
"type": "",
"value": "17"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7084:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7084:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7084:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7134:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7145:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7130:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7130:18:1"
},
{
"hexValue": "57726f6e672062657420616d6f756e742e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7150:19:1",
"type": "",
"value": "Wrong bet amount."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7123:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7123:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "7123:47:1"
},
{
"nodeType": "YulAssignment",
"src": "7179:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7191:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7202:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7187:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7187:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7179:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_044fd81d418bf62b20af635198f63632277e3bfb22a134d0c53cfd4dd9d4974b__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7021:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7035:4:1",
"type": ""
}
],
"src": "6870:341:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7390:226:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7407:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7418:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7400:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7400:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7400:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7441:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7452:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7437:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7437:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7457:2:1",
"type": "",
"value": "36"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7430:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7430:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7430:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7480:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7491:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7476:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7476:18:1"
},
{
"hexValue": "53657175656e6365206e756d6265722063616e6e6f7420676f206261636b7761",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7496:34:1",
"type": "",
"value": "Sequence number cannot go backwa"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7469:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7469:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "7469:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7551:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7562:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7547:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7547:18:1"
},
{
"hexValue": "7264732e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7567:6:1",
"type": "",
"value": "rds."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7540:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7540:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "7540:34:1"
},
{
"nodeType": "YulAssignment",
"src": "7583:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7595:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7606:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7591:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7591:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7583:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_21914824ead4132f6cc39af30546822d90293b773e78a531d1c65d2f7dc26ddb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7367:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7381:4:1",
"type": ""
}
],
"src": "7216:400:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7820:251:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7837:3:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7850:2:1",
"type": "",
"value": "96"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7854:6:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "7846:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7846:15:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7867:26:1",
"type": "",
"value": "0xffffffffffffffffffffffff"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "7863:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7863:31:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7842:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7842:53:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7830:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7830:66:1"
},
"nodeType": "YulExpressionStatement",
"src": "7830:66:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7916:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7921:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7912:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7912:12:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7934:3:1",
"type": "",
"value": "248"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "7939:6:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "7930:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7930:16:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7952:3:1",
"type": "",
"value": "248"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7957:3:1",
"type": "",
"value": "255"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "7948:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7948:13:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7926:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7926:36:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7905:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7905:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "7905:58:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7983:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7988:2:1",
"type": "",
"value": "21"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7979:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7979:12:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "7993:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7972:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7972:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "7972:28:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8020:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8025:2:1",
"type": "",
"value": "53"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8016:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8016:12:1"
},
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "8030:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8009:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8009:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "8009:28:1"
},
{
"nodeType": "YulAssignment",
"src": "8046:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8057:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8062:2:1",
"type": "",
"value": "85"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8053:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8053:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8046:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_address_t_uint8_t_bytes32_t_bytes32__to_t_address_t_uint8_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7772:3:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "7777:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "7785:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "7793:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7801:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7812:3:1",
"type": ""
}
],
"src": "7621:450:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8250:179:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8267:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8278:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8260:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8260:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8260:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8301:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8312:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8297:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8297:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8317:2:1",
"type": "",
"value": "29"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8290:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8290:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8290:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8340:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8351:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8336:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8336:18:1"
},
{
"hexValue": "4f6e6c7920666972737420706c61796572206d61792063616e63656c2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8356:31:1",
"type": "",
"value": "Only first player may cancel."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8329:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8329:59:1"
},
"nodeType": "YulExpressionStatement",
"src": "8329:59:1"
},
{
"nodeType": "YulAssignment",
"src": "8397:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8409:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8420:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8405:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8405:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8397:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_51b79df1a40f6eade4f7c6efb6604398969116a4c002b822d353536582071c64__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8227:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8241:4:1",
"type": ""
}
],
"src": "8076:353:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8608:171:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8625:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8636:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8618:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8618:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8618:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8659:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8670:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8655:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8655:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8675:2:1",
"type": "",
"value": "21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8648:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8648:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8648:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8698:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8709:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8694:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8694:18:1"
},
{
"hexValue": "47616d6520686173206e6f7420737461727465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8714:23:1",
"type": "",
"value": "Game has not started."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8687:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8687:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "8687:51:1"
},
{
"nodeType": "YulAssignment",
"src": "8747:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8759:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8770:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8755:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8755:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8747:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_507ce349b9060e0e598da3a12cdc76c1c5e81243abd956e8ed976ed64eb674e8__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8585:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8599:4:1",
"type": ""
}
],
"src": "8434:345:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8958:165:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8975:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8986:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8968:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8968:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8968:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9009:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9020:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9005:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9005:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9025:2:1",
"type": "",
"value": "15"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8998:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8998:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8998:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9048:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9059:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9044:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9044:18:1"
},
{
"hexValue": "496e76616c696420706c617965722e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9064:17:1",
"type": "",
"value": "Invalid player."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9037:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9037:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "9037:45:1"
},
{
"nodeType": "YulAssignment",
"src": "9091:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9103:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9114:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9099:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9099:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9091:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9b3b3ec960f4f8902c361019561daa84849c1ba720f77a9bb2397ef8a8488f03__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8935:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8949:4:1",
"type": ""
}
],
"src": "8784:339:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9348:160:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9365:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9370:66:1",
"type": "",
"value": "0x19457468657265756d205369676e6564204d6573736167653a0a333200000000"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9358:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9358:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "9358:79:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9457:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9462:2:1",
"type": "",
"value": "28"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9453:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9453:12:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9467:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9446:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9446:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "9446:28:1"
},
{
"nodeType": "YulAssignment",
"src": "9483:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9494:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9499:2:1",
"type": "",
"value": "60"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9490:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9490:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9483:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9324:3:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9329:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9340:3:1",
"type": ""
}
],
"src": "9128:380:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9694:217:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9704:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9716:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9727:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9712:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9712:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9704:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9747:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9758:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9740:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9740:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "9740:25:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9785:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9796:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9781:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9781:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "9805:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9813:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "9801:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9801:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9774:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9774:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "9774:45:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9839:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9850:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9835:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9835:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "9855:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9828:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9828:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "9828:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9882:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9893:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9878:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9878:18:1"
},
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "9898:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9871:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9871:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "9871:34:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9639:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "9650:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "9658:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "9666:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9674:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9685:4:1",
"type": ""
}
],
"src": "9513:398:1"
}
]
},
"contents": "{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_bytes_memory_ptrt_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint8t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint8_t_bytes32_t_bytes32_t_address__to_t_uint8_t_bytes32_t_bytes32_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, and(value0, 0xff))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint8t_bytes_memory_ptrt_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_encode_tuple_t_stringliteral_37e485df2657cc220ee36672205ee7c3cc5e3c4c914afd66fbfda5c851598efb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"move must match commit\")\n tail := add(headStart, 96)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_124aefa704cdd407a2403e74675d3926834fa5fabd6ae58107a7b9fd1906ef54__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Game has ended.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_69de070a7e9fd31aaf1220285a32a1aafa2aaabdd8a0a65c53d9faa020ec0d52__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not your turn.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9d48a83ffa746d9c6a18a1ade1b13118041d408147adef9e381b25038ed56049__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Incorrect sequence number.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_16f77c79c1a2609f3237b9b5aa9f2956b73b6e67f18448e897441e51ed3de64d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 12)\n mstore(add(headStart, 64), \"Moves closed\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint8(x, y) -> sum\n {\n let x_1 := and(x, 0xff)\n let y_1 := and(y, 0xff)\n if gt(x_1, sub(0xff, y_1)) { panic_error_0x11() }\n sum := add(x_1, y_1)\n }\n function abi_encode_tuple_t_address_t_uint8_t_bytes32__to_t_address_t_uint8_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_1d36627e1510ec4829841427bef49fae7a65d4f0374862a1def1ce927571f793__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"Game has already started.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3cbc588e4d1ecfdf64e47f1e54a082d2c336b8228cf0f55aadaa6495f242d77c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Game was canceled.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_044fd81d418bf62b20af635198f63632277e3bfb22a134d0c53cfd4dd9d4974b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"Wrong bet amount.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_21914824ead4132f6cc39af30546822d90293b773e78a531d1c65d2f7dc26ddb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"Sequence number cannot go backwa\")\n mstore(add(headStart, 96), \"rds.\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_packed_t_address_t_uint8_t_bytes32_t_bytes32__to_t_address_t_uint8_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), and(shl(248, value1), shl(248, 255)))\n mstore(add(pos, 21), value2)\n mstore(add(pos, 53), value3)\n end := add(pos, 85)\n }\n function abi_encode_tuple_t_stringliteral_51b79df1a40f6eade4f7c6efb6604398969116a4c002b822d353536582071c64__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Only first player may cancel.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_507ce349b9060e0e598da3a12cdc76c1c5e81243abd956e8ed976ed64eb674e8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"Game has not started.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b3b3ec960f4f8902c361019561daa84849c1ba720f77a9bb2397ef8a8488f03__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Invalid player.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000)\n mstore(add(pos, 28), value0)\n end := add(pos, 60)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100e85760003560e01c8063b688a3631161008a578063cfe0a1de11610059578063cfe0a1de1461027f578063d24257c014610295578063d30895e4146102ab578063ea8a1af0146102cb57600080fd5b8063b688a363146101d1578063bdb337d1146101d9578063c19d93fb14610203578063c2bfc99f1461025f57600080fd5b80634daa2e11116100c65780634daa2e111461014e57806359a5f12d1461016e57806370dea79a146101a65780638e7ea5b2146101bc57600080fd5b80630ca5efd7146100ed5780630e76f9db1461010f5780631f6bb0a514610138575b600080fd5b3480156100f957600080fd5b5061010d610108366004610e7c565b6102e0565b005b34801561011b57600080fd5b5061012560085481565b6040519081526020015b60405180910390f35b34801561014457600080fd5b50610125600b5481565b34801561015a57600080fd5b5061010d610169366004610ed2565b6104ae565b34801561017a57600080fd5b5060015461018e906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b3480156101b257600080fd5b5061012560095481565b3480156101c857600080fd5b5061018e6106b4565b61010d610867565b3480156101e557600080fd5b506003546101f39060ff1681565b604051901515815260200161012f565b34801561020f57600080fd5b506004546005546006546007546102329360ff169291906001600160a01b031684565b6040805160ff90951685526020850193909352918301526001600160a01b0316606082015260800161012f565b34801561026b57600080fd5b5061010d61027a366004610efc565b6109db565b34801561028b57600080fd5b50610125600a5481565b3480156102a157600080fd5b5061012560025481565b3480156102b757600080fd5b5060005461018e906001600160a01b031681565b3480156102d757600080fd5b5061010d610b60565b6009544210156102ef57600080fd5b806102f957600080fd5b81516020830120811461034c5760405162461bcd60e51b81526020600482015260166024820152751b5bdd99481b5d5cdd081b585d18da0818dbdb5b5a5d60521b60448201526064015b60405180910390fd5b8160008151811061035f5761035f610f65565b6020910101516001600160f81b031916600360fc1b14806103a557508160008151811061038e5761038e610f65565b6020910101516001600160f81b031916603160f81b145b806103d55750816000815181106103be576103be610f65565b6020910101516001600160f81b031916601960f91b145b6103de57600080fd5b6000826000815181106103f3576103f3610f65565b6020910101516001600160f81b031916600360fc1b141561041c575063524f434b60e01b610467565b8260008151811061042f5761042f610f65565b6020910101516001600160f81b031916603160f81b14156104595750642820a822a960d91b610467565b506753434953534f525360c01b5b6000546001600160a01b031633141561049457600554821461048857600080fd5b600a5550506000600555565b60065482146104a257600080fd5b600b5550506000600655565b60035460ff16156104f35760405162461bcd60e51b815260206004820152600f60248201526e23b0b6b2903430b99032b73232b21760891b6044820152606401610343565b6007546001600160a01b0316331461053e5760405162461bcd60e51b815260206004820152600e60248201526d2737ba103cb7bab9103a3ab9371760911b6044820152606401610343565b60045460ff8381169116146105955760405162461bcd60e51b815260206004820152601a60248201527f496e636f72726563742073657175656e6365206e756d6265722e0000000000006044820152606401610343565b60095442106105d55760405162461bcd60e51b815260206004820152600c60248201526b135bdd995cc818db1bdcd95960a21b6044820152606401610343565b6000546001600160a01b03163314156105ff57600554156105f557600080fd5b6005819055610612565b6006541561060c57600080fd5b60068190555b61061b33610c4b565b600780546001600160a01b0319166001600160a01b0392909216919091179055600480546001919060009061065490849060ff16610f91565b82546101009290920a60ff81810219909316918316021790915560408051338152918516602083015281018390527f0b282c437c3c4bdfdc1b2c44d71b0632059bd9b31f8151d3fc4f8608f3f0d335915060600160405180910390a15050565b60006009544210156106c557600080fd5b600a546106d157600080fd5b600b546106dd57600080fd5b600063524f434b60e01b600a541480156107005750642820a822a960d91b600b54145b1561071757506001546001600160a01b0316610855565b642820a822a960d91b600a54148015610738575063524f434b60e01b600b54145b1561074f57506000546001600160a01b0316610855565b6753434953534f525360c01b600a541480156107745750642820a822a960d91b600b54145b1561078b57506000546001600160a01b0316610855565b642820a822a960d91b600a541480156107b057506753434953534f525360c01b600b54145b156107c757506001546001600160a01b0316610855565b63524f434b60e01b600a541480156107eb57506753434953534f525360c01b600b54145b1561080257506000546001600160a01b0316610855565b6753434953534f525360c01b600a54148015610826575063524f434b60e01b600b54145b1561083d57506001546001600160a01b0316610855565b60085461084a9042610fb6565b600955506000919050565b6003805460ff19166001179055919050565b6001546001600160a01b0316156108bc5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b60035460ff16156109045760405162461bcd60e51b815260206004820152601260248201527123b0b6b2903bb0b99031b0b731b2b632b21760711b6044820152606401610343565b60025434146109495760405162461bcd60e51b81526020600482015260116024820152702bb937b733903132ba1030b6b7bab73a1760791b6044820152606401610343565b600180546001600160a01b0319908116331790915560008054600780549093166001600160a01b0391909116179091556040517f762f260439bb4be3ef6e4dc2786e2e7bd187d3d80b79057d7a424fe98563e3359190a16008546109ad9042610fb6565b6009556040517f02bdd5174ce27e71542ca96bbba5c2c21920793759d94795d2f17eff6f7f2a0f90600090a1565b60045460ff9081169086161015610a405760405162461bcd60e51b8152602060048201526024808201527f53657175656e6365206e756d6265722063616e6e6f7420676f206261636b77616044820152633932399760e11b6064820152608401610343565b6040516bffffffffffffffffffffffff193060601b1660208201526001600160f81b031960f887901b1660348201526035810184905260558101839052600090610af090607501604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b9050610afb33610c4b565b6001600160a01b0316610b0e8287610d2b565b6001600160a01b031614610b2157600080fd5b6004805460ff881660ff1990911617905560058490556006839055600780546001600160a01b03191633179055610b5886836104ae565b505050505050565b6000546001600160a01b03163314610bba5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920666972737420706c61796572206d61792063616e63656c2e0000006044820152606401610343565b6001546001600160a01b031615610c0f5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b6003805460ff1916600117905560405133904780156108fc02916000818181858888f19350505050158015610c48573d6000803e3d6000fd5b50565b6001546000906001600160a01b0316610c9e5760405162461bcd60e51b815260206004820152601560248201527423b0b6b2903430b9903737ba1039ba30b93a32b21760591b6044820152606401610343565b6000546001600160a01b0383811691161415610cc55750506001546001600160a01b031690565b6001546001600160a01b0383811691161415610cec5750506000546001600160a01b031690565b60405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b210383630bcb2b91760891b6044820152606401610343565b919050565b600080600080610d3a85610daa565b6040805160008152602081018083528b905260ff8516918101919091526060810183905260808101829052929550909350915060019060a0016020604051602081039080840390855afa158015610d95573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60008060008351604114610dbd57600080fd5b5050506020810151604082015160609092015160001a92909190565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610e0057600080fd5b813567ffffffffffffffff80821115610e1b57610e1b610dd9565b604051601f8301601f19908116603f01168101908282118183101715610e4357610e43610dd9565b81604052838152866020858801011115610e5c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610e8f57600080fd5b823567ffffffffffffffff811115610ea657600080fd5b610eb285828601610def565b95602094909401359450505050565b803560ff81168114610d2657600080fd5b60008060408385031215610ee557600080fd5b610eee83610ec1565b946020939093013593505050565b600080600080600060a08688031215610f1457600080fd5b610f1d86610ec1565b9450602086013567ffffffffffffffff811115610f3957600080fd5b610f4588828901610def565b959895975050505060408401359360608101359360809091013592509050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168060ff03821115610fae57610fae610f7b565b019392505050565b60008219821115610fc957610fc9610f7b565b50019056fea264697066735822122021a5b682a90393bf975d01d38e58c389aaff1f82308d3979ee948e60e6b3ff4964736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB688A363 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xCFE0A1DE GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xCFE0A1DE EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xD24257C0 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0xD30895E4 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0xEA8A1AF0 EQ PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB688A363 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xBDB337D1 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xC19D93FB EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0xC2BFC99F EQ PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4DAA2E11 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x4DAA2E11 EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0x59A5F12D EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x70DEA79A EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x8E7EA5B2 EQ PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA5EFD7 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0xE76F9DB EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x1F6BB0A5 EQ PUSH2 0x138 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x108 CALLDATASIZE PUSH1 0x4 PUSH2 0xE7C JUMP JUMPDEST PUSH2 0x2E0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x169 CALLDATASIZE PUSH1 0x4 PUSH2 0xED2 JUMP JUMPDEST PUSH2 0x4AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x867 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x1F3 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH2 0x232 SWAP4 PUSH1 0xFF AND SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x27A CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x9DB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD KECCAK256 DUP2 EQ PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1B5BDD99481B5D5CDD081B585D18DA0818DBDB5B5A5D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x35F JUMPI PUSH2 0x35F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ DUP1 PUSH2 0x3A5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x38E JUMPI PUSH2 0x38E PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ JUMPDEST DUP1 PUSH2 0x3D5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3BE JUMPI PUSH2 0x3BE PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x19 PUSH1 0xF9 SHL EQ JUMPDEST PUSH2 0x3DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3F3 JUMPI PUSH2 0x3F3 PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ ISZERO PUSH2 0x41C JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH2 0x467 JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x42F JUMPI PUSH2 0x42F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ ISZERO PUSH2 0x459 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH2 0x467 JUMP JUMPDEST POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x494 JUMPI PUSH1 0x5 SLOAD DUP3 EQ PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SSTORE POP POP PUSH1 0x0 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD DUP3 EQ PUSH2 0x4A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SSTORE POP POP PUSH1 0x0 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x23B0B6B2903430B99032B73232B217 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x2737BA103CB7BAB9103A3AB93717 PUSH1 0x91 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF DUP4 DUP2 AND SWAP2 AND EQ PUSH2 0x595 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E636F72726563742073657175656E6365206E756D6265722E000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT PUSH2 0x5D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x135BDD995CC818DB1BDCD959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x5FF JUMPI PUSH1 0x5 SLOAD ISZERO PUSH2 0x5F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE PUSH2 0x612 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x60C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP2 SWAP1 SSTORE JUMPDEST PUSH2 0x61B CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x654 SWAP1 DUP5 SWAP1 PUSH1 0xFF AND PUSH2 0xF91 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP2 DUP6 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xB282C437C3C4BDFDC1B2C44D71B0632059BD9B31F8151D3FC4F8608F3F0D335 SWAP2 POP PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x700 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x717 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x738 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x74F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x774 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x78B JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7B0 JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x7C7 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7EB JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x802 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x826 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x83D JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x84A SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x8BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x904 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x23B0B6B2903BB0B99031B0B731B2B632B217 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x2 SLOAD CALLVALUE EQ PUSH2 0x949 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x2BB937B733903132BA1030B6B7BAB73A17 PUSH1 0x79 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x762F260439BB4BE3EF6E4DC2786E2E7BD187D3D80B79057D7A424FE98563E335 SWAP2 SWAP1 LOG1 PUSH1 0x8 SLOAD PUSH2 0x9AD SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2BDD5174CE27E71542CA96BBBA5C2C21920793759D94795D2F17EFF6F7F2A0F SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF SWAP1 DUP2 AND SWAP1 DUP7 AND LT ISZERO PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x53657175656E6365206E756D6265722063616E6E6F7420676F206261636B7761 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x39323997 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0xF8 DUP8 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x55 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xAF0 SWAP1 PUSH1 0x75 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3C DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x5C ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 POP PUSH2 0xAFB CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB0E DUP3 DUP8 PUSH2 0xD2B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF DUP9 AND PUSH1 0xFF NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x5 DUP5 SWAP1 SSTORE PUSH1 0x6 DUP4 SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0xB58 DUP7 DUP4 PUSH2 0x4AE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xBBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C7920666972737420706C61796572206D61792063616E63656C2E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xC0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD CALLER SWAP1 SELFBALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xC48 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x23B0B6B2903430B9903737BA1039BA30B93A32B217 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCC5 JUMPI POP POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCEC JUMPI POP POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B210383630BCB2B917 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xD3A DUP6 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE DUP12 SWAP1 MSTORE PUSH1 0xFF DUP6 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0xDBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x60 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 BYTE SWAP3 SWAP1 SWAP2 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH2 0xE1B PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xE43 JUMPI PUSH2 0xE43 PUSH2 0xDD9 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xE5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEB2 DUP6 DUP3 DUP7 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xD26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEEE DUP4 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xF14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF1D DUP7 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF45 DUP9 DUP3 DUP10 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 SWAP9 SWAP6 SWAP8 POP POP POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP4 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP1 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xFAE JUMPI PUSH2 0xFAE PUSH2 0xF7B JUMP JUMPDEST ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xFC9 JUMPI PUSH2 0xFC9 PUSH2 0xF7B JUMP JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xA5 0xB6 DUP3 0xA9 SUB SWAP4 0xBF SWAP8 0x5D ADD 0xD3 DUP15 PC 0xC3 DUP10 0xAA SELFDESTRUCT 0x1F DUP3 ADDRESS DUP14 CODECOPY PUSH26 0xEE948E60E6B3FF4964736F6C6343000809003300000000000000 ",
"sourceMap": "65:7285:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3296:1046;;;;;;;;;;-1:-1:-1;3296:1046:0;;;;;:::i;:::-;;:::i;:::-;;492:30;;;;;;;;;;;;;;;;;;;1408:25:1;;;1396:2;1381:18;492:30:0;;;;;;;;601:26;;;;;;;;;;;;;;;;1643:1019;;;;;;;;;;-1:-1:-1;1643:1019:0;;;;;:::i;:::-;;:::i;237:22::-;;;;;;;;;;-1:-1:-1;237:22:0;;;;-1:-1:-1;;;;;237:22:0;;;;;;-1:-1:-1;;;;;2206:32:1;;;2188:51;;2176:2;2161:18;237:22:0;2042:203:1;528:35:0;;;;;;;;;;;;;;;;4352:990;;;;;;;;;;;;;:::i;942:406::-;;;:::i;295:20::-;;;;;;;;;;-1:-1:-1;295:20:0;;;;;;;;;;;2415:14:1;;2408:22;2390:41;;2378:2;2363:18;295:20:0;2250:187:1;464:22:0;;;;;;;;;;-1:-1:-1;464:22:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;464:22:0;;;;;;;2699:4:1;2687:17;;;2669:36;;2736:2;2721:18;;2714:34;;;;2764:18;;;2757:34;-1:-1:-1;;;;;2827:32:1;2822:2;2807:18;;2800:60;2656:3;2641:19;464:22:0;2442:424:1;2668:618:0;;;;;;;;;;-1:-1:-1;2668:618:0;;;;;:::i;:::-;;:::i;569:26::-;;;;;;;;;;;;;;;;265:24;;;;;;;;;;;;;;;;209:22;;;;;;;;;;-1:-1:-1;209:22:0;;;;-1:-1:-1;;;;;209:22:0;;;1354:261;;;;;;;;;;;;;:::i;3296:1046::-;3397:7;;3378:15;:26;;3370:35;;;;;;3537:21;3529:30;;;;;;3588:16;;;;;;3577:27;;3569:62;;;;-1:-1:-1;;;3569:62:0;;3674:2:1;3569:62:0;;;3656:21:1;3713:2;3693:18;;;3686:30;-1:-1:-1;;;3732:18:1;;;3725:52;3794:18;;3569:62:0;;;;;;;;;3691:5;3697:1;3691:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3691:8:0;-1:-1:-1;;;3691:15:0;;:34;;;3710:5;3716:1;3710:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3710:8:0;-1:-1:-1;;;3710:15:0;3691:34;:53;;;;3729:5;3735:1;3729:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3729:8:0;-1:-1:-1;;;3729:15:0;3691:53;3683:62;;;;;;3764:20;3798:5;3804:1;3798:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3798:8:0;-1:-1:-1;;;3798:15:0;3794:191;;;-1:-1:-1;;;;3794:191:0;;;3869:5;3875:1;3869:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3869:8:0;-1:-1:-1;;;3869:15:0;3865:120;;;-1:-1:-1;;;;3865:120:0;;;-1:-1:-1;;;;3865:120:0;4021:7;;-1:-1:-1;;;;;4021:7:0;4007:10;:21;4003:333;;;4063:19;;4052:30;;4044:39;;;;;;4097:11;:26;-1:-1:-1;;4167:1:0;4137:19;:32;3296:1046::o;4003:333::-;4219:19;;4208:30;;4200:39;;;;;;4253:11;:26;-1:-1:-1;;4323:1:0;4293:19;:32;3296:1046::o;1643:1019::-;1710:8;;;;1709:9;1701:37;;;;-1:-1:-1;;;1701:37:0;;4157:2:1;1701:37:0;;;4139:21:1;4196:2;4176:18;;;4169:30;-1:-1:-1;;;4215:18:1;;;4208:45;4270:18;;1701:37:0;3955:339:1;1701:37:0;1770:15;;-1:-1:-1;;;;;1770:15:0;1756:10;:29;1748:56;;;;-1:-1:-1;;;1748:56:0;;4501:2:1;1748:56:0;;;4483:21:1;4540:2;4520:18;;;4513:30;-1:-1:-1;;;4559:18:1;;;4552:44;4613:18;;1748:56:0;4299:338:1;1748:56:0;1822:5;:9;:16;;;;:9;;:16;1814:55;;;;-1:-1:-1;;;1814:55:0;;4844:2:1;1814:55:0;;;4826:21:1;4883:2;4863:18;;;4856:30;4922:28;4902:18;;;4895:56;4968:18;;1814:55:0;4642:350:1;1814:55:0;1905:7;;1887:15;:25;1879:50;;;;-1:-1:-1;;;1879:50:0;;5199:2:1;1879:50:0;;;5181:21:1;5238:2;5218:18;;;5211:30;-1:-1:-1;;;5257:18:1;;;5250:42;5309:18;;1879:50:0;4997:336:1;1879:50:0;2053:7;;-1:-1:-1;;;;;2053:7:0;2039:10;:21;2035:251;;;2084:19;;:33;2076:42;;;;;;2132:19;:28;;;2035:251;;;2199:19;;:33;2191:42;;;;;;2247:19;:28;;;2035:251;2345:22;2356:10;2345;:22::i;:::-;2327:15;:40;;-1:-1:-1;;;;;;2327:40:0;-1:-1:-1;;;;;2327:40:0;;;;;;;;;;:5;2377:14;;-1:-1:-1;;2327:5:0;-1:-1:-1;;2377:14:0;;-1:-1:-1;;2377:14:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2407:33;;;2416:10;5877:51:1;;5964:17;;;5959:2;5944:18;;5937:45;5998:18;;5991:34;;;2407:33:0;;-1:-1:-1;5865:2:1;5850:18;2407:33:0;;;;;;;1643:1019;;:::o;4352:990::-;4390:7;4436;;4417:15;:26;;4409:35;;;;;;4462:11;;4454:34;;;;;;4506:11;;4498:34;;;;;;4547:14;-1:-1:-1;;;4575:11:0;;:19;:43;;;;;-1:-1:-1;;;4598:11:0;;:20;4575:43;4571:708;;;-1:-1:-1;4643:7:0;;-1:-1:-1;;;;;4643:7:0;4571:708;;;-1:-1:-1;;;4671:11:0;;:20;:43;;;;;-1:-1:-1;;;4695:11:0;;:19;4671:43;4667:612;;;-1:-1:-1;4739:7:0;;-1:-1:-1;;;;;4739:7:0;4667:612;;;-1:-1:-1;;;4767:11:0;;:23;:47;;;;;-1:-1:-1;;;4794:11:0;;:20;4767:47;4763:516;;;-1:-1:-1;4839:7:0;;-1:-1:-1;;;;;4839:7:0;4763:516;;;-1:-1:-1;;;4867:11:0;;:20;:47;;;;;-1:-1:-1;;;4891:11:0;;:23;4867:47;4863:416;;;-1:-1:-1;4939:7:0;;-1:-1:-1;;;;;4939:7:0;4863:416;;;-1:-1:-1;;;4967:11:0;;:19;:46;;;;;-1:-1:-1;;;4990:11:0;;:23;4967:46;4963:316;;;-1:-1:-1;5038:7:0;;-1:-1:-1;;;;;5038:7:0;4963:316;;;-1:-1:-1;;;5066:11:0;;:23;:46;;;;;-1:-1:-1;;;5093:11:0;;:19;5066:46;5062:217;;;-1:-1:-1;5137:7:0;;-1:-1:-1;;;;;5137:7:0;5062:217;;;5222:15;;5204:33;;:15;:33;:::i;:::-;5194:7;:43;-1:-1:-1;5266:1:0;;4352:990;-1:-1:-1;4352:990:0:o;5062:217::-;5297:8;:15;;-1:-1:-1;;5297:15:0;5308:4;5297:15;;;5329:6;4352:990;-1:-1:-1;4352:990:0:o;942:406::-;991:7;;-1:-1:-1;;;;;991:7:0;:21;983:59;;;;-1:-1:-1;;;983:59:0;;6371:2:1;983:59:0;;;6353:21:1;6410:2;6390:18;;;6383:30;-1:-1:-1;;;6429:18:1;;;6422:55;6494:18;;983:59:0;6169:349:1;983:59:0;1061:8;;;;1060:9;1052:40;;;;-1:-1:-1;;;1052:40:0;;6725:2:1;1052:40:0;;;6707:21:1;6764:2;6744:18;;;6737:30;-1:-1:-1;;;6783:18:1;;;6776:48;6841:18;;1052:40:0;6523:342:1;1052:40:0;1123:9;;1110;:22;1102:52;;;;-1:-1:-1;;;1102:52:0;;7072:2:1;1102:52:0;;;7054:21:1;7111:2;7091:18;;;7084:30;-1:-1:-1;;;7130:18:1;;;7123:47;7187:18;;1102:52:0;6870:341:1;1102:52:0;1165:7;:20;;-1:-1:-1;;;;;;1165:20:0;;;1175:10;1165:20;;;;:7;1213;;1195:15;:25;;;;;-1:-1:-1;;;;;1213:7:0;;;;1195:25;;;;1235:13;;;;1165:7;1235:13;1295:15;;1277:33;;:15;:33;:::i;:::-;1267:7;:43;1325:16;;;;;;;942:406::o;2668:618::-;2814:5;:9;;;;;2807:16;;;;;2799:65;;;;-1:-1:-1;;;2799:65:0;;7418:2:1;2799:65:0;;;7400:21:1;7457:2;7437:18;;;7430:30;7496:34;7476:18;;;7469:62;-1:-1:-1;;;7547:18:1;;;7540:34;7591:19;;2799:65:0;7216:400:1;2799:65:0;2912:66;;-1:-1:-1;;2937:4:0;7850:2:1;7846:15;7842:53;2912:66:0;;;7830::1;-1:-1:-1;;;;;;7952:3:1;7930:16;;;7926:36;7912:12;;;7905:58;7979:12;;;7972:28;;;8016:12;;;8009:28;;;2875:15:0;;2893:87;;8053:12:1;;2912:66:0;;;;;;;;;;;;2902:77;;;;;;7282:58;;9370:66:1;7282:58:0;;;9358:79:1;9453:12;;;9446:28;;;7246:7:0;;9490:12:1;;7282:58:0;;;;;;;;;;;;7272:69;;;;;;7265:76;;7191:157;;;;2893:87;2875:105;;3029:22;3040:10;3029;:22::i;:::-;-1:-1:-1;;;;;2998:53:0;:27;3012:7;3021:3;2998:13;:27::i;:::-;-1:-1:-1;;;;;2998:53:0;;2990:62;;;;;;3071:5;:15;;;;;-1:-1:-1;;3071:15:0;;;;;;3096:19;:35;;;3141:19;:35;;;3186:15;:28;;-1:-1:-1;;;;;;3186:28:0;3204:10;3186:28;;;3262:17;3083:3;3272:6;3262:4;:17::i;:::-;2789:497;2668:618;;;;;:::o;1354:261::-;1411:7;;-1:-1:-1;;;;;1411:7:0;1397:10;:21;1389:63;;;;-1:-1:-1;;;1389:63:0;;8278:2:1;1389:63:0;;;8260:21:1;8317:2;8297:18;;;8290:30;8356:31;8336:18;;;8329:59;8405:18;;1389:63:0;8076:353:1;1389:63:0;1470:7;;-1:-1:-1;;;;;1470:7:0;:21;1462:59;;;;-1:-1:-1;;;1462:59:0;;6371:2:1;1462:59:0;;;6353:21:1;6410:2;6390:18;;;6383:30;-1:-1:-1;;;6429:18:1;;;6422:55;6494:18;;1462:59:0;6169:349:1;1462:59:0;1532:8;:15;;-1:-1:-1;;1532:15:0;1543:4;1532:15;;;1557:51;;1565:10;;1586:21;1557:51;;;;;1532:8;1557:51;1532:8;1557:51;1586:21;1565:10;1557:51;;;;;;;;;;;;;;;;;;;;;1354:261::o;5348:336::-;5434:7;;5407;;-1:-1:-1;;;;;5434:7:0;5426:55;;;;-1:-1:-1;;;5426:55:0;;8636:2:1;5426:55:0;;;8618:21:1;8675:2;8655:18;;;8648:30;-1:-1:-1;;;8694:18:1;;;8687:51;8755:18;;5426:55:0;8434:345:1;5426:55:0;5506:7;;-1:-1:-1;;;;;5496:17:0;;;5506:7;;5496:17;5492:186;;;-1:-1:-1;;5536:7:0;;-1:-1:-1;;;;;5536:7:0;;5348:336::o;5492:186::-;5574:7;;-1:-1:-1;;;;;5564:17:0;;;5574:7;;5564:17;5560:118;;;-1:-1:-1;;5604:7:0;;-1:-1:-1;;;;;5604:7:0;;5348:336::o;5560:118::-;5642:25;;-1:-1:-1;;;5642:25:0;;8986:2:1;5642:25:0;;;8968:21:1;9025:2;9005:18;;;8998:30;-1:-1:-1;;;9044:18:1;;;9037:45;9099:18;;5642:25:0;8784:339:1;5560:118:0;5348:336;;;:::o;6853:267::-;6958:7;6981;6998:9;7017;7049:19;7064:3;7049:14;:19::i;:::-;7086:27;;;;;;;;;;;;9740:25:1;;;9813:4;9801:17;;9781:18;;;9774:45;;;;9835:18;;;9828:34;;;9878:18;;;9871:34;;;7037:31:0;;-1:-1:-1;7037:31:0;;-1:-1:-1;7037:31:0;-1:-1:-1;7086:27:0;;9712:19:1;;7086:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7086:27:0;;-1:-1:-1;;7086:27:0;;;6853:267;-1:-1:-1;;;;;;;6853:267:0:o;6308:539::-;6397:5;6404:7;6413;6444:3;:10;6458:2;6444:16;6436:25;;;;;;-1:-1:-1;;;6626:2:0;6617:12;;6611:19;6694:2;6685:12;;6679:19;6799:2;6790:12;;;6784:19;6472:9;6776:28;;6611:19;;6679;6308:539::o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:1;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:388::-;946:6;954;1007:2;995:9;986:7;982:23;978:32;975:52;;;1023:1;1020;1013:12;975:52;1063:9;1050:23;1096:18;1088:6;1085:30;1082:50;;;1128:1;1125;1118:12;1082:50;1151:49;1192:7;1183:6;1172:9;1168:22;1151:49;:::i;:::-;1141:59;1247:2;1232:18;;;;1219:32;;-1:-1:-1;;;;869:388:1:o;1626:156::-;1692:20;;1752:4;1741:16;;1731:27;;1721:55;;1772:1;1769;1762:12;1787:250;1853:6;1861;1914:2;1902:9;1893:7;1889:23;1885:32;1882:52;;;1930:1;1927;1920:12;1882:52;1953:27;1970:9;1953:27;:::i;:::-;1943:37;2027:2;2012:18;;;;1999:32;;-1:-1:-1;;;1787:250:1:o;2871:596::-;2973:6;2981;2989;2997;3005;3058:3;3046:9;3037:7;3033:23;3029:33;3026:53;;;3075:1;3072;3065:12;3026:53;3098:27;3115:9;3098:27;:::i;:::-;3088:37;;3176:2;3165:9;3161:18;3148:32;3203:18;3195:6;3192:30;3189:50;;;3235:1;3232;3225:12;3189:50;3258:49;3299:7;3290:6;3279:9;3275:22;3258:49;:::i;:::-;2871:596;;3248:59;;-1:-1:-1;;;;3354:2:1;3339:18;;3326:32;;3405:2;3390:18;;3377:32;;3456:3;3441:19;;;3428:33;;-1:-1:-1;2871:596:1;-1:-1:-1;2871:596:1:o;3823:127::-;3884:10;3879:3;3875:20;3872:1;3865:31;3915:4;3912:1;3905:15;3939:4;3936:1;3929:15;5338:127;5399:10;5394:3;5390:20;5387:1;5380:31;5430:4;5427:1;5420:15;5454:4;5451:1;5444:15;5470:204;5508:3;5544:4;5541:1;5537:12;5576:4;5573:1;5569:12;5611:3;5605:4;5601:14;5596:3;5593:23;5590:49;;;5619:18;;:::i;:::-;5655:13;;5470:204;-1:-1:-1;;;5470:204:1:o;6036:128::-;6076:3;6107:1;6103:6;6100:1;6097:13;6094:39;;;6113:18;;:::i;:::-;-1:-1:-1;6149:9:1;;6036:128::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "820000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"betAmount()": "2328",
"cancel()": "infinite",
"gameOver()": "2355",
"getWinner()": "58656",
"join()": "82938",
"move(uint8,bytes32)": "96233",
"moveFromState(uint8,bytes,bytes32,bytes32,bytes32)": "infinite",
"player1()": "2403",
"player1move()": "2306",
"player2()": "2382",
"player2move()": "2352",
"revealMove(bytes,bytes32)": "infinite",
"state()": "8791",
"timeout()": "2351",
"timeoutInterval()": "2330"
},
"internal": {
"opponentOf(address)": "infinite",
"prefixed(bytes32)": "infinite",
"recoverSigner(bytes32,bytes memory)": "infinite",
"splitSignature(bytes memory)": "infinite"
}
},
"methodIdentifiers": {
"betAmount()": "d24257c0",
"cancel()": "ea8a1af0",
"gameOver()": "bdb337d1",
"getWinner()": "8e7ea5b2",
"join()": "b688a363",
"move(uint8,bytes32)": "4daa2e11",
"moveFromState(uint8,bytes,bytes32,bytes32,bytes32)": "c2bfc99f",
"player1()": "d30895e4",
"player1move()": "cfe0a1de",
"player2()": "59a5f12d",
"player2move()": "1f6bb0a5",
"revealMove(bytes,bytes32)": "0ca5efd7",
"state()": "c19d93fb",
"timeout()": "70dea79a",
"timeoutInterval()": "0e76f9db"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_timeoutInterval",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [],
"name": "GameStarted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "player",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "MoveMade",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "TimeoutStarted",
"type": "event"
},
{
"inputs": [],
"name": "betAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cancel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "gameOver",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getWinner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "join",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "move",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "sig",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "player1commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "player2commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "moveFromState",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "player1",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player1move",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player2",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player2move",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "_move",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "_commit",
"type": "bytes32"
}
],
"name": "revealMove",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "state",
"outputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "player1commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "player2commit",
"type": "bytes32"
},
{
"internalType": "address",
"name": "whoseTurn",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeout",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeoutInterval",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.9+commit.e5eed63a"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_timeoutInterval",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [],
"name": "GameStarted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "player",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "MoveMade",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "TimeoutStarted",
"type": "event"
},
{
"inputs": [],
"name": "betAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cancel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "gameOver",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getWinner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "join",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "move",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "sig",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "player1commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "player2commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "moveFromState",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "player1",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player1move",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player2",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player2move",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "_move",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "_commit",
"type": "bytes32"
}
],
"name": "revealMove",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "state",
"outputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "player1commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "player2commit",
"type": "bytes32"
},
{
"internalType": "address",
"name": "whoseTurn",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeout",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeoutInterval",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/RPS.sol": "RGame"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/RPS.sol": {
"keccak256": "0x1d2329bd61746bc62467eea1272431d8c3fbce55369ea19f1b137794f84007c2",
"license": "MIT",
"urls": [
"bzz-raw://6b759c5581e2b8278b72e9af5e130f1e54642b6166c54c9f100c75157115be34",
"dweb:/ipfs/QmXv6R5MyARFSHwauawLXGVqnm7UfvoJUuBzWMzw3Q1Skt"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_75": {
"entryPoint": null,
"id": 75,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 70,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:200:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "95:103:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "141:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "150:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "153:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "143:6:1"
},
"nodeType": "YulFunctionCall",
"src": "143:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "143:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "116:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "125:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "112:3:1"
},
"nodeType": "YulFunctionCall",
"src": "112:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "137:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "108:3:1"
},
"nodeType": "YulFunctionCall",
"src": "108:32:1"
},
"nodeType": "YulIf",
"src": "105:52:1"
},
{
"nodeType": "YulAssignment",
"src": "166:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "182:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "176:5:1"
},
"nodeType": "YulFunctionCall",
"src": "176:16:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "166:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "61:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "72:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "84:6:1",
"type": ""
}
],
"src": "14:184:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405260001960095560405161107238038061107283398101604081905261002891610046565b600080546001600160a01b031916331790553460025560085561005f565b60006020828403121561005857600080fd5b5051919050565b6110048061006e6000396000f3fe6080604052600436106100e85760003560e01c8063b688a3631161008a578063cfe0a1de11610059578063cfe0a1de1461027f578063d24257c014610295578063d30895e4146102ab578063ea8a1af0146102cb57600080fd5b8063b688a363146101d1578063bdb337d1146101d9578063c19d93fb14610203578063c2bfc99f1461025f57600080fd5b80634daa2e11116100c65780634daa2e111461014e57806359a5f12d1461016e57806370dea79a146101a65780638e7ea5b2146101bc57600080fd5b80630ca5efd7146100ed5780630e76f9db1461010f5780631f6bb0a514610138575b600080fd5b3480156100f957600080fd5b5061010d610108366004610e7c565b6102e0565b005b34801561011b57600080fd5b5061012560085481565b6040519081526020015b60405180910390f35b34801561014457600080fd5b50610125600b5481565b34801561015a57600080fd5b5061010d610169366004610ed2565b6104ae565b34801561017a57600080fd5b5060015461018e906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b3480156101b257600080fd5b5061012560095481565b3480156101c857600080fd5b5061018e6106b4565b61010d610867565b3480156101e557600080fd5b506003546101f39060ff1681565b604051901515815260200161012f565b34801561020f57600080fd5b506004546005546006546007546102329360ff169291906001600160a01b031684565b6040805160ff90951685526020850193909352918301526001600160a01b0316606082015260800161012f565b34801561026b57600080fd5b5061010d61027a366004610efc565b6109db565b34801561028b57600080fd5b50610125600a5481565b3480156102a157600080fd5b5061012560025481565b3480156102b757600080fd5b5060005461018e906001600160a01b031681565b3480156102d757600080fd5b5061010d610b60565b6009544210156102ef57600080fd5b806102f957600080fd5b81516020830120811461034c5760405162461bcd60e51b81526020600482015260166024820152751b5bdd99481b5d5cdd081b585d18da0818dbdb5b5a5d60521b60448201526064015b60405180910390fd5b8160008151811061035f5761035f610f65565b6020910101516001600160f81b031916600360fc1b14806103a557508160008151811061038e5761038e610f65565b6020910101516001600160f81b031916603160f81b145b806103d55750816000815181106103be576103be610f65565b6020910101516001600160f81b031916601960f91b145b6103de57600080fd5b6000826000815181106103f3576103f3610f65565b6020910101516001600160f81b031916600360fc1b141561041c575063524f434b60e01b610467565b8260008151811061042f5761042f610f65565b6020910101516001600160f81b031916603160f81b14156104595750642820a822a960d91b610467565b506753434953534f525360c01b5b6000546001600160a01b031633141561049457600554821461048857600080fd5b600a5550506000600555565b60065482146104a257600080fd5b600b5550506000600655565b60035460ff16156104f35760405162461bcd60e51b815260206004820152600f60248201526e23b0b6b2903430b99032b73232b21760891b6044820152606401610343565b6007546001600160a01b0316331461053e5760405162461bcd60e51b815260206004820152600e60248201526d2737ba103cb7bab9103a3ab9371760911b6044820152606401610343565b60045460ff8381169116146105955760405162461bcd60e51b815260206004820152601a60248201527f496e636f72726563742073657175656e6365206e756d6265722e0000000000006044820152606401610343565b60095442106105d55760405162461bcd60e51b815260206004820152600c60248201526b135bdd995cc818db1bdcd95960a21b6044820152606401610343565b6000546001600160a01b03163314156105ff57600554156105f557600080fd5b6005819055610612565b6006541561060c57600080fd5b60068190555b61061b33610c4b565b600780546001600160a01b0319166001600160a01b0392909216919091179055600480546001919060009061065490849060ff16610f91565b82546101009290920a60ff81810219909316918316021790915560408051338152918516602083015281018390527f0b282c437c3c4bdfdc1b2c44d71b0632059bd9b31f8151d3fc4f8608f3f0d335915060600160405180910390a15050565b60006009544210156106c557600080fd5b600a546106d157600080fd5b600b546106dd57600080fd5b600063524f434b60e01b600a541480156107005750642820a822a960d91b600b54145b1561071757506001546001600160a01b0316610855565b642820a822a960d91b600a54148015610738575063524f434b60e01b600b54145b1561074f57506000546001600160a01b0316610855565b6753434953534f525360c01b600a541480156107745750642820a822a960d91b600b54145b1561078b57506000546001600160a01b0316610855565b642820a822a960d91b600a541480156107b057506753434953534f525360c01b600b54145b156107c757506001546001600160a01b0316610855565b63524f434b60e01b600a541480156107eb57506753434953534f525360c01b600b54145b1561080257506000546001600160a01b0316610855565b6753434953534f525360c01b600a54148015610826575063524f434b60e01b600b54145b1561083d57506001546001600160a01b0316610855565b60085461084a9042610fb6565b600955506000919050565b6003805460ff19166001179055919050565b6001546001600160a01b0316156108bc5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b60035460ff16156109045760405162461bcd60e51b815260206004820152601260248201527123b0b6b2903bb0b99031b0b731b2b632b21760711b6044820152606401610343565b60025434146109495760405162461bcd60e51b81526020600482015260116024820152702bb937b733903132ba1030b6b7bab73a1760791b6044820152606401610343565b600180546001600160a01b0319908116331790915560008054600780549093166001600160a01b0391909116179091556040517f762f260439bb4be3ef6e4dc2786e2e7bd187d3d80b79057d7a424fe98563e3359190a16008546109ad9042610fb6565b6009556040517f02bdd5174ce27e71542ca96bbba5c2c21920793759d94795d2f17eff6f7f2a0f90600090a1565b60045460ff9081169086161015610a405760405162461bcd60e51b8152602060048201526024808201527f53657175656e6365206e756d6265722063616e6e6f7420676f206261636b77616044820152633932399760e11b6064820152608401610343565b6040516bffffffffffffffffffffffff193060601b1660208201526001600160f81b031960f887901b1660348201526035810184905260558101839052600090610af090607501604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b9050610afb33610c4b565b6001600160a01b0316610b0e8287610d2b565b6001600160a01b031614610b2157600080fd5b6004805460ff881660ff1990911617905560058490556006839055600780546001600160a01b03191633179055610b5886836104ae565b505050505050565b6000546001600160a01b03163314610bba5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920666972737420706c61796572206d61792063616e63656c2e0000006044820152606401610343565b6001546001600160a01b031615610c0f5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b6003805460ff1916600117905560405133904780156108fc02916000818181858888f19350505050158015610c48573d6000803e3d6000fd5b50565b6001546000906001600160a01b0316610c9e5760405162461bcd60e51b815260206004820152601560248201527423b0b6b2903430b9903737ba1039ba30b93a32b21760591b6044820152606401610343565b6000546001600160a01b0383811691161415610cc55750506001546001600160a01b031690565b6001546001600160a01b0383811691161415610cec5750506000546001600160a01b031690565b60405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b210383630bcb2b91760891b6044820152606401610343565b919050565b600080600080610d3a85610daa565b6040805160008152602081018083528b905260ff8516918101919091526060810183905260808101829052929550909350915060019060a0016020604051602081039080840390855afa158015610d95573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60008060008351604114610dbd57600080fd5b5050506020810151604082015160609092015160001a92909190565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610e0057600080fd5b813567ffffffffffffffff80821115610e1b57610e1b610dd9565b604051601f8301601f19908116603f01168101908282118183101715610e4357610e43610dd9565b81604052838152866020858801011115610e5c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610e8f57600080fd5b823567ffffffffffffffff811115610ea657600080fd5b610eb285828601610def565b95602094909401359450505050565b803560ff81168114610d2657600080fd5b60008060408385031215610ee557600080fd5b610eee83610ec1565b946020939093013593505050565b600080600080600060a08688031215610f1457600080fd5b610f1d86610ec1565b9450602086013567ffffffffffffffff811115610f3957600080fd5b610f4588828901610def565b959895975050505060408401359360608101359360809091013592509050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168060ff03821115610fae57610fae610f7b565b019392505050565b60008219821115610fc957610fc9610f7b565b50019056fea26469706673582212203a98cab7e81787b88914251ef3fbd54993752b7abc358fb05244cf26a5f1584764736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 NOT PUSH1 0x9 SSTORE PUSH1 0x40 MLOAD PUSH2 0x1072 CODESIZE SUB DUP1 PUSH2 0x1072 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x28 SWAP2 PUSH2 0x46 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE CALLVALUE PUSH1 0x2 SSTORE PUSH1 0x8 SSTORE PUSH2 0x5F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1004 DUP1 PUSH2 0x6E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB688A363 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xCFE0A1DE GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xCFE0A1DE EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xD24257C0 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0xD30895E4 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0xEA8A1AF0 EQ PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB688A363 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xBDB337D1 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xC19D93FB EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0xC2BFC99F EQ PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4DAA2E11 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x4DAA2E11 EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0x59A5F12D EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x70DEA79A EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x8E7EA5B2 EQ PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA5EFD7 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0xE76F9DB EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x1F6BB0A5 EQ PUSH2 0x138 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x108 CALLDATASIZE PUSH1 0x4 PUSH2 0xE7C JUMP JUMPDEST PUSH2 0x2E0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x169 CALLDATASIZE PUSH1 0x4 PUSH2 0xED2 JUMP JUMPDEST PUSH2 0x4AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x867 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x1F3 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH2 0x232 SWAP4 PUSH1 0xFF AND SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x27A CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x9DB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD KECCAK256 DUP2 EQ PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1B5BDD99481B5D5CDD081B585D18DA0818DBDB5B5A5D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x35F JUMPI PUSH2 0x35F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ DUP1 PUSH2 0x3A5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x38E JUMPI PUSH2 0x38E PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ JUMPDEST DUP1 PUSH2 0x3D5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3BE JUMPI PUSH2 0x3BE PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x19 PUSH1 0xF9 SHL EQ JUMPDEST PUSH2 0x3DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3F3 JUMPI PUSH2 0x3F3 PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ ISZERO PUSH2 0x41C JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH2 0x467 JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x42F JUMPI PUSH2 0x42F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ ISZERO PUSH2 0x459 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH2 0x467 JUMP JUMPDEST POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x494 JUMPI PUSH1 0x5 SLOAD DUP3 EQ PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SSTORE POP POP PUSH1 0x0 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD DUP3 EQ PUSH2 0x4A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SSTORE POP POP PUSH1 0x0 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x23B0B6B2903430B99032B73232B217 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x2737BA103CB7BAB9103A3AB93717 PUSH1 0x91 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF DUP4 DUP2 AND SWAP2 AND EQ PUSH2 0x595 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E636F72726563742073657175656E6365206E756D6265722E000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT PUSH2 0x5D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x135BDD995CC818DB1BDCD959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x5FF JUMPI PUSH1 0x5 SLOAD ISZERO PUSH2 0x5F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE PUSH2 0x612 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x60C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP2 SWAP1 SSTORE JUMPDEST PUSH2 0x61B CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x654 SWAP1 DUP5 SWAP1 PUSH1 0xFF AND PUSH2 0xF91 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP2 DUP6 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xB282C437C3C4BDFDC1B2C44D71B0632059BD9B31F8151D3FC4F8608F3F0D335 SWAP2 POP PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x700 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x717 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x738 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x74F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x774 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x78B JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7B0 JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x7C7 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7EB JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x802 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x826 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x83D JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x84A SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x8BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x904 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x23B0B6B2903BB0B99031B0B731B2B632B217 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x2 SLOAD CALLVALUE EQ PUSH2 0x949 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x2BB937B733903132BA1030B6B7BAB73A17 PUSH1 0x79 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x762F260439BB4BE3EF6E4DC2786E2E7BD187D3D80B79057D7A424FE98563E335 SWAP2 SWAP1 LOG1 PUSH1 0x8 SLOAD PUSH2 0x9AD SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2BDD5174CE27E71542CA96BBBA5C2C21920793759D94795D2F17EFF6F7F2A0F SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF SWAP1 DUP2 AND SWAP1 DUP7 AND LT ISZERO PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x53657175656E6365206E756D6265722063616E6E6F7420676F206261636B7761 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x39323997 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0xF8 DUP8 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x55 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xAF0 SWAP1 PUSH1 0x75 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3C DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x5C ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 POP PUSH2 0xAFB CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB0E DUP3 DUP8 PUSH2 0xD2B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF DUP9 AND PUSH1 0xFF NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x5 DUP5 SWAP1 SSTORE PUSH1 0x6 DUP4 SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0xB58 DUP7 DUP4 PUSH2 0x4AE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xBBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C7920666972737420706C61796572206D61792063616E63656C2E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xC0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD CALLER SWAP1 SELFBALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xC48 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x23B0B6B2903430B9903737BA1039BA30B93A32B217 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCC5 JUMPI POP POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCEC JUMPI POP POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B210383630BCB2B917 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xD3A DUP6 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE DUP12 SWAP1 MSTORE PUSH1 0xFF DUP6 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0xDBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x60 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 BYTE SWAP3 SWAP1 SWAP2 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH2 0xE1B PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xE43 JUMPI PUSH2 0xE43 PUSH2 0xDD9 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xE5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEB2 DUP6 DUP3 DUP7 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xD26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEEE DUP4 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xF14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF1D DUP7 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF45 DUP9 DUP3 DUP10 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 SWAP9 SWAP6 SWAP8 POP POP POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP4 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP1 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xFAE JUMPI PUSH2 0xFAE PUSH2 0xF7B JUMP JUMPDEST ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xFC9 JUMPI PUSH2 0xFC9 PUSH2 0xF7B JUMP JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE SWAP9 0xCA 0xB7 0xE8 OR DUP8 0xB8 DUP10 EQ 0x25 0x1E RETURN 0xFB 0xD5 0x49 SWAP4 PUSH22 0x2B7ABC358FB05244CF26A5F1584764736F6C63430008 MULMOD STOP CALLER ",
"sourceMap": "65:7283:0:-:0;;;-1:-1:-1;;526:35:0;;776:158;;;;;;;;;;;;;;;;;;:::i;:::-;832:7;:20;;-1:-1:-1;;;;;;832:20:0;842:10;832:20;;;874:9;862;:21;893:15;:34;65:7283;;14:184:1;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:1;;14:184;-1:-1:-1;14:184:1:o;:::-;65:7283:0;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@betAmount_16": {
"entryPoint": null,
"id": 16,
"parameterSlots": 0,
"returnSlots": 0
},
"@cancel_166": {
"entryPoint": 2912,
"id": 166,
"parameterSlots": 0,
"returnSlots": 0
},
"@gameOver_18": {
"entryPoint": null,
"id": 18,
"parameterSlots": 0,
"returnSlots": 0
},
"@getWinner_608": {
"entryPoint": 1716,
"id": 608,
"parameterSlots": 0,
"returnSlots": 1
},
"@join_127": {
"entryPoint": 2151,
"id": 127,
"parameterSlots": 0,
"returnSlots": 0
},
"@moveFromState_347": {
"entryPoint": 2523,
"id": 347,
"parameterSlots": 5,
"returnSlots": 0
},
"@move_266": {
"entryPoint": 1198,
"id": 266,
"parameterSlots": 2,
"returnSlots": 0
},
"@opponentOf_645": {
"entryPoint": 3147,
"id": 645,
"parameterSlots": 1,
"returnSlots": 1
},
"@player1_12": {
"entryPoint": null,
"id": 12,
"parameterSlots": 0,
"returnSlots": 0
},
"@player1move_41": {
"entryPoint": null,
"id": 41,
"parameterSlots": 0,
"returnSlots": 0
},
"@player2_14": {
"entryPoint": null,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
},
"@player2move_43": {
"entryPoint": null,
"id": 43,
"parameterSlots": 0,
"returnSlots": 0
},
"@prefixed_730": {
"entryPoint": null,
"id": 730,
"parameterSlots": 1,
"returnSlots": 1
},
"@recoverSigner_714": {
"entryPoint": 3371,
"id": 714,
"parameterSlots": 2,
"returnSlots": 1
},
"@revealMove_477": {
"entryPoint": 736,
"id": 477,
"parameterSlots": 2,
"returnSlots": 0
},
"@splitSignature_679": {
"entryPoint": 3498,
"id": 679,
"parameterSlots": 1,
"returnSlots": 3
},
"@state_30": {
"entryPoint": null,
"id": 30,
"parameterSlots": 0,
"returnSlots": 0
},
"@timeoutInterval_32": {
"entryPoint": null,
"id": 32,
"parameterSlots": 0,
"returnSlots": 0
},
"@timeout_39": {
"entryPoint": null,
"id": 39,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_bytes": {
"entryPoint": 3567,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes_memory_ptrt_bytes32": {
"entryPoint": 3708,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint8t_bytes32": {
"entryPoint": 3794,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint8t_bytes_memory_ptrt_bytes32t_bytes32t_bytes32": {
"entryPoint": 3836,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_uint8": {
"entryPoint": 3777,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_address_t_uint8_t_bytes32_t_bytes32__to_t_address_t_uint8_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint8_t_bytes32__to_t_address_t_uint8_t_bytes32__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_044fd81d418bf62b20af635198f63632277e3bfb22a134d0c53cfd4dd9d4974b__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_124aefa704cdd407a2403e74675d3926834fa5fabd6ae58107a7b9fd1906ef54__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_16f77c79c1a2609f3237b9b5aa9f2956b73b6e67f18448e897441e51ed3de64d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_1d36627e1510ec4829841427bef49fae7a65d4f0374862a1def1ce927571f793__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_21914824ead4132f6cc39af30546822d90293b773e78a531d1c65d2f7dc26ddb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_37e485df2657cc220ee36672205ee7c3cc5e3c4c914afd66fbfda5c851598efb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_3cbc588e4d1ecfdf64e47f1e54a082d2c336b8228cf0f55aadaa6495f242d77c__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_507ce349b9060e0e598da3a12cdc76c1c5e81243abd956e8ed976ed64eb674e8__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_51b79df1a40f6eade4f7c6efb6604398969116a4c002b822d353536582071c64__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_69de070a7e9fd31aaf1220285a32a1aafa2aaabdd8a0a65c53d9faa020ec0d52__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9b3b3ec960f4f8902c361019561daa84849c1ba720f77a9bb2397ef8a8488f03__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9d48a83ffa746d9c6a18a1ade1b13118041d408147adef9e381b25038ed56049__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint8_t_bytes32_t_bytes32_t_address__to_t_uint8_t_bytes32_t_bytes32_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 4022,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint8": {
"entryPoint": 3985,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 3963,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 3941,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 3545,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:9913:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "46:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "198:666:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "247:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "256:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "259:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "249:6:1"
},
"nodeType": "YulFunctionCall",
"src": "249:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "249:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "226:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "234:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "222:3:1"
},
"nodeType": "YulFunctionCall",
"src": "222:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "241:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "218:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "211:6:1"
},
"nodeType": "YulFunctionCall",
"src": "211:35:1"
},
"nodeType": "YulIf",
"src": "208:55:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "272:30:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "295:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "282:12:1"
},
"nodeType": "YulFunctionCall",
"src": "282:20:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "276:2:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "311:28:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "321:18:1",
"type": "",
"value": "0xffffffffffffffff"
},
"variables": [
{
"name": "_2",
"nodeType": "YulTypedName",
"src": "315:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "362:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "364:16:1"
},
"nodeType": "YulFunctionCall",
"src": "364:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "364:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "354:2:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "358:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "351:2:1"
},
"nodeType": "YulFunctionCall",
"src": "351:10:1"
},
"nodeType": "YulIf",
"src": "348:36:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "393:17:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "407:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "403:3:1"
},
"nodeType": "YulFunctionCall",
"src": "403:7:1"
},
"variables": [
{
"name": "_3",
"nodeType": "YulTypedName",
"src": "397:2:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "419:23:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "439:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "433:5:1"
},
"nodeType": "YulFunctionCall",
"src": "433:9:1"
},
"variables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "423:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "451:71:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "497:2:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "501:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "493:3:1"
},
"nodeType": "YulFunctionCall",
"src": "493:13:1"
},
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "508:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "489:3:1"
},
"nodeType": "YulFunctionCall",
"src": "489:22:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "513:2:1",
"type": "",
"value": "63"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "485:3:1"
},
"nodeType": "YulFunctionCall",
"src": "485:31:1"
},
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "518:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "481:3:1"
},
"nodeType": "YulFunctionCall",
"src": "481:40:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "469:3:1"
},
"nodeType": "YulFunctionCall",
"src": "469:53:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "455:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "581:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "583:16:1"
},
"nodeType": "YulFunctionCall",
"src": "583:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "583:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "540:10:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "552:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "537:2:1"
},
"nodeType": "YulFunctionCall",
"src": "537:18:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "560:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "572:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "557:2:1"
},
"nodeType": "YulFunctionCall",
"src": "557:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "534:2:1"
},
"nodeType": "YulFunctionCall",
"src": "534:46:1"
},
"nodeType": "YulIf",
"src": "531:72:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "619:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "623:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "612:6:1"
},
"nodeType": "YulFunctionCall",
"src": "612:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "612:22:1"
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "650:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "658:2:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "643:6:1"
},
"nodeType": "YulFunctionCall",
"src": "643:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "643:18:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "709:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "718:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "721:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "711:6:1"
},
"nodeType": "YulFunctionCall",
"src": "711:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "711:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "684:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "692:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "680:3:1"
},
"nodeType": "YulFunctionCall",
"src": "680:15:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "697:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "676:3:1"
},
"nodeType": "YulFunctionCall",
"src": "676:26:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "704:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "673:2:1"
},
"nodeType": "YulFunctionCall",
"src": "673:35:1"
},
"nodeType": "YulIf",
"src": "670:55:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "751:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "759:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "747:3:1"
},
"nodeType": "YulFunctionCall",
"src": "747:17:1"
},
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "770:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "778:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "766:3:1"
},
"nodeType": "YulFunctionCall",
"src": "766:17:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "785:2:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "734:12:1"
},
"nodeType": "YulFunctionCall",
"src": "734:54:1"
},
"nodeType": "YulExpressionStatement",
"src": "734:54:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "812:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "820:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "808:3:1"
},
"nodeType": "YulFunctionCall",
"src": "808:15:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "825:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "804:3:1"
},
"nodeType": "YulFunctionCall",
"src": "804:26:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "797:6:1"
},
"nodeType": "YulFunctionCall",
"src": "797:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "797:37:1"
},
{
"nodeType": "YulAssignment",
"src": "843:15:1",
"value": {
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "852:6:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "843:5:1"
}
]
}
]
},
"name": "abi_decode_bytes",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "172:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "180:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "188:5:1",
"type": ""
}
],
"src": "146:718:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "965:292:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1011:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1020:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1023:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1013:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1013:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1013:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "986:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "995:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "982:3:1"
},
"nodeType": "YulFunctionCall",
"src": "982:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1007:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "978:3:1"
},
"nodeType": "YulFunctionCall",
"src": "978:32:1"
},
"nodeType": "YulIf",
"src": "975:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1036:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1063:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1050:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1050:23:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1040:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1116:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1125:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1128:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1118:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1118:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1118:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1088:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1096:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1085:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1085:30:1"
},
"nodeType": "YulIf",
"src": "1082:50:1"
},
{
"nodeType": "YulAssignment",
"src": "1141:59:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1172:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1183:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1168:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1168:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1192:7:1"
}
],
"functionName": {
"name": "abi_decode_bytes",
"nodeType": "YulIdentifier",
"src": "1151:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1151:49:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1141:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1209:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1236:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1247:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1232:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1232:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1219:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1219:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1209:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes_memory_ptrt_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "923:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "934:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "946:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "954:6:1",
"type": ""
}
],
"src": "869:388:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1363:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1373:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1385:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1396:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1381:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1381:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1373:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1415:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1426:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1408:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1408:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "1408:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1332:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1343:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1354:4:1",
"type": ""
}
],
"src": "1262:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1545:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1555:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1567:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1578:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1563:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1563:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1555:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1597:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1608:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1590:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1590:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "1590:25:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1514:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1525:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1536:4:1",
"type": ""
}
],
"src": "1444:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1673:109:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1683:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1705:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1692:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1692:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1683:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1760:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1769:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1772:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1762:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1762:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1762:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1734:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1745:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1752:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1741:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1741:16:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1731:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1731:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1724:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1724:35:1"
},
"nodeType": "YulIf",
"src": "1721:55:1"
}
]
},
"name": "abi_decode_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1652:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1663:5:1",
"type": ""
}
],
"src": "1626:156:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1872:165:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1918:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1927:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1930:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1920:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1920:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1920:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1893:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1902:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1889:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1889:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1914:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1885:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1885:32:1"
},
"nodeType": "YulIf",
"src": "1882:52:1"
},
{
"nodeType": "YulAssignment",
"src": "1943:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1970:9:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "1953:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1953:27:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1943:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1989:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2016:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2027:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2012:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2012:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1999:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1999:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1989:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint8t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1830:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1841:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1853:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1861:6:1",
"type": ""
}
],
"src": "1787:250:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2143:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2153:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2165:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2176:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2161:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2161:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2153:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2195:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2210:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2226:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2231:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "2222:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2222:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2235:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2218:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2206:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2206:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2188:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2188:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "2188:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2112:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2123:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2134:4:1",
"type": ""
}
],
"src": "2042:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2345:92:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2355:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2367:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2378:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2363:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2363:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2355:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2397:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2422:6:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2415:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2415:14:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2408:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2408:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2390:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2390:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "2390:41:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2314:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2325:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2336:4:1",
"type": ""
}
],
"src": "2250:187:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2623:243:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2633:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2645:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2656:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2641:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2641:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2633:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2676:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2691:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2699:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2687:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2687:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2669:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2669:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "2669:36:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2725:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2736:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2721:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2721:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2741:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2714:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2714:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "2714:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2768:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2779:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2764:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2764:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "2784:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2757:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2757:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "2757:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2811:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2822:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2807:18:1"
},
{
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "2831:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2847:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2852:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "2843:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2843:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2856:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2839:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2839:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2827:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2827:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2800:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2800:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "2800:60:1"
}
]
},
"name": "abi_encode_tuple_t_uint8_t_bytes32_t_bytes32_t_address__to_t_uint8_t_bytes32_t_bytes32_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2568:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "2579:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2587:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2595:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2603:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2614:4:1",
"type": ""
}
],
"src": "2442:424:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3016:451:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3063:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3072:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3075:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3065:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3065:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3065:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3037:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3046:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3033:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3033:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3058:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3029:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3029:33:1"
},
"nodeType": "YulIf",
"src": "3026:53:1"
},
{
"nodeType": "YulAssignment",
"src": "3088:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3115:9:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "3098:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3098:27:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3088:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3134:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3165:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3176:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3161:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3161:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3148:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3148:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3138:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3223:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3232:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3235:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3225:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3225:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3225:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3195:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3203:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3192:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3192:30:1"
},
"nodeType": "YulIf",
"src": "3189:50:1"
},
{
"nodeType": "YulAssignment",
"src": "3248:59:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3279:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3290:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3275:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3275:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3299:7:1"
}
],
"functionName": {
"name": "abi_decode_bytes",
"nodeType": "YulIdentifier",
"src": "3258:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3258:49:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3248:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3316:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3343:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3354:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3339:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3339:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3326:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3326:32:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3316:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3367:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3394:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3405:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3390:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3377:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3377:32:1"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "3367:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3418:43:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3445:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3456:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3441:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3441:19:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3428:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3428:33:1"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "3418:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint8t_bytes_memory_ptrt_bytes32t_bytes32t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2950:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2961:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2973:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2981:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2989:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "2997:6:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "3005:6:1",
"type": ""
}
],
"src": "2871:596:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3646:172:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3663:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3674:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3656:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3656:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "3656:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3697:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3708:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3693:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3693:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3713:2:1",
"type": "",
"value": "22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3686:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3686:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "3686:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3736:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3747:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3732:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3732:18:1"
},
{
"hexValue": "6d6f7665206d757374206d6174636820636f6d6d6974",
"kind": "string",
"nodeType": "YulLiteral",
"src": "3752:24:1",
"type": "",
"value": "move must match commit"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3725:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3725:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "3725:52:1"
},
{
"nodeType": "YulAssignment",
"src": "3786:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3798:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3809:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3794:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3794:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3786:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_37e485df2657cc220ee36672205ee7c3cc5e3c4c914afd66fbfda5c851598efb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3623:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3637:4:1",
"type": ""
}
],
"src": "3472:346:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3855:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3872:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3879:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3884:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "3875:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3875:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3865:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3865:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "3865:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3912:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3915:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3905:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3905:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3905:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3936:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3939:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3929:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3929:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3929:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "3823:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4129:165:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4146:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4157:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4139:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4139:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4139:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4180:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4191:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4176:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4176:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4196:2:1",
"type": "",
"value": "15"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4169:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4169:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4169:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4219:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4230:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4215:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4215:18:1"
},
{
"hexValue": "47616d652068617320656e6465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4235:17:1",
"type": "",
"value": "Game has ended."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4208:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4208:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "4208:45:1"
},
{
"nodeType": "YulAssignment",
"src": "4262:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4274:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4285:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4270:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4270:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4262:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_124aefa704cdd407a2403e74675d3926834fa5fabd6ae58107a7b9fd1906ef54__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4106:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4120:4:1",
"type": ""
}
],
"src": "3955:339:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4473:164:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4490:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4501:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4483:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4483:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4483:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4524:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4535:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4520:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4520:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4540:2:1",
"type": "",
"value": "14"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4513:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4513:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4513:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4563:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4574:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4559:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4559:18:1"
},
{
"hexValue": "4e6f7420796f7572207475726e2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4579:16:1",
"type": "",
"value": "Not your turn."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4552:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4552:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "4552:44:1"
},
{
"nodeType": "YulAssignment",
"src": "4605:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4617:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4628:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4613:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4613:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4605:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_69de070a7e9fd31aaf1220285a32a1aafa2aaabdd8a0a65c53d9faa020ec0d52__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4450:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4464:4:1",
"type": ""
}
],
"src": "4299:338:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4816:176:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4833:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4844:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4826:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4826:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4826:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4867:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4878:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4863:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4863:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4883:2:1",
"type": "",
"value": "26"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4856:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4856:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4856:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4906:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4917:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4902:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4902:18:1"
},
{
"hexValue": "496e636f72726563742073657175656e6365206e756d6265722e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4922:28:1",
"type": "",
"value": "Incorrect sequence number."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4895:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4895:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "4895:56:1"
},
{
"nodeType": "YulAssignment",
"src": "4960:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4972:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4983:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4968:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4968:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4960:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9d48a83ffa746d9c6a18a1ade1b13118041d408147adef9e381b25038ed56049__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4793:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4807:4:1",
"type": ""
}
],
"src": "4642:350:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5171:162:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5188:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5199:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5181:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5181:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "5181:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5222:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5233:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5218:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5238:2:1",
"type": "",
"value": "12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5211:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5211:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "5211:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5261:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5272:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5257:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5257:18:1"
},
{
"hexValue": "4d6f76657320636c6f736564",
"kind": "string",
"nodeType": "YulLiteral",
"src": "5277:14:1",
"type": "",
"value": "Moves closed"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5250:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5250:42:1"
},
"nodeType": "YulExpressionStatement",
"src": "5250:42:1"
},
{
"nodeType": "YulAssignment",
"src": "5301:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5313:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5324:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5309:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5309:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5301:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_16f77c79c1a2609f3237b9b5aa9f2956b73b6e67f18448e897441e51ed3de64d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5148:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5162:4:1",
"type": ""
}
],
"src": "4997:336:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5370:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5387:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5394:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5399:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5390:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5380:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5380:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "5380:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5427:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5430:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5420:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5420:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5420:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5451:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5454:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5444:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5444:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5444:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "5338:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5516:158:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5526:23:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5541:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5544:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5537:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5537:12:1"
},
"variables": [
{
"name": "x_1",
"nodeType": "YulTypedName",
"src": "5530:3:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "5558:23:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5573:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5576:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5569:12:1"
},
"variables": [
{
"name": "y_1",
"nodeType": "YulTypedName",
"src": "5562:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5617:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "5619:16:1"
},
"nodeType": "YulFunctionCall",
"src": "5619:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "5619:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x_1",
"nodeType": "YulIdentifier",
"src": "5596:3:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5605:4:1",
"type": "",
"value": "0xff"
},
{
"name": "y_1",
"nodeType": "YulIdentifier",
"src": "5611:3:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5601:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5601:14:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5593:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5593:23:1"
},
"nodeType": "YulIf",
"src": "5590:49:1"
},
{
"nodeType": "YulAssignment",
"src": "5648:20:1",
"value": {
"arguments": [
{
"name": "x_1",
"nodeType": "YulIdentifier",
"src": "5659:3:1"
},
{
"name": "y_1",
"nodeType": "YulIdentifier",
"src": "5664:3:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5655:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5655:13:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "5648:3:1"
}
]
}
]
},
"name": "checked_add_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "5499:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "5502:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "5508:3:1",
"type": ""
}
],
"src": "5470:204:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5832:199:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5842:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5854:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5865:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5850:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5850:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5842:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5884:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5899:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5915:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5920:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5911:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5911:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5924:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5907:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5907:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5895:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5895:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5877:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5877:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "5877:51:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5948:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5959:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5944:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5944:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5968:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5976:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5964:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5964:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5937:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5937:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "5937:45:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6002:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6013:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5998:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5998:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6018:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5991:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5991:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5991:34:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint8_t_bytes32__to_t_address_t_uint8_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5785:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5796:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5804:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5812:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5823:4:1",
"type": ""
}
],
"src": "5679:352:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6084:80:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6111:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "6113:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6113:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6113:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6100:1:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6107:1:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "6103:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6103:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6097:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6097:13:1"
},
"nodeType": "YulIf",
"src": "6094:39:1"
},
{
"nodeType": "YulAssignment",
"src": "6142:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6153:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6156:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6149:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6149:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "6142:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "6067:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "6070:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "6076:3:1",
"type": ""
}
],
"src": "6036:128:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6343:175:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6360:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6371:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6353:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6353:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "6353:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6394:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6405:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6390:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6410:2:1",
"type": "",
"value": "25"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6383:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6383:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "6383:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6433:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6444:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6429:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6429:18:1"
},
{
"hexValue": "47616d652068617320616c726561647920737461727465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6449:27:1",
"type": "",
"value": "Game has already started."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6422:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6422:55:1"
},
"nodeType": "YulExpressionStatement",
"src": "6422:55:1"
},
{
"nodeType": "YulAssignment",
"src": "6486:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6498:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6509:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6494:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6494:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6486:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_1d36627e1510ec4829841427bef49fae7a65d4f0374862a1def1ce927571f793__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6320:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6334:4:1",
"type": ""
}
],
"src": "6169:349:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6697:168:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6714:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6725:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6707:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6707:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "6707:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6748:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6759:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6744:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6744:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6764:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6737:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6737:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "6737:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6787:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6798:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6783:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6783:18:1"
},
{
"hexValue": "47616d65207761732063616e63656c65642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6803:20:1",
"type": "",
"value": "Game was canceled."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6776:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6776:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "6776:48:1"
},
{
"nodeType": "YulAssignment",
"src": "6833:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6845:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6856:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6841:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6841:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6833:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_3cbc588e4d1ecfdf64e47f1e54a082d2c336b8228cf0f55aadaa6495f242d77c__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6674:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6688:4:1",
"type": ""
}
],
"src": "6523:342:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7044:167:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7061:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7072:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7054:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7054:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7054:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7095:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7106:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7091:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7091:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7111:2:1",
"type": "",
"value": "17"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7084:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7084:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7084:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7134:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7145:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7130:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7130:18:1"
},
{
"hexValue": "57726f6e672062657420616d6f756e742e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7150:19:1",
"type": "",
"value": "Wrong bet amount."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7123:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7123:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "7123:47:1"
},
{
"nodeType": "YulAssignment",
"src": "7179:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7191:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7202:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7187:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7187:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7179:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_044fd81d418bf62b20af635198f63632277e3bfb22a134d0c53cfd4dd9d4974b__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7021:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7035:4:1",
"type": ""
}
],
"src": "6870:341:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7390:226:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7407:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7418:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7400:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7400:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7400:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7441:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7452:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7437:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7437:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7457:2:1",
"type": "",
"value": "36"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7430:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7430:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7430:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7480:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7491:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7476:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7476:18:1"
},
{
"hexValue": "53657175656e6365206e756d6265722063616e6e6f7420676f206261636b7761",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7496:34:1",
"type": "",
"value": "Sequence number cannot go backwa"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7469:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7469:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "7469:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7551:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7562:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7547:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7547:18:1"
},
{
"hexValue": "7264732e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7567:6:1",
"type": "",
"value": "rds."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7540:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7540:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "7540:34:1"
},
{
"nodeType": "YulAssignment",
"src": "7583:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7595:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7606:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7591:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7591:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7583:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_21914824ead4132f6cc39af30546822d90293b773e78a531d1c65d2f7dc26ddb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7367:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7381:4:1",
"type": ""
}
],
"src": "7216:400:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7820:251:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7837:3:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7850:2:1",
"type": "",
"value": "96"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7854:6:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "7846:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7846:15:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7867:26:1",
"type": "",
"value": "0xffffffffffffffffffffffff"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "7863:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7863:31:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7842:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7842:53:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7830:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7830:66:1"
},
"nodeType": "YulExpressionStatement",
"src": "7830:66:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7916:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7921:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7912:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7912:12:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7934:3:1",
"type": "",
"value": "248"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "7939:6:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "7930:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7930:16:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7952:3:1",
"type": "",
"value": "248"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7957:3:1",
"type": "",
"value": "255"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "7948:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7948:13:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7926:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7926:36:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7905:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7905:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "7905:58:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7983:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7988:2:1",
"type": "",
"value": "21"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7979:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7979:12:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "7993:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7972:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7972:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "7972:28:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8020:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8025:2:1",
"type": "",
"value": "53"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8016:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8016:12:1"
},
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "8030:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8009:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8009:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "8009:28:1"
},
{
"nodeType": "YulAssignment",
"src": "8046:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8057:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8062:2:1",
"type": "",
"value": "85"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8053:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8053:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8046:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_address_t_uint8_t_bytes32_t_bytes32__to_t_address_t_uint8_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7772:3:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "7777:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "7785:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "7793:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7801:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7812:3:1",
"type": ""
}
],
"src": "7621:450:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8250:179:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8267:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8278:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8260:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8260:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8260:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8301:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8312:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8297:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8297:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8317:2:1",
"type": "",
"value": "29"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8290:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8290:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8290:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8340:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8351:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8336:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8336:18:1"
},
{
"hexValue": "4f6e6c7920666972737420706c61796572206d61792063616e63656c2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8356:31:1",
"type": "",
"value": "Only first player may cancel."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8329:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8329:59:1"
},
"nodeType": "YulExpressionStatement",
"src": "8329:59:1"
},
{
"nodeType": "YulAssignment",
"src": "8397:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8409:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8420:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8405:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8405:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8397:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_51b79df1a40f6eade4f7c6efb6604398969116a4c002b822d353536582071c64__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8227:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8241:4:1",
"type": ""
}
],
"src": "8076:353:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8608:171:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8625:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8636:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8618:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8618:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8618:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8659:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8670:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8655:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8655:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8675:2:1",
"type": "",
"value": "21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8648:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8648:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8648:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8698:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8709:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8694:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8694:18:1"
},
{
"hexValue": "47616d6520686173206e6f7420737461727465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8714:23:1",
"type": "",
"value": "Game has not started."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8687:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8687:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "8687:51:1"
},
{
"nodeType": "YulAssignment",
"src": "8747:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8759:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8770:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8755:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8755:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8747:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_507ce349b9060e0e598da3a12cdc76c1c5e81243abd956e8ed976ed64eb674e8__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8585:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8599:4:1",
"type": ""
}
],
"src": "8434:345:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8958:165:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8975:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8986:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8968:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8968:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8968:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9009:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9020:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9005:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9005:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9025:2:1",
"type": "",
"value": "15"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8998:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8998:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8998:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9048:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9059:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9044:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9044:18:1"
},
{
"hexValue": "496e76616c696420706c617965722e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9064:17:1",
"type": "",
"value": "Invalid player."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9037:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9037:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "9037:45:1"
},
{
"nodeType": "YulAssignment",
"src": "9091:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9103:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9114:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9099:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9099:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9091:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9b3b3ec960f4f8902c361019561daa84849c1ba720f77a9bb2397ef8a8488f03__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8935:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8949:4:1",
"type": ""
}
],
"src": "8784:339:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9348:160:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9365:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9370:66:1",
"type": "",
"value": "0x19457468657265756d205369676e6564204d6573736167653a0a333200000000"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9358:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9358:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "9358:79:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9457:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9462:2:1",
"type": "",
"value": "28"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9453:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9453:12:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9467:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9446:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9446:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "9446:28:1"
},
{
"nodeType": "YulAssignment",
"src": "9483:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9494:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9499:2:1",
"type": "",
"value": "60"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9490:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9490:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9483:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9324:3:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9329:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9340:3:1",
"type": ""
}
],
"src": "9128:380:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9694:217:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9704:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9716:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9727:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9712:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9712:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9704:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9747:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9758:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9740:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9740:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "9740:25:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9785:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9796:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9781:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9781:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "9805:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9813:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "9801:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9801:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9774:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9774:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "9774:45:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9839:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9850:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9835:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9835:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "9855:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9828:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9828:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "9828:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9882:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9893:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9878:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9878:18:1"
},
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "9898:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9871:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9871:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "9871:34:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9639:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "9650:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "9658:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "9666:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9674:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9685:4:1",
"type": ""
}
],
"src": "9513:398:1"
}
]
},
"contents": "{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_bytes_memory_ptrt_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint8t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint8_t_bytes32_t_bytes32_t_address__to_t_uint8_t_bytes32_t_bytes32_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, and(value0, 0xff))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint8t_bytes_memory_ptrt_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_encode_tuple_t_stringliteral_37e485df2657cc220ee36672205ee7c3cc5e3c4c914afd66fbfda5c851598efb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"move must match commit\")\n tail := add(headStart, 96)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_124aefa704cdd407a2403e74675d3926834fa5fabd6ae58107a7b9fd1906ef54__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Game has ended.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_69de070a7e9fd31aaf1220285a32a1aafa2aaabdd8a0a65c53d9faa020ec0d52__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not your turn.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9d48a83ffa746d9c6a18a1ade1b13118041d408147adef9e381b25038ed56049__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Incorrect sequence number.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_16f77c79c1a2609f3237b9b5aa9f2956b73b6e67f18448e897441e51ed3de64d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 12)\n mstore(add(headStart, 64), \"Moves closed\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint8(x, y) -> sum\n {\n let x_1 := and(x, 0xff)\n let y_1 := and(y, 0xff)\n if gt(x_1, sub(0xff, y_1)) { panic_error_0x11() }\n sum := add(x_1, y_1)\n }\n function abi_encode_tuple_t_address_t_uint8_t_bytes32__to_t_address_t_uint8_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_1d36627e1510ec4829841427bef49fae7a65d4f0374862a1def1ce927571f793__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"Game has already started.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3cbc588e4d1ecfdf64e47f1e54a082d2c336b8228cf0f55aadaa6495f242d77c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Game was canceled.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_044fd81d418bf62b20af635198f63632277e3bfb22a134d0c53cfd4dd9d4974b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"Wrong bet amount.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_21914824ead4132f6cc39af30546822d90293b773e78a531d1c65d2f7dc26ddb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"Sequence number cannot go backwa\")\n mstore(add(headStart, 96), \"rds.\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_packed_t_address_t_uint8_t_bytes32_t_bytes32__to_t_address_t_uint8_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), and(shl(248, value1), shl(248, 255)))\n mstore(add(pos, 21), value2)\n mstore(add(pos, 53), value3)\n end := add(pos, 85)\n }\n function abi_encode_tuple_t_stringliteral_51b79df1a40f6eade4f7c6efb6604398969116a4c002b822d353536582071c64__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Only first player may cancel.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_507ce349b9060e0e598da3a12cdc76c1c5e81243abd956e8ed976ed64eb674e8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"Game has not started.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b3b3ec960f4f8902c361019561daa84849c1ba720f77a9bb2397ef8a8488f03__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Invalid player.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000)\n mstore(add(pos, 28), value0)\n end := add(pos, 60)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100e85760003560e01c8063b688a3631161008a578063cfe0a1de11610059578063cfe0a1de1461027f578063d24257c014610295578063d30895e4146102ab578063ea8a1af0146102cb57600080fd5b8063b688a363146101d1578063bdb337d1146101d9578063c19d93fb14610203578063c2bfc99f1461025f57600080fd5b80634daa2e11116100c65780634daa2e111461014e57806359a5f12d1461016e57806370dea79a146101a65780638e7ea5b2146101bc57600080fd5b80630ca5efd7146100ed5780630e76f9db1461010f5780631f6bb0a514610138575b600080fd5b3480156100f957600080fd5b5061010d610108366004610e7c565b6102e0565b005b34801561011b57600080fd5b5061012560085481565b6040519081526020015b60405180910390f35b34801561014457600080fd5b50610125600b5481565b34801561015a57600080fd5b5061010d610169366004610ed2565b6104ae565b34801561017a57600080fd5b5060015461018e906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b3480156101b257600080fd5b5061012560095481565b3480156101c857600080fd5b5061018e6106b4565b61010d610867565b3480156101e557600080fd5b506003546101f39060ff1681565b604051901515815260200161012f565b34801561020f57600080fd5b506004546005546006546007546102329360ff169291906001600160a01b031684565b6040805160ff90951685526020850193909352918301526001600160a01b0316606082015260800161012f565b34801561026b57600080fd5b5061010d61027a366004610efc565b6109db565b34801561028b57600080fd5b50610125600a5481565b3480156102a157600080fd5b5061012560025481565b3480156102b757600080fd5b5060005461018e906001600160a01b031681565b3480156102d757600080fd5b5061010d610b60565b6009544210156102ef57600080fd5b806102f957600080fd5b81516020830120811461034c5760405162461bcd60e51b81526020600482015260166024820152751b5bdd99481b5d5cdd081b585d18da0818dbdb5b5a5d60521b60448201526064015b60405180910390fd5b8160008151811061035f5761035f610f65565b6020910101516001600160f81b031916600360fc1b14806103a557508160008151811061038e5761038e610f65565b6020910101516001600160f81b031916603160f81b145b806103d55750816000815181106103be576103be610f65565b6020910101516001600160f81b031916601960f91b145b6103de57600080fd5b6000826000815181106103f3576103f3610f65565b6020910101516001600160f81b031916600360fc1b141561041c575063524f434b60e01b610467565b8260008151811061042f5761042f610f65565b6020910101516001600160f81b031916603160f81b14156104595750642820a822a960d91b610467565b506753434953534f525360c01b5b6000546001600160a01b031633141561049457600554821461048857600080fd5b600a5550506000600555565b60065482146104a257600080fd5b600b5550506000600655565b60035460ff16156104f35760405162461bcd60e51b815260206004820152600f60248201526e23b0b6b2903430b99032b73232b21760891b6044820152606401610343565b6007546001600160a01b0316331461053e5760405162461bcd60e51b815260206004820152600e60248201526d2737ba103cb7bab9103a3ab9371760911b6044820152606401610343565b60045460ff8381169116146105955760405162461bcd60e51b815260206004820152601a60248201527f496e636f72726563742073657175656e6365206e756d6265722e0000000000006044820152606401610343565b60095442106105d55760405162461bcd60e51b815260206004820152600c60248201526b135bdd995cc818db1bdcd95960a21b6044820152606401610343565b6000546001600160a01b03163314156105ff57600554156105f557600080fd5b6005819055610612565b6006541561060c57600080fd5b60068190555b61061b33610c4b565b600780546001600160a01b0319166001600160a01b0392909216919091179055600480546001919060009061065490849060ff16610f91565b82546101009290920a60ff81810219909316918316021790915560408051338152918516602083015281018390527f0b282c437c3c4bdfdc1b2c44d71b0632059bd9b31f8151d3fc4f8608f3f0d335915060600160405180910390a15050565b60006009544210156106c557600080fd5b600a546106d157600080fd5b600b546106dd57600080fd5b600063524f434b60e01b600a541480156107005750642820a822a960d91b600b54145b1561071757506001546001600160a01b0316610855565b642820a822a960d91b600a54148015610738575063524f434b60e01b600b54145b1561074f57506000546001600160a01b0316610855565b6753434953534f525360c01b600a541480156107745750642820a822a960d91b600b54145b1561078b57506000546001600160a01b0316610855565b642820a822a960d91b600a541480156107b057506753434953534f525360c01b600b54145b156107c757506001546001600160a01b0316610855565b63524f434b60e01b600a541480156107eb57506753434953534f525360c01b600b54145b1561080257506000546001600160a01b0316610855565b6753434953534f525360c01b600a54148015610826575063524f434b60e01b600b54145b1561083d57506001546001600160a01b0316610855565b60085461084a9042610fb6565b600955506000919050565b6003805460ff19166001179055919050565b6001546001600160a01b0316156108bc5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b60035460ff16156109045760405162461bcd60e51b815260206004820152601260248201527123b0b6b2903bb0b99031b0b731b2b632b21760711b6044820152606401610343565b60025434146109495760405162461bcd60e51b81526020600482015260116024820152702bb937b733903132ba1030b6b7bab73a1760791b6044820152606401610343565b600180546001600160a01b0319908116331790915560008054600780549093166001600160a01b0391909116179091556040517f762f260439bb4be3ef6e4dc2786e2e7bd187d3d80b79057d7a424fe98563e3359190a16008546109ad9042610fb6565b6009556040517f02bdd5174ce27e71542ca96bbba5c2c21920793759d94795d2f17eff6f7f2a0f90600090a1565b60045460ff9081169086161015610a405760405162461bcd60e51b8152602060048201526024808201527f53657175656e6365206e756d6265722063616e6e6f7420676f206261636b77616044820152633932399760e11b6064820152608401610343565b6040516bffffffffffffffffffffffff193060601b1660208201526001600160f81b031960f887901b1660348201526035810184905260558101839052600090610af090607501604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b9050610afb33610c4b565b6001600160a01b0316610b0e8287610d2b565b6001600160a01b031614610b2157600080fd5b6004805460ff881660ff1990911617905560058490556006839055600780546001600160a01b03191633179055610b5886836104ae565b505050505050565b6000546001600160a01b03163314610bba5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920666972737420706c61796572206d61792063616e63656c2e0000006044820152606401610343565b6001546001600160a01b031615610c0f5760405162461bcd60e51b815260206004820152601960248201527823b0b6b2903430b99030b63932b0b23c9039ba30b93a32b21760391b6044820152606401610343565b6003805460ff1916600117905560405133904780156108fc02916000818181858888f19350505050158015610c48573d6000803e3d6000fd5b50565b6001546000906001600160a01b0316610c9e5760405162461bcd60e51b815260206004820152601560248201527423b0b6b2903430b9903737ba1039ba30b93a32b21760591b6044820152606401610343565b6000546001600160a01b0383811691161415610cc55750506001546001600160a01b031690565b6001546001600160a01b0383811691161415610cec5750506000546001600160a01b031690565b60405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b210383630bcb2b91760891b6044820152606401610343565b919050565b600080600080610d3a85610daa565b6040805160008152602081018083528b905260ff8516918101919091526060810183905260808101829052929550909350915060019060a0016020604051602081039080840390855afa158015610d95573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60008060008351604114610dbd57600080fd5b5050506020810151604082015160609092015160001a92909190565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610e0057600080fd5b813567ffffffffffffffff80821115610e1b57610e1b610dd9565b604051601f8301601f19908116603f01168101908282118183101715610e4357610e43610dd9565b81604052838152866020858801011115610e5c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610e8f57600080fd5b823567ffffffffffffffff811115610ea657600080fd5b610eb285828601610def565b95602094909401359450505050565b803560ff81168114610d2657600080fd5b60008060408385031215610ee557600080fd5b610eee83610ec1565b946020939093013593505050565b600080600080600060a08688031215610f1457600080fd5b610f1d86610ec1565b9450602086013567ffffffffffffffff811115610f3957600080fd5b610f4588828901610def565b959895975050505060408401359360608101359360809091013592509050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168060ff03821115610fae57610fae610f7b565b019392505050565b60008219821115610fc957610fc9610f7b565b50019056fea26469706673582212203a98cab7e81787b88914251ef3fbd54993752b7abc358fb05244cf26a5f1584764736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB688A363 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xCFE0A1DE GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xCFE0A1DE EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xD24257C0 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0xD30895E4 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0xEA8A1AF0 EQ PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB688A363 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xBDB337D1 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xC19D93FB EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0xC2BFC99F EQ PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4DAA2E11 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x4DAA2E11 EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0x59A5F12D EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x70DEA79A EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x8E7EA5B2 EQ PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA5EFD7 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0xE76F9DB EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x1F6BB0A5 EQ PUSH2 0x138 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x108 CALLDATASIZE PUSH1 0x4 PUSH2 0xE7C JUMP JUMPDEST PUSH2 0x2E0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x169 CALLDATASIZE PUSH1 0x4 PUSH2 0xED2 JUMP JUMPDEST PUSH2 0x4AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x867 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x1F3 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH2 0x232 SWAP4 PUSH1 0xFF AND SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x12F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x27A CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x9DB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x125 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x18E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD KECCAK256 DUP2 EQ PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1B5BDD99481B5D5CDD081B585D18DA0818DBDB5B5A5D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x35F JUMPI PUSH2 0x35F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ DUP1 PUSH2 0x3A5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x38E JUMPI PUSH2 0x38E PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ JUMPDEST DUP1 PUSH2 0x3D5 JUMPI POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3BE JUMPI PUSH2 0x3BE PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x19 PUSH1 0xF9 SHL EQ JUMPDEST PUSH2 0x3DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3F3 JUMPI PUSH2 0x3F3 PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x3 PUSH1 0xFC SHL EQ ISZERO PUSH2 0x41C JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH2 0x467 JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x42F JUMPI PUSH2 0x42F PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x31 PUSH1 0xF8 SHL EQ ISZERO PUSH2 0x459 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH2 0x467 JUMP JUMPDEST POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x494 JUMPI PUSH1 0x5 SLOAD DUP3 EQ PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SSTORE POP POP PUSH1 0x0 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD DUP3 EQ PUSH2 0x4A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SSTORE POP POP PUSH1 0x0 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x23B0B6B2903430B99032B73232B217 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x2737BA103CB7BAB9103A3AB93717 PUSH1 0x91 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF DUP4 DUP2 AND SWAP2 AND EQ PUSH2 0x595 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E636F72726563742073657175656E6365206E756D6265722E000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x9 SLOAD TIMESTAMP LT PUSH2 0x5D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x135BDD995CC818DB1BDCD959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x5FF JUMPI PUSH1 0x5 SLOAD ISZERO PUSH2 0x5F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE PUSH2 0x612 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x60C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP2 SWAP1 SSTORE JUMPDEST PUSH2 0x61B CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x654 SWAP1 DUP5 SWAP1 PUSH1 0xFF AND PUSH2 0xF91 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP2 DUP6 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xB282C437C3C4BDFDC1B2C44D71B0632059BD9B31F8151D3FC4F8608F3F0D335 SWAP2 POP PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD TIMESTAMP LT ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x700 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x717 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x738 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x74F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x774 JUMPI POP PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x78B JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH5 0x2820A822A9 PUSH1 0xD9 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7B0 JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x7C7 JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x7EB JUMPI POP PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x802 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH8 0x53434953534F5253 PUSH1 0xC0 SHL PUSH1 0xA SLOAD EQ DUP1 ISZERO PUSH2 0x826 JUMPI POP PUSH4 0x524F434B PUSH1 0xE0 SHL PUSH1 0xB SLOAD EQ JUMPDEST ISZERO PUSH2 0x83D JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x855 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x84A SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x8BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x904 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x23B0B6B2903BB0B99031B0B731B2B632B217 PUSH1 0x71 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x2 SLOAD CALLVALUE EQ PUSH2 0x949 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x2BB937B733903132BA1030B6B7BAB73A17 PUSH1 0x79 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x762F260439BB4BE3EF6E4DC2786E2E7BD187D3D80B79057D7A424FE98563E335 SWAP2 SWAP1 LOG1 PUSH1 0x8 SLOAD PUSH2 0x9AD SWAP1 TIMESTAMP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x9 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2BDD5174CE27E71542CA96BBBA5C2C21920793759D94795D2F17EFF6F7F2A0F SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF SWAP1 DUP2 AND SWAP1 DUP7 AND LT ISZERO PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x53657175656E6365206E756D6265722063616E6E6F7420676F206261636B7761 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x39323997 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0xF8 DUP8 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x55 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xAF0 SWAP1 PUSH1 0x75 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3C DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x5C ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 POP PUSH2 0xAFB CALLER PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB0E DUP3 DUP8 PUSH2 0xD2B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF DUP9 AND PUSH1 0xFF NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x5 DUP5 SWAP1 SSTORE PUSH1 0x6 DUP4 SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0xB58 DUP7 DUP4 PUSH2 0x4AE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xBBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C7920666972737420706C61796572206D61792063616E63656C2E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xC0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x23B0B6B2903430B99030B63932B0B23C9039BA30B93A32B217 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD CALLER SWAP1 SELFBALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xC48 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x23B0B6B2903430B9903737BA1039BA30B93A32B217 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCC5 JUMPI POP POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xCEC JUMPI POP POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B210383630BCB2B917 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x343 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xD3A DUP6 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE DUP12 SWAP1 MSTORE PUSH1 0xFF DUP6 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0xDBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x60 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 BYTE SWAP3 SWAP1 SWAP2 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH2 0xE1B PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xE43 JUMPI PUSH2 0xE43 PUSH2 0xDD9 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xE5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEB2 DUP6 DUP3 DUP7 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xD26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEEE DUP4 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xF14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF1D DUP7 PUSH2 0xEC1 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF45 DUP9 DUP3 DUP10 ADD PUSH2 0xDEF JUMP JUMPDEST SWAP6 SWAP9 SWAP6 SWAP8 POP POP POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP4 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP1 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xFAE JUMPI PUSH2 0xFAE PUSH2 0xF7B JUMP JUMPDEST ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xFC9 JUMPI PUSH2 0xFC9 PUSH2 0xF7B JUMP JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE SWAP9 0xCA 0xB7 0xE8 OR DUP8 0xB8 DUP10 EQ 0x25 0x1E RETURN 0xFB 0xD5 0x49 SWAP4 PUSH22 0x2B7ABC358FB05244CF26A5F1584764736F6C63430008 MULMOD STOP CALLER ",
"sourceMap": "65:7283:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3294:1046;;;;;;;;;;-1:-1:-1;3294:1046:0;;;;;:::i;:::-;;:::i;:::-;;490:30;;;;;;;;;;;;;;;;;;;1408:25:1;;;1396:2;1381:18;490:30:0;;;;;;;;599:26;;;;;;;;;;;;;;;;1641:1019;;;;;;;;;;-1:-1:-1;1641:1019:0;;;;;:::i;:::-;;:::i;235:22::-;;;;;;;;;;-1:-1:-1;235:22:0;;;;-1:-1:-1;;;;;235:22:0;;;;;;-1:-1:-1;;;;;2206:32:1;;;2188:51;;2176:2;2161:18;235:22:0;2042:203:1;526:35:0;;;;;;;;;;;;;;;;4350:990;;;;;;;;;;;;;:::i;940:406::-;;;:::i;293:20::-;;;;;;;;;;-1:-1:-1;293:20:0;;;;;;;;;;;2415:14:1;;2408:22;2390:41;;2378:2;2363:18;293:20:0;2250:187:1;462:22:0;;;;;;;;;;-1:-1:-1;462:22:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;462:22:0;;;;;;;2699:4:1;2687:17;;;2669:36;;2736:2;2721:18;;2714:34;;;;2764:18;;;2757:34;-1:-1:-1;;;;;2827:32:1;2822:2;2807:18;;2800:60;2656:3;2641:19;462:22:0;2442:424:1;2666:618:0;;;;;;;;;;-1:-1:-1;2666:618:0;;;;;:::i;:::-;;:::i;567:26::-;;;;;;;;;;;;;;;;263:24;;;;;;;;;;;;;;;;207:22;;;;;;;;;;-1:-1:-1;207:22:0;;;;-1:-1:-1;;;;;207:22:0;;;1352:261;;;;;;;;;;;;;:::i;3294:1046::-;3395:7;;3376:15;:26;;3368:35;;;;;;3535:21;3527:30;;;;;;3586:16;;;;;;3575:27;;3567:62;;;;-1:-1:-1;;;3567:62:0;;3674:2:1;3567:62:0;;;3656:21:1;3713:2;3693:18;;;3686:30;-1:-1:-1;;;3732:18:1;;;3725:52;3794:18;;3567:62:0;;;;;;;;;3689:5;3695:1;3689:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3689:8:0;-1:-1:-1;;;3689:15:0;;:34;;;3708:5;3714:1;3708:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3708:8:0;-1:-1:-1;;;3708:15:0;3689:34;:53;;;;3727:5;3733:1;3727:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3727:8:0;-1:-1:-1;;;3727:15:0;3689:53;3681:62;;;;;;3762:20;3796:5;3802:1;3796:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3796:8:0;-1:-1:-1;;;3796:15:0;3792:191;;;-1:-1:-1;;;;3792:191:0;;;3867:5;3873:1;3867:8;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;3867:8:0;-1:-1:-1;;;3867:15:0;3863:120;;;-1:-1:-1;;;;3863:120:0;;;-1:-1:-1;;;;3863:120:0;4019:7;;-1:-1:-1;;;;;4019:7:0;4005:10;:21;4001:333;;;4061:19;;4050:30;;4042:39;;;;;;4095:11;:26;-1:-1:-1;;4165:1:0;4135:19;:32;3294:1046::o;4001:333::-;4217:19;;4206:30;;4198:39;;;;;;4251:11;:26;-1:-1:-1;;4321:1:0;4291:19;:32;3294:1046::o;1641:1019::-;1708:8;;;;1707:9;1699:37;;;;-1:-1:-1;;;1699:37:0;;4157:2:1;1699:37:0;;;4139:21:1;4196:2;4176:18;;;4169:30;-1:-1:-1;;;4215:18:1;;;4208:45;4270:18;;1699:37:0;3955:339:1;1699:37:0;1768:15;;-1:-1:-1;;;;;1768:15:0;1754:10;:29;1746:56;;;;-1:-1:-1;;;1746:56:0;;4501:2:1;1746:56:0;;;4483:21:1;4540:2;4520:18;;;4513:30;-1:-1:-1;;;4559:18:1;;;4552:44;4613:18;;1746:56:0;4299:338:1;1746:56:0;1820:5;:9;:16;;;;:9;;:16;1812:55;;;;-1:-1:-1;;;1812:55:0;;4844:2:1;1812:55:0;;;4826:21:1;4883:2;4863:18;;;4856:30;4922:28;4902:18;;;4895:56;4968:18;;1812:55:0;4642:350:1;1812:55:0;1903:7;;1885:15;:25;1877:50;;;;-1:-1:-1;;;1877:50:0;;5199:2:1;1877:50:0;;;5181:21:1;5238:2;5218:18;;;5211:30;-1:-1:-1;;;5257:18:1;;;5250:42;5309:18;;1877:50:0;4997:336:1;1877:50:0;2051:7;;-1:-1:-1;;;;;2051:7:0;2037:10;:21;2033:251;;;2082:19;;:33;2074:42;;;;;;2130:19;:28;;;2033:251;;;2197:19;;:33;2189:42;;;;;;2245:19;:28;;;2033:251;2343:22;2354:10;2343;:22::i;:::-;2325:15;:40;;-1:-1:-1;;;;;;2325:40:0;-1:-1:-1;;;;;2325:40:0;;;;;;;;;;:5;2375:14;;-1:-1:-1;;2325:5:0;-1:-1:-1;;2375:14:0;;-1:-1:-1;;2375:14:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2405:33;;;2414:10;5877:51:1;;5964:17;;;5959:2;5944:18;;5937:45;5998:18;;5991:34;;;2405:33:0;;-1:-1:-1;5865:2:1;5850:18;2405:33:0;;;;;;;1641:1019;;:::o;4350:990::-;4388:7;4434;;4415:15;:26;;4407:35;;;;;;4460:11;;4452:34;;;;;;4504:11;;4496:34;;;;;;4545:14;-1:-1:-1;;;4573:11:0;;:19;:43;;;;;-1:-1:-1;;;4596:11:0;;:20;4573:43;4569:708;;;-1:-1:-1;4641:7:0;;-1:-1:-1;;;;;4641:7:0;4569:708;;;-1:-1:-1;;;4669:11:0;;:20;:43;;;;;-1:-1:-1;;;4693:11:0;;:19;4669:43;4665:612;;;-1:-1:-1;4737:7:0;;-1:-1:-1;;;;;4737:7:0;4665:612;;;-1:-1:-1;;;4765:11:0;;:23;:47;;;;;-1:-1:-1;;;4792:11:0;;:20;4765:47;4761:516;;;-1:-1:-1;4837:7:0;;-1:-1:-1;;;;;4837:7:0;4761:516;;;-1:-1:-1;;;4865:11:0;;:20;:47;;;;;-1:-1:-1;;;4889:11:0;;:23;4865:47;4861:416;;;-1:-1:-1;4937:7:0;;-1:-1:-1;;;;;4937:7:0;4861:416;;;-1:-1:-1;;;4965:11:0;;:19;:46;;;;;-1:-1:-1;;;4988:11:0;;:23;4965:46;4961:316;;;-1:-1:-1;5036:7:0;;-1:-1:-1;;;;;5036:7:0;4961:316;;;-1:-1:-1;;;5064:11:0;;:23;:46;;;;;-1:-1:-1;;;5091:11:0;;:19;5064:46;5060:217;;;-1:-1:-1;5135:7:0;;-1:-1:-1;;;;;5135:7:0;5060:217;;;5220:15;;5202:33;;:15;:33;:::i;:::-;5192:7;:43;-1:-1:-1;5264:1:0;;4350:990;-1:-1:-1;4350:990:0:o;5060:217::-;5295:8;:15;;-1:-1:-1;;5295:15:0;5306:4;5295:15;;;5327:6;4350:990;-1:-1:-1;4350:990:0:o;940:406::-;989:7;;-1:-1:-1;;;;;989:7:0;:21;981:59;;;;-1:-1:-1;;;981:59:0;;6371:2:1;981:59:0;;;6353:21:1;6410:2;6390:18;;;6383:30;-1:-1:-1;;;6429:18:1;;;6422:55;6494:18;;981:59:0;6169:349:1;981:59:0;1059:8;;;;1058:9;1050:40;;;;-1:-1:-1;;;1050:40:0;;6725:2:1;1050:40:0;;;6707:21:1;6764:2;6744:18;;;6737:30;-1:-1:-1;;;6783:18:1;;;6776:48;6841:18;;1050:40:0;6523:342:1;1050:40:0;1121:9;;1108;:22;1100:52;;;;-1:-1:-1;;;1100:52:0;;7072:2:1;1100:52:0;;;7054:21:1;7111:2;7091:18;;;7084:30;-1:-1:-1;;;7130:18:1;;;7123:47;7187:18;;1100:52:0;6870:341:1;1100:52:0;1163:7;:20;;-1:-1:-1;;;;;;1163:20:0;;;1173:10;1163:20;;;;:7;1211;;1193:15;:25;;;;;-1:-1:-1;;;;;1211:7:0;;;;1193:25;;;;1233:13;;;;1163:7;1233:13;1293:15;;1275:33;;:15;:33;:::i;:::-;1265:7;:43;1323:16;;;;;;;940:406::o;2666:618::-;2812:5;:9;;;;;2805:16;;;;;2797:65;;;;-1:-1:-1;;;2797:65:0;;7418:2:1;2797:65:0;;;7400:21:1;7457:2;7437:18;;;7430:30;7496:34;7476:18;;;7469:62;-1:-1:-1;;;7547:18:1;;;7540:34;7591:19;;2797:65:0;7216:400:1;2797:65:0;2910:66;;-1:-1:-1;;2935:4:0;7850:2:1;7846:15;7842:53;2910:66:0;;;7830::1;-1:-1:-1;;;;;;7952:3:1;7930:16;;;7926:36;7912:12;;;7905:58;7979:12;;;7972:28;;;8016:12;;;8009:28;;;2873:15:0;;2891:87;;8053:12:1;;2910:66:0;;;;;;;;;;;;2900:77;;;;;;7280:58;;9370:66:1;7280:58:0;;;9358:79:1;9453:12;;;9446:28;;;7244:7:0;;9490:12:1;;7280:58:0;;;;;;;;;;;;7270:69;;;;;;7263:76;;7189:157;;;;2891:87;2873:105;;3027:22;3038:10;3027;:22::i;:::-;-1:-1:-1;;;;;2996:53:0;:27;3010:7;3019:3;2996:13;:27::i;:::-;-1:-1:-1;;;;;2996:53:0;;2988:62;;;;;;3069:5;:15;;;;;-1:-1:-1;;3069:15:0;;;;;;3094:19;:35;;;3139:19;:35;;;3184:15;:28;;-1:-1:-1;;;;;;3184:28:0;3202:10;3184:28;;;3260:17;3081:3;3270:6;3260:4;:17::i;:::-;2787:497;2666:618;;;;;:::o;1352:261::-;1409:7;;-1:-1:-1;;;;;1409:7:0;1395:10;:21;1387:63;;;;-1:-1:-1;;;1387:63:0;;8278:2:1;1387:63:0;;;8260:21:1;8317:2;8297:18;;;8290:30;8356:31;8336:18;;;8329:59;8405:18;;1387:63:0;8076:353:1;1387:63:0;1468:7;;-1:-1:-1;;;;;1468:7:0;:21;1460:59;;;;-1:-1:-1;;;1460:59:0;;6371:2:1;1460:59:0;;;6353:21:1;6410:2;6390:18;;;6383:30;-1:-1:-1;;;6429:18:1;;;6422:55;6494:18;;1460:59:0;6169:349:1;1460:59:0;1530:8;:15;;-1:-1:-1;;1530:15:0;1541:4;1530:15;;;1555:51;;1563:10;;1584:21;1555:51;;;;;1530:8;1555:51;1530:8;1555:51;1584:21;1563:10;1555:51;;;;;;;;;;;;;;;;;;;;;1352:261::o;5346:336::-;5432:7;;5405;;-1:-1:-1;;;;;5432:7:0;5424:55;;;;-1:-1:-1;;;5424:55:0;;8636:2:1;5424:55:0;;;8618:21:1;8675:2;8655:18;;;8648:30;-1:-1:-1;;;8694:18:1;;;8687:51;8755:18;;5424:55:0;8434:345:1;5424:55:0;5504:7;;-1:-1:-1;;;;;5494:17:0;;;5504:7;;5494:17;5490:186;;;-1:-1:-1;;5534:7:0;;-1:-1:-1;;;;;5534:7:0;;5346:336::o;5490:186::-;5572:7;;-1:-1:-1;;;;;5562:17:0;;;5572:7;;5562:17;5558:118;;;-1:-1:-1;;5602:7:0;;-1:-1:-1;;;;;5602:7:0;;5346:336::o;5558:118::-;5640:25;;-1:-1:-1;;;5640:25:0;;8986:2:1;5640:25:0;;;8968:21:1;9025:2;9005:18;;;8998:30;-1:-1:-1;;;9044:18:1;;;9037:45;9099:18;;5640:25:0;8784:339:1;5558:118:0;5346:336;;;:::o;6851:267::-;6956:7;6979;6996:9;7015;7047:19;7062:3;7047:14;:19::i;:::-;7084:27;;;;;;;;;;;;9740:25:1;;;9813:4;9801:17;;9781:18;;;9774:45;;;;9835:18;;;9828:34;;;9878:18;;;9871:34;;;7035:31:0;;-1:-1:-1;7035:31:0;;-1:-1:-1;7035:31:0;-1:-1:-1;7084:27:0;;9712:19:1;;7084:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7084:27:0;;-1:-1:-1;;7084:27:0;;;6851:267;-1:-1:-1;;;;;;;6851:267:0:o;6306:539::-;6395:5;6402:7;6411;6442:3;:10;6456:2;6442:16;6434:25;;;;;;-1:-1:-1;;;6624:2:0;6615:12;;6609:19;6692:2;6683:12;;6677:19;6797:2;6788:12;;;6782:19;6470:9;6774:28;;6609:19;;6677;6306:539::o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:718;188:5;241:3;234:4;226:6;222:17;218:27;208:55;;259:1;256;249:12;208:55;295:6;282:20;321:18;358:2;354;351:10;348:36;;;364:18;;:::i;:::-;439:2;433:9;407:2;493:13;;-1:-1:-1;;489:22:1;;;513:2;485:31;481:40;469:53;;;537:18;;;557:22;;;534:46;531:72;;;583:18;;:::i;:::-;623:10;619:2;612:22;658:2;650:6;643:18;704:3;697:4;692:2;684:6;680:15;676:26;673:35;670:55;;;721:1;718;711:12;670:55;785:2;778:4;770:6;766:17;759:4;751:6;747:17;734:54;832:1;825:4;820:2;812:6;808:15;804:26;797:37;852:6;843:15;;;;;;146:718;;;;:::o;869:388::-;946:6;954;1007:2;995:9;986:7;982:23;978:32;975:52;;;1023:1;1020;1013:12;975:52;1063:9;1050:23;1096:18;1088:6;1085:30;1082:50;;;1128:1;1125;1118:12;1082:50;1151:49;1192:7;1183:6;1172:9;1168:22;1151:49;:::i;:::-;1141:59;1247:2;1232:18;;;;1219:32;;-1:-1:-1;;;;869:388:1:o;1626:156::-;1692:20;;1752:4;1741:16;;1731:27;;1721:55;;1772:1;1769;1762:12;1787:250;1853:6;1861;1914:2;1902:9;1893:7;1889:23;1885:32;1882:52;;;1930:1;1927;1920:12;1882:52;1953:27;1970:9;1953:27;:::i;:::-;1943:37;2027:2;2012:18;;;;1999:32;;-1:-1:-1;;;1787:250:1:o;2871:596::-;2973:6;2981;2989;2997;3005;3058:3;3046:9;3037:7;3033:23;3029:33;3026:53;;;3075:1;3072;3065:12;3026:53;3098:27;3115:9;3098:27;:::i;:::-;3088:37;;3176:2;3165:9;3161:18;3148:32;3203:18;3195:6;3192:30;3189:50;;;3235:1;3232;3225:12;3189:50;3258:49;3299:7;3290:6;3279:9;3275:22;3258:49;:::i;:::-;2871:596;;3248:59;;-1:-1:-1;;;;3354:2:1;3339:18;;3326:32;;3405:2;3390:18;;3377:32;;3456:3;3441:19;;;3428:33;;-1:-1:-1;2871:596:1;-1:-1:-1;2871:596:1:o;3823:127::-;3884:10;3879:3;3875:20;3872:1;3865:31;3915:4;3912:1;3905:15;3939:4;3936:1;3929:15;5338:127;5399:10;5394:3;5390:20;5387:1;5380:31;5430:4;5427:1;5420:15;5454:4;5451:1;5444:15;5470:204;5508:3;5544:4;5541:1;5537:12;5576:4;5573:1;5569:12;5611:3;5605:4;5601:14;5596:3;5593:23;5590:49;;;5619:18;;:::i;:::-;5655:13;;5470:204;-1:-1:-1;;;5470:204:1:o;6036:128::-;6076:3;6107:1;6103:6;6100:1;6097:13;6094:39;;;6113:18;;:::i;:::-;-1:-1:-1;6149:9:1;;6036:128::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "820000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"betAmount()": "2328",
"cancel()": "infinite",
"gameOver()": "2355",
"getWinner()": "58656",
"join()": "82938",
"move(uint8,bytes32)": "96233",
"moveFromState(uint8,bytes,bytes32,bytes32,bytes32)": "infinite",
"player1()": "2403",
"player1move()": "2306",
"player2()": "2382",
"player2move()": "2352",
"revealMove(bytes,bytes32)": "infinite",
"state()": "8791",
"timeout()": "2351",
"timeoutInterval()": "2330"
},
"internal": {
"opponentOf(address)": "infinite",
"prefixed(bytes32)": "infinite",
"recoverSigner(bytes32,bytes memory)": "infinite",
"splitSignature(bytes memory)": "infinite"
}
},
"methodIdentifiers": {
"betAmount()": "d24257c0",
"cancel()": "ea8a1af0",
"gameOver()": "bdb337d1",
"getWinner()": "8e7ea5b2",
"join()": "b688a363",
"move(uint8,bytes32)": "4daa2e11",
"moveFromState(uint8,bytes,bytes32,bytes32,bytes32)": "c2bfc99f",
"player1()": "d30895e4",
"player1move()": "cfe0a1de",
"player2()": "59a5f12d",
"player2move()": "1f6bb0a5",
"revealMove(bytes,bytes32)": "0ca5efd7",
"state()": "c19d93fb",
"timeout()": "70dea79a",
"timeoutInterval()": "0e76f9db"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_timeoutInterval",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [],
"name": "GameStarted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "player",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "MoveMade",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "TimeoutStarted",
"type": "event"
},
{
"inputs": [],
"name": "betAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cancel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "gameOver",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getWinner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "join",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "move",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "sig",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "player1commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "player2commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "moveFromState",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "player1",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player1move",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player2",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player2move",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "_move",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "_commit",
"type": "bytes32"
}
],
"name": "revealMove",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "state",
"outputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "player1commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "player2commit",
"type": "bytes32"
},
{
"internalType": "address",
"name": "whoseTurn",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeout",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeoutInterval",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.9+commit.e5eed63a"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_timeoutInterval",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [],
"name": "GameStarted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "player",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "MoveMade",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "TimeoutStarted",
"type": "event"
},
{
"inputs": [],
"name": "betAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cancel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "gameOver",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getWinner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "join",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "move",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "sig",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "player1commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "player2commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "choice",
"type": "bytes32"
}
],
"name": "moveFromState",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "player1",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player1move",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player2",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "player2move",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "_move",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "_commit",
"type": "bytes32"
}
],
"name": "revealMove",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "state",
"outputs": [
{
"internalType": "uint8",
"name": "seq",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "player1commit",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "player2commit",
"type": "bytes32"
},
{
"internalType": "address",
"name": "whoseTurn",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeout",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeoutInterval",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/RPS.sol": "ROC"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/RPS.sol": {
"keccak256": "0xcf6e689b76da7fab1938504a67f3e135fb303fecf2502904fcf6e17c58c6c703",
"license": "MIT",
"urls": [
"bzz-raw://98949819501a1966f820d09d9e85d7671880398789743131cc27c3c2f6c136c0",
"dweb:/ipfs/QmYMkLyG9KAY4jZva1rYpdijBjZES6pZaupCozz3FEiDiJ"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.9.0;
contract RPSGame {
bytes32 constant ROCK = "ROCK";
bytes32 constant PAPER = "PAPER";
bytes32 constant SCISSORS = "SCISSORS";
address public player1;
address public player2;
address public gameWinner;
uint256 public betAmount;
bool public gameOver;
struct GameState {
uint8 seq;
bytes32 player1commit;
bytes32 player2commit;
address whoseTurn;
}
GameState public state;
uint256 public timeoutInterval;
uint256 public timeout = 2**256 - 1;
bytes32 public player1move;
bytes32 public player2move;
event TimeoutStarted();
event GameStarted();
event GameFinished(address player, string move1, string move2);
event MoveMade(address player, uint8 seq, bytes32 choice);
// Setup methods
constructor(uint256 _timeoutInterval) payable {
player1 = msg.sender;
betAmount = msg.value;
timeoutInterval = _timeoutInterval;
}
function join() public payable {
require(player2 == address(0), "Game has already started.");
require(player1 != msg.sender, "The game owner cannot join their own game");
require(!gameOver, "Game was canceled.");
require(msg.value == betAmount, "Wrong bet amount.");
player2 = msg.sender;
state.whoseTurn = player1;
emit GameStarted();
timeout = block.timestamp + timeoutInterval;
emit TimeoutStarted();
}
function cancel() public {
require(msg.sender == player1, "Only first player may cancel.");
require(player2 == address(0), "Game has already started.");
gameOver = true;
payable(msg.sender).transfer(address(this).balance);
}
// Play methods
function move(uint8 seq, bytes32 choice) public {
require(!gameOver, "Game has ended.");
require(msg.sender == state.whoseTurn, "Not your turn.");
require(state.seq == seq, "Incorrect sequence number.");
require(block.timestamp < timeout, "Moves closed"); // Only allow commits during committing period
// make sure player hasnt played before
if (msg.sender == player1) {
require(state.player1commit == bytes32(0), "you have already moved!");
state.player1commit = choice;
} else {
require(state.player2commit == bytes32(0), "you have already moved!");
state.player2commit = choice;
}
// change turn
state.whoseTurn = opponentOf(msg.sender);
state.seq += 1;
emit MoveMade(msg.sender, seq, choice);
}
function moveFromState(uint8 seq, bytes memory sig, bytes32 player1commit, bytes32 player2commit, bytes32 choice) public {
require(seq >= state.seq, "Sequence number cannot go backwards.");
bytes32 message = prefixed(keccak256(abi.encodePacked(address(this), seq, player1commit, player2commit)));
require(recoverSigner(message, sig) == opponentOf(msg.sender), "invalid signed message");
state.seq = seq;
state.player1commit = player1commit;
state.player2commit = player2commit;
state.whoseTurn = msg.sender;
// now make the move
move(seq, choice);
}
function revealMove(string memory _move, bytes32 _commit) public {
if (block.timestamp < timeout) {
require(state.player1commit != bytes32(0) && state.player2commit != bytes32(0), "both players haven't moved yet"); // Only reveal votes after committing period is over
timeout = block.timestamp;
}
// FIRST: Verify the vote & commit is valid
bytes memory bytesMove = bytes(_move);
require(_commit != bytes32(0), "must commit a move first");
require(_commit == keccak256(bytesMove), "move must match commit");
// NEXT: Count the move!
require(bytesMove[0] == '0' || bytesMove[0] == '1' || bytesMove[0] == '2', "invalid move");
bytes32 revealedMove;
if (bytesMove[0] == '0') {
revealedMove = ROCK;
} else if (bytesMove[0] == '1') {
revealedMove = PAPER;
} else {
revealedMove = SCISSORS;
}
if (msg.sender == player1) {
require(_commit == state.player1commit, "commit doesn't match");
player1move = revealedMove;
state.player1commit = bytes32(0);
} else {
require(_commit == state.player2commit, "commit doesn't match");
player2move = revealedMove;
state.player2commit = bytes32(0);
}
}
function getWinner () public returns (address) {
require(block.timestamp >= timeout, "the move window is still open");
require(player1move != bytes32(0), "player1 must reveal move");
require(player2move != bytes32(0), "player2 must reveal move");
address winner;
if (player1move == ROCK && player2move == PAPER) {
winner = player2;
} else if (player1move == PAPER && player2move == ROCK) {
winner = player1;
} else if (player1move == SCISSORS && player2move == PAPER) {
winner = player1;
} else if (player1move == PAPER && player2move == SCISSORS) {
winner = player2;
} else if (player1move == ROCK && player2move == SCISSORS) {
winner = player1;
} else if (player1move == SCISSORS && player2move == ROCK) {
winner = player2;
} else {
// tie
timeout = block.timestamp + timeoutInterval;
player1move = bytes32(0);
player1move = bytes32(0);
return address(0);
}
string memory player1res = string(abi.encodePacked(player1move));
string memory player2res = string(abi.encodePacked(player2move));
emit GameFinished(winner, player1res, player2res);
gameOver = true;
gameWinner = winner;
payable(winner).transfer(address(this).balance);
return winner;
}
function opponentOf(address player) internal view returns (address) {
require(player2 != address(0), "Game has not started.");
if (player == player1) {
return player2;
} else if (player == player2) {
return player1;
} else {
revert("Invalid player.");
}
}
// Signature methods
function splitSignature(bytes memory sig)
internal
pure
returns (uint8, bytes32, bytes32)
{
require(sig.length == 65);
bytes32 r;
bytes32 s;
uint8 v;
assembly {
// first 32 bytes, after the length prefix
r := mload(add(sig, 32))
// second 32 bytes
s := mload(add(sig, 64))
// final byte (first byte of the next 32 bytes)
v := byte(0, mload(add(sig, 96)))
}
return (v, r, s);
}
function recoverSigner(bytes32 message, bytes memory sig)
internal
pure
returns (address)
{
uint8 v;
bytes32 r;
bytes32 s;
(v, r, s) = splitSignature(sig);
return ecrecover(message, v, r, s);
}
// Builds a prefixed hash to mimic the behavior of eth_sign.
function prefixed(bytes32 hash) internal pure returns (bytes32) {
return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
}
}
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.9.0;
contract CommitRevealElection {
// The two choices for your vote
string public choice1;
string public choice2;
// Information about the current status of the vote
uint public votesForChoice1;
uint public votesForChoice2;
uint public commitPhaseEndTime;
uint public numberOfVotesCast = 0;
// The actual votes and vote commits
bytes32[] public voteCommits;
mapping(bytes32 => string) voteStatuses; // Either `Committed` or `Revealed`
// Events used to log what's going on in the contract
event logString(string);
event newVoteCommit(string, bytes32);
event voteWinner(string, string);
// Constructor used to set parameters for the this specific vote
function CommitRevealElection(uint _commitPhaseLengthInSeconds,
string _choice1,
string _choice2) {
if (_commitPhaseLengthInSeconds < 20) {
throw;
}
commitPhaseEndTime = now + _commitPhaseLengthInSeconds * 1 seconds;
choice1 = _choice1;
choice2 = _choice2;
}
function commitVote(bytes32 _voteCommit) {
if (now > commitPhaseEndTime) throw; // Only allow commits during committing period
// Check if this commit has been used before
bytes memory bytesVoteCommit = bytes(voteStatuses[_voteCommit]);
if (bytesVoteCommit.length != 0) throw;
// We are still in the committing period & the commit is new so add it
voteCommits.push(_voteCommit);
voteStatuses[_voteCommit] = "Committed";
numberOfVotesCast ++;
newVoteCommit("Vote committed with the following hash:", _voteCommit);
}
function revealVote(string _vote, bytes32 _voteCommit) {
if (now < commitPhaseEndTime) throw; // Only reveal votes after committing period is over
// FIRST: Verify the vote & commit is valid
bytes memory bytesVoteStatus = bytes(voteStatuses[_voteCommit]);
if (bytesVoteStatus.length == 0) {
logString('A vote with this voteCommit was not cast');
} else if (bytesVoteStatus[0] != 'C') {
logString('This vote was already cast');
return;
}
if (_voteCommit != keccak256(_vote)) {
logString('Vote hash does not match vote commit');
return;
}
// NEXT: Count the vote!
bytes memory bytesVote = bytes(_vote);
if (bytesVote[0] == '1') {
votesForChoice1 = votesForChoice1 + 1;
logString('Vote for choice 1 counted.');
} else if (bytesVote[0] == '2') {
votesForChoice2 = votesForChoice2 + 1;
logString('Vote for choice 2 counted.');
} else {
logString('Vote could not be read! Votes must start with the ASCII character `1` or `2`');
}
voteStatuses[_voteCommit] = "Revealed";
}
function getWinner () constant returns(string) {
// Only get winner after all vote commits are in
if (now < commitPhaseEndTime) throw;
// Make sure all the votes have been counted
if (votesForChoice1 + votesForChoice2 != voteCommits.length) throw;
if (votesForChoice1 > votesForChoice2) {
voteWinner("And the winner of the vote is:", choice1);
return choice1;
} else if (votesForChoice2 > votesForChoice1) {
voteWinner("And the winner of the vote is:", choice2);
return choice2;
} else if (votesForChoice1 == votesForChoice2) {
voteWinner("The vote ended in a tie!", "");
return "It was a tie!";
}
}
}
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

This file has been truncated, but you can view the full file.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_85": {
"entryPoint": null,
"id": 85,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 162,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 185,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 235,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 245,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 250,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1048:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "70:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "80:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "95:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "89:5:1"
},
"nodeType": "YulFunctionCall",
"src": "89:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "80:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "138:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "111:26:1"
},
"nodeType": "YulFunctionCall",
"src": "111:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "111:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "48:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "56:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "64:5:1",
"type": ""
}
],
"src": "7:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "233:274:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "279:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "281:77:1"
},
"nodeType": "YulFunctionCall",
"src": "281:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "281:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "254:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "263:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "250:3:1"
},
"nodeType": "YulFunctionCall",
"src": "250:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "275:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "246:3:1"
},
"nodeType": "YulFunctionCall",
"src": "246:32:1"
},
"nodeType": "YulIf",
"src": "243:119:1"
},
{
"nodeType": "YulBlock",
"src": "372:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "387:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "401:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "391:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "416:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "462:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "473:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "458:3:1"
},
"nodeType": "YulFunctionCall",
"src": "458:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "482:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "426:31:1"
},
"nodeType": "YulFunctionCall",
"src": "426:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "416:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "203:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "214:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "226:6:1",
"type": ""
}
],
"src": "156:351:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "553:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "563:19:1",
"v
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment