2 txs
2 calls
constructor
constructor(address backend_, uint256 startTimestamp, uint256 endTimestamp, address stmx, address[] otherTokens, address[] otherPriceFeeds)
functions
backend
viewfunction backend() view returns (address)
endTime
viewfunction endTime() view returns (uint256)
getAdminWithdrawables
viewfunction getAdminWithdrawables() view returns (address[] tokens, uint256[] amounts)
getAllowedTokens
viewfunction getAllowedTokens() view returns (address[])
getChallengeDetails
viewfunction getChallengeDetails(uint256 challengeId) view returns (tuple challengeDetails)
getUserBet
viewfunction getUserBet(uint256 challengeId, address user) view returns (tuple)
getUserWithdrawables
viewfunction getUserWithdrawables(address user) view returns (address[] tokens, uint256[] amounts)
latestChallengeId
viewfunction latestChallengeId() view returns (uint256)
maxAdminSharePercentage
viewfunction maxAdminSharePercentage() view returns (uint256)
maxChallengersEachSide
viewfunction maxChallengersEachSide() view returns (uint256)
owner
viewfunction owner() view returns (address)
startTime
viewfunction startTime() view returns (uint256)
tokenSTMX
viewfunction tokenSTMX() view returns (address)
allowTokens
nonpayablefunction allowTokens(address[] tokens, address[] priceFeeds)
cancelChallenge
nonpayablefunction cancelChallenge(uint256 challengeId)
changeBackend
nonpayablefunction changeBackend(address backend_)
changeTimes
nonpayablefunction changeTimes(uint256 startTimestamp, uint256 endTimestamp)
createChallenge
payablefunction createChallenge(address token, uint256 amount, uint8 decision) payable
joinChallenge
payablefunction joinChallenge(uint256 challengeId, uint256 amount, uint8 decision) payable
renounceOwnership
nonpayablefunction renounceOwnership()
resolveChallenge
nonpayablefunction resolveChallenge(uint256 challengeId, uint8 finalOutcome)
restrictTokens
nonpayablefunction restrictTokens(address[] tokens)
setAdminShareRules
nonpayablefunction setAdminShareRules(uint256[] thresholds, uint256[] percentages, bool isSTMX)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw()
withdrawAdminShares
nonpayablefunction withdrawAdminShares(address to)
events
AdminReceived
event AdminReceived(uint256 challengeId, address token, uint256 amount)
AdminWithdrawn
event AdminWithdrawn(address token, uint256 amount)
ChallengeCanceled
event ChallengeCanceled(uint256 challengeId)
ChallengeCreated
event ChallengeCreated(uint256 challengeId, address token, address by)
ChallengeFundsMoved
event ChallengeFundsMoved(uint256 challengeId, address[] winners, uint256[] winnersProfit, address[] losers, uint256[] losersLoss)
ChallengeJoined
event ChallengeJoined(uint256 challengeId, uint256 amount, address by)
ChallengeResolved
event ChallengeResolved(uint256 challengeId, uint8 finalOutcome)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
UserWithdrawn
event UserWithdrawn(address token, uint256 amount, address by)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040516200402838038062004028833981016040819052620000349162000539565b6200003f33620000ed565b6001805560048590556005849055600280546001600160a01b038089166001600160a01b0319928316179092556003805492861692909116919091179055620000956a084595161401484a0000006014620005f1565b6006556032600755620000d5620000b56001600160a01b0385166200013d565b604080516020810190915260008152620000cf906200019b565b620001b1565b620000e18282620001b1565b5050505050506200063d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160018082528183019092526060916020808301908036833701905050905081816000815181106200017657620001766200060b565b60200260200101906001600160a01b031690816001600160a01b031681525050919050565b8051606090620001ab906200013d565b92915050565b620001bb62000337565b8051825114620002035760405162461bcd60e51b815260206004820152600e60248201526d2632b733ba3439903234b33332b960911b60448201526064015b60405180910390fd5b62000210600d8362000395565b6200021d60098362000395565b60005b8251811015620003325760006001600160a01b03168282815181106200024a576200024a6200060b565b60200260200101516001600160a01b0316036200029a57620002938382815181106200027a576200027a6200060b565b6020026020010151600b620003e960201b90919060201c565b506200031d565b818181518110620002af57620002af6200060b565b6020026020010151600f6000858481518110620002d057620002d06200060b565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b80620003298162000621565b91505062000220565b505050565b6000546001600160a01b03163314620003935760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620001fa565b565b60005b81518110156200033257620003d3828281518110620003bb57620003bb6200060b565b602002602001015184620003e960201b90919060201c565b5080620003e08162000621565b91505062000398565b600062000400836001600160a01b03841662000407565b9392505050565b60008181526001830160205260408120546200045057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ab565b506000620001ab565b80516001600160a01b03811681146200047157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200049e57600080fd5b815160206001600160401b0380831115620004bd57620004bd62000476565b8260051b604051601f19603f83011681018181108482111715620004e557620004e562000476565b6040529384528581018301938381019250878511156200050457600080fd5b83870191505b848210156200052e576200051e8262000459565b835291830191908301906200050a565b979650505050505050565b60008060008060008060c087890312156200055357600080fd5b6200055e8762000459565b955060208701519450604087015193506200057c6060880162000459565b60808801519093506001600160401b03808211156200059a57600080fd5b620005a88a838b016200048c565b935060a0890151915080821115620005bf57600080fd5b50620005ce89828a016200048c565b9150509295509295509295565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620001ab57620001ab620005db565b634e487b7160e01b600052603260045260246000fd5b600060018201620006365762000636620005db565b5060010190565b6139db806200064d6000396000f3fe6080604052600436106101a15760003560e01c80638da5cb5b116100e1578063d0c8b8621161008a578063da115e9f11610064578063da115e9f14610463578063e6541ee314610483578063eaecfca7146104a3578063f2fde38b146104c357600080fd5b8063d0c8b86214610418578063d74f16e41461042e578063d8b1dbe11461044e57600080fd5b8063af3b5867116100bb578063af3b5867146103b1578063bf26931f146103c4578063c03fb87c146103da57600080fd5b80638da5cb5b14610345578063a41483e314610363578063a8037e0e1461038357600080fd5b80633ccfd60b1161014e578063514204161161012857806351420416146102da578063715018a6146102fa57806378e979251461030f5780638770912f1461032557600080fd5b80633ccfd60b146102855780633d40a54f1461029a5780634e26c4dd146102c757600080fd5b8063275d09811161017f578063275d09811461022d5780632c68b0fd1461024f5780633197cbb61461026f57600080fd5b8063024ece89146101a6578063099e4133146101d15780631411b43814610209575b600080fd5b3480156101b257600080fd5b506101bb6104e3565b6040516101c89190612fef565b60405180910390f35b3480156101dd57600080fd5b506002546101f1906001600160a01b031681565b6040516001600160a01b0390911681526020016101c8565b34801561021557600080fd5b5061021f60075481565b6040519081526020016101c8565b34801561023957600080fd5b5061024d610248366004613011565b6104f4565b005b34801561025b57600080fd5b5061024d61026a366004613041565b610726565b34801561027b57600080fd5b5061021f60055481565b34801561029157600080fd5b5061024d610739565b3480156102a657600080fd5b506102ba6102b5366004613063565b610829565b6040516101c891906130ab565b61024d6102d5366004613178565b61099d565b3480156102e657600080fd5b506003546101f1906001600160a01b031681565b34801561030657600080fd5b5061024d610b5a565b34801561031b57600080fd5b5061021f60045481565b34801561033157600080fd5b5061024d6103403660046131fd565b610b6c565b34801561035157600080fd5b506000546001600160a01b03166101f1565b34801561036f57600080fd5b5061024d61037e366004613063565b610c7b565b34801561038f57600080fd5b506103a361039e36600461325b565b610e16565b6040516101c89291906132a6565b61024d6103bf3660046132d4565b610f91565b3480156103d057600080fd5b5061021f60085481565b3480156103e657600080fd5b506103fa6103f5366004613309565b611165565b604080518251815260209283015160ff1692810192909252016101c8565b34801561042457600080fd5b5061021f60065481565b34801561043a57600080fd5b5061024d610449366004613343565b6111b4565b34801561045a57600080fd5b506103a3611467565b34801561046f57600080fd5b5061024d61047e36600461325b565b6115be565b34801561048f57600080fd5b5061024d61049e3660046134ab565b611693565b3480156104af57600080fd5b5061024d6104be36600461325b565b611803565b3480156104cf57600080fd5b5061024d6104de36600461325b565b611845565b60606104ef600d6118d2565b905090565b6104fc6118e6565b610504611940565b60008160ff1611801561051a575060048160ff16105b6105905760405162461bcd60e51b8152602060048201526024808201527f46696e616c206f7574636f6d652063616e206f6e6c7920626520312c20322c2060448201527f6f7220330000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61059982611999565b6105e55760405162461bcd60e51b815260206004820152601760248201527f4368616c6c656e676520646f65736e27742065786973740000000000000000006044820152606401610587565b60036105f0836119ae565b60078111156106015761060161307c565b1461064e5760405162461bcd60e51b815260206004820152601660248201527f4368616c6c656e6765206e6f74206177616974696e67000000000000000000006044820152606401610587565b61065981600461353e565b60ff16600781111561066d5761066d61307c565b600083815260106020526040902060050180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018360078111156106b6576106b661307c565b02179055506040805183815260ff831660208201527fb6171b34500ba874839b220ee75cbfbeb25bba762c6a57c158e19a3c27af89ae910160405180910390a18060ff1660030361070f5761070a82611a88565b610719565b6107198282611dfe565b61072260018055565b5050565b61072e6120fb565b600491909155600555565b610741611940565b600061074d6009612155565b905060005b8181101561081c57600061076760098361215f565b3360008181526012602090815260408083206001600160a01b038616845290915290205491925061079a9083908361216b565b604080516001600160a01b038416815260208101839052338183015290517f30f0f2f1c6b25d25ce05404ece9a5feb949e2e6f459f939cc1f01c65124280669181900360600190a1503360009081526012602090815260408083206001600160a01b03949094168352929052908120558061081481613557565b915050610752565b505061082760018055565b565b610831612efc565b600082815260106020908152604091829020825160c08101845281546001600160a01b03168152600182018054855181860281018601909652808652919492938581019392908301828280156108b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610892575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561091257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108f4575b50505091835250506003820154602082015260048201546040820152600582015460609091019060ff16600781111561094d5761094d61307c565b600781111561095e5761095e61307c565b905250905061096c826119ae565b8160a0019060078111156109825761098261307c565b908160078111156109955761099561307c565b905250919050565b8060ff16600114806109b257508060ff166002145b6109fe5760405162461bcd60e51b815260206004820152601960248201527f4465636973696f6e2073686f756c642062652031206f722032000000000000006044820152606401610587565b610a0783611999565b610a535760405162461bcd60e51b815260206004820152601760248201527f4368616c6c656e676520646f65736e27742065786973740000000000000000006044820152606401610587565b6002610a5e846119ae565b6007811115610a6f57610a6f61307c565b14610abc5760405162461bcd60e51b815260206004820152601960248201527f4368616c6c656e6765206e6f7420696e2070726f6772657373000000000000006044820152606401610587565b33600090815260116020908152604080832086845290915290206001015460ff1615610b2a5760405162461bcd60e51b815260206004820152601b60248201527f596f752063616e206f6e6c79206368616c6c656e6765206f6e636500000000006044820152606401610587565b6000838152601060205260409020546001600160a01b0316610b4a573491505b610b55838383612236565b505050565b610b626120fb565b6108276000612554565b610b746120fb565b610bb4828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250600d939250506125bc9050565b610bf4828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250600b939250506125bc9050565b60005b81811015610b5557600f6000848484818110610c1557610c1561358f565b9050602002016020810190610c2a919061325b565b6001600160a01b03168152602081019190915260400160002080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905580610c7381613557565b915050610bf7565b610c836118e6565b610c8b611940565b610c9481611999565b610ce05760405162461bcd60e51b815260206004820152601760248201527f4368616c6c656e676520646f65736e27742065786973740000000000000000006044820152606401610587565b6003610ceb826119ae565b6007811115610cfc57610cfc61307c565b1480610d2157506002610d0e826119ae565b6007811115610d1f57610d1f61307c565b145b610d935760405162461bcd60e51b815260206004820152602160248201527f4368616c6c656e6765206e6f74206177616974696e67206f722062657474696e60448201527f67000000000000000000000000000000000000000000000000000000000000006064820152608401610587565b60008181526010602090815260409182902060050180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600417905590518281527ff0fbc916c90170d09d494b840e0bb03ab2e82065a8e1990d3673211b45182a8e910160405180910390a1610e0a81611a88565b610e1360018055565b50565b6060806000610e256009612155565b90508067ffffffffffffffff811115610e4057610e406133c7565b604051908082528060200260200182016040528015610e69578160200160208202803683370190505b5092508067ffffffffffffffff811115610e8557610e856133c7565b604051908082528060200260200182016040528015610eae578160200160208202803683370190505b50915060005b81811015610f8a57610ec760098261215f565b848281518110610ed957610ed961358f565b60200260200101906001600160a01b031690816001600160a01b03168152505060126000866001600160a01b03166001600160a01b031681526020019081526020016000206000858381518110610f3257610f3261358f565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054838281518110610f6d57610f6d61358f565b602090810291909101015280610f8281613557565b915050610eb4565b5050915091565b6000600860008154610fa290613557565b918290555090506001610fb4826119ae565b6007811115610fc557610fc561307c565b146110125760405162461bcd60e51b815260206004820152601e60248201527f4368616c6c656e6765206372656174696f6e206e6f74207374617274656400006044820152606401610587565b6001600160a01b038416611028573492506110a5565b611033600d85612607565b6110a55760405162461bcd60e51b815260206004820152602860248201527f546f6b656e206973206e6f7420617661696c61626c6520666f7220746865206360448201527f68616c6c656e67650000000000000000000000000000000000000000000000006064820152608401610587565b60008181526010602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038816908117825560058201805460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116179055835185815292830152338284015291517fbaa6e4dbec861c736f4ebaa1b7d0d19757de58d21ca7417d3cf2b6e2284794f09181900360600190a161115e82858561099d565b5050505050565b604080518082018252600080825260209182018190526001600160a01b03841681526011825282812085825282528290208251808401909352805483526001015460ff16908201525b92915050565b6111bc6120fb565b83158015906111ca57508382145b6112165760405162461bcd60e51b815260206004820152600e60248201527f4c656e67746873206469666665720000000000000000000000000000000000006044820152606401610587565b60005b6112246001866135be565b8110156113315785856112388360016135d1565b8181106112475761124761358f565b905060200201358686838181106112605761126061358f565b9050602002013511156112b55760405162461bcd60e51b815260206004820152601460248201527f44657363656e64696e67207468726573686f6c640000000000000000000000006044820152606401610587565b6006548484838181106112ca576112ca61358f565b90506020020135111561131f5760405162461bcd60e51b815260206004820152601960248201527f53686172652069732067726561746572207468616e20323025000000000000006044820152606401610587565b8061132981613557565b915050611219565b5060065483836113426001826135be565b8181106113515761135161358f565b9050602002013511156113a65760405162461bcd60e51b815260206004820152601960248201527f53686172652069732067726561746572207468616e20323025000000000000006044820152606401610587565b604051806040016040528086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060408051602086810282810182019093528682529283019290918791879182918501908490808284376000920182905250939094525050831515815260136020908152604090912083518051919350611444928492910190612f4b565b50602082810151805161145d9260018501920190612f4b565b5050505050505050565b60608060006114766009612155565b90508067ffffffffffffffff811115611491576114916133c7565b6040519080825280602002602001820160405280156114ba578160200160208202803683370190505b5092508067ffffffffffffffff8111156114d6576114d66133c7565b6040519080825280602002602001820160405280156114ff578160200160208202803683370190505b50915060005b818110156115b85761151860098261215f565b84828151811061152a5761152a61358f565b60200260200101906001600160a01b031690816001600160a01b031681525050601460008583815181106115605761156061358f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205483828151811061159b5761159b61358f565b6020908102919091010152806115b081613557565b915050611505565b50509091565b6115c66120fb565b6115ce611940565b60006115da6009612155565b905060005b818110156116885760006115f460098361215f565b6001600160a01b03811660009081526014602052604090205490915061161b82868361216b565b604080516001600160a01b0384168152602081018390527fca1cf43de312865665f595e88f569f9d5246690c07df26e86aba01147e6d1314910160405180910390a1506001600160a01b03166000908152601460205260408120558061168081613557565b9150506115df565b5050610e1360018055565b61169b6120fb565b80518251146116ec5760405162461bcd60e51b815260206004820152600e60248201527f4c656e67746873206469666665720000000000000000000000000000000000006044820152606401610587565b6116f7600d83612629565b611702600983612629565b60005b8251811015610b555760006001600160a01b031682828151811061172b5761172b61358f565b60200260200101516001600160a01b0316036117745761176e8382815181106117565761175661358f565b6020026020010151600b61267490919063ffffffff16565b506117f1565b8181815181106117865761178661358f565b6020026020010151600f60008584815181106117a4576117a461358f565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b806117fb81613557565b915050611705565b61180b6120fb565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61184d6120fb565b6001600160a01b0381166118c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610587565b610e1381612554565b606060006118df83612689565b9392505050565b6002546001600160a01b031633146108275760405162461bcd60e51b815260206004820152600d60248201527f4e6f742061206261636b656e64000000000000000000000000000000000000006044820152606401610587565b6002600154036119925760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610587565b6002600155565b600080821180156111ae575050600854101590565b60008181526010602052604081206005015460045460ff909116904210156119d95750600092915050565b60048160078111156119ed576119ed61307c565b1480611a0a57506005816007811115611a0857611a0861307c565b145b80611a2657506006816007811115611a2457611a2461307c565b145b80611a4257506007816007811115611a4057611a4061307c565b145b15611a4d5792915050565b600554421115611a605750600392915050565b6002816007811115611a7457611a7461307c565b03611a7f5792915050565b50600192915050565b600081815260106020526040812080546001820154600283015492936001600160a01b03909216929091611abc82846135d1565b67ffffffffffffffff811115611ad457611ad46133c7565b604051908082528060200260200182016040528015611afd578160200160208202803683370190505b5090506000611b0c83856135d1565b67ffffffffffffffff811115611b2457611b246133c7565b604051908082528060200260200182016040528015611b4d578160200160208202803683370190505b50905060005b84811015611c65576000876001018281548110611b7257611b7261358f565b9060005260206000200160009054906101000a90046001600160a01b0316905080848381518110611ba557611ba561358f565b6001600160a01b0392831660209182029290920181019190915290821660009081526011825260408082208c835290925220548351849084908110611bec57611bec61358f565b602002602001018181525050828281518110611c0a57611c0a61358f565b6020908102919091018101516001600160a01b038084166000908152601284526040808220928c168252919093528220805491929091611c4b9084906135d1565b90915550829150611c5d905081613557565b915050611b53565b5060005b83811015611d7f576000876002018281548110611c8857611c8861358f565b60009182526020822001546001600160a01b03169150611ca887846135d1565b905081858281518110611cbd57611cbd61358f565b6001600160a01b0392831660209182029290920181019190915290831660009081526011825260408082208d835290925220548451859083908110611d0457611d0461358f565b602002602001018181525050838181518110611d2257611d2261358f565b6020908102919091018101516001600160a01b038085166000908152601284526040808220928d168252919093528220805491929091611d639084906135d1565b9250508190555050508080611d7790613557565b915050611c69565b507fdfcb8a64ba472f78b6473e53b3c1a1a823d1623723b36028354423273b5bfecd8783836000604051908082528060200260200182016040528015611dcf578160200160208202803683370190505b5060408051600081526020810191829052611ded95949392916135e4565b60405180910390a150505050505050565b60008281526010602052604090208054600382015460048301546001600160a01b039092169160018401916002808601929060ff88169003611e3f57919291905b8354835460008267ffffffffffffffff811115611e5e57611e5e6133c7565b604051908082528060200260200182016040528015611e87578160200160208202803683370190505b50905060005b83811015611fc2576000888281548110611ea957611ea961358f565b9060005260206000200160009054906101000a90046001600160a01b03169050600060116000836001600160a01b03166001600160a01b0316815260200190815260200160002060008f81526020019081526020016000209050600088826000015489611f169190613643565b611f20919061365a565b8254611f2c91906135d1565b905080858581518110611f4157611f4161358f565b6020026020010181815250508060126000856001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611fa591906135d1565b925050819055505050508080611fba90613557565b915050611e8d565b5060008267ffffffffffffffff811115611fde57611fde6133c7565b604051908082528060200260200182016040528015612007578160200160208202803683370190505b50905060005b838110156120ad576011600089838154811061202b5761202b61358f565b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060008e8152602001908152602001600020600001548282815181106120905761209061358f565b6020908102919091010152806120a581613557565b91505061200d565b507fdfcb8a64ba472f78b6473e53b3c1a1a823d1623723b36028354423273b5bfecd8c89848a856040516120e59594939291906136d3565b60405180910390a1505050505050505050505050565b6000546001600160a01b031633146108275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610587565b60006111ae825490565b60006118df83836126e5565b6001600160a01b038316612222576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146121c6576040519150601f19603f3d011682016040523d82523d6000602084013e6121cb565b606091505b505090508061221c5760405162461bcd60e51b815260206004820152601260248201527f4661696c656420746f2073656e642045544800000000000000000000000000006044820152606401610587565b50505050565b610b556001600160a01b038416838361270f565b61223e611940565b6000838152601060205260408120805490916001600160a01b039091169061226683866127d6565b90508085116122dd5760405162461bcd60e51b815260206004820152602360248201527f616d6f756e74203c3d2061646d696e20736861726520706572206368616c6c6560448201527f6e676500000000000000000000000000000000000000000000000000000000006064820152608401610587565b6001600160a01b03821615612301576123016001600160a01b0383163330886128ca565b6001600160a01b038216600090815260146020526040812080548392906123299084906135d1565b90915550612339905081866135be565b945060008460ff166001036123aa575060018084018054918201815560008181526020812090920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055546003850180549192889261239f9084906135d1565b909155506124089050565b5060028301805460018101825560008281526020812090910180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790559054600485018054919288926124029084906135d1565b90915550505b60075481111561245a5760405162461bcd60e51b815260206004820152601860248201527f4d6178206368616c6c656e6765727320706572207369646500000000000000006044820152606401610587565b60408051808201825287815260ff8781166020808401918252336000818152601183528681208e82528352869020945185559151600190940180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016949093169390931790915582518a81529182018990528183015290517f8924f23e5e080640a3b9735ff0e2540d18f8521d9735e6838593cb9dd121e76c916060908290030190a1604080518881526001600160a01b03851660208201529081018390527fa933c5f2ff3ab65b8004e747a48707dab64e66636a6ff5247f0431bc168817749060600160405180910390a150505050610b5560018055565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b8151811015610b55576125f48282815181106125dd576125dd61358f565b60200260200101518461291b90919063ffffffff16565b50806125ff81613557565b9150506125bf565b6001600160a01b038116600090815260018301602052604081205415156118df565b60005b8151811015610b555761266182828151811061264a5761264a61358f565b60200260200101518461267490919063ffffffff16565b508061266c81613557565b91505061262c565b60006118df836001600160a01b038416612930565b6060816000018054806020026020016040519081016040528092919081815260200182805480156126d957602002820191906000526020600020905b8154815260200190600101908083116126c5575b50505050509050919050565b60008260000182815481106126fc576126fc61358f565b9060005260206000200154905092915050565b6040516001600160a01b038316602482015260448101829052610b559084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261297f565b81546000906001600160a01b0316818115612802576127fd826001600160a01b0316612a67565b612805565b60125b61281090600a613832565b8461281a84612acb565b6128249190613643565b61282e919061365a565b6003546001600160a01b03848116911614600090815260136020526040812091925061285a8284612bf9565b9050806000036128715760009450505050506111ae565b6b033b2e3c9fd0803ce80000008260010160018361288f91906135be565b8154811061289f5761289f61358f565b9060005260206000200154876128b59190613643565b6128bf919061365a565b979650505050505050565b6040516001600160a01b038085166024830152831660448201526064810182905261221c9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401612754565b60006118df836001600160a01b038416612c5f565b6000818152600183016020526040812054612977575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556111ae565b5060006111ae565b60006129d4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612d529092919063ffffffff16565b90508051600014806129f55750808060200190518101906129f59190613841565b610b555760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610587565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612aa7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ae919061385e565b60008080612ada600b85612607565b15612aeb576305f5e1009150612bf2565b6001600160a01b038085166000908152600f6020526040908190205481517ffeaf968c000000000000000000000000000000000000000000000000000000008152915192169163feaf968c9160048082019260a0929091908290030181865afa158015612b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b809190613895565b50919450909250506000831390508015612ba65750612ba262015180426135be565b8110155b612bf25760405162461bcd60e51b815260206004820152601260248201527f4f7261636c65206d616c66756e6374696f6e00000000000000000000000000006044820152606401610587565b5092915050565b815460009081905b80821015612c57576000612c158383612d61565b905084868281548110612c2a57612c2a61358f565b90600052602060002001541115612c4357809150612c51565b612c4e8160016135d1565b92505b50612c01565b949350505050565b60008181526001830160205260408120548015612d48576000612c836001836135be565b8554909150600090612c97906001906135be565b9050818114612cfc576000866000018281548110612cb757612cb761358f565b9060005260206000200154905080876000018481548110612cda57612cda61358f565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612d0d57612d0d6138e5565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506111ae565b60009150506111ae565b6060612c578484600085612d7c565b6000612d70600284841861365a565b6118df908484166135d1565b606082471015612df45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610587565b600080866001600160a01b03168587604051612e109190613938565b60006040518083038185875af1925050503d8060008114612e4d576040519150601f19603f3d011682016040523d82523d6000602084013e612e52565b606091505b50915091506128bf8783838760608315612ecd578251600003612ec6576001600160a01b0385163b612ec65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610587565b5081612c57565b612c578383815115612ee25781518083602001fd5b8060405162461bcd60e51b81526004016105879190613954565b6040518060c0016040528060006001600160a01b031681526020016060815260200160608152602001600081526020016000815260200160006007811115612f4657612f4661307c565b905290565b828054828255906000526020600020908101928215612f86579160200282015b82811115612f86578251825591602001919060010190612f6b565b50612f92929150612f96565b5090565b5b80821115612f925760008155600101612f97565b600081518084526020808501945080840160005b83811015612fe45781516001600160a01b031687529582019590820190600101612fbf565b509495945050505050565b6020815260006118df6020830184612fab565b60ff81168114610e1357600080fd5b6000806040838503121561302457600080fd5b82359150602083013561303681613002565b809150509250929050565b6000806040838503121561305457600080fd5b50508035926020909101359150565b60006020828403121561307557600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081526001600160a01b0382511660208201526000602083015160c060408401526130da60e0840182612fab565b905060408401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160608501526131158282612fab565b91505060608401516080840152608084015160a084015260a084015160088110613168577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60c0939093019290925250919050565b60008060006060848603121561318d57600080fd5b833592506020840135915060408401356131a681613002565b809150509250925092565b60008083601f8401126131c357600080fd5b50813567ffffffffffffffff8111156131db57600080fd5b6020830191508360208260051b85010111156131f657600080fd5b9250929050565b6000806020838503121561321057600080fd5b823567ffffffffffffffff81111561322757600080fd5b613233858286016131b1565b90969095509350505050565b80356001600160a01b038116811461325657600080fd5b919050565b60006020828403121561326d57600080fd5b6118df8261323f565b600081518084526020808501945080840160005b83811015612fe45781518752958201959082019060010161328a565b6040815260006132b96040830185612fab565b82810360208401526132cb8185613276565b95945050505050565b6000806000606084860312156132e957600080fd5b6132f28461323f565b92506020840135915060408401356131a681613002565b6000806040838503121561331c57600080fd5b8235915061332c6020840161323f565b90509250929050565b8015158114610e1357600080fd5b60008060008060006060868803121561335b57600080fd5b853567ffffffffffffffff8082111561337357600080fd5b61337f89838a016131b1565b9097509550602088013591508082111561339857600080fd5b506133a5888289016131b1565b90945092505060408601356133b981613335565b809150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261340757600080fd5b8135602067ffffffffffffffff80831115613424576134246133c7565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715613467576134676133c7565b60405293845285810183019383810192508785111561348557600080fd5b83870191505b848210156128bf5761349c8261323f565b8352918301919083019061348b565b600080604083850312156134be57600080fd5b823567ffffffffffffffff808211156134d657600080fd5b6134e2868387016133f6565b935060208501359150808211156134f857600080fd5b50613505858286016133f6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff81811683821601908111156111ae576111ae61350f565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135885761358861350f565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b818103818111156111ae576111ae61350f565b808201808211156111ae576111ae61350f565b85815260a0602082015260006135fd60a0830187612fab565b828103604084015261360f8187613276565b905082810360608401526136238186612fab565b905082810360808401526136378185613276565b98975050505050505050565b80820281158282048414176111ae576111ae61350f565b600082613690577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000815480845260208085019450836000528060002060005b83811015612fe45781546001600160a01b0316875295820195600191820191016136ae565b85815260a0602082015260006136ec60a0830187613695565b82810360408401526136fe8187613276565b905082810360608401526136238186613695565b600181815b8085111561376b57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156137515761375161350f565b8085161561375e57918102915b93841c9390800290613717565b509250929050565b600082613782575060016111ae565b8161378f575060006111ae565b81600181146137a557600281146137af576137cb565b60019150506111ae565b60ff8411156137c0576137c061350f565b50506001821b6111ae565b5060208310610133831016604e8410600b84101617156137ee575081810a6111ae565b6137f88383613712565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561382a5761382a61350f565b029392505050565b60006118df60ff841683613773565b60006020828403121561385357600080fd5b81516118df81613335565b60006020828403121561387057600080fd5b81516118df81613002565b805169ffffffffffffffffffff8116811461325657600080fd5b600080600080600060a086880312156138ad57600080fd5b6138b68661387b565b94506020860151935060408601519250606086015191506138d96080870161387b565b90509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60005b8381101561392f578181015183820152602001613917565b50506000910152565b6000825161394a818460208701613914565b9190910192915050565b6020815260008251806020840152613973816040850160208701613914565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212209992eeca665e5f4e6a83433baea8ed0c588fb6866c3756f5fe6e7ab8f171656f64736f6c634300081300330000000000000000000000004ffe9cdd07bb6beccd02b053ecf725428123f53a00000000000000000000000000000000000000000000000000000000653965b000000000000000000000000000000000000000000000000000000000653ab730000000000000000000000000a62cc35625b0c8dc1faea39d33625bb4c15bd71c00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000000030000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b841900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000