34.6k txs
34.6k calls
constructor
constructor(address newTreasury)
functions
decodeData
viewfunction decodeData(bytes32 gameId) view returns (tuple gameData)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
depositAmounts
viewfunction depositAmounts(bytes32, address) view returns (uint256)
fee
viewfunction fee() view returns (uint256)
GAME_MASTER_ROLE
viewfunction GAME_MASTER_ROLE() view returns (bytes32)
games
viewfunction games(bytes32) view returns (uint256 packedData, uint256 packedData2, uint256 finalRate)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
maxDuration
viewfunction maxDuration() view returns (uint256)
minDuration
viewfunction minDuration() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
treasury
viewfunction treasury() view returns (address)
withdrawStatus
viewfunction withdrawStatus(bytes32, address) view returns (uint8)
changeGameDuration
nonpayablefunction changeGameDuration(uint256 newMaxDuration, uint256 newMinDuration)
closeGame
nonpayablefunction closeGame(bytes32 gameId)
createSetup
nonpayablefunction createSetup(bool isLong, uint32 endTime, uint32 takeProfitPrice, uint32 stopLossPrice, uint8 feedNumber, bytes unverifiedReport)
finalizeGame
nonpayablefunction finalizeGame(bytes unverifiedReport, bytes32 gameId)
getRefund
nonpayablefunction getRefund(bytes32 gameId)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
play
nonpayablefunction play(bool isLong, uint256 depositAmount, bytes32 gameId)
playWithDeposit
nonpayablefunction playWithDeposit(bool isLong, uint256 depositAmount, bytes32 gameId)
playWithPermit
nonpayablefunction playWithPermit(bool isLong, uint256 depositAmount, bytes32 gameId, tuple permitData)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
retrieveRewards
nonpayablefunction retrieveRewards(bytes32 gameId)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setFee
nonpayablefunction setFee(uint256 newFee)
setTreasury
nonpayablefunction setTreasury(address newTreasury)
events
NewTreasury
event NewTreasury(address newTreasury)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SetupCancelled
event SetupCancelled(bytes32 gameId, address initiator)
SetupCreated
event SetupCreated((bytes32 gameId, uint8 feedNumber, uint32 startTime, uint32 endTime, int192 startingPrice, uint32 takeProfitPrice, uint32 stopLossPrice, bool isLong, address creator) data)
SetupFinalized
event SetupFinalized(bytes32 gameId, bool takeProfitWon, int192 finalPrice, uint256 endTime, uint256 initiatorFee, uint256 rate)
SetupGameID
event SetupGameID(bytes32 gameId)
SetupNewPlayer
event SetupNewPlayer(bytes32 gameId, bool isLong, uint256 depositAmount, address player)
SetupRetrieved
event SetupRetrieved(bytes32 gameId, address player, uint256 depositAmount)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
creation bytecode
0x608060405261070860045562dd7c006005556103e86006553480156200002457600080fd5b5060405162002cf238038062002cf283398101604081905262000047916200012a565b620000546000336200007b565b50600780546001600160a01b0319166001600160a01b03929092169190911790556200015c565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1662000120576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620000d73390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000124565b5060005b92915050565b6000602082840312156200013d57600080fd5b81516001600160a01b03811681146200015557600080fd5b9392505050565b612b86806200016c6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806391d14854116100f9578063ddca3f4311610097578063ea8d53ef11610071578063ea8d53ef146103e8578063f0f44260146103fb578063f579f8821461040e578063f6ccb8261461045757600080fd5b8063ddca3f43146103b9578063e545e5e6146103c2578063e8a948bd146103d557600080fd5b8063ba22de82116100d3578063ba22de8214610345578063c2d09fed14610358578063cb1de7421461036b578063d547741f146103a657600080fd5b806391d1485414610303578063a217fddf14610316578063ad1def1e1461031e57600080fd5b806356715761116101665780636db5c8fd116101405780636db5c8fd1461029c5780637f01ca7d146102a55780637ffc32a3146102b857806381d5f218146102d857600080fd5b8063567157611461025557806361d027b31461025e57806369fe0e2d1461028957600080fd5b806301648da9146101ae57806301ffc9a7146101c35780631199cdd2146101eb578063248a9ca3146101fe5780632f2ff15d1461022f57806336568abe14610242575b600080fd5b6101c16101bc3660046124cb565b61046a565b005b6101d66101d1366004612510565b610bcc565b60405190151581526020015b60405180910390f35b6101c16101f9366004612556565b610c03565b61022161020c366004612589565b60009081526020819052604090206001015490565b6040519081526020016101e2565b6101c161023d3660046125b7565b610ee0565b6101c16102503660046125b7565b610f0b565b61022160045481565b600754610271906001600160a01b031681565b6040516001600160a01b0390911681526020016101e2565b6101c1610297366004612589565b610f3e565b61022160055481565b6101c16102b3366004612589565b610f4f565b6102cb6102c6366004612589565b61113b565b6040516101e29190612611565b6102216102e63660046125b7565b600360209081526000928352604080842090915290825290205481565b6101d66103113660046125b7565b6112b5565b610221600081565b6102217f1d93c87416ca7b54f0fb8323167b72760e8e2ec93d48660953897a150f97a8b481565b6101c16103533660046126d0565b6112de565b6101c1610366366004612589565b6116a9565b6103996103793660046125b7565b600260209081526000928352604080842090915290825290205460ff1681565b6040516101e29190612720565b6101c16103b43660046125b7565b611a6d565b61022160065481565b6101c16103d036600461275d565b611a92565b6101c16103e3366004612556565b611f8e565b6101c16103f63660046127f2565b6120c9565b6101c1610409366004612814565b6120dd565b61043c61041c366004612589565b600160208190526000918252604090912080549181015460029091015483565b604080519384526020840192909252908201526060016101e2565b6101c1610465366004612589565b61217b565b7f1d93c87416ca7b54f0fb8323167b72760e8e2ec93d48660953897a150f97a8b4610494816122e1565b600061049f8361113b565b90506000816060015160028111156104b9576104b96125e7565b146104df5760405162461bcd60e51b81526004016104d690612831565b60405180910390fd5b600080600760009054906101000a90046001600160a01b03166001600160a01b0316632cf4704a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105599190612858565b6001600160a01b031663d369dc618785602001516040518363ffffffff1660e01b815260040161058a929190612875565b60408051808303816000875af11580156105a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cc91906128cd565b63ffffffff1691509150826101000151600014806105ed5750610120830151155b156106a657600085815260016020819052604090912001805460ff60481b1916600160481b1790556091610627655af3107a40008461292e565b6000878152600160208190526040918290200180546001600160c01b039390931690931b91909117909155835190517f1bb2a2f27eacf65458312514d65e8198c0f3823a644f49b5a8a57b536cd5cf4091610696918891909182526001600160a01b0316602082015260400190565b60405180910390a1505050505050565b600080846040015115610952576101608501516106c9655af3107a40008661292e565b6001600160c01b03161115806106fc57506101408501516106f0655af3107a40008661292e565b6001600160c01b031610155b6107345760405162461bcd60e51b815260206004820152600960248201526810d85b89dd08195b9960ba1b60448201526064016104d6565b61014085015161074a655af3107a40008661292e565b6001600160c01b0316106108455760075460c086015160e087015160065488516040516308d9fee360e41b81526001600160a01b0390951694638d9fee309461079b94909390929091600401612954565b60408051808303816000875af11580156107b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dd9190612978565b604080518a815260016020820152601788900b91810191909152606081018690526080810182905260a081018390529093509091507fe92527de7c4bbf64506c9d7e38bcf6beb1c2e3b20361174a7101aa81bb8b39839060c0015b60405180910390a1610b42565b61016085015161085b655af3107a40008661292e565b6001600160c01b03161161094d5760075460e086015160c087015160065488516040516308d9fee360e41b81526001600160a01b0390951694638d9fee30946108ac94909390929091600401612954565b60408051808303816000875af11580156108ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ee9190612978565b604080518a815260006020820152601788900b91810191909152606081018690526080810182905260a081018390529093509091507fe92527de7c4bbf64506c9d7e38bcf6beb1c2e3b20361174a7101aa81bb8b39839060c001610838565b610b42565b610160850151610968655af3107a40008661292e565b6001600160c01b031610158061099b575061014085015161098f655af3107a40008661292e565b6001600160c01b031611155b6109d35760405162461bcd60e51b815260206004820152600960248201526810d85b89dd08195b9960ba1b60448201526064016104d6565b6101608501516109e9655af3107a40008661292e565b6001600160c01b031610610a3a5760075460e086015160c087015160065488516040516308d9fee360e41b81526001600160a01b0390951694638d9fee30946108ac94909390929091600401612954565b610140850151610a50655af3107a40008661292e565b6001600160c01b031611610b425760075460c086015160e087015160065488516040516308d9fee360e41b81526001600160a01b0390951694638d9fee3094610aa194909390929091600401612954565b60408051808303816000875af1158015610abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae39190612978565b604080518a815260016020820152601788900b81830152606081018790526080810183905260a0810184905290519194509192507fe92527de7c4bbf64506c9d7e38bcf6beb1c2e3b20361174a7101aa81bb8b39839181900360c00190a15b60008781526001602081905260409091209081015460028201839055815460c086901b63ffffffff60c01b199091161790915560ff60481b19166902000000000000000000176091610b9a655af3107a40008761292e565b60008a81526001602081905260409091206001600160c01b039290921690921b9290921791015550505050505b505050565b60006001600160e01b03198216637965db0b60e01b1480610bfd57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610c0e8261113b565b9050600081606001516002811115610c2857610c286125e7565b14610c455760405162461bcd60e51b81526004016104d690612831565b42600382608001518360a00151610c5c919061299c565b610c6691906129af565b8260800151610c7591906129c3565b118015610cb4575060c081015163ffffffff90610c939085906129c3565b111580610cb4575060e081015163ffffffff90610cb19085906129c3565b11155b610cd05760405162461bcd60e51b81526004016104d6906129d6565b600082815260036020908152604080832033845290915290205415610d075760405162461bcd60e51b81526004016104d690612a0d565b600754604051632b329c5360e21b8152600481018590523360248201526001600160a01b039091169063acca714c906044015b600060405180830381600087803b158015610d5457600080fd5b505af1158015610d68573d6000803e3d6000fd5b50505060008381526003602090815260408083203384529091529020849055508315610e125760008281526002602090815260408083203384529091529020805460ff1916600190811790915561012082015160b191610dc891906129c3565b901b60718260e0015185610ddc91906129c3565b60008581526001602081905260409091200180546bffffffff00000000ffffffff60711b19169190921b17919091179055610e92565b6000828152600260208181526040808420338552909152909120805460ff1916909117905561010081015160d190610e4b9060016129c3565b901b60518260c0015185610e5f91906129c3565b600085815260016020819052604090912001805463ffffffff60511b63ffffffff60d11b0119169190921b179190911790555b6040805183815285151560208201529081018490523360608201527f8993f9d83fb7b79296de3541e38e3e6ed9e26e74fb5778902dfceae433c045e59060800160405180910390a150505050565b600082815260208190526040902060010154610efb816122e1565b610f0583836122ee565b50505050565b6001600160a01b0381163314610f345760405163334bd91960e11b815260040160405180910390fd5b610bc78282612380565b6000610f49816122e1565b50600655565b6000610f5a8261113b565b9050600181606001516002811115610f7457610f746125e7565b14610f915760405162461bcd60e51b81526004016104d690612831565b6001600083815260026020908152604080832033845290915290205460ff166003811115610fc157610fc16125e7565b1480610ffa57506002600083815260026020908152604080832033845290915290205460ff166003811115610ff857610ff86125e7565b145b6110385760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b60448201526064016104d6565b600082815260026020908152604080832033808552908352818420805460ff1916600390811790915560075487865290845282852082865290935292819020549051631eb489b760e21b8152600481019190915260248101929092526001600160a01b031690637ad226dc906044015b600060405180830381600087803b1580156110c257600080fd5b505af11580156110d6573d6000803e3d6000fd5b50505060008381526003602090815260408083203380855290835292819020548151878152928301939093528101919091527fbae042816c8585d0e94a8accafa7be8d89a1435f164b6af4711d25c21c72503991506060015b60405180910390a15050565b6111ad604080516101c0810182526000808252602082018190529181018290529060608201908152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008281526001602081815260409283902080549201546001600160a01b038316855263ffffffff60a084811c8216608088015260c085901c82169087015260e084901c61018087015280821661014087015281831c1661016086015260ff9381901c8416918501919091529091604882901c166002811115611232576112326125e7565b83606001906002811115611248576112486125e7565b9081600281111561125b5761125b6125e7565b905250600160fa82901c14604084015263ffffffff605182901c811660c0850152607182901c811660e0850152609182901c81166101a085015260b182901c811661012085015260d19190911c1661010083015250919050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60006112e98361113b565b9050600081606001516002811115611303576113036125e7565b146113205760405162461bcd60e51b81526004016104d690612831565b42600382608001518360a00151611337919061299c565b61134191906129af565b826080015161135091906129c3565b1161136d5760405162461bcd60e51b81526004016104d6906129d6565b84156113e65760e081015163ffffffff906113899086906129c3565b11156113e15760405162461bcd60e51b815260206004820152602160248201527f47616d6520697320636c6f73656420666f72206e657720545020706c617965726044820152607360f81b60648201526084016104d6565b611454565b60c081015163ffffffff906113fc9086906129c3565b11156114545760405162461bcd60e51b815260206004820152602160248201527f47616d6520697320636c6f73656420666f72206e657720534c20706c617965726044820152607360f81b60648201526084016104d6565b60008381526003602090815260408083203384529091529020541561148b5760405162461bcd60e51b81526004016104d690612a0d565b6007546001600160a01b0316631567920a853385356114b06040880160208901612a44565b604080516001600160e01b031960e088901b16815260048101959095526001600160a01b039093166024850152604484019190915260ff1660648301528501356084820152606085013560a482015260c401600060405180830381600087803b15801561151c57600080fd5b505af1158015611530573d6000803e3d6000fd5b505050600084815260036020908152604080832033845290915290208590555084156115da5760008381526002602090815260408083203384529091529020805460ff1916600190811790915561012082015160b19161159091906129c3565b901b60718260e00151866115a491906129c3565b60008681526001602081905260409091200180546bffffffff00000000ffffffff60711b19169190921b1791909117905561165a565b6000838152600260208181526040808420338552909152909120805460ff1916909117905561010081015160d1906116139060016129c3565b901b60518260c001518661162791906129c3565b600086815260016020819052604090912001805463ffffffff60511b63ffffffff60d11b0119169190921b179190911790555b6040805184815286151560208201529081018590523360608201527f8993f9d83fb7b79296de3541e38e3e6ed9e26e74fb5778902dfceae433c045e59060800160405180910390a15050505050565b60006116b48261113b565b90506002816060015160028111156116ce576116ce6125e7565b146116eb5760405162461bcd60e51b81526004016104d690612831565b6001600083815260026020908152604080832033845290915290205460ff16600381111561171b5761171b6125e7565b148061175457506002600083815260026020908152604080832033845290915290205460ff166003811115611752576117526125e7565b145b6117925760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b60448201526064016104d6565b8060400151156118f457806101400151816101a00151106118d75760015b600083815260026020908152604080832033845290915290205460ff1660038111156117de576117de6125e7565b146118165760405162461bcd60e51b8152602060048201526008602482015267165bdd481b1bdcdd60c21b60448201526064016104d6565b600082815260026020818152604080842033808652908352818520805460ff1916600390811790915560075488875260018552838720909501546006549185528387208388529094529482902054915163fcf08c4f60e01b815260048101939093526024830152604482019390935260648101929092526001600160a01b03169063fcf08c4f90608401600060405180830381600087803b1580156118ba57600080fd5b505af11580156118ce573d6000803e3d6000fd5b50505050611a14565b806101600151816101a00151116118ef5760026117b0565b611a14565b806101600151816101a001511061190c5760026117b0565b806101400151816101a0015111611a14576001600083815260026020908152604080832033845290915290205460ff16600381111561194d5761194d6125e7565b146119855760405162461bcd60e51b8152602060048201526008602482015267165bdd481b1bdcdd60c21b60448201526064016104d6565b600082815260026020818152604080842033808652908352818520805460ff1916600390811790915560075488875260018552838720909501546006549185528387208388529094529482902054915163fcf08c4f60e01b815260048101939093526024830152604482019390935260648101929092526001600160a01b03169063fcf08c4f906084016110a8565b60008281526003602090815260408083203380855290835292819020548151868152928301939093528101919091527fbae042816c8585d0e94a8accafa7be8d89a1435f164b6af4711d25c21c7250399060600161112f565b600082815260208190526040902060010154611a88816122e1565b610f058383612380565b600454611aa54263ffffffff881661299c565b1015611af35760405162461bcd60e51b815260206004820181905260248201527f4d696e2067616d65206475726174696f6e206d7573742062652068696768657260448201526064016104d6565b600554611b064263ffffffff881661299c565b1115611b545760405162461bcd60e51b815260206004820152601f60248201527f4d61782067616d65206475726174696f6e206d757374206265206c6f7765720060448201526064016104d6565b60004286868633604051602001611bb295949392919094855260e093841b6001600160e01b0319908116602087015292841b83166024860152921b16602883015260601b6bffffffffffffffffffffffff1916602c82015260400190565b60408051601f19818403018152828252805160209182012060075463167a382560e11b8552925190945060009384936001600160a01b031692632cf4704a926004808401938290030181865afa158015611c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c349190612858565b6001600160a01b031663d369dc6185876040518363ffffffff1660e01b8152600401611c61929190612875565b60408051808303816000875af1158015611c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca391906128cd565b9092509050603c611cba63ffffffff83164261299c565b1115611cff5760405162461bcd60e51b815260206004820152601460248201527313db190818da185a5b9b1a5b9ac81c995c1bdc9d60621b60448201526064016104d6565b8815611d975763ffffffff8616611d1c655af3107a40008461292e565b6001600160c01b0316118015611d4f575063ffffffff8716611d44655af3107a40008461292e565b6001600160c01b0316105b611d925760405162461bcd60e51b815260206004820152601460248201527357726f6e67207470206f7220736c20707269636560601b60448201526064016104d6565b611e24565b63ffffffff8616611dae655af3107a40008461292e565b6001600160c01b0316108015611de1575063ffffffff8716611dd6655af3107a40008461292e565b6001600160c01b0316115b611e245760405162461bcd60e51b815260206004820152601460248201527357726f6e67207470206f7220736c20707269636560601b60448201526064016104d6565b611e4860405180606001604052806000815260200160008152602001600081525090565b63ffffffff60c01b60c08a901b1663ffffffff60a01b60a084901b16331717815260e0611e7b655af3107a400085612a5f565b825163ffffffff91821690921b90911782528816602088811b67ffffffff000000001691909117604088901b68ff00000000000000001617908201528915611ecc57602081018051600160fa1b1790525b6000848152600160208181526040928390208451815581850151928101929092558284015160029092019190915581516101208101835286815260ff89169181019190915263ffffffff808516828401528b81166060830152601786900b60808301528a811660a0830152891660c08201528b151560e08201523361010082015290517f6461fb14256a649e3c164a679d487248f78fc8ffd9024a6a18b4f56c5d3bc5c091611f7a91612a9d565b60405180910390a150505050505050505050565b6000611f998261113b565b9050600081606001516002811115611fb357611fb36125e7565b14611fd05760405162461bcd60e51b81526004016104d690612831565b42600382608001518360a00151611fe7919061299c565b611ff191906129af565b826080015161200091906129c3565b11801561203f575060c081015163ffffffff9061201e9085906129c3565b11158061203f575060e081015163ffffffff9061203c9085906129c3565b11155b61205b5760405162461bcd60e51b81526004016104d6906129d6565b6000828152600360209081526040808320338452909152902054156120925760405162461bcd60e51b81526004016104d690612a0d565b6007546040516319b7efed60e21b8152600481018590523360248201526001600160a01b03909116906366dfbfb490604401610d3a565b60006120d4816122e1565b50600455600555565b60006120e8816122e1565b6001600160a01b03821661212d5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b60448201526064016104d6565b600780546001600160a01b0319166001600160a01b0384169081179091556040519081527fafa147634b29e2c7bd53ce194256b9f41cfb9ba3036f2b822fdd1d965beea0869060200161112f565b7f1d93c87416ca7b54f0fb8323167b72760e8e2ec93d48660953897a150f97a8b46121a5816122e1565b60006121b08361113b565b905080608001516000036121fb5760405162461bcd60e51b815260206004820152601260248201527111d85b5948191bd95cdb89dd08195e1a5cdd60721b60448201526064016104d6565b42600382608001518360a00151612212919061299c565b61221c91906129af565b826080015161222b91906129c3565b108015612248575061010081015115806122485750610120810151155b8061225657508060a0015142115b6122725760405162461bcd60e51b81526004016104d690612831565b600083815260016020818152604092839020909101805460ff60481b1916600160481b179055825182518681526001600160a01b03909116918101919091527f1bb2a2f27eacf65458312514d65e8198c0f3823a644f49b5a8a57b536cd5cf40910160405180910390a1505050565b6122eb81336123eb565b50565b60006122fa83836112b5565b612378576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556123303390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610bfd565b506000610bfd565b600061238c83836112b5565b15612378576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610bfd565b6123f582826112b5565b6124245760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016104d6565b5050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261244f57600080fd5b813567ffffffffffffffff8082111561246a5761246a612428565b604051601f8301601f19908116603f0116810190828211818310171561249257612492612428565b816040528381528660208588010111156124ab57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156124de57600080fd5b823567ffffffffffffffff8111156124f557600080fd5b6125018582860161243e565b95602094909401359450505050565b60006020828403121561252257600080fd5b81356001600160e01b03198116811461253a57600080fd5b9392505050565b8035801515811461255157600080fd5b919050565b60008060006060848603121561256b57600080fd5b61257484612541565b95602085013595506040909401359392505050565b60006020828403121561259b57600080fd5b5035919050565b6001600160a01b03811681146122eb57600080fd5b600080604083850312156125ca57600080fd5b8235915060208301356125dc816125a2565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b6003811061260d5761260d6125e7565b9052565b81516001600160a01b031681526101c081016020830151612637602084018260ff169052565b50604083015161264b604084018215159052565b50606083015161265e60608401826125fd565b506080838101519083015260a0808401519083015260c0808401519083015260e08084015190830152610100808401519083015261012080840151908301526101408084015190830152610160808401519083015261018080840151908301526101a092830151929091019190915290565b60008060008084860360e08112156126e757600080fd5b6126f086612541565b945060208601359350604086013592506080605f198201121561271257600080fd5b509295919450926060019150565b6020810160048310612734576127346125e7565b91905290565b63ffffffff811681146122eb57600080fd5b803560ff8116811461255157600080fd5b60008060008060008060c0878903121561277657600080fd5b61277f87612541565b9550602087013561278f8161273a565b9450604087013561279f8161273a565b935060608701356127af8161273a565b92506127bd6080880161274c565b915060a087013567ffffffffffffffff8111156127d957600080fd5b6127e589828a0161243e565b9150509295509295509295565b6000806040838503121561280557600080fd5b50508035926020909101359150565b60006020828403121561282657600080fd5b813561253a816125a2565b6020808252600d908201526c57726f6e67207374617475732160981b604082015260600190565b60006020828403121561286a57600080fd5b815161253a816125a2565b604081526000835180604084015260005b818110156128a35760208187018101516060868401015201612886565b506000606082850101526060601f19601f83011684010191505060ff831660208301529392505050565b600080604083850312156128e057600080fd5b82518060170b81146128f157600080fd5b60208401519092506125dc8161273a565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160c01b038381168061294857612948612902565b92169190910492915050565b938452602084019290925260408301526001600160a01b0316606082015260800190565b6000806040838503121561298b57600080fd5b505080516020909101519092909150565b81810381811115610bfd57610bfd612918565b6000826129be576129be612902565b500490565b80820180821115610bfd57610bfd612918565b6020808252601e908201527f47616d6520697320636c6f73656420666f72206e657720706c61796572730000604082015260600190565b6020808252601b908201527f596f752061726520616c726561647920696e207468652067616d650000000000604082015260600190565b600060208284031215612a5657600080fd5b61253a8261274c565b60008160170b8360170b80612a7657612a76612902565b6001600160bf1b0319821460001982141615612a9457612a94612918565b90059392505050565b6000610120820190508251825260ff602084015116602083015263ffffffff60408401511660408301526060830151612ade606084018263ffffffff169052565b506080830151612af3608084018260170b9052565b5060a0830151612b0b60a084018263ffffffff169052565b5060c0830151612b2360c084018263ffffffff169052565b5060e0830151612b3760e084018215159052565b50610100928301516001600160a01b031691909201529056fea264697066735822122007fd02e840230549e4c3f3ccdd87d353041f8c6ce314c4244a1cc9d413976aa164736f6c634300081800330000000000000000000000004eddb15a0abfa2c349e8065af9214e942d9a6d36