61.8k txs
61.8k calls
constructor
constructor()
functions
decodeData
viewfunction decodeData(bytes32 gameId) view returns (tuple gameData)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
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 depositAmount, uint256 initiatorPrice, uint256 opponentPrice, int192 finalPrice)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isActive
viewfunction isActive() view returns (bool)
maxDuration
viewfunction maxDuration() view returns (uint256)
minDuration
viewfunction minDuration() view returns (uint256)
refundFee
viewfunction refundFee() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
treasury
viewfunction treasury() view returns (address)
acceptGame
nonpayablefunction acceptGame(bytes32 gameId, uint256 opponentPrice)
acceptGameWithDeposit
nonpayablefunction acceptGameWithDeposit(bytes32 gameId, uint256 opponentPrice)
acceptGameWithPermit
nonpayablefunction acceptGameWithPermit(bytes32 gameId, uint256 opponentPrice, tuple permitData)
changeGameDuration
nonpayablefunction changeGameDuration(uint256 newMaxDuration, uint256 newMinDuration)
closeGame
nonpayablefunction closeGame(bytes32 gameId)
createGame
nonpayablefunction createGame(uint8 feedNumber, address opponent, uint32 endTime, uint256 initiatorPrice, uint256 depositAmount, address token)
createGameWithDeposit
nonpayablefunction createGameWithDeposit(uint8 feedNumber, address opponent, uint32 endTime, uint256 initiatorPrice, uint256 depositAmount, address token)
createGameWithPermit
nonpayablefunction createGameWithPermit(uint8 feedNumber, address opponent, uint32 endTime, uint256 initiatorPrice, uint256 depositAmount, address token, tuple permitData)
finalizeGame
nonpayablefunction finalizeGame(bytes32 gameId, bytes unverifiedReport)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
liquidateGame
nonpayablefunction liquidateGame(bytes32 gameId)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setFee
nonpayablefunction setFee(uint256 newFee)
setRefundFee
nonpayablefunction setRefundFee(uint256 newRefundFee)
setTreasury
nonpayablefunction setTreasury(address newTreasury)
toggleActive
nonpayablefunction toggleActive()
events
ExactPriceAccepted
event ExactPriceAccepted(bytes32 gameId, address opponent, uint256 opponentPrice)
ExactPriceCancelled
event ExactPriceCancelled(bytes32 gameId)
ExactPriceCreated
event ExactPriceCreated(bytes32 gameId, uint8 feedNumber, address opponent, uint32 startTime, uint32 endTime, address initiator, uint256 initiatorPrice, uint256 depositAmount, address gameToken)
ExactPriceFinalized
event ExactPriceFinalized(bytes32 gameId, uint256 winnerGuessPrice, uint256 loserGuessPrice, int192 finalPrice, uint8 gameStatus)
NewFee
event NewFee(uint256 newFee)
NewGameDuration
event NewGameDuration(uint256 newMaxDuration, uint256 newMinDuration)
NewRefundFee
event NewRefundFee(uint256 newRefundFee)
NewTreasury
event NewTreasury(address newTreasury)
OneVsOneToggle
event OneVsOneToggle(bool isActive)
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)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
creation bytecode
0x60806040526101f46003556103e86004556101186005556224ea006006556007805460ff191660011790553480156200003757600080fd5b50620000456000336200004c565b50620000fb565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16620000f1576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620000a83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620000f5565b5060005b92915050565b612ed6806200010b6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80637ffc32a311610104578063cadbe9ff116100a2578063ea8d53ef11610071578063ea8d53ef146103f7578063f0f442601461040a578063f579f8821461041d578063f6ccb8261461049457600080fd5b8063cadbe9ff146103b5578063d547741f146103c8578063ddca3f43146103db578063e1c44400146103e457600080fd5b8063a217fddf116100de578063a217fddf14610360578063ad1def1e14610368578063b5f8d63c1461038f578063c53535e5146103a257600080fd5b80637ffc32a31461032457806390fe6ddb1461034457806391d148541461034d57600080fd5b8063567157611161017c5780636db5c8fd1161014b5780636db5c8fd146102e25780637381a465146102eb57806378127040146102fe57806379debe591461031157600080fd5b8063567157611461028857806357a489f91461029157806361d027b3146102a457806369fe0e2d146102cf57600080fd5b806329c68dc1116101b857806329c68dc1146102455780632f2ff15d1461024f57806336568abe1461026257806336fd711e1461027557600080fd5b806301ffc9a7146101df57806322f3e2d414610207578063248a9ca314610214575b600080fd5b6101f26101ed3660046126c0565b6104a7565b60405190151581526020015b60405180910390f35b6007546101f29060ff1681565b6102376102223660046126f1565b60009081526020819052604090206001015490565b6040519081526020016101fe565b61024d6104de565b005b61024d61025d36600461271f565b610537565b61024d61027036600461271f565b610562565b61024d6102833660046126f1565b61059a565b61023760055481565b61024d61029f36600461274f565b61062f565b6002546102b7906001600160a01b031681565b6040516001600160a01b0390911681526020016101fe565b61024d6102dd3660046126f1565b610873565b61023760065481565b61024d6102f9366004612789565b6108fb565b61024d61030c36600461274f565b610b68565b61024d61031f3660046127e7565b610d05565b6103376103323660046126f1565b6110ba565b6040516101fe919061288d565b61023760045481565b6101f261035b36600461271f565b611193565b610237600081565b6102377f1d93c87416ca7b54f0fb8323167b72760e8e2ec93d48660953897a150f97a8b481565b61024d61039d3660046127e7565b6111bc565b61024d6103b03660046126f1565b61142f565b61024d6103c3366004612901565b6115e2565b61024d6103d636600461271f565b611e17565b61023760035481565b61024d6103f23660046129bc565b611e3c565b61024d61040536600461274f565b612212565b61024d610418366004612a3c565b61225d565b61046461042b3660046126f1565b60016020819052600091825260409091208054918101546002820154600383015460048401546005909401549293919290919060170b86565b604080519687526020870195909552938501929092526060840152608083015260170b60a082015260c0016101fe565b61024d6104a23660046126f1565b6122fb565b60006001600160e01b03198216637965db0b60e01b14806104d857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006104e981612579565b6007805460ff8082161560ff1990921682179092556040519116151581527fb5e7f4f761942052db060859ee0965bbd1fd209fb73b7b201b11506b28bd2cd09060200160405180910390a150565b60008281526020819052604090206001015461055281612579565b61055c8383612586565b50505050565b6001600160a01b038116331461058b5760405163334bd91960e11b815260040160405180910390fd5b6105958282612618565b505050565b60006105a581612579565b610bb88211156105f25760405162461bcd60e51b815260206004820152601360248201527204665652065786365656473207468652063617606c1b60448201526064015b60405180910390fd5b60048290556040518281527ff355ec35fd925c464b65f29060888d79e9e9599fa614c0bb209e8b6fc812bfa7906020015b60405180910390a15050565b600061063a836110ba565b905060018160a00151600481111561065457610654612855565b146106715760405162461bcd60e51b81526004016105e990612a59565b426003826040015183606001516106889190612a96565b6106929190612aa9565b82604001516106a19190612acb565b10156106bf5760405162461bcd60e51b81526004016105e990612ade565b6000838152600160205260409020600301548290036106f05760405162461bcd60e51b81526004016105e990612b15565b60808101516001600160a01b03161561073d5780608001516001600160a01b0316336001600160a01b0316146107385760405162461bcd60e51b81526004016105e990612b40565b61077e565b60208101516001600160a01b031633036107695760405162461bcd60e51b81526004016105e990612b77565b60008381526001602052604090208054331790555b600083815260016020526040808220600480820186905560028054920154925163c4e2f86560e01b81526001600160a01b039092169363c4e2f865936107cc93909233928a92909101612b9f565b6020604051808303816000875af11580156107eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080f9190612bc5565b5060008381526001602081905260409182902001805460ff60d01b1916600360d01b179055517f1a94cf8518791e755fc1acdb85a1fe1ddf6178fed2ab170714fc05d2eef7f1ec9061086690859033908690612bde565b60405180910390a1505050565b600061087e81612579565b610bb88211156108c65760405162461bcd60e51b815260206004820152601360248201527204665652065786365656473207468652063617606c1b60448201526064016105e9565b60038290556040518281527f63fe946ed58429ac3c5e64d4356ff92c26d7fa1e73586515df8ba9f059ab54a590602001610623565b6000610906846110ba565b905060018160a00151600481111561092057610920612855565b1461093d5760405162461bcd60e51b81526004016105e990612a59565b426003826040015183606001516109549190612a96565b61095e9190612aa9565b826040015161096d9190612acb565b101561098b5760405162461bcd60e51b81526004016105e990612ade565b6000848152600160205260409020600301548390036109bc5760405162461bcd60e51b81526004016105e990612b15565b60808101516001600160a01b031615610a095780608001516001600160a01b0316336001600160a01b031614610a045760405162461bcd60e51b81526004016105e990612b40565b610a4a565b60208101516001600160a01b03163303610a355760405162461bcd60e51b81526004016105e990612b77565b60008481526001602052604090208054331790555b600084815260016020908152604080832060048101879055600280549101546001600160a01b0390911693636affb29a93919233928a9291893591610a93918b01908b01612bfd565b89604001358a606001356040518963ffffffff1660e01b8152600401610ac0989796959493929190612c18565b6020604051808303816000875af1158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b039190612bc5565b5060008481526001602081905260409182902001805460ff60d01b1916600360d01b179055517f1a94cf8518791e755fc1acdb85a1fe1ddf6178fed2ab170714fc05d2eef7f1ec90610b5a90869033908790612bde565b60405180910390a150505050565b6000610b73836110ba565b905060018160a001516004811115610b8d57610b8d612855565b14610baa5760405162461bcd60e51b81526004016105e990612a59565b42600382604001518360600151610bc19190612a96565b610bcb9190612aa9565b8260400151610bda9190612acb565b1015610bf85760405162461bcd60e51b81526004016105e990612ade565b600083815260016020526040902060030154829003610c295760405162461bcd60e51b81526004016105e990612b15565b60808101516001600160a01b031615610c765780608001516001600160a01b0316336001600160a01b031614610c715760405162461bcd60e51b81526004016105e990612b40565b610cb7565b60208101516001600160a01b03163303610ca25760405162461bcd60e51b81526004016105e990612b77565b60008381526001602052604090208054331790555b6000838152600160205260408082206004808201869055600280549201549251632407471360e11b81526001600160a01b039092169363480e8e26936107cc93909233928a92909101612b9f565b60075460ff16610d275760405162461bcd60e51b81526004016105e990612c5a565b6002546040805163167a382560e11b815290516000926001600160a01b031691632cf4704a9160048083019260209291908290030181865afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d959190612c84565b60405163ae82b5c960e01b815260ff891660048201526001600160a01b03919091169063ae82b5c990602401602060405180830381865afa158015610dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e029190612bc5565b03610e1f5760405162461bcd60e51b81526004016105e990612ca1565b336001600160a01b03861603610e475760405162461bcd60e51b81526004016105e990612b77565b600554610e5a4263ffffffff8716612a96565b1015610e785760405162461bcd60e51b81526004016105e990612ccc565b600654610e8b4263ffffffff8716612a96565b1115610ea95760405162461bcd60e51b81526004016105e990612d01565b60008442338830604051602001610ec4959493929190612d38565b60408051808303601f1901815290829052805160209091012060025463039279d760e61b8352600483018290526001600160a01b038581166024850152919350169063e49e75c090604401600060405180830381600087803b158015610f2957600080fd5b505af1158015610f3d573d6000803e3d6000fd5b5050600254604051632407471360e11b81526001600160a01b03909116925063480e8e269150610f7890869033908690600090600401612b9f565b6020604051808303816000875af1158015610f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbb9190612bc5565b50600081815260016020526040902054156110065760405162461bcd60e51b815260206004820152600b60248201526a47616d652065786973747360a81b60448201526064016105e9565b60008181526001602081905260409182902060038101879055600281018690556001600160a01b03891660a089811b63ffffffff60a01b169190911780835560ff60d81b60d88d901b1633429384901b811791909117600160d01b1793909401839055935191927fc43ac96bd8c2538554ad97ca56225ef030913f833f06564d7cdb86032cd4cd6c926110a79287928e928e92918e918e908e908e90612d86565b60405180910390a1505050505050505050565b6110f06040805160c08101825260008082526020820181905291810182905260608101829052608081018290529060a082015290565b60008281526001602081815260409283902080549201546001600160a01b03808416608087015263ffffffff60a085811c821660608901529183169387019390935281901c909116928401929092529060ff60d082901c16600481111561115957611159612855565b8360a00190600481111561116f5761116f612855565b9081600481111561118257611182612855565b90525060d81c60ff16825250919050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60075460ff166111de5760405162461bcd60e51b81526004016105e990612c5a565b6002546040805163167a382560e11b815290516000926001600160a01b031691632cf4704a9160048083019260209291908290030181865afa158015611228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190612c84565b60405163ae82b5c960e01b815260ff891660048201526001600160a01b03919091169063ae82b5c990602401602060405180830381865afa158015611295573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b99190612bc5565b036112d65760405162461bcd60e51b81526004016105e990612ca1565b336001600160a01b038616036112fe5760405162461bcd60e51b81526004016105e990612b77565b6005546113114263ffffffff8716612a96565b101561132f5760405162461bcd60e51b81526004016105e990612ccc565b6006546113424263ffffffff8716612a96565b11156113605760405162461bcd60e51b81526004016105e990612d01565b6000844233883060405160200161137b959493929190612d38565b60408051808303601f1901815290829052805160209091012060025463039279d760e61b8352600483018290526001600160a01b038581166024850152919350169063e49e75c090604401600060405180830381600087803b1580156113e057600080fd5b505af11580156113f4573d6000803e3d6000fd5b505060025460405163c4e2f86560e01b81526001600160a01b03909116925063c4e2f8659150610f7890869033908690600090600401612b9f565b7f1d93c87416ca7b54f0fb8323167b72760e8e2ec93d48660953897a150f97a8b461145981612579565b6000611464836110ba565b90506203f48081606001514261147a9190612a96565b10156114b45760405162461bcd60e51b8152602060048201526009602482015268546f6f206561726c7960b81b60448201526064016105e9565b60018160a0015160048111156114cc576114cc612855565b146114e95760405162461bcd60e51b81526004016105e990612a59565b600280546000858152600160209081526040918290209093015492840151600480549251637a879fa960e11b8152908101949094526001600160a01b039081166024850152604484019190915260648301869052169063f50f3f5290608401600060405180830381600087803b15801561156257600080fd5b505af1158015611576573d6000803e3d6000fd5b5060d09250600291506115869050565b60008581526001602081905260409182902001805460ff60d01b191660ff9390931690931b91909117909155517f4508d504920b09c87708d104ad40433e6e7f6104005b44c0ebf4231f9c19ce33906108669085815260200190565b7f1d93c87416ca7b54f0fb8323167b72760e8e2ec93d48660953897a150f97a8b461160c81612579565b6000611617846110ba565b9050600080600260009054906101000a90046001600160a01b03166001600160a01b0316632cf4704a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116939190612c84565b835160405163d369dc6160e01b81526001600160a01b03929092169163d369dc61916116c491899190600401612ddc565b60408051808303816000875af11580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117069190612e34565b909250905060038360a00151600481111561172357611723612855565b146117405760405162461bcd60e51b81526004016105e990612a59565b826060015142101561178a5760405162461bcd60e51b81526020600482015260136024820152720a8dede40cac2e4d8f240e8de40ccd2dcd2e6d606b1b60448201526064016105e9565b603c83606001518263ffffffff166117a29190612a96565b11156117e75760405162461bcd60e51b815260206004820152601460248201527313db190818da185a5b9b1a5b9ac81c995c1bdc9d60621b60448201526064016105e9565b6000868152600160205260408120600301546001600160c01b038416106118325760008781526001602052604090206003015461182d906001600160c01b038516612a96565b611858565b600087815260016020526040902060030154611858906001600160c01b03851690612a96565b600088815260016020526040812060040154919250906001600160c01b038516106118a7576000888152600160205260409020600401546118a2906001600160c01b038616612a96565b6118cd565b6000888152600160205260409020600401546118cd906001600160c01b03861690612a96565b905060008183146119fd576002805460008b81526001602052604090819020909201546003549251637b85343760e11b815260048101919091526024810192909252604482018b90526001600160a01b03169063f70a686e906064016020604051808303816000875af1158015611948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196c9190612bc5565b506002805460008b8152600160205260408082209093015492516328ac5cf760e21b815260048101939093526024830152604482018b90526001600160a01b03169063a2b173dc906064016020604051808303816000875af11580156119d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fa9190612bc5565b90505b81831015611b4d576002805460208881015160008d815260019092526040918290209093015490516388cc22ff60e01b81526001600160a01b0393841660048201526024810191909152604481018c9052606481018490529116906388cc22ff90608401600060405180830381600087803b158015611a7b57600080fd5b505af1158015611a8f573d6000803e3d6000fd5b5050600254604051634f0644ef60e01b8152600481018d90526001600160a01b039091169250634f0644ef9150602401600060405180830381600087803b158015611ad957600080fd5b505af1158015611aed573d6000803e3d6000fd5b50505060008a81526001602052604090819020600381015460049182015492517f5458161d50452bd42d3465eca8bb2dbe3fe9d9f4a54c99ec2f3e063029f2a52e9450611b40938e9390918b9190612e69565b60405180910390a1611dc4565b81831115611c905760028054608088015160008c815260016020526040908190209093015492516388cc22ff60e01b81526001600160a01b0391821660048201526024810193909352604483018c90526064830184905216906388cc22ff90608401600060405180830381600087803b158015611bc957600080fd5b505af1158015611bdd573d6000803e3d6000fd5b5050600254604051634f0644ef60e01b8152600481018d90526001600160a01b039091169250634f0644ef9150602401600060405180830381600087803b158015611c2757600080fd5b505af1158015611c3b573d6000803e3d6000fd5b50505060008a8152600160205260409081902060048082015460039092015492517f5458161d50452bd42d3465eca8bb2dbe3fe9d9f4a54c99ec2f3e063029f2a52e9450611b40938e939290918b9190612e69565b6002805460008b81526001602090815260409182902090930154928901519051630506a2ab60e11b81526001600160a01b0390921692630a0d455692611cdb92908e90600401612bde565b600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b50506002805460008d815260016020526040908190209092015460808b01519251630506a2ab60e11b81526001600160a01b039092169450630a0d45569350611d589290918e90600401612bde565b600060405180830381600087803b158015611d7257600080fd5b505af1158015611d86573d6000803e3d6000fd5b505050507f4508d504920b09c87708d104ad40433e6e7f6104005b44c0ebf4231f9c19ce3389604051611dbb91815260200190565b60405180910390a15b505050600095865250600160208190526040909520948501805460ff60d01b1916600160d21b179055600590940180546001600160c01b039095166001600160c01b031990951694909417909355505050565b600082815260208190526040902060010154611e3281612579565b61055c8383612618565b60075460ff16611e5e5760405162461bcd60e51b81526004016105e990612c5a565b6002546040805163167a382560e11b815290516000926001600160a01b031691632cf4704a9160048083019260209291908290030181865afa158015611ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecc9190612c84565b60405163ae82b5c960e01b815260ff8a1660048201526001600160a01b03919091169063ae82b5c990602401602060405180830381865afa158015611f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f399190612bc5565b03611f565760405162461bcd60e51b81526004016105e990612ca1565b336001600160a01b03871603611f7e5760405162461bcd60e51b81526004016105e990612b77565b600554611f914263ffffffff8816612a96565b1015611faf5760405162461bcd60e51b81526004016105e990612ccc565b600654611fc24263ffffffff8816612a96565b1115611fe05760405162461bcd60e51b81526004016105e990612d01565b60008542338930604051602001611ffb959493929190612d38565b60408051808303601f1901815290829052805160209091012060025463039279d760e61b8352600483018290526001600160a01b038681166024850152919350169063e49e75c090604401600060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b50506002546001600160a01b03169150636affb29a9050853384600087356120a260408a0160208b01612bfd565b89604001358a606001356040518963ffffffff1660e01b81526004016120cf989796959493929190612c18565b6020604051808303816000875af11580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121129190612bc5565b506000818152600160205260409020541561215d5760405162461bcd60e51b815260206004820152600b60248201526a47616d652065786973747360a81b60448201526064016105e9565b60008181526001602081905260409182902060038101889055600281018790556001600160a01b038a1660a08a811b63ffffffff60a01b169190911780835560ff60d81b60d88e901b1633429384901b811791909117600160d01b1793909401839055935191927fc43ac96bd8c2538554ad97ca56225ef030913f833f06564d7cdb86032cd4cd6c926121fe9287928f928f92918f918f908f908f90612d86565b60405180910390a150505050505050505050565b600061221d81612579565b6005829055600683905560408051848152602081018490527f6364394a13bc49d5861844b147dd49cd6ccc577f67a1990102d62796b29dc7c99101610866565b600061226881612579565b6001600160a01b0382166122ad5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b60448201526064016105e9565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527fafa147634b29e2c7bd53ce194256b9f41cfb9ba3036f2b822fdd1d965beea08690602001610623565b6000612306826110ba565b60208101519091506001600160a01b031633146123545760405162461bcd60e51b815260206004820152600c60248201526b2bb937b7339039b2b73232b960a11b60448201526064016105e9565b60018160a00151600481111561236c5761236c612855565b14806123dd575060018160a00151600481111561238b5761238b612855565b14806123ac575060038160a0015160048111156123aa576123aa612855565b145b80156123bb5750806060015142115b6123c65760006123dd565b6203f4808160600151426123da9190612a96565b10155b6123f95760405162461bcd60e51b81526004016105e990612a59565b60038160a00151600481111561241157612411612855565b036124945760028054600084815260016020526040908190209092015460808401519251630506a2ab60e11b81526001600160a01b0390921692630a0d4556926124619291908790600401612bde565b600060405180830381600087803b15801561247b57600080fd5b505af115801561248f573d6000803e3d6000fd5b505050505b6002805460008481526001602090815260409182902090930154928401519051630506a2ab60e11b81526001600160a01b0390921692630a0d4556926124df92908790600401612bde565b600060405180830381600087803b1580156124f957600080fd5b505af115801561250d573d6000803e3d6000fd5b5060d092506002915061251d9050565b60008481526001602081905260409182902001805460ff60d01b191660ff9390931690931b91909117909155517f4508d504920b09c87708d104ad40433e6e7f6104005b44c0ebf4231f9c19ce33906106239084815260200190565b6125838133612683565b50565b60006125928383611193565b612610576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556125c83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104d8565b5060006104d8565b60006126248383611193565b15612610576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104d8565b61268d8282611193565b6126bc5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016105e9565b5050565b6000602082840312156126d257600080fd5b81356001600160e01b0319811681146126ea57600080fd5b9392505050565b60006020828403121561270357600080fd5b5035919050565b6001600160a01b038116811461258357600080fd5b6000806040838503121561273257600080fd5b8235915060208301356127448161270a565b809150509250929050565b6000806040838503121561276257600080fd5b50508035926020909101359150565b60006080828403121561278357600080fd5b50919050565b600080600060c0848603121561279e57600080fd5b83359250602084013591506127b68560408601612771565b90509250925092565b803560ff811681146127d057600080fd5b919050565b63ffffffff8116811461258357600080fd5b60008060008060008060c0878903121561280057600080fd5b612809876127bf565b955060208701356128198161270a565b94506040870135612829816127d5565b9350606087013592506080870135915060a08701356128478161270a565b809150509295509295509295565b634e487b7160e01b600052602160045260246000fd5b6005811061288957634e487b7160e01b600052602160045260246000fd5b9052565b600060c08201905060ff8351168252602083015160018060a01b0380821660208501526040850151604085015260608501516060850152806080860151166080850152505060a08301516128e460a084018261286b565b5092915050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561291457600080fd5b82359150602083013567ffffffffffffffff8082111561293357600080fd5b818501915085601f83011261294757600080fd5b813581811115612959576129596128eb565b604051601f8201601f19908116603f01168101908382118183101715612981576129816128eb565b8160405282815288602084870101111561299a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806000806000806000610140888a0312156129d857600080fd5b6129e1886127bf565b965060208801356129f18161270a565b95506040880135612a01816127d5565b9450606088013593506080880135925060a0880135612a1f8161270a565b9150612a2e8960c08a01612771565b905092959891949750929550565b600060208284031215612a4e57600080fd5b81356126ea8161270a565b6020808252600d908201526c57726f6e67207374617475732160981b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104d8576104d8612a80565b600082612ac657634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104d8576104d8612a80565b6020808252601e908201527f47616d6520697320636c6f73656420666f72206e657720706c61796572730000604082015260600190565b60208082526011908201527053616d652061737365742070726963657360781b604082015260600190565b6020808252601f908201527f4f6e6c79206365727461696e206163636f756e742063616e2061636365707400604082015260600190565b6020808252600e908201526d15dc9bdb99c81bdc1c1bdb995b9d60921b604082015260600190565b9384526001600160a01b0392909216602084015260408301521515606082015260800190565b600060208284031215612bd757600080fd5b5051919050565b9283526001600160a01b03919091166020830152604082015260600190565b600060208284031215612c0f57600080fd5b6126ea826127bf565b9788526001600160a01b0396909616602088015260408701949094529115156060860152608085015260ff1660a084015260c083015260e08201526101000190565b60208082526010908201526f11d85b59481a5cc8191a5cd8589b195960821b604082015260600190565b600060208284031215612c9657600080fd5b81516126ea8161270a565b6020808252601190820152702bb937b733903332b2b210373ab6b132b960791b604082015260600190565b6020808252818101527f4d696e2067616d65206475726174696f6e206d75737420626520686967686572604082015260600190565b6020808252601f908201527f4d61782067616d65206475726174696f6e206d757374206265206c6f77657200604082015260600190565b60e09590951b6001600160e01b03191685526004850193909352606091821b6bffffffffffffffffffffffff19908116602486015290821b8116603885015291811b909116604c8301520190565b98895260ff9790971660208901526001600160a01b03958616604089015263ffffffff9485166060890152929093166080870152831660a086015260c085019190915260e0840152166101008201526101200190565b604081526000835180604084015260005b81811015612e0a5760208187018101516060868401015201612ded565b506000606082850101526060601f19601f83011684010191505060ff831660208301529392505050565b60008060408385031215612e4757600080fd5b82518060170b8114612e5857600080fd5b6020840151909250612744816127d5565b600060a0820190508682528560208301528460408301528360170b6060830152612e96608083018461286b565b969550505050505056fea26469706673582212205c3ab46f3395fb0c3616d898d8101a94fcb40f45de355cc9eb48302a0059c23564736f6c63430008180033