0 txs
0 calls
constructor
No constructor.
functions
balanceOfBonded
viewfunction balanceOfBonded(address account, uint256 poolID) view returns (uint256)
balanceOfClaimable
viewfunction balanceOfClaimable(address account, uint256 poolID) view returns (uint256)
balanceOfPhantom
viewfunction balanceOfPhantom(address account, uint256 poolID) view returns (uint256)
balanceOfPool
viewfunction balanceOfPool(uint256 poolID) view returns (uint256)
balanceOfRewarded
viewfunction balanceOfRewarded(address account, uint256 poolID) view returns (uint256)
balanceOfStaged
viewfunction balanceOfStaged(address account, uint256 poolID) view returns (uint256)
dao
viewfunction dao() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
dollar
viewfunction dollar() view returns (address)
fluidUntil
viewfunction fluidUntil(address account, uint256 poolID) view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
GOVERNOR_ROLE
viewfunction GOVERNOR_ROLE() view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
lpToken
viewfunction lpToken(uint256 poolID) view returns (address)
lpType
viewfunction lpType(uint256 poolID) view returns (uint8)
paused
viewfunction paused(uint256 poolID) view returns (bool)
poolTotalCount
viewfunction poolTotalCount() view returns (uint256)
statusOf
viewfunction statusOf(address account, uint256 poolID) view returns (uint8)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalBonded
viewfunction totalBonded(uint256 poolID) view returns (uint256)
totalClaimable
viewfunction totalClaimable(uint256 poolID) view returns (uint256)
totalPhantom
viewfunction totalPhantom(uint256 poolID) view returns (uint256)
totalRewarded
viewfunction totalRewarded(uint256 poolID) view returns (uint256)
totalStaged
viewfunction totalStaged(uint256 poolID) view returns (uint256)
usdc
purefunction usdc() pure returns (address)
claim
nonpayablefunction claim(uint256 value, uint256 poolID)
distributeReward
nonpayablefunction distributeReward(uint256 value)
emergencyPause
nonpayablefunction emergencyPause(uint256 poolID)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address token, uint256 value)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address dollar)
provide
nonpayablefunction provide(uint256 value, uint256 poolID)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
resumePool
nonpayablefunction resumePool(uint256 poolID)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setDao
nonpayablefunction setDao(address dao)
setDollar
nonpayablefunction setDollar(address dollar)
setLPRatio
nonpayablefunction setLPRatio(uint256 poolID, uint256 ratio)
setLPToken
nonpayablefunction setLPToken(uint256 poolID, address lp, uint8 t)
setPoolCount
nonpayablefunction setPoolCount(uint256 count)
stake
nonpayablefunction stake(uint256 value, uint256 poolID)
unstake
nonpayablefunction unstake(uint256 value, uint256 poolID)
events
Claim
event Claim(address indexed account, uint256 value, uint256 poolID)
Initialized
event Initialized(uint8 version)
Provide
event Provide(address indexed account, uint256 value, uint256 lessUsdc, uint256 newUniv2, uint256 poolID)
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)
Stake
event Stake(address indexed account, uint256 start, uint256 value, uint256 poolID)
UnStake
event UnStake(address indexed account, uint256 start, uint256 value, uint256 poolID)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613307806100206000396000f3fe608060405234801561001057600080fd5b50600436106102735760003560e01c80636bb0eef111610151578063aac53574116100c3578063ca15c87311610087578063ca15c8731461064f578063ccc5749014610662578063d547741f14610677578063e8c3c54f1461068a578063ea09c8a31461069d578063ecaa14c5146106d957600080fd5b8063aac53574146105dd578063ad3fbe30146105f0578063b3c9e6c414610603578063c349026314610629578063c4d66de81461063c57600080fd5b806391d148541161011557806391d148541461054d578063940a4e451461056057806395ccea67146105735780639c09a1a8146105865780639e2c8a5b146105c2578063a217fddf146105d557600080fd5b80636bb0eef1146104e957806378ed5d1f146104f15780637b0472f0146105045780638782827d146105175780639010d07c1461053a57600080fd5b8063362d5ae3116101ea578063432e03c7116101ae578063432e03c71461044f57806349a2e71c1461046257806351adeb57146104855780635aba0dea146104965780635ff78d58146104b65780636637b882146104d657600080fd5b8063362d5ae3146103d757806336568abe146103ea5780633a8d158a146103fd5780633e413bee146104105780634162169f1461043e57600080fd5b8063142cc3891161023c578063142cc3891461031f57806317e1ec9314610342578063248a9ca31461037b57806327026d131461039e5780632cc3a78e146103b15780632f2ff15d146103c457600080fd5b8062dde10e1461027857806301fdd6e5146102b357806301ffc9a7146102c8578063036af273146102db5780630d749cec146102fc575b600080fd5b61029e610286366004612def565b600090815260c9602052604090206008015460ff1690565b60405190151581526020015b60405180910390f35b6102c66102c1366004612def565b6106ec565b005b61029e6102d6366004612e08565b61070a565b6102ee6102e9366004612def565b610735565b6040519081526020016102aa565b6102ee61030a366004612def565b600090815260c9602052604090206004015490565b6102ee61032d366004612def565b600090815260c9602052604090206002015490565b6102ee610350366004612e4e565b600090815260c9602090815260408083206001600160a01b0394909416835260099093019052205490565b6102ee610389366004612def565b60009081526065602052604090206001015490565b6102c66103ac366004612e78565b61075a565b6102ee6103bf366004612e4e565b6107c8565b6102c66103d2366004612ebc565b6107f6565b6102c66103e5366004612ee8565b610820565b6102c66103f8366004612ebc565b61085b565b6102c661040b366004612def565b6108de565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485b6040516001600160a01b0390911681526020016102aa565b60cb546001600160a01b0316610426565b6102ee61045d366004612e4e565b610917565b6102ee610470366004612def565b600090815260c9602052604090206001015490565b60cc546001600160a01b0316610426565b6104a96104a4366004612e4e565b610945565b6040516102aa9190612f37565b6102ee6104c4366004612def565b600090815260c9602052604090205490565b6102c66104e4366004612ee8565b61098d565b60ca546102ee565b6104266104ff366004612def565b6109c8565b6102c6610512366004612f4a565b6109e6565b6102ee610525366004612def565b600090815260c9602052604090206003015490565b610426610548366004612f4a565b610a7b565b61029e61055b366004612ebc565b610a93565b6102c661056e366004612def565b610abe565b6102c6610581366004612e4e565b610b98565b6102ee610594366004612e4e565b600090815260c9602090815260408083206001600160a01b0394909416835260099093019052206001015490565b6102c66105d0366004612f4a565b610c57565b6102ee600081565b6102c66105eb366004612f4a565b610cb8565b6102c66105fe366004612def565b610ce6565b6104a9610611366004612def565b600090815260c9602052604090206006015460ff1690565b6102c6610637366004612f4a565b610d20565b6102c661064a366004612ee8565b610e14565b6102ee61065d366004612def565b610f63565b6102ee60008051602061327083398151915281565b6102c6610685366004612ebc565b610f7a565b6102c6610698366004612f4a565b610f9f565b6102ee6106ab366004612e4e565b600090815260c9602090815260408083206001600160a01b0394909416835260099093019052206004015490565b6102ee6106e7366004612e4e565b61120c565b600080516020613270833981519152610704816112a2565b5060ca55565b60006001600160e01b03198216635a05180f60e01b148061072f575061072f826112af565b92915050565b600081815260c960205260408120600181015460049091015461072f91905b906112e4565b600080516020613270833981519152610772816112a2565b600084815260c9602052604090206005810180546001600160a01b0319166001600160a01b038616179055600601805483919060ff191660018360028111156107bd576107bd612f03565b021790555050505050565b600090815260c9602090815260408083206001600160a01b0394909416835260099093019052206002015490565b600082815260656020526040902060010154610811816112a2565b61081b83836112f0565b505050565b600080516020613270833981519152610838816112a2565b5060cc80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811633146108d05760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108da8282611312565b5050565b6000805160206132708339815191526108f6816112a2565b50600090815260c960205260409020600801805460ff19169055565b905090565b600090815260c9602090815260408083206001600160a01b0394909416835260099093019052206003015490565b600081815260c9602090815260408083206001600160a01b0386168452600901909152812060040154610976611334565b1015610983576001610986565b60005b9392505050565b6000805160206132708339815191526109a5816112a2565b5060cb80546001600160a01b0319166001600160a01b0392909216919091179055565b600090815260c960205260409020600501546001600160a01b031690565b600081815260c96020526040902060080154819060ff1615610a1a5760405162461bcd60e51b81526004016108c790612f6c565b610a2483836113b8565b610a2e8383611492565b337ff556991011e831bcfac4f406d547e5e32cdd98267efab83935230d5f8d02c446610a58611334565b6040805191825260208201879052810185905260600160405180910390a2505050565b6000828152609760205260408120610986908361159f565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60cb546001600160a01b03163314610b0a5760405162461bcd60e51b815260206004820152600f60248201526e696e76616c69642063616c6c65722160881b60448201526064016108c7565b6000805b60ca54811015610b4757600081815260c96020526040902060070154610b359083906115ab565b9150610b4081612fa2565b9050610b0e565b5060005b60ca5481101561081b57600081815260c96020526040902060070154610b8890610b82908490610b7c9087906115b7565b906115c3565b826115cf565b610b9181612fa2565b9050610b4b565b600080516020613270833981519152610bb0816112a2565b826001600160a01b031663a9059cbb610bd160cb546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101859052604401602060405180830381600087803b158015610c1957600080fd5b505af1158015610c2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c519190612fbd565b50505050565b610c618282611601565b610c6b82826116f3565b337fdb5446d7bffdeb0b5301ec00f352321da31ef3ee552eca5a1a8c9d59b9ef6880610c95611334565b604080519182526020820186905281018490526060015b60405180910390a25050565b600080516020613270833981519152610cd0816112a2565b50600091825260c9602052604090912060070155565b600080516020613270833981519152610cfe816112a2565b6108da82600090815260c960205260409020600801805460ff19166001179055565b610d44338360405180606001604052806024815260200161322a60249139846117ac565b610d4d8161185e565b60cc546001600160a01b031660405163a9059cbb60e01b8152336004820152602481018490526001600160a01b03919091169063a9059cbb90604401602060405180830381600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb9190612fbd565b50604080518381526020810183905233917f34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf79101610cac565b600054610100900460ff1615808015610e345750600054600160ff909116105b80610e4e5750303b158015610e4e575060005460ff166001145b610eb15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108c7565b6000805460ff191660011790558015610ed4576000805461ff0019166101001790555b610edc61194d565b610ee76000336112f0565b610eff600080516020613270833981519152336112f0565b60cc80546001600160a01b0319166001600160a01b03841617905580156108da576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081815260976020526040812061072f906119ba565b600082815260656020526040902060010154610f95816112a2565b61081b8383611312565b600081815260c96020526040902060080154819060ff1615610fd35760405162461bcd60e51b81526004016108c790612f6c565b600082815260c96020526040812060020154116110325760405162461bcd60e51b815260206004820152601960248201527f696e73756666696369656e7420746f74616c20626f6e6465640000000000000060448201526064016108c7565b600061103d83610735565b1161108a5760405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420746f74616c207265776172646564000000000060448201526064016108c7565b82611095338461120c565b10156110e35760405162461bcd60e51b815260206004820152601d60248201527f696e73756666696369656e742072657761726465642062616c616e636500000060448201526064016108c7565b6000806110f085856119c4565b9150915061113485856040518060400160405280601d81526020017f696e73756666696369656e742072657761726465642062616c616e6365000000815250611a3c565b60006111658661115f61115688600090815260c9602052604090206003015490565b61115f89610735565b906115ab565b9050600061118f61118587600090815260c9602052604090206002015490565b610b7c84866115b7565b905061119c338488611a73565b6111b0336111aa89846115ab565b88611afd565b6111b98661185e565b60408051888152602081018690529081018490526060810187905233907fc2819a54803d1e68f6a3ae57b1578429226c31628a48f0c63a87b2c626a186879060800160405180910390a250505050505050565b600081815260c960205260408120600201548061122d57600091505061072f565b600083815260c9602052604081206003015461124c9061115f86610735565b9050600061126883610b7c61126189896107c8565b85906115b7565b905060006112768787610917565b9050808211156112955761128a82826112e4565b94505050505061072f565b5060009695505050505050565b6112ac8133611b87565b50565b60006001600160e01b03198216637965db0b60e01b148061072f57506301ffc9a760e01b6001600160e01b031983161461072f565b60006109868284612fdf565b6112fa8282611be0565b600082815260976020526040902061081b9082611c66565b61131c8282611c7b565b600082815260976020526040902061081b9082611ce2565b600061134860cb546001600160a01b031690565b6001600160a01b031663900cf0cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138057600080fd5b505afa158015611394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109129190612ff6565b600081815260c96020526040902060080154819060ff16156113ec5760405162461bcd60e51b81526004016108c790612f6c565b6113f5826109c8565b6040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b0391909116906323b872dd90606401602060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147d9190612fbd565b50611489338484611cf7565b61081b8261185e565b600081815260c96020526040902060080154819060ff16156114c65760405162461bcd60e51b81526004016108c790612f6c565b6114d03383611d76565b600082815260c960205260408120600301546114ef9061115f85610735565b600084815260c96020526040812060020154919250901561152f57600084815260c9602052604090206002015461152a90610b7c84886115b7565b611553565b61153884610735565b15611544576000611553565b61155385620f42405b906115b7565b9050611560338686611a73565b61156b338286611afd565b61158f33866040518060600160405280602181526020016132906021913987611db1565b6115988461185e565b5050505050565b60006109868383611e33565b6000610986828461300f565b60006109868284613027565b60006109868284613046565b600081815260c960205260409020600401546115eb90836115ab565b600091825260c960205260409091206004015550565b61160b3382611d76565b600061161733836107c8565b9050600081116116695760405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420626f6e6465642062616c616e6365000000000060448201526064016108c7565b600061167d82610b7c8661154d338861120c565b9050600061169383610b7c8761154d3389610917565b90506116a0338686611cf7565b6116ab338386611e5d565b6116cf33866040518060600160405280602181526020016132b16021913987611ee7565b61158f338260405180606001604052806022815260200161324e6022913987611f74565b6116fc816109c8565b60405163a9059cbb60e01b8152336004820152602481018490526001600160a01b03919091169063a9059cbb90604401602060405180830381600087803b15801561174657600080fd5b505af115801561175a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177e9190612fbd565b506117a333836040518060600160405280602181526020016132906021913984611db1565b6108da8161185e565b600081815260c9602090815260408083206001600160a01b03881684526009019091529020600101546117e0908484612001565b600082815260c9602081815260408084206001600160a01b038a16855260098101835290842060019081019590955592859052520154611821908484612001565b600082815260c960205260409020600181019190915560040154611846908484612001565b600091825260c9602052604090912060040155505050565b600081815260c9602052604090206002810154905461187d919061115f565b611886826109c8565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b1580156118c757600080fd5b505afa1580156118db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ff9190612ff6565b10156112ac5760405162461bcd60e51b815260206004820152601c60248201527f496e636f6e73697374656e7420554e492d56322062616c616e6365730000000060448201526064016108c7565b600054610100900460ff166119b85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016108c7565b565b600061072f825490565b600081815260c96020526040812060060154819060ff16818160028111156119ee576119ee612f03565b1415611a08576119fe858561202d565b9250925050611a35565b6001816002811115611a1c57611a1c612f03565b1415611a2c576119fe858561223e565b60008092509250505b9250929050565b600082815260c96020526040902060040154611a59908483612001565b600092835260c96020526040909220600401919091555050565b600081815260c9602090815260408083206001600160a01b0387168452600901909152902060020154611aa690836115ab565b600082815260c9602081815260408084206001600160a01b038916855260098101835290842060029081019590955592859052520154611ae690836115ab565b600091825260c96020526040909120600201555050565b600081815260c9602090815260408083206001600160a01b0387168452600901909152902060030154611b3090836115ab565b600082815260c9602081815260408084206001600160a01b038916855260098101835290842060039081019590955592859052520154611b7090836115ab565b600091825260c96020526040909120600301555050565b611b918282610a93565b6108da57611b9e81612760565b611ba9836020612772565b604051602001611bba929190613094565b60408051601f198184030181529082905262461bcd60e51b82526108c791600401613109565b611bea8282610a93565b6108da5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611c223390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610986836001600160a01b03841661290e565b611c858282610a93565b156108da5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610986836001600160a01b03841661295d565b600081815260c9602090815260408083206001600160a01b0387168452600901909152902054611d2790836115ab565b600082815260c9602081815260408084206001600160a01b03891685526009810183529084209490945591849052905254611d6290836115ab565b600091825260c96020526040909120555050565b611d83600161115f611334565b600091825260c9602090815260408084206001600160a01b0390951684526009909401905291902060040155565b600081815260c9602090815260408083206001600160a01b0388168452600901909152902054611de2908484612001565b600082815260c9602081815260408084206001600160a01b038a1685526009810183529084209490945591849052905254611e1e908484612001565b600091825260c9602052604090912055505050565b6000826000018281548110611e4a57611e4a61313c565b9060005260206000200154905092915050565b600081815260c9602090815260408083206001600160a01b0387168452600901909152902060010154611e9090836115ab565b600082815260c9602081815260408084206001600160a01b038916855260098101835290842060019081019590955592859052520154611ed090836115ab565b600091825260c96020526040909120600101555050565b600081815260c9602090815260408083206001600160a01b0388168452600901909152902060020154611f1b908484612001565b600082815260c9602081815260408084206001600160a01b038a16855260098101835290842060029081019590955592859052520154611f5c908484612001565b600091825260c9602052604090912060020155505050565b600081815260c9602090815260408083206001600160a01b0388168452600901909152902060030154611fa8908484612001565b600082815260c9602081815260408084206001600160a01b038a16855260098101835290842060039081019590955592859052520154611fe9908484612001565b600091825260c9602052604090912060030155505050565b600081848411156120255760405162461bcd60e51b81526004016108c79190613109565b505050900390565b60008060008061204560cc546001600160a01b031690565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489150915060008061206b8484612a50565b91509150600082600014801561207f575081155b6120935761208e898484612b3c565b612095565b885b905060006120a2896109c8565b60405163a9059cbb60e01b81526001600160a01b038083166004830152602482018d90529192509087169063a9059cbb90604401602060405180830381600087803b1580156120f057600080fd5b505af1158015612104573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121289190612fbd565b506040516323b872dd60e01b81523360048201526001600160a01b038281166024830152604482018490528616906323b872dd90606401602060405180830381600087803b15801561217957600080fd5b505af115801561218d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b19190612fbd565b506040516335313c2160e11b815230600482015282906001600160a01b03831690636a62784290602401602060405180830381600087803b1580156121f557600080fd5b505af1158015612209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222d9190612ff6565b975097505050505050509250929050565b600080600061224c846109c8565b90506000612259856109c8565b90506000612266866109c8565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b1580156122a757600080fd5b505afa1580156122bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122df9190612ff6565b6040516323b872dd60e01b8152336004820152306024820152604481018990529091506001600160a01b038416906323b872dd90606401602060405180830381600087803b15801561233057600080fd5b505af1158015612344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123689190612fbd565b50604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015288919085169063dd62ed3e9060440160206040518083038186803b1580156123b357600080fd5b505afa1580156123c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123eb9190612ff6565b10156124845760cc546001600160a01b031660405163095ea7b360e01b81526001600160a01b0384811660048301526000196024830152919091169063095ea7b390604401602060405180830381600087803b15801561244a57600080fd5b505af115801561245e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124829190612fbd565b505b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e9060440160206040518083038186803b1580156124cf57600080fd5b505afa1580156124e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125079190612ff6565b905060008111801561251857508781105b156125a15760405163095ea7b360e01b81526001600160a01b0384811660048301526000602483015285169063095ea7b390604401602060405180830381600087803b15801561256757600080fd5b505af115801561257b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259f9190612fbd565b505b8015806125ad57508781105b156126375760405163095ea7b360e01b81526001600160a01b038481166004830152600019602483015285169063095ea7b390604401602060405180830381600087803b1580156125fd57600080fd5b505af1158015612611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126359190612fbd565b505b604080518082018252898152602081018a90529051630b4c7e4d60e01b81526001600160a01b03851691630b4c7e4d916126779190600090600401613152565b602060405180830381600087803b15801561269157600080fd5b505af11580156126a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c99190612ff6565b5087612751836126d88a6109c8565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561271957600080fd5b505afa15801561272d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107549190612ff6565b95509550505050509250929050565b606061072f6001600160a01b03831660145b60606000612781836002613027565b61278c90600261300f565b67ffffffffffffffff8111156127a4576127a461318a565b6040519080825280601f01601f1916602001820160405280156127ce576020820181803683370190505b509050600360fc1b816000815181106127e9576127e961313c565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106128185761281861313c565b60200101906001600160f81b031916908160001a905350600061283c846002613027565b61284790600161300f565b90505b60018111156128bf576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061287b5761287b61313c565b1a60f81b8282815181106128915761289161313c565b60200101906001600160f81b031916908160001a90535060049490941c936128b8816131a0565b905061284a565b5083156109865760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108c7565b60008181526001830160205260408120546129555750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561072f565b50600061072f565b60008181526001830160205260408120548015612a46576000612981600183612fdf565b855490915060009061299590600190612fdf565b90508181146129fa5760008660000182815481106129b5576129b561313c565b90600052602060002001549050808760000184815481106129d8576129d861313c565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612a0b57612a0b6131b7565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061072f565b600091505061072f565b6000806000612a5f8585612c25565b509050600080612a84735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8888612d16565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015612abc57600080fd5b505afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af491906131e4565b506001600160701b031691506001600160701b03169150826001600160a01b0316876001600160a01b031614612b2b578082612b2e565b81815b909890975095505050505050565b6000808411612b9b5760405162461bcd60e51b815260206004820152602560248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f416044820152641353d5539560da1b60648201526084016108c7565b600083118015612bab5750600082115b612c085760405162461bcd60e51b815260206004820152602860248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c604482015267495155494449545960c01b60648201526084016108c7565b82612c1385846115b7565b612c1d9190613046565b949350505050565b600080826001600160a01b0316846001600160a01b03161415612c985760405162461bcd60e51b815260206004820152602560248201527f556e697377617056324c6962726172793a204944454e544943414c5f41444452604482015264455353455360d81b60648201526084016108c7565b826001600160a01b0316846001600160a01b031610612cb8578284612cbb565b83835b90925090506001600160a01b038216611a355760405162461bcd60e51b815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f41444452455353000060448201526064016108c7565b6000806000612d258585612c25565b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b1660348201529193509150869060480160405160208183030381529060405280519060200120604051602001612dcd9291906001600160f81b0319815260609290921b6bffffffffffffffffffffffff1916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b600060208284031215612e0157600080fd5b5035919050565b600060208284031215612e1a57600080fd5b81356001600160e01b03198116811461098657600080fd5b80356001600160a01b0381168114612e4957600080fd5b919050565b60008060408385031215612e6157600080fd5b612e6a83612e32565b946020939093013593505050565b600080600060608486031215612e8d57600080fd5b83359250612e9d60208501612e32565b9150604084013560038110612eb157600080fd5b809150509250925092565b60008060408385031215612ecf57600080fd5b82359150612edf60208401612e32565b90509250929050565b600060208284031215612efa57600080fd5b61098682612e32565b634e487b7160e01b600052602160045260246000fd5b600381106112ac57634e487b7160e01b600052602160045260246000fd5b60208101612f4483612f19565b91905290565b60008060408385031215612f5d57600080fd5b50508035926020909101359150565b60208082526006908201526514185d5cd95960d21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000600019821415612fb657612fb6612f8c565b5060010190565b600060208284031215612fcf57600080fd5b8151801515811461098657600080fd5b600082821015612ff157612ff1612f8c565b500390565b60006020828403121561300857600080fd5b5051919050565b6000821982111561302257613022612f8c565b500190565b600081600019048311821515161561304157613041612f8c565b500290565b60008261306357634e487b7160e01b600052601260045260246000fd5b500490565b60005b8381101561308357818101518382015260200161306b565b83811115610c515750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516130cc816017850160208801613068565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516130fd816028840160208801613068565b01602801949350505050565b6020815260008251806020840152613128816040850160208701613068565b601f01601f19169190910160400192915050565b634e487b7160e01b600052603260045260246000fd5b60608101818460005b600281101561317a57815183526020928301929091019060010161315b565b5050508260408301529392505050565b634e487b7160e01b600052604160045260246000fd5b6000816131af576131af612f8c565b506000190190565b634e487b7160e01b600052603160045260246000fd5b80516001600160701b0381168114612e4957600080fd5b6000806000606084860312156131f957600080fd5b613202846131cd565b9250613210602085016131cd565b9150604084015163ffffffff81168114612eb157600080fdfe506f6f6c3a20696e73756666696369656e7420636c61696d61626c652062616c616e6365506f6f6c3a20696e73756666696369656e74207068616e746f6d2062616c616e63657935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55506f6f6c3a20696e73756666696369656e74207374616765642062616c616e6365506f6f6c3a20696e73756666696369656e7420626f6e6465642062616c616e6365a26469706673582212205e3e88e02c1ddfafd700f10b9d3f23b9dd929f080eeefc21df32b67ce1a6bfe664736f6c63430008090033