Commit a78776a1 authored by Adrian Sutton's avatar Adrian Sutton Committed by GitHub

Merge pull request #8355 from ethereum-optimism/cl/ctb/genesis-block-pub

feat(ctb): Make `GENESIS_BLOCK_NUMBER` public
parents 60ecc85d 48dec18b
......@@ -30,8 +30,8 @@ var (
// OutputBisectionGameMetaData contains all meta data concerning the OutputBisectionGame contract.
var OutputBisectionGameMetaData = &bind.MetaData{
ABI: "[{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_genesisBlockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_maxGameDepth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_splitDepth\",\"type\":\"uint256\"},{\"internalType\":\"Duration\",\"name\":\"_gameDuration\",\"type\":\"uint64\"},{\"internalType\":\"contractIBigStepper\",\"name\":\"_vm\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotDefendRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAboveSplit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockTimeExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameDepthExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameNotInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLocalIdent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidParent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPrestate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSplitDepth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfOrderResolution\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"UnexpectedRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidStep\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"name\":\"Move\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enumGameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ABSOLUTE_PRESTATE\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GAME_DURATION\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_GAME_DEPTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SPLIT_DEPTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VM\",\"outputs\":[{\"internalType\":\"contractIBigStepper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_execLeafIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"addLocalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bondManager\",\"outputs\":[{\"internalType\":\"contractIBondManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claimData\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"parentIndex\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"countered\",\"type\":\"bool\"},{\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"internalType\":\"Position\",\"name\":\"position\",\"type\":\"uint128\"},{\"internalType\":\"Clock\",\"name\":\"clock\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDataLen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"len_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"defend\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_challengeIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enumGameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enumGameStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
Bin: "0x6101606040523480156200001257600080fd5b5060405162002c6538038062002c65833981016040819052620000359162000091565b838310620000565760405163e62ccf3960e01b815260040160405180910390fd5b60ff909616610120526080949094526101409290925260a05260c0526001600160401b031660e0526001600160a01b03166101005262000129565b600080600080600080600060e0888a031215620000ad57600080fd5b875160ff81168114620000bf57600080fd5b602089015160408a015160608b015160808c015160a08d0151949b50929950909750955093506001600160401b0381168114620000fb57600080fd5b60c08901519092506001600160a01b03811681146200011957600080fd5b8091505092959891949750929550565b60805160a05160c05160e051610100516101205161014051612a8d620001d86000396000611a0b0152600081816104980152611b3d01526000818161046201528181611414015261176501526000818161051101528181610c290152611c3401526000818161023e01528181610a8a015281816121450152818161224d01526123280152600081816103300152818161098801526111ad01526000818161028001526113090152612a8d6000f3fe6080604052600436106101a15760003560e01c80638980e0cc116100e1578063c55cd0c71161008a578063d8cc1a3c11610064578063d8cc1a3c146105cb578063f8f43ff6146105eb578063fa24f7431461060b578063fdffbb281461062f57600080fd5b8063c55cd0c714610533578063c6f0308c14610546578063cf09e0d0146105aa57600080fd5b8063bbdc02db116100bb578063bbdc02db14610484578063bcef3b55146104c2578063c31b29ce146104ff57600080fd5b80638980e0cc146103fb5780638b85902b14610410578063929312981461045057600080fd5b8063363cc4271161014e578063609d333411610128578063609d3334146103a8578063632247ea146103bd5780636361506d146103d05780638129fc1c146103e657600080fd5b8063363cc427146102cc5780634778efe81461031e57806354fd4d501461035257600080fd5b8063266198f91161017f578063266198f91461026e5780632810e1d6146102a257806335fef567146102b757600080fd5b806319effeb4146101a6578063200d2ed2146101f157806324185bc61461022c575b600080fd5b3480156101b257600080fd5b506000546101d39068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101fd57600080fd5b5060005461021f90700100000000000000000000000000000000900460ff1681565b6040516101e89190612561565b34801561023857600080fd5b506102607f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101e8565b34801561027a57600080fd5b506102607f000000000000000000000000000000000000000000000000000000000000000081565b3480156102ae57600080fd5b5061021f610642565b6102ca6102c53660046125a2565b610813565b005b3480156102d857600080fd5b506001546102f99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e8565b34801561032a57600080fd5b506102607f000000000000000000000000000000000000000000000000000000000000000081565b34801561035e57600080fd5b5061039b6040518060400160405280600681526020017f302e302e3133000000000000000000000000000000000000000000000000000081525081565b6040516101e8919061262f565b3480156103b457600080fd5b5061039b610823565b6102ca6103cb36600461265e565b610835565b3480156103dc57600080fd5b5061026060025481565b3480156103f257600080fd5b506102ca610f2e565b34801561040757600080fd5b50600354610260565b34801561041c57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135610260565b34801561045c57600080fd5b506102f97f000000000000000000000000000000000000000000000000000000000000000081565b34801561049057600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101e8565b3480156104ce57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335610260565b34801561050b57600080fd5b506101d37f000000000000000000000000000000000000000000000000000000000000000081565b6102ca6105413660046125a2565b61107f565b34801561055257600080fd5b50610566610561366004612693565b61108b565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a0016101e8565b3480156105b657600080fd5b506000546101d39067ffffffffffffffff1681565b3480156105d757600080fd5b506102ca6105e63660046126f5565b6110fc565b3480156105f757600080fd5b506102ca61060636600461277f565b611698565b34801561061757600080fd5b50610620611b3b565b6040516101e8939291906127ab565b6102ca61063d366004612693565b611b98565b600080600054700100000000000000000000000000000000900460ff16600281111561067057610670612532565b146106a7576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065460ff166106e3576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60036000815481106106f7576106f76127d6565b6000918252602090912060039091020154640100000000900460ff1661071e576002610721565b60015b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff909116177001000000000000000000000000000000008360028111156107d2576107d2612532565b0217905560028111156107e7576107e7612532565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b61081f82826000610835565b5050565b6060610830602080611ed2565b905090565b60008054700100000000000000000000000000000000900460ff16600281111561086157610861612532565b14610898576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b821580156108a4575080155b156108db576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600384815481106108f0576108f06127d6565b600091825260208083206040805160a081018252600394909402909101805463ffffffff808216865264010000000090910460ff16151593850193909352600181015491840191909152600201546fffffffffffffffffffffffffffffffff8082166060850181905270010000000000000000000000000000000090920416608084015291935061098491908590611f6916565b90507f0000000000000000000000000000000000000000000000000000000000000000610a43826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610a85576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ab07f00000000000000000000000000000000000000000000000000000000000000006001612834565b610b4c826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1603610b6557610b658486611f71565b815160009063ffffffff90811614610bc5576003836000015163ffffffff1681548110610b9457610b946127d6565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610bfe846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610c129190612834565b610c1c919061284c565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610c8f576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b42176000888152608086901b6fffffffffffffffffffffffffffffffff8b1617602052604081209192509060008181526004602052604090205490915060ff1615610d0d576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155815160a08101835263ffffffff808f1682529381018581529281018d81526fffffffffffffffffffffffffffffffff808c1660608401908152898216608085019081526003805480880182559981905294519885027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8101805498511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009099169a909916999099179690961790965590517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c8701559351925184167001000000000000000000000000000000000292909316919091177fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d9093019290925580548b908110610e8357610e836127d6565b600091825260208083206003928302018054941515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909516949094179093558b82526005909252604090209054610ee49060019061284c565b8154600181018355600092835260208320015560405133918a918c917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff81526020810192909252600391908101610fb37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff908116909152825460018181018555600094855260209485902084516003909302018054958501511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090961663ffffffff9093169290921794909417815560408301518185015560608301516080909301518216700100000000000000000000000000000000029290911691909117600290910155611079904361284c565b40600255565b61081f82826001610835565b6003818154811061109b57600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b60008054700100000000000000000000000000000000900460ff16600281111561112857611128612532565b1461115f576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038781548110611174576111746127d6565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506111d37f00000000000000000000000000000000000000000000000000000000000000006001612834565b61126f826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16146112b0576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915611333576112d4836fffffffffffffffffffffffffffffffff16611fca565b67ffffffffffffffff1615611307576112fe6112f1600186612863565b865463ffffffff16612070565b60010154611329565b7f00000000000000000000000000000000000000000000000000000000000000005b915084905061134d565b8460010154915061134a8460016112f19190612894565b90505b600882901b60088a8a6040516113649291906128c8565b6040518091039020901b146113a5576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806113b18d61210d565b600182810154835491830154835460408051602081019490945263ffffffff948516908401526060830191909152919091166080820152919350915060009060a001604051602081830303815290604052805190602001209050600084600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e14ced328f8f8f8f886040518663ffffffff1660e01b8152600401611473959493929190612921565b6020604051808303816000875af1158015611492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b6919061295b565b600287810154929091149250600091611561906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6115fd8b6fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6116079190612974565b6116119190612995565b67ffffffffffffffff161590508115158103611659576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505087547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790975550505050505050505050505050565b60008054700100000000000000000000000000000000900460ff1660028111156116c4576116c4612532565b146116fb576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806117078461210d565b600182810154835491830154835460408051602081019490945263ffffffff948516908401526060830191909152919091166080820152919350915060009060a00160405160208183030381529060405280519060200120905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f291906129e3565b9050866001036118b4576002546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4015b6020604051808303816000875af115801561188a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ae919061295b565b50611b32565b866002036119315760018401546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a40161186b565b866003036119ae5760018301546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a40161186b565b86600403611a8757600284015473ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad908990859060c0906119fb906fffffffffffffffffffffffffffffffff16611fca565b611a2f9067ffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000612834565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152600481019490945260248401929092521b6044820152600860648201526084810188905260a40161186b565b86600503611b00576040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101889052602481018390524660c01b6044820152600860648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a40161186b565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611b91610823565b9050909192565b60008054700100000000000000000000000000000000900460ff166002811115611bc457611bc4612532565b14611bfb576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038281548110611c1057611c106127d6565b60009182526020909120600260039092020190810154909150677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1690611c8090700100000000000000000000000000000000900467ffffffffffffffff164261284c565b6002830154611cb09190700100000000000000000000000000000000900460401c67ffffffffffffffff16612834565b11611ce7576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260056020526040902082158015611d05575060065460ff165b15611d3c576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054158015611d4a57508215155b15611d81576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b8254811015611e4f576000838281548110611da257611da26127d6565b6000918252602080832090910154808352600590915260409091205490915015611df8576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038281548110611e0d57611e0d6127d6565b600091825260209091206003909102018054909150640100000000900460ff16611e3c57600193505050611e4f565b505080611e4890612a19565b9050611d85565b5082547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16640100000000821515021783556000848152600560205260408120611e98916124f8565b83600003611ecc57600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b50505050565b60606000611f0984367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003612834565b90508267ffffffffffffffff1667ffffffffffffffff811115611f2e57611f2e612a51565b6040519080825280601f01601f191660200182016040528015611f58576020820181803683370190505b509150828160208401375092915050565b151760011b90565b600082901a6001811480611f88575060ff81166002145b611fc5576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810184905260240160405180910390fd5b505050565b600080612057837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b60008061208e846fffffffffffffffffffffffffffffffff1661244c565b9050600383815481106120a3576120a36127d6565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461210657815460038054909163ffffffff169081106120f1576120f16127d6565b906000526020600020906003020191506120b4565b5092915050565b600080600083905060006003828154811061212a5761212a6127d6565b600091825260209091206002600390920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090612201906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611612242576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60028301547f000000000000000000000000000000000000000000000000000000000000000090612309906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169250821461238457825463ffffffff1661234e7f00000000000000000000000000000000000000000000000000000000000000006001612834565b8303612358578391505b6003818154811061236b5761236b6127d6565b9060005260206000209060030201935080945050612246565b600280820154908401546fffffffffffffffffffffffffffffffff91821691166000816123b18460011c90565b6fffffffffffffffffffffffffffffffff16149050801561240a576123e06123da600184612863565b88612070565b9850600387815481106123f5576123f56127d6565b90600052602060002090600302019750612440565b6003878154811061241d5761241d6127d6565b9060005260206000209060030201985061243d8260016123da9190612894565b97505b50505050505050915091565b600081196001830116816124e0827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b50805460008255906000526020600020908101906125169190612519565b50565b5b8082111561252e576000815560010161251a565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061259c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600080604083850312156125b557600080fd5b50508035926020909101359150565b6000815180845260005b818110156125ea576020818501810151868301820152016125ce565b818111156125fc576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061264260208301846125c4565b9392505050565b8035801515811461265957600080fd5b919050565b60008060006060848603121561267357600080fd5b833592506020840135915061268a60408501612649565b90509250925092565b6000602082840312156126a557600080fd5b5035919050565b60008083601f8401126126be57600080fd5b50813567ffffffffffffffff8111156126d657600080fd5b6020830191508360208285010111156126ee57600080fd5b9250929050565b6000806000806000806080878903121561270e57600080fd5b8635955061271e60208801612649565b9450604087013567ffffffffffffffff8082111561273b57600080fd5b6127478a838b016126ac565b9096509450606089013591508082111561276057600080fd5b5061276d89828a016126ac565b979a9699509497509295939492505050565b60008060006060848603121561279457600080fd5b505081359360208301359350604090920135919050565b60ff841681528260208201526060604082015260006127cd60608301846125c4565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561284757612847612805565b500190565b60008282101561285e5761285e612805565b500390565b60006fffffffffffffffffffffffffffffffff8381169083168181101561288c5761288c612805565b039392505050565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156128bf576128bf612805565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006129356060830187896128d8565b82810360208401526129488186886128d8565b9150508260408301529695505050505050565b60006020828403121561296d57600080fd5b5051919050565b600067ffffffffffffffff8381169083168181101561288c5761288c612805565b600067ffffffffffffffff808416806129d7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b6000602082840312156129f557600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461264257600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a4a57612a4a612805565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a",
ABI: "[{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_genesisBlockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_maxGameDepth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_splitDepth\",\"type\":\"uint256\"},{\"internalType\":\"Duration\",\"name\":\"_gameDuration\",\"type\":\"uint64\"},{\"internalType\":\"contractIBigStepper\",\"name\":\"_vm\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotDefendRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAboveSplit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockTimeExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameDepthExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameNotInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLocalIdent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidParent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPrestate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSplitDepth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfOrderResolution\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"UnexpectedRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidStep\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"name\":\"Move\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enumGameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ABSOLUTE_PRESTATE\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GAME_DURATION\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GENESIS_BLOCK_NUMBER\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_GAME_DEPTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SPLIT_DEPTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VM\",\"outputs\":[{\"internalType\":\"contractIBigStepper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_execLeafIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"addLocalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bondManager\",\"outputs\":[{\"internalType\":\"contractIBondManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claimData\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"parentIndex\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"countered\",\"type\":\"bool\"},{\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"internalType\":\"Position\",\"name\":\"position\",\"type\":\"uint128\"},{\"internalType\":\"Clock\",\"name\":\"clock\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDataLen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"len_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"defend\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_challengeIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enumGameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enumGameStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
Bin: "0x6101606040523480156200001257600080fd5b5060405162002cab38038062002cab833981016040819052620000359162000091565b838310620000565760405163e62ccf3960e01b815260040160405180910390fd5b60ff909616610140526080949094526101209290925260a05260c0526001600160401b031660e0526001600160a01b03166101005262000129565b600080600080600080600060e0888a031215620000ad57600080fd5b875160ff81168114620000bf57600080fd5b602089015160408a015160608b015160808c015160a08d0151949b50929950909750955093506001600160401b0381168114620000fb57600080fd5b60c08901519092506001600160a01b03811681146200011957600080fd5b8091505092959891949750929550565b60805160a05160c05160e051610100516101205161014051612acc620001df600039600081816104d70152611b7c0152600081816104030152611a4a0152600081816104a10152818161145301526117a401526000818161055001528181610c680152611c7301526000818161024901528181610ac9015281816121840152818161228c015261236701526000818161033b015281816109c701526111ec01526000818161028b01526113480152612acc6000f3fe6080604052600436106101ac5760003560e01c80638129fc1c116100ec578063c55cd0c71161008a578063d8cc1a3c11610064578063d8cc1a3c1461060a578063f8f43ff61461062a578063fa24f7431461064a578063fdffbb281461066e57600080fd5b8063c55cd0c714610572578063c6f0308c14610585578063cf09e0d0146105e957600080fd5b806392931298116100c6578063929312981461048f578063bbdc02db146104c3578063bcef3b5514610501578063c31b29ce1461053e57600080fd5b80638129fc1c146104255780638980e0cc1461043a5780638b85902b1461044f57600080fd5b8063363cc42711610159578063609d333411610133578063609d3334146103b3578063632247ea146103c85780636361506d146103db5780636737abeb146103f157600080fd5b8063363cc427146102d75780634778efe81461032957806354fd4d501461035d57600080fd5b8063266198f91161018a578063266198f9146102795780632810e1d6146102ad57806335fef567146102c257600080fd5b806319effeb4146101b1578063200d2ed2146101fc57806324185bc614610237575b600080fd5b3480156101bd57600080fd5b506000546101de9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561020857600080fd5b5060005461022a90700100000000000000000000000000000000900460ff1681565b6040516101f391906125a0565b34801561024357600080fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101f3565b34801561028557600080fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102b957600080fd5b5061022a610681565b6102d56102d03660046125e1565b610852565b005b3480156102e357600080fd5b506001546103049073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f3565b34801561033557600080fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036957600080fd5b506103a66040518060400160405280600681526020017f302e302e3133000000000000000000000000000000000000000000000000000081525081565b6040516101f3919061266e565b3480156103bf57600080fd5b506103a6610862565b6102d56103d636600461269d565b610874565b3480156103e757600080fd5b5061026b60025481565b3480156103fd57600080fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561043157600080fd5b506102d5610f6d565b34801561044657600080fd5b5060035461026b565b34801561045b57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561026b565b34801561049b57600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cf57600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101f3565b34801561050d57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561026b565b34801561054a57600080fd5b506101de7f000000000000000000000000000000000000000000000000000000000000000081565b6102d56105803660046125e1565b6110be565b34801561059157600080fd5b506105a56105a03660046126d2565b6110ca565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a0016101f3565b3480156105f557600080fd5b506000546101de9067ffffffffffffffff1681565b34801561061657600080fd5b506102d5610625366004612734565b61113b565b34801561063657600080fd5b506102d56106453660046127be565b6116d7565b34801561065657600080fd5b5061065f611b7a565b6040516101f3939291906127ea565b6102d561067c3660046126d2565b611bd7565b600080600054700100000000000000000000000000000000900460ff1660028111156106af576106af612571565b146106e6576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065460ff16610722576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360008154811061073657610736612815565b6000918252602090912060039091020154640100000000900460ff1661075d576002610760565b60015b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff9091161770010000000000000000000000000000000083600281111561081157610811612571565b02179055600281111561082657610826612571565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b61085e82826000610874565b5050565b606061086f602080611f11565b905090565b60008054700100000000000000000000000000000000900460ff1660028111156108a0576108a0612571565b146108d7576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b821580156108e3575080155b1561091a576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006003848154811061092f5761092f612815565b600091825260208083206040805160a081018252600394909402909101805463ffffffff808216865264010000000090910460ff16151593850193909352600181015491840191909152600201546fffffffffffffffffffffffffffffffff808216606085018190527001000000000000000000000000000000009092041660808401529193506109c391908590611fa816565b90507f0000000000000000000000000000000000000000000000000000000000000000610a82826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610ac4576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aef7f00000000000000000000000000000000000000000000000000000000000000006001612873565b610b8b826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1603610ba457610ba48486611fb0565b815160009063ffffffff90811614610c04576003836000015163ffffffff1681548110610bd357610bd3612815565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610c3d846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610c519190612873565b610c5b919061288b565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610cce576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b42176000888152608086901b6fffffffffffffffffffffffffffffffff8b1617602052604081209192509060008181526004602052604090205490915060ff1615610d4c576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155815160a08101835263ffffffff808f1682529381018581529281018d81526fffffffffffffffffffffffffffffffff808c1660608401908152898216608085019081526003805480880182559981905294519885027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8101805498511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009099169a909916999099179690961790965590517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c8701559351925184167001000000000000000000000000000000000292909316919091177fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d9093019290925580548b908110610ec257610ec2612815565b600091825260208083206003928302018054941515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909516949094179093558b82526005909252604090209054610f239060019061288b565b8154600181018355600092835260208320015560405133918a918c917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff81526020810192909252600391908101610ff27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff908116909152825460018181018555600094855260209485902084516003909302018054958501511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090961663ffffffff90931692909217949094178155604083015181850155606083015160809093015182167001000000000000000000000000000000000292909116919091176002909101556110b8904361288b565b40600255565b61085e82826001610874565b600381815481106110da57600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b60008054700100000000000000000000000000000000900460ff16600281111561116757611167612571565b1461119e576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600387815481106111b3576111b3612815565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506112127f00000000000000000000000000000000000000000000000000000000000000006001612873565b6112ae826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16146112ef576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080891561137257611313836fffffffffffffffffffffffffffffffff16612009565b67ffffffffffffffff16156113465761133d6113306001866128a2565b865463ffffffff166120af565b60010154611368565b7f00000000000000000000000000000000000000000000000000000000000000005b915084905061138c565b8460010154915061138984600161133091906128d3565b90505b600882901b60088a8a6040516113a3929190612907565b6040518091039020901b146113e4576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806113f08d61214c565b600182810154835491830154835460408051602081019490945263ffffffff948516908401526060830191909152919091166080820152919350915060009060a001604051602081830303815290604052805190602001209050600084600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e14ced328f8f8f8f886040518663ffffffff1660e01b81526004016114b2959493929190612960565b6020604051808303816000875af11580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f5919061299a565b6002878101549290911492506000916115a0906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61163c8b6fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61164691906129b3565b61165091906129d4565b67ffffffffffffffff161590508115158103611698576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505087547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790975550505050505050505050505050565b60008054700100000000000000000000000000000000900460ff16600281111561170357611703612571565b1461173a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806117468461214c565b600182810154835491830154835460408051602081019490945263ffffffff948516908401526060830191909152919091166080820152919350915060009060a00160405160208183030381529060405280519060200120905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118319190612a22565b9050866001036118f3576002546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4015b6020604051808303816000875af11580156118c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ed919061299a565b50611b71565b866002036119705760018401546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016118aa565b866003036119ed5760018301546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016118aa565b86600403611ac657600284015473ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad908990859060c090611a3a906fffffffffffffffffffffffffffffffff16612009565b611a6e9067ffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000612873565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152600481019490945260248401929092521b6044820152600860648201526084810188905260a4016118aa565b86600503611b3f576040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101889052602481018390524660c01b6044820152600860648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016118aa565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611bd0610862565b9050909192565b60008054700100000000000000000000000000000000900460ff166002811115611c0357611c03612571565b14611c3a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038281548110611c4f57611c4f612815565b60009182526020909120600260039092020190810154909150677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1690611cbf90700100000000000000000000000000000000900467ffffffffffffffff164261288b565b6002830154611cef9190700100000000000000000000000000000000900460401c67ffffffffffffffff16612873565b11611d26576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260056020526040902082158015611d44575060065460ff165b15611d7b576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054158015611d8957508215155b15611dc0576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b8254811015611e8e576000838281548110611de157611de1612815565b6000918252602080832090910154808352600590915260409091205490915015611e37576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038281548110611e4c57611e4c612815565b600091825260209091206003909102018054909150640100000000900460ff16611e7b57600193505050611e8e565b505080611e8790612a58565b9050611dc4565b5082547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16640100000000821515021783556000848152600560205260408120611ed791612537565b83600003611f0b57600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b50505050565b60606000611f4884367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003612873565b90508267ffffffffffffffff1667ffffffffffffffff811115611f6d57611f6d612a90565b6040519080825280601f01601f191660200182016040528015611f97576020820181803683370190505b509150828160208401375092915050565b151760011b90565b600082901a6001811480611fc7575060ff81166002145b612004576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810184905260240160405180910390fd5b505050565b600080612096837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b6000806120cd846fffffffffffffffffffffffffffffffff1661248b565b9050600383815481106120e2576120e2612815565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461214557815460038054909163ffffffff1690811061213057612130612815565b906000526020600020906003020191506120f3565b5092915050565b600080600083905060006003828154811061216957612169612815565b600091825260209091206002600390920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090612240906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611612281576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60028301547f000000000000000000000000000000000000000000000000000000000000000090612348906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16925082146123c357825463ffffffff1661238d7f00000000000000000000000000000000000000000000000000000000000000006001612873565b8303612397578391505b600381815481106123aa576123aa612815565b9060005260206000209060030201935080945050612285565b600280820154908401546fffffffffffffffffffffffffffffffff91821691166000816123f08460011c90565b6fffffffffffffffffffffffffffffffff1614905080156124495761241f6124196001846128a2565b886120af565b98506003878154811061243457612434612815565b9060005260206000209060030201975061247f565b6003878154811061245c5761245c612815565b9060005260206000209060030201985061247c82600161241991906128d3565b97505b50505050505050915091565b6000811960018301168161251f827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b50805460008255906000526020600020908101906125559190612558565b50565b5b8082111561256d5760008155600101612559565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106125db577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600080604083850312156125f457600080fd5b50508035926020909101359150565b6000815180845260005b818110156126295760208185018101518683018201520161260d565b8181111561263b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006126816020830184612603565b9392505050565b8035801515811461269857600080fd5b919050565b6000806000606084860312156126b257600080fd5b83359250602084013591506126c960408501612688565b90509250925092565b6000602082840312156126e457600080fd5b5035919050565b60008083601f8401126126fd57600080fd5b50813567ffffffffffffffff81111561271557600080fd5b60208301915083602082850101111561272d57600080fd5b9250929050565b6000806000806000806080878903121561274d57600080fd5b8635955061275d60208801612688565b9450604087013567ffffffffffffffff8082111561277a57600080fd5b6127868a838b016126eb565b9096509450606089013591508082111561279f57600080fd5b506127ac89828a016126eb565b979a9699509497509295939492505050565b6000806000606084860312156127d357600080fd5b505081359360208301359350604090920135919050565b60ff8416815282602082015260606040820152600061280c6060830184612603565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561288657612886612844565b500190565b60008282101561289d5761289d612844565b500390565b60006fffffffffffffffffffffffffffffffff838116908316818110156128cb576128cb612844565b039392505050565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156128fe576128fe612844565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000612974606083018789612917565b8281036020840152612987818688612917565b9150508260408301529695505050505050565b6000602082840312156129ac57600080fd5b5051919050565b600067ffffffffffffffff838116908316818110156128cb576128cb612844565b600067ffffffffffffffff80841680612a16577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b600060208284031215612a3457600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461268157600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a8957612a89612844565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a",
}
// OutputBisectionGameABI is the input ABI used to generate the binding from.
......@@ -263,6 +263,37 @@ func (_OutputBisectionGame *OutputBisectionGameCallerSession) GAMEDURATION() (ui
return _OutputBisectionGame.Contract.GAMEDURATION(&_OutputBisectionGame.CallOpts)
}
// GENESISBLOCKNUMBER is a free data retrieval call binding the contract method 0x6737abeb.
//
// Solidity: function GENESIS_BLOCK_NUMBER() view returns(uint256)
func (_OutputBisectionGame *OutputBisectionGameCaller) GENESISBLOCKNUMBER(opts *bind.CallOpts) (*big.Int, error) {
var out []interface{}
err := _OutputBisectionGame.contract.Call(opts, &out, "GENESIS_BLOCK_NUMBER")
if err != nil {
return *new(*big.Int), err
}
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
return out0, err
}
// GENESISBLOCKNUMBER is a free data retrieval call binding the contract method 0x6737abeb.
//
// Solidity: function GENESIS_BLOCK_NUMBER() view returns(uint256)
func (_OutputBisectionGame *OutputBisectionGameSession) GENESISBLOCKNUMBER() (*big.Int, error) {
return _OutputBisectionGame.Contract.GENESISBLOCKNUMBER(&_OutputBisectionGame.CallOpts)
}
// GENESISBLOCKNUMBER is a free data retrieval call binding the contract method 0x6737abeb.
//
// Solidity: function GENESIS_BLOCK_NUMBER() view returns(uint256)
func (_OutputBisectionGame *OutputBisectionGameCallerSession) GENESISBLOCKNUMBER() (*big.Int, error) {
return _OutputBisectionGame.Contract.GENESISBLOCKNUMBER(&_OutputBisectionGame.CallOpts)
}
// MAXGAMEDEPTH is a free data retrieval call binding the contract method 0x4778efe8.
//
// Solidity: function MAX_GAME_DEPTH() view returns(uint256)
......
......@@ -13,7 +13,7 @@ const OutputBisectionGameStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"co
var OutputBisectionGameStorageLayout = new(solc.StorageLayout)
var OutputBisectionGameDeployedBin = "0x6080604052600436106101a15760003560e01c80638980e0cc116100e1578063c55cd0c71161008a578063d8cc1a3c11610064578063d8cc1a3c146105cb578063f8f43ff6146105eb578063fa24f7431461060b578063fdffbb281461062f57600080fd5b8063c55cd0c714610533578063c6f0308c14610546578063cf09e0d0146105aa57600080fd5b8063bbdc02db116100bb578063bbdc02db14610484578063bcef3b55146104c2578063c31b29ce146104ff57600080fd5b80638980e0cc146103fb5780638b85902b14610410578063929312981461045057600080fd5b8063363cc4271161014e578063609d333411610128578063609d3334146103a8578063632247ea146103bd5780636361506d146103d05780638129fc1c146103e657600080fd5b8063363cc427146102cc5780634778efe81461031e57806354fd4d501461035257600080fd5b8063266198f91161017f578063266198f91461026e5780632810e1d6146102a257806335fef567146102b757600080fd5b806319effeb4146101a6578063200d2ed2146101f157806324185bc61461022c575b600080fd5b3480156101b257600080fd5b506000546101d39068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101fd57600080fd5b5060005461021f90700100000000000000000000000000000000900460ff1681565b6040516101e89190612561565b34801561023857600080fd5b506102607f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101e8565b34801561027a57600080fd5b506102607f000000000000000000000000000000000000000000000000000000000000000081565b3480156102ae57600080fd5b5061021f610642565b6102ca6102c53660046125a2565b610813565b005b3480156102d857600080fd5b506001546102f99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e8565b34801561032a57600080fd5b506102607f000000000000000000000000000000000000000000000000000000000000000081565b34801561035e57600080fd5b5061039b6040518060400160405280600681526020017f302e302e3133000000000000000000000000000000000000000000000000000081525081565b6040516101e8919061262f565b3480156103b457600080fd5b5061039b610823565b6102ca6103cb36600461265e565b610835565b3480156103dc57600080fd5b5061026060025481565b3480156103f257600080fd5b506102ca610f2e565b34801561040757600080fd5b50600354610260565b34801561041c57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135610260565b34801561045c57600080fd5b506102f97f000000000000000000000000000000000000000000000000000000000000000081565b34801561049057600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101e8565b3480156104ce57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335610260565b34801561050b57600080fd5b506101d37f000000000000000000000000000000000000000000000000000000000000000081565b6102ca6105413660046125a2565b61107f565b34801561055257600080fd5b50610566610561366004612693565b61108b565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a0016101e8565b3480156105b657600080fd5b506000546101d39067ffffffffffffffff1681565b3480156105d757600080fd5b506102ca6105e63660046126f5565b6110fc565b3480156105f757600080fd5b506102ca61060636600461277f565b611698565b34801561061757600080fd5b50610620611b3b565b6040516101e8939291906127ab565b6102ca61063d366004612693565b611b98565b600080600054700100000000000000000000000000000000900460ff16600281111561067057610670612532565b146106a7576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065460ff166106e3576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60036000815481106106f7576106f76127d6565b6000918252602090912060039091020154640100000000900460ff1661071e576002610721565b60015b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff909116177001000000000000000000000000000000008360028111156107d2576107d2612532565b0217905560028111156107e7576107e7612532565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b61081f82826000610835565b5050565b6060610830602080611ed2565b905090565b60008054700100000000000000000000000000000000900460ff16600281111561086157610861612532565b14610898576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b821580156108a4575080155b156108db576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600384815481106108f0576108f06127d6565b600091825260208083206040805160a081018252600394909402909101805463ffffffff808216865264010000000090910460ff16151593850193909352600181015491840191909152600201546fffffffffffffffffffffffffffffffff8082166060850181905270010000000000000000000000000000000090920416608084015291935061098491908590611f6916565b90507f0000000000000000000000000000000000000000000000000000000000000000610a43826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610a85576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ab07f00000000000000000000000000000000000000000000000000000000000000006001612834565b610b4c826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1603610b6557610b658486611f71565b815160009063ffffffff90811614610bc5576003836000015163ffffffff1681548110610b9457610b946127d6565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610bfe846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610c129190612834565b610c1c919061284c565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610c8f576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b42176000888152608086901b6fffffffffffffffffffffffffffffffff8b1617602052604081209192509060008181526004602052604090205490915060ff1615610d0d576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155815160a08101835263ffffffff808f1682529381018581529281018d81526fffffffffffffffffffffffffffffffff808c1660608401908152898216608085019081526003805480880182559981905294519885027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8101805498511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009099169a909916999099179690961790965590517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c8701559351925184167001000000000000000000000000000000000292909316919091177fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d9093019290925580548b908110610e8357610e836127d6565b600091825260208083206003928302018054941515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909516949094179093558b82526005909252604090209054610ee49060019061284c565b8154600181018355600092835260208320015560405133918a918c917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff81526020810192909252600391908101610fb37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff908116909152825460018181018555600094855260209485902084516003909302018054958501511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090961663ffffffff9093169290921794909417815560408301518185015560608301516080909301518216700100000000000000000000000000000000029290911691909117600290910155611079904361284c565b40600255565b61081f82826001610835565b6003818154811061109b57600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b60008054700100000000000000000000000000000000900460ff16600281111561112857611128612532565b1461115f576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038781548110611174576111746127d6565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506111d37f00000000000000000000000000000000000000000000000000000000000000006001612834565b61126f826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16146112b0576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915611333576112d4836fffffffffffffffffffffffffffffffff16611fca565b67ffffffffffffffff1615611307576112fe6112f1600186612863565b865463ffffffff16612070565b60010154611329565b7f00000000000000000000000000000000000000000000000000000000000000005b915084905061134d565b8460010154915061134a8460016112f19190612894565b90505b600882901b60088a8a6040516113649291906128c8565b6040518091039020901b146113a5576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806113b18d61210d565b600182810154835491830154835460408051602081019490945263ffffffff948516908401526060830191909152919091166080820152919350915060009060a001604051602081830303815290604052805190602001209050600084600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e14ced328f8f8f8f886040518663ffffffff1660e01b8152600401611473959493929190612921565b6020604051808303816000875af1158015611492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b6919061295b565b600287810154929091149250600091611561906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6115fd8b6fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6116079190612974565b6116119190612995565b67ffffffffffffffff161590508115158103611659576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505087547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790975550505050505050505050505050565b60008054700100000000000000000000000000000000900460ff1660028111156116c4576116c4612532565b146116fb576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806117078461210d565b600182810154835491830154835460408051602081019490945263ffffffff948516908401526060830191909152919091166080820152919350915060009060a00160405160208183030381529060405280519060200120905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f291906129e3565b9050866001036118b4576002546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4015b6020604051808303816000875af115801561188a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ae919061295b565b50611b32565b866002036119315760018401546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a40161186b565b866003036119ae5760018301546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a40161186b565b86600403611a8757600284015473ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad908990859060c0906119fb906fffffffffffffffffffffffffffffffff16611fca565b611a2f9067ffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000612834565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152600481019490945260248401929092521b6044820152600860648201526084810188905260a40161186b565b86600503611b00576040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101889052602481018390524660c01b6044820152600860648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a40161186b565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611b91610823565b9050909192565b60008054700100000000000000000000000000000000900460ff166002811115611bc457611bc4612532565b14611bfb576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038281548110611c1057611c106127d6565b60009182526020909120600260039092020190810154909150677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1690611c8090700100000000000000000000000000000000900467ffffffffffffffff164261284c565b6002830154611cb09190700100000000000000000000000000000000900460401c67ffffffffffffffff16612834565b11611ce7576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260056020526040902082158015611d05575060065460ff165b15611d3c576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054158015611d4a57508215155b15611d81576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b8254811015611e4f576000838281548110611da257611da26127d6565b6000918252602080832090910154808352600590915260409091205490915015611df8576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038281548110611e0d57611e0d6127d6565b600091825260209091206003909102018054909150640100000000900460ff16611e3c57600193505050611e4f565b505080611e4890612a19565b9050611d85565b5082547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16640100000000821515021783556000848152600560205260408120611e98916124f8565b83600003611ecc57600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b50505050565b60606000611f0984367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003612834565b90508267ffffffffffffffff1667ffffffffffffffff811115611f2e57611f2e612a51565b6040519080825280601f01601f191660200182016040528015611f58576020820181803683370190505b509150828160208401375092915050565b151760011b90565b600082901a6001811480611f88575060ff81166002145b611fc5576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810184905260240160405180910390fd5b505050565b600080612057837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b60008061208e846fffffffffffffffffffffffffffffffff1661244c565b9050600383815481106120a3576120a36127d6565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461210657815460038054909163ffffffff169081106120f1576120f16127d6565b906000526020600020906003020191506120b4565b5092915050565b600080600083905060006003828154811061212a5761212a6127d6565b600091825260209091206002600390920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090612201906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611612242576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60028301547f000000000000000000000000000000000000000000000000000000000000000090612309906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169250821461238457825463ffffffff1661234e7f00000000000000000000000000000000000000000000000000000000000000006001612834565b8303612358578391505b6003818154811061236b5761236b6127d6565b9060005260206000209060030201935080945050612246565b600280820154908401546fffffffffffffffffffffffffffffffff91821691166000816123b18460011c90565b6fffffffffffffffffffffffffffffffff16149050801561240a576123e06123da600184612863565b88612070565b9850600387815481106123f5576123f56127d6565b90600052602060002090600302019750612440565b6003878154811061241d5761241d6127d6565b9060005260206000209060030201985061243d8260016123da9190612894565b97505b50505050505050915091565b600081196001830116816124e0827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b50805460008255906000526020600020908101906125169190612519565b50565b5b8082111561252e576000815560010161251a565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061259c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600080604083850312156125b557600080fd5b50508035926020909101359150565b6000815180845260005b818110156125ea576020818501810151868301820152016125ce565b818111156125fc576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061264260208301846125c4565b9392505050565b8035801515811461265957600080fd5b919050565b60008060006060848603121561267357600080fd5b833592506020840135915061268a60408501612649565b90509250925092565b6000602082840312156126a557600080fd5b5035919050565b60008083601f8401126126be57600080fd5b50813567ffffffffffffffff8111156126d657600080fd5b6020830191508360208285010111156126ee57600080fd5b9250929050565b6000806000806000806080878903121561270e57600080fd5b8635955061271e60208801612649565b9450604087013567ffffffffffffffff8082111561273b57600080fd5b6127478a838b016126ac565b9096509450606089013591508082111561276057600080fd5b5061276d89828a016126ac565b979a9699509497509295939492505050565b60008060006060848603121561279457600080fd5b505081359360208301359350604090920135919050565b60ff841681528260208201526060604082015260006127cd60608301846125c4565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561284757612847612805565b500190565b60008282101561285e5761285e612805565b500390565b60006fffffffffffffffffffffffffffffffff8381169083168181101561288c5761288c612805565b039392505050565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156128bf576128bf612805565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006129356060830187896128d8565b82810360208401526129488186886128d8565b9150508260408301529695505050505050565b60006020828403121561296d57600080fd5b5051919050565b600067ffffffffffffffff8381169083168181101561288c5761288c612805565b600067ffffffffffffffff808416806129d7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b6000602082840312156129f557600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461264257600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a4a57612a4a612805565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a"
var OutputBisectionGameDeployedBin = "0x6080604052600436106101ac5760003560e01c80638129fc1c116100ec578063c55cd0c71161008a578063d8cc1a3c11610064578063d8cc1a3c1461060a578063f8f43ff61461062a578063fa24f7431461064a578063fdffbb281461066e57600080fd5b8063c55cd0c714610572578063c6f0308c14610585578063cf09e0d0146105e957600080fd5b806392931298116100c6578063929312981461048f578063bbdc02db146104c3578063bcef3b5514610501578063c31b29ce1461053e57600080fd5b80638129fc1c146104255780638980e0cc1461043a5780638b85902b1461044f57600080fd5b8063363cc42711610159578063609d333411610133578063609d3334146103b3578063632247ea146103c85780636361506d146103db5780636737abeb146103f157600080fd5b8063363cc427146102d75780634778efe81461032957806354fd4d501461035d57600080fd5b8063266198f91161018a578063266198f9146102795780632810e1d6146102ad57806335fef567146102c257600080fd5b806319effeb4146101b1578063200d2ed2146101fc57806324185bc614610237575b600080fd5b3480156101bd57600080fd5b506000546101de9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561020857600080fd5b5060005461022a90700100000000000000000000000000000000900460ff1681565b6040516101f391906125a0565b34801561024357600080fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101f3565b34801561028557600080fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102b957600080fd5b5061022a610681565b6102d56102d03660046125e1565b610852565b005b3480156102e357600080fd5b506001546103049073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f3565b34801561033557600080fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036957600080fd5b506103a66040518060400160405280600681526020017f302e302e3133000000000000000000000000000000000000000000000000000081525081565b6040516101f3919061266e565b3480156103bf57600080fd5b506103a6610862565b6102d56103d636600461269d565b610874565b3480156103e757600080fd5b5061026b60025481565b3480156103fd57600080fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561043157600080fd5b506102d5610f6d565b34801561044657600080fd5b5060035461026b565b34801561045b57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561026b565b34801561049b57600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cf57600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101f3565b34801561050d57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561026b565b34801561054a57600080fd5b506101de7f000000000000000000000000000000000000000000000000000000000000000081565b6102d56105803660046125e1565b6110be565b34801561059157600080fd5b506105a56105a03660046126d2565b6110ca565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a0016101f3565b3480156105f557600080fd5b506000546101de9067ffffffffffffffff1681565b34801561061657600080fd5b506102d5610625366004612734565b61113b565b34801561063657600080fd5b506102d56106453660046127be565b6116d7565b34801561065657600080fd5b5061065f611b7a565b6040516101f3939291906127ea565b6102d561067c3660046126d2565b611bd7565b600080600054700100000000000000000000000000000000900460ff1660028111156106af576106af612571565b146106e6576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065460ff16610722576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360008154811061073657610736612815565b6000918252602090912060039091020154640100000000900460ff1661075d576002610760565b60015b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff9091161770010000000000000000000000000000000083600281111561081157610811612571565b02179055600281111561082657610826612571565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b61085e82826000610874565b5050565b606061086f602080611f11565b905090565b60008054700100000000000000000000000000000000900460ff1660028111156108a0576108a0612571565b146108d7576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b821580156108e3575080155b1561091a576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006003848154811061092f5761092f612815565b600091825260208083206040805160a081018252600394909402909101805463ffffffff808216865264010000000090910460ff16151593850193909352600181015491840191909152600201546fffffffffffffffffffffffffffffffff808216606085018190527001000000000000000000000000000000009092041660808401529193506109c391908590611fa816565b90507f0000000000000000000000000000000000000000000000000000000000000000610a82826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610ac4576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aef7f00000000000000000000000000000000000000000000000000000000000000006001612873565b610b8b826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1603610ba457610ba48486611fb0565b815160009063ffffffff90811614610c04576003836000015163ffffffff1681548110610bd357610bd3612815565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610c3d846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610c519190612873565b610c5b919061288b565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610cce576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b42176000888152608086901b6fffffffffffffffffffffffffffffffff8b1617602052604081209192509060008181526004602052604090205490915060ff1615610d4c576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155815160a08101835263ffffffff808f1682529381018581529281018d81526fffffffffffffffffffffffffffffffff808c1660608401908152898216608085019081526003805480880182559981905294519885027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8101805498511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009099169a909916999099179690961790965590517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c8701559351925184167001000000000000000000000000000000000292909316919091177fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d9093019290925580548b908110610ec257610ec2612815565b600091825260208083206003928302018054941515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909516949094179093558b82526005909252604090209054610f239060019061288b565b8154600181018355600092835260208320015560405133918a918c917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff81526020810192909252600391908101610ff27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff908116909152825460018181018555600094855260209485902084516003909302018054958501511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090961663ffffffff90931692909217949094178155604083015181850155606083015160809093015182167001000000000000000000000000000000000292909116919091176002909101556110b8904361288b565b40600255565b61085e82826001610874565b600381815481106110da57600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b60008054700100000000000000000000000000000000900460ff16600281111561116757611167612571565b1461119e576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600387815481106111b3576111b3612815565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506112127f00000000000000000000000000000000000000000000000000000000000000006001612873565b6112ae826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16146112ef576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080891561137257611313836fffffffffffffffffffffffffffffffff16612009565b67ffffffffffffffff16156113465761133d6113306001866128a2565b865463ffffffff166120af565b60010154611368565b7f00000000000000000000000000000000000000000000000000000000000000005b915084905061138c565b8460010154915061138984600161133091906128d3565b90505b600882901b60088a8a6040516113a3929190612907565b6040518091039020901b146113e4576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806113f08d61214c565b600182810154835491830154835460408051602081019490945263ffffffff948516908401526060830191909152919091166080820152919350915060009060a001604051602081830303815290604052805190602001209050600084600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e14ced328f8f8f8f886040518663ffffffff1660e01b81526004016114b2959493929190612960565b6020604051808303816000875af11580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f5919061299a565b6002878101549290911492506000916115a0906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61163c8b6fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61164691906129b3565b61165091906129d4565b67ffffffffffffffff161590508115158103611698576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505087547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790975550505050505050505050505050565b60008054700100000000000000000000000000000000900460ff16600281111561170357611703612571565b1461173a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806117468461214c565b600182810154835491830154835460408051602081019490945263ffffffff948516908401526060830191909152919091166080820152919350915060009060a00160405160208183030381529060405280519060200120905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118319190612a22565b9050866001036118f3576002546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4015b6020604051808303816000875af11580156118c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ed919061299a565b50611b71565b866002036119705760018401546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016118aa565b866003036119ed5760018301546040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101899052602481018490526044810191909152602060648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016118aa565b86600403611ac657600284015473ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad908990859060c090611a3a906fffffffffffffffffffffffffffffffff16612009565b611a6e9067ffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000612873565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152600481019490945260248401929092521b6044820152600860648201526084810188905260a4016118aa565b86600503611b3f576040517f52f0f3ad00000000000000000000000000000000000000000000000000000000815260048101889052602481018390524660c01b6044820152600860648201526084810186905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016118aa565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611bd0610862565b9050909192565b60008054700100000000000000000000000000000000900460ff166002811115611c0357611c03612571565b14611c3a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038281548110611c4f57611c4f612815565b60009182526020909120600260039092020190810154909150677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1690611cbf90700100000000000000000000000000000000900467ffffffffffffffff164261288b565b6002830154611cef9190700100000000000000000000000000000000900460401c67ffffffffffffffff16612873565b11611d26576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260056020526040902082158015611d44575060065460ff165b15611d7b576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054158015611d8957508215155b15611dc0576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b8254811015611e8e576000838281548110611de157611de1612815565b6000918252602080832090910154808352600590915260409091205490915015611e37576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038281548110611e4c57611e4c612815565b600091825260209091206003909102018054909150640100000000900460ff16611e7b57600193505050611e8e565b505080611e8790612a58565b9050611dc4565b5082547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16640100000000821515021783556000848152600560205260408120611ed791612537565b83600003611f0b57600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b50505050565b60606000611f4884367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003612873565b90508267ffffffffffffffff1667ffffffffffffffff811115611f6d57611f6d612a90565b6040519080825280601f01601f191660200182016040528015611f97576020820181803683370190505b509150828160208401375092915050565b151760011b90565b600082901a6001811480611fc7575060ff81166002145b612004576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810184905260240160405180910390fd5b505050565b600080612096837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b6000806120cd846fffffffffffffffffffffffffffffffff1661248b565b9050600383815481106120e2576120e2612815565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461214557815460038054909163ffffffff1690811061213057612130612815565b906000526020600020906003020191506120f3565b5092915050565b600080600083905060006003828154811061216957612169612815565b600091825260209091206002600390920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090612240906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611612281576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60028301547f000000000000000000000000000000000000000000000000000000000000000090612348906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16925082146123c357825463ffffffff1661238d7f00000000000000000000000000000000000000000000000000000000000000006001612873565b8303612397578391505b600381815481106123aa576123aa612815565b9060005260206000209060030201935080945050612285565b600280820154908401546fffffffffffffffffffffffffffffffff91821691166000816123f08460011c90565b6fffffffffffffffffffffffffffffffff1614905080156124495761241f6124196001846128a2565b886120af565b98506003878154811061243457612434612815565b9060005260206000209060030201975061247f565b6003878154811061245c5761245c612815565b9060005260206000209060030201985061247c82600161241991906128d3565b97505b50505050505050915091565b6000811960018301168161251f827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b50805460008255906000526020600020908101906125559190612558565b50565b5b8082111561256d5760008155600101612559565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106125db577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600080604083850312156125f457600080fd5b50508035926020909101359150565b6000815180845260005b818110156126295760208185018101518683018201520161260d565b8181111561263b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006126816020830184612603565b9392505050565b8035801515811461269857600080fd5b919050565b6000806000606084860312156126b257600080fd5b83359250602084013591506126c960408501612688565b90509250925092565b6000602082840312156126e457600080fd5b5035919050565b60008083601f8401126126fd57600080fd5b50813567ffffffffffffffff81111561271557600080fd5b60208301915083602082850101111561272d57600080fd5b9250929050565b6000806000806000806080878903121561274d57600080fd5b8635955061275d60208801612688565b9450604087013567ffffffffffffffff8082111561277a57600080fd5b6127868a838b016126eb565b9096509450606089013591508082111561279f57600080fd5b506127ac89828a016126eb565b979a9699509497509295939492505050565b6000806000606084860312156127d357600080fd5b505081359360208301359350604090920135919050565b60ff8416815282602082015260606040820152600061280c6060830184612603565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561288657612886612844565b500190565b60008282101561289d5761289d612844565b500390565b60006fffffffffffffffffffffffffffffffff838116908316818110156128cb576128cb612844565b039392505050565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156128fe576128fe612844565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000612974606083018789612917565b8281036020840152612987818688612917565b9150508260408301529695505050505050565b6000602082840312156129ac57600080fd5b5051919050565b600067ffffffffffffffff838116908316818110156128cb576128cb612844565b600067ffffffffffffffff80841680612a16577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b600060208284031215612a3457600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461268157600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a8957612a89612844565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a"
func init() {
if err := json.Unmarshal([]byte(OutputBisectionGameStorageLayoutJSON), OutputBisectionGameStorageLayout); err != nil {
......
......@@ -24,7 +24,7 @@
"src/dispute/BlockOracle.sol": "0x7e724b1ee0116dfd744f556e6237af449c2f40c6426d6f1462ae2a47589283bb",
"src/dispute/DisputeGameFactory.sol": "0xfdfa141408d7f8de7e230ff4bef088e30d0e4d569ca743d60d292abdd21ff270",
"src/dispute/FaultDisputeGame.sol": "0x7ac7553a47d96a4481a6b95363458bed5f160112b647829c4defc134fa178d9a",
"src/dispute/OutputBisectionGame.sol": "0x2415f3d3601ffce7ac92710f61180457b13c63df740ad7963a3f07b67f2b919d",
"src/dispute/OutputBisectionGame.sol": "0x16714c8660bf704d255ebb3fe08eb72caf4a890c43ea74fa1109df95194af760",
"src/legacy/DeployerWhitelist.sol": "0x0a6840074734c9d167321d3299be18ef911a415e4c471fa92af7d6cfaa8336d4",
"src/legacy/L1BlockNumber.sol": "0x20d83a636c5e2067fca8c0ed505b295174e6eddb25960d8705e6b6fea8e77fa6",
"src/legacy/LegacyMessagePasser.sol": "0x80f355c9710af586f58cf6a86d1925e0073d1e504d0b3d814284af1bafe4dece",
......
......@@ -43,12 +43,12 @@ contract OutputBisectionGame is IOutputBisectionGame, Clone, ISemver {
/// @notice An onchain VM that performs single instruction steps on a fault proof program trace.
IBigStepper public immutable VM;
/// @notice The genesis block number
uint256 public immutable GENESIS_BLOCK_NUMBER;
/// @notice The game type ID
GameType internal immutable GAME_TYPE;
/// @notice The genesis block number
uint256 internal immutable GENESIS_BLOCK_NUMBER;
/// @notice The global root claim's position is always at gindex 1.
Position internal constant ROOT_POSITION = Position.wrap(1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment