{"matchId":"57917667","creationMatch":"exact_match","runtimeMatch":"exact_match","verifiedAt":"2026-11-01T05:21:55Z","creationBytecode":{"onchainBytecode":"0x60c060405234801561000f575f80fd5b5060405161160438038061160483398101604081905261002e916100ed565b6001600160a01b03808316608052811660a052610049610059565b6004819055600255506102339050565b5f6080516001600160a01b031663c19d93fb6040518163ffffffff1660e01b815260040161010060405180830381865afa9250505080156100b7575060408051601f3d908101601f191682019092526100b49181019061016c565b60015b6100c057505f90565b602001516001600160401b0316919050565b80516001600160a01b03811681146100e8575f80fd5b919050565b5f80604083850312156100fe575f80fd5b610107836100d2565b9150610115602084016100d2565b90509250929050565b80516001600160401b03811681146100e8575f80fd5b80516001600160601b03811681146100e8575f80fd5b805163ffffffff811681146100e8575f80fd5b805180151581146100e8575f80fd5b5f61010082840312801561017e575f80fd5b5060405161010081016001600160401b03811182821017156101ae57634e487b7160e01b5f52604160045260245ffd5b6040526101ba8361011e565b81526101c86020840161011e565b60208201526101d960408401610134565b60408201526101ea6060840161011e565b60608201526101fb60808401610134565b608082015261020c60a0840161014a565b60a082015260c0838101519082015261022760e0840161015d565b60e08201529392505050565b60805160a05161139b6102695f395f818161046e015281816107110152610b7e01525f818161042f0152610e34015261139b5ff3fe608060405234801561000f575f80fd5b50600436106101aa575f3560e01c806306fdde03146101ae578063095ea7b3146101f15780630e001b38146102145780630eccc7081461022b57806318160ddd1461024a57806318178358146102525780631b2ef1ca1461025c57806323b872dd1461026f5780632e17de7814610282578063313ce5671461029557806336caea92146102af5780633901e3f1146102b75780633fb33da8146102c05780634a4244bc146102c95780634cdad506146102d157806357b17a52146102f25780636d86acc4146102fa57806370a08231146103035780637cbc2373146103225780637f6cbaa914610335578063872697291461033e57806390a577ef14610346578063922b3db41461034f57806395d89b411461036e578063a614849314610391578063a694fc3a1461039a578063a9059cbb146103ad578063af500ba3146103c0578063b3d7f6b9146103d3578063be6eb7e0146103e6578063c1590cd7146103ef578063c66bc046146103f8578063d2dbdd78146103e6578063dd62ed3e14610400578063f2f4eb261461042a578063ff4a563914610469575b5f80fd5b6101db6040518060400160405280600e81526020016d48616d73746572204d6f746f727360901b81525081565b6040516101e8919061105f565b60405180910390f35b6102046101ff3660046110af565b610490565b60405190151581526020016101e8565b61021d60055481565b6040519081526020016101e8565b61021d6102393660046110d7565b600a6020525f908152604090205481565b61021d5f5481565b61025a6104fc565b005b61021d61026a3660046110f7565b6105e3565b61020461027d366004611117565b61078a565b61021d610290366004611151565b6107f9565b61029d601281565b60405160ff90911681526020016101e8565b61021d606481565b61021d60045481565b61021d60025481565b61021d60c881565b6102e46102df366004611151565b610941565b6040516101e8929190611168565b61021d6109dd565b61021d60095481565b61021d6103113660046110d7565b60066020525f908152604090205481565b61021d6103303660046110f7565b6109f9565b61021d610e1081565b61021d610bf9565b61021d60085481565b61021d61035d3660046110d7565b600b6020525f908152604090205481565b6101db604051806040016040528060048152602001632426aa2960e11b81525081565b61021d60035481565b61021d6103a8366004611151565b610c37565b6102046103bb3660046110af565b610d68565b61021d6103ce3660046110d7565b610d7d565b61021d6103e1366004611151565b610dc5565b61021d6101f481565b61021d60015481565b610204610dfb565b61021d61040e366004611176565b600760209081525f928352604080842090915290825290205481565b6104517f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e8565b6104517f000000000000000000000000000000000000000000000000000000000000000081565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ea9086815260200190565b60405180910390a35060015b92915050565b5f610505610e31565b90506002548111156105565760028190554260058190556040517fc4208a34f6a363fa04719fd2d82056203fa577f8d61872a0e1da28cd368225159161054d91849190611168565b60405180910390a15b6003541580159061057e575080158061057e57506101f460045461057a91906111bb565b8110155b156105e0577f658c0761b19711ccd8c11a5edfeee3b1c7875a86f68b688c851704ef35c7a442600354826040516105b6929190611168565b60405180910390a160035460015f8282546105d191906111bb565b90915550505f60035560048190555b50565b5f6105ec6104fc565b6105f583610dc5565b9050805f036106175760405163f456040360e01b815260040160405180910390fd5b8181101561063857604051633de57c2360e21b815260040160405180910390fd5b8260015f82825461064991906111bb565b92505081905550805f8082825461066091906111bb565b9091555050335f90815260066020526040812080548392906106839084906111bb565b909155505060405181815233905f905f805160206113468339815191529060200160405180910390a3336001600160a01b03167f25b428dfde728ccfaddad7e29e4ac23c24ed7fd1a6e3e3f91894a9a073f5dfff84836040516106e7929190611168565b60405180910390a26040516323b872dd60e01b8152336004820152306024820152604481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561075f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078391906111dd565b5092915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1981146107e3576107bf83826111f6565b6001600160a01b0386165f9081526007602090815260408083203384529091529020555b6107ee858585610ec8565b506001949350505050565b5f815f0361081a5760405163f456040360e01b815260040160405180910390fd5b5f610823610e31565b905080158015906108415750335f908152600b602052604090205481105b1561087a57335f908152600b60205260409081902054905163ae5b754160e01b8152610871918391600401611168565b60405180910390fd5b60095460085461088a9085611209565b6108949190611220565b335f908152600a60205260408120805492945085929091906108b79084906111f6565b925050819055508260095f8282546108cf91906111f6565b925050819055508160085f8282546108e791906111f6565b909155506108f89050303384610ec8565b336001600160a01b03167f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e8385604051610933929190611168565b60405180910390a250919050565b5f805f8054841461098657620f42405f5461095c91906111bb565b620f424060015461096d91906111bb565b6109779086611209565b6109819190611220565b61098a565b6001545b905060015481111561099b57506001545b5f5484146109c7576127106109ae6109dd565b6109b89083611209565b6109c29190611220565b6109c9565b5f5b91506109d582826111f6565b925050915091565b5f6109e6610dfb565b6109f157506101f490565b60645b905090565b5f825f03610a1a5760405163f456040360e01b815260040160405180910390fd5b610a226104fc565b5f610a2c84610941565b909250905082821015610a5257604051633de57c2360e21b815260040160405180910390fd5b335f9081526006602052604081208054869290610a709084906111f6565b92505081905550835f80828254610a8791906111f6565b925050819055508160015f828254610a9f91906111f6565b90915550506040518481525f9033905f805160206113468339815191529060200160405180910390a3604080518581526020810184905290810182905233907f484c40561359f3e3b8be9101897f8680aa82fbe1df9fd9038e0dbc62840326469060600160405180910390a25f610b17600483611220565b90508060015f828254610b2a91906111f6565b925050819055508060035f828254610b4291906111bb565b909155505060095415610b6257610b62610b5d600284611220565b610f61565b60405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf091906111dd565b50505092915050565b5f620f42405f54610c0a91906111bb565b620f4240600154610c1b91906111bb565b610c2d90670de0b6b3a7640000611209565b6109f49190611220565b5f815f03610c585760405163f456040360e01b815260040160405180910390fd5b610c606104fc565b60095415610c8757600854600954610c789084611209565b610c829190611220565b610c89565b815b9050805f03610cab5760405163f456040360e01b815260040160405180910390fd5b610cb6333084610ec8565b8160085f828254610cc791906111bb565b925050819055508060095f828254610cdf91906111bb565b9091555050335f908152600a602052604081208054839290610d029084906111bb565b9091555050600254610d169060c8906111bb565b335f818152600b6020526040908190209290925590517f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9090610d5b9085908590611168565b60405180910390a2919050565b5f610d74338484610ec8565b50600192915050565b5f6009545f14610dbe576009546008546001600160a01b0384165f908152600a6020526040902054610daf9190611209565b610db99190611220565b6104f6565b5f92915050565b5f620f4240600154610dd791906111bb565b620f42405f54610de791906111bb565b610df19084611209565b6104f69190611220565b5f600254610e07610e31565b11806109f45750600554158015906109f45750610e10600554610e2a91906111bb565b4210905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c19d93fb6040518163ffffffff1660e01b815260040161010060405180830381865afa925050508015610ead575060408051601f3d908101601f19168201909252610eaa9181019061127e565b60015b610eb657505f90565b602001516001600160401b0316919050565b6001600160a01b0383165f9081526006602052604081208054839290610eef9084906111f6565b90915550506001600160a01b0382165f9081526006602052604081208054839290610f1b9084906111bb565b92505081905550816001600160a01b0316836001600160a01b03165f8051602061134683398151915283604051610f5491815260200190565b60405180910390a3505050565b805f03610f6b5750565b5f620f424082600154610f7e91906111f6565b610f8891906111bb565b620f42405f54610f9891906111bb565b610fa29084611209565b610fac9190611220565b9050805f80828254610fbe91906111bb565b9091555050305f9081526006602052604081208054839290610fe19084906111bb565b925050819055508060085f828254610ff991906111bb565b909155505060405181815230905f905f805160206113468339815191529060200160405180910390a37f8082b0dab6d73a8025e5f15e4fdd54b68197a613e361810d4a2446c634b98ada8282604051611053929190611168565b60405180910390a15050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146110aa575f80fd5b919050565b5f80604083850312156110c0575f80fd5b6110c983611094565b946020939093013593505050565b5f602082840312156110e7575f80fd5b6110f082611094565b9392505050565b5f8060408385031215611108575f80fd5b50508035926020909101359150565b5f805f60608486031215611129575f80fd5b61113284611094565b925061114060208501611094565b929592945050506040919091013590565b5f60208284031215611161575f80fd5b5035919050565b918252602082015260400190565b5f8060408385031215611187575f80fd5b61119083611094565b915061119e60208401611094565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104f6576104f66111a7565b805180151581146110aa575f80fd5b5f602082840312156111ed575f80fd5b6110f0826111ce565b818103818111156104f6576104f66111a7565b80820281158282048414176104f6576104f66111a7565b5f8261123a57634e487b7160e01b5f52601260045260245ffd5b500490565b80516001600160401b03811681146110aa575f80fd5b80516001600160601b03811681146110aa575f80fd5b805163ffffffff811681146110aa575f80fd5b5f610100828403128015611290575f80fd5b5060405161010081016001600160401b03811182821017156112c057634e487b7160e01b5f52604160045260245ffd5b6040526112cc8361123f565b81526112da6020840161123f565b60208201526112eb60408401611255565b60408201526112fc6060840161123f565b606082015261130d60808401611255565b608082015261131e60a0840161126b565b60a082015260c0838101519082015261133960e084016111ce565b60e0820152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208cb372687cdf263205158ea8ea31b9f3a38330e7e23debb567b063d7d3129bde64736f6c634300081a0033000000000000000000000000980b4424c007caf7a1f3670b48c8eaef7ebc3d44000000000000000000000000b63abab9019fa0db4a3ab1824c5e5fa7171f1472","recompiledBytecode":"0x60c060405234801561000f575f80fd5b5060405161160438038061160483398101604081905261002e916100ed565b6001600160a01b03808316608052811660a052610049610059565b6004819055600255506102339050565b5f6080516001600160a01b031663c19d93fb6040518163ffffffff1660e01b815260040161010060405180830381865afa9250505080156100b7575060408051601f3d908101601f191682019092526100b49181019061016c565b60015b6100c057505f90565b602001516001600160401b0316919050565b80516001600160a01b03811681146100e8575f80fd5b919050565b5f80604083850312156100fe575f80fd5b610107836100d2565b9150610115602084016100d2565b90509250929050565b80516001600160401b03811681146100e8575f80fd5b80516001600160601b03811681146100e8575f80fd5b805163ffffffff811681146100e8575f80fd5b805180151581146100e8575f80fd5b5f61010082840312801561017e575f80fd5b5060405161010081016001600160401b03811182821017156101ae57634e487b7160e01b5f52604160045260245ffd5b6040526101ba8361011e565b81526101c86020840161011e565b60208201526101d960408401610134565b60408201526101ea6060840161011e565b60608201526101fb60808401610134565b608082015261020c60a0840161014a565b60a082015260c0838101519082015261022760e0840161015d565b60e08201529392505050565b60805160a05161139b6102695f395f818161046e015281816107110152610b7e01525f818161042f0152610e34015261139b5ff3fe608060405234801561000f575f80fd5b50600436106101aa575f3560e01c806306fdde03146101ae578063095ea7b3146101f15780630e001b38146102145780630eccc7081461022b57806318160ddd1461024a57806318178358146102525780631b2ef1ca1461025c57806323b872dd1461026f5780632e17de7814610282578063313ce5671461029557806336caea92146102af5780633901e3f1146102b75780633fb33da8146102c05780634a4244bc146102c95780634cdad506146102d157806357b17a52146102f25780636d86acc4146102fa57806370a08231146103035780637cbc2373146103225780637f6cbaa914610335578063872697291461033e57806390a577ef14610346578063922b3db41461034f57806395d89b411461036e578063a614849314610391578063a694fc3a1461039a578063a9059cbb146103ad578063af500ba3146103c0578063b3d7f6b9146103d3578063be6eb7e0146103e6578063c1590cd7146103ef578063c66bc046146103f8578063d2dbdd78146103e6578063dd62ed3e14610400578063f2f4eb261461042a578063ff4a563914610469575b5f80fd5b6101db6040518060400160405280600e81526020016d48616d73746572204d6f746f727360901b81525081565b6040516101e8919061105f565b60405180910390f35b6102046101ff3660046110af565b610490565b60405190151581526020016101e8565b61021d60055481565b6040519081526020016101e8565b61021d6102393660046110d7565b600a6020525f908152604090205481565b61021d5f5481565b61025a6104fc565b005b61021d61026a3660046110f7565b6105e3565b61020461027d366004611117565b61078a565b61021d610290366004611151565b6107f9565b61029d601281565b60405160ff90911681526020016101e8565b61021d606481565b61021d60045481565b61021d60025481565b61021d60c881565b6102e46102df366004611151565b610941565b6040516101e8929190611168565b61021d6109dd565b61021d60095481565b61021d6103113660046110d7565b60066020525f908152604090205481565b61021d6103303660046110f7565b6109f9565b61021d610e1081565b61021d610bf9565b61021d60085481565b61021d61035d3660046110d7565b600b6020525f908152604090205481565b6101db604051806040016040528060048152602001632426aa2960e11b81525081565b61021d60035481565b61021d6103a8366004611151565b610c37565b6102046103bb3660046110af565b610d68565b61021d6103ce3660046110d7565b610d7d565b61021d6103e1366004611151565b610dc5565b61021d6101f481565b61021d60015481565b610204610dfb565b61021d61040e366004611176565b600760209081525f928352604080842090915290825290205481565b6104517f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e8565b6104517f000000000000000000000000000000000000000000000000000000000000000081565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ea9086815260200190565b60405180910390a35060015b92915050565b5f610505610e31565b90506002548111156105565760028190554260058190556040517fc4208a34f6a363fa04719fd2d82056203fa577f8d61872a0e1da28cd368225159161054d91849190611168565b60405180910390a15b6003541580159061057e575080158061057e57506101f460045461057a91906111bb565b8110155b156105e0577f658c0761b19711ccd8c11a5edfeee3b1c7875a86f68b688c851704ef35c7a442600354826040516105b6929190611168565b60405180910390a160035460015f8282546105d191906111bb565b90915550505f60035560048190555b50565b5f6105ec6104fc565b6105f583610dc5565b9050805f036106175760405163f456040360e01b815260040160405180910390fd5b8181101561063857604051633de57c2360e21b815260040160405180910390fd5b8260015f82825461064991906111bb565b92505081905550805f8082825461066091906111bb565b9091555050335f90815260066020526040812080548392906106839084906111bb565b909155505060405181815233905f905f805160206113468339815191529060200160405180910390a3336001600160a01b03167f25b428dfde728ccfaddad7e29e4ac23c24ed7fd1a6e3e3f91894a9a073f5dfff84836040516106e7929190611168565b60405180910390a26040516323b872dd60e01b8152336004820152306024820152604481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561075f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078391906111dd565b5092915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1981146107e3576107bf83826111f6565b6001600160a01b0386165f9081526007602090815260408083203384529091529020555b6107ee858585610ec8565b506001949350505050565b5f815f0361081a5760405163f456040360e01b815260040160405180910390fd5b5f610823610e31565b905080158015906108415750335f908152600b602052604090205481105b1561087a57335f908152600b60205260409081902054905163ae5b754160e01b8152610871918391600401611168565b60405180910390fd5b60095460085461088a9085611209565b6108949190611220565b335f908152600a60205260408120805492945085929091906108b79084906111f6565b925050819055508260095f8282546108cf91906111f6565b925050819055508160085f8282546108e791906111f6565b909155506108f89050303384610ec8565b336001600160a01b03167f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e8385604051610933929190611168565b60405180910390a250919050565b5f805f8054841461098657620f42405f5461095c91906111bb565b620f424060015461096d91906111bb565b6109779086611209565b6109819190611220565b61098a565b6001545b905060015481111561099b57506001545b5f5484146109c7576127106109ae6109dd565b6109b89083611209565b6109c29190611220565b6109c9565b5f5b91506109d582826111f6565b925050915091565b5f6109e6610dfb565b6109f157506101f490565b60645b905090565b5f825f03610a1a5760405163f456040360e01b815260040160405180910390fd5b610a226104fc565b5f610a2c84610941565b909250905082821015610a5257604051633de57c2360e21b815260040160405180910390fd5b335f9081526006602052604081208054869290610a709084906111f6565b92505081905550835f80828254610a8791906111f6565b925050819055508160015f828254610a9f91906111f6565b90915550506040518481525f9033905f805160206113468339815191529060200160405180910390a3604080518581526020810184905290810182905233907f484c40561359f3e3b8be9101897f8680aa82fbe1df9fd9038e0dbc62840326469060600160405180910390a25f610b17600483611220565b90508060015f828254610b2a91906111f6565b925050819055508060035f828254610b4291906111bb565b909155505060095415610b6257610b62610b5d600284611220565b610f61565b60405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf091906111dd565b50505092915050565b5f620f42405f54610c0a91906111bb565b620f4240600154610c1b91906111bb565b610c2d90670de0b6b3a7640000611209565b6109f49190611220565b5f815f03610c585760405163f456040360e01b815260040160405180910390fd5b610c606104fc565b60095415610c8757600854600954610c789084611209565b610c829190611220565b610c89565b815b9050805f03610cab5760405163f456040360e01b815260040160405180910390fd5b610cb6333084610ec8565b8160085f828254610cc791906111bb565b925050819055508060095f828254610cdf91906111bb565b9091555050335f908152600a602052604081208054839290610d029084906111bb565b9091555050600254610d169060c8906111bb565b335f818152600b6020526040908190209290925590517f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9090610d5b9085908590611168565b60405180910390a2919050565b5f610d74338484610ec8565b50600192915050565b5f6009545f14610dbe576009546008546001600160a01b0384165f908152600a6020526040902054610daf9190611209565b610db99190611220565b6104f6565b5f92915050565b5f620f4240600154610dd791906111bb565b620f42405f54610de791906111bb565b610df19084611209565b6104f69190611220565b5f600254610e07610e31565b11806109f45750600554158015906109f45750610e10600554610e2a91906111bb565b4210905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c19d93fb6040518163ffffffff1660e01b815260040161010060405180830381865afa925050508015610ead575060408051601f3d908101601f19168201909252610eaa9181019061127e565b60015b610eb657505f90565b602001516001600160401b0316919050565b6001600160a01b0383165f9081526006602052604081208054839290610eef9084906111f6565b90915550506001600160a01b0382165f9081526006602052604081208054839290610f1b9084906111bb565b92505081905550816001600160a01b0316836001600160a01b03165f8051602061134683398151915283604051610f5491815260200190565b60405180910390a3505050565b805f03610f6b5750565b5f620f424082600154610f7e91906111f6565b610f8891906111bb565b620f42405f54610f9891906111bb565b610fa29084611209565b610fac9190611220565b9050805f80828254610fbe91906111bb565b9091555050305f9081526006602052604081208054839290610fe19084906111bb565b925050819055508060085f828254610ff991906111bb565b909155505060405181815230905f905f805160206113468339815191529060200160405180910390a37f8082b0dab6d73a8025e5f15e4fdd54b68197a613e361810d4a2446c634b98ada8282604051611053929190611168565b60405180910390a15050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146110aa575f80fd5b919050565b5f80604083850312156110c0575f80fd5b6110c983611094565b946020939093013593505050565b5f602082840312156110e7575f80fd5b6110f082611094565b9392505050565b5f8060408385031215611108575f80fd5b50508035926020909101359150565b5f805f60608486031215611129575f80fd5b61113284611094565b925061114060208501611094565b929592945050506040919091013590565b5f60208284031215611161575f80fd5b5035919050565b918252602082015260400190565b5f8060408385031215611187575f80fd5b61119083611094565b915061119e60208401611094565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104f6576104f66111a7565b805180151581146110aa575f80fd5b5f602082840312156111ed575f80fd5b6110f0826111ce565b818103818111156104f6576104f66111a7565b80820281158282048414176104f6576104f66111a7565b5f8261123a57634e487b7160e01b5f52601260045260245ffd5b500490565b80516001600160401b03811681146110aa575f80fd5b80516001600160601b03811681146110aa575f80fd5b805163ffffffff811681146110aa575f80fd5b5f610100828403128015611290575f80fd5b5060405161010081016001600160401b03811182821017156112c057634e487b7160e01b5f52604160045260245ffd5b6040526112cc8361123f565b81526112da6020840161123f565b60208201526112eb60408401611255565b60408201526112fc6060840161123f565b606082015261130d60808401611255565b608082015261131e60a0840161126b565b60a082015260c0838101519082015261133960e084016111ce565b60e0820152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208cb372687cdf263205158ea8ea31b9f3a38330e7e23debb567b063d7d3129bde64736f6c634300081a0033","sourceMap":"1482:7672:0:-:0;;;3774:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3826:24:0;;;;;3860:19;;;;3912:7;:5;:7::i;:::-;3900:9;:19;;;3889:8;:30;-1:-1:-1;1482:7672:0;;-1:-1:-1;1482:7672:0;8987:165;9026:7;9049:4;;-1:-1:-1;;;;;9049:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9049:12:0;;;;;;;;-1:-1:-1;;9049:12:0;;;;;;;;;;;;:::i;:::-;;;9045:101;;-1:-1:-1;9142:1:0;;8987:165::o;9045:101::-;9107:16;;;-1:-1:-1;;;;;9100:23:0;;8987:165;-1:-1:-1;8987:165:0:o;14:177:1:-;93:13;;-1:-1:-1;;;;;135:31:1;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;494:175::-;572:13;;-1:-1:-1;;;;;614:30:1;;604:41;;594:69;;659:1;656;649:12;674:175;752:13;;-1:-1:-1;;;;;794:30:1;;784:41;;774:69;;839:1;836;829:12;854:167;932:13;;985:10;974:22;;964:33;;954:61;;1011:1;1008;1001:12;1026:164;1102:13;;1151;;1144:21;1134:32;;1124:60;;1180:1;1177;1170:12;1195:1200;1286:6;1346:3;1334:9;1325:7;1321:23;1317:33;1362:2;1359:22;;;1377:1;1374;1367:12;1359:22;-1:-1:-1;1426:2:1;1420:9;1468:3;1456:16;;-1:-1:-1;;;;;1487:34:1;;1523:22;;;1484:62;1481:185;;;1588:10;1583:3;1579:20;1576:1;1569:31;1623:4;1620:1;1613:15;1651:4;1648:1;1641:15;1481:185;1682:2;1675:22;1721:39;1750:9;1721:39;:::i;:::-;1713:6;1706:55;1794:48;1838:2;1827:9;1823:18;1794:48;:::i;:::-;1789:2;1781:6;1777:15;1770:73;1876:48;1920:2;1909:9;1905:18;1876:48;:::i;:::-;1871:2;1863:6;1859:15;1852:73;1958:48;2002:2;1991:9;1987:18;1958:48;:::i;:::-;1953:2;1945:6;1941:15;1934:73;2041:49;2085:3;2074:9;2070:19;2041:49;:::i;:::-;2035:3;2027:6;2023:16;2016:75;2125:49;2169:3;2158:9;2154:19;2125:49;:::i;:::-;2119:3;2107:16;;2100:75;2237:3;2222:19;;;2216:26;2258:16;;;2251:31;2316:47;2358:3;2343:19;;2316:47;:::i;:::-;2310:3;2298:16;;2291:73;2302:6;1195:1200;-1:-1:-1;;;1195:1200:1:o;:::-;1482:7672:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"cborAuxdata":{"1":{"value":"0xa26469706673582212208cb372687cdf263205158ea8ea31b9f3a38330e7e23debb567b063d7d3129bde64736f6c634300081a0033","offset":5583}},"transformations":[{"type":"insert","offset":5636,"reason":"constructorArguments"}],"transformationValues":{"constructorArguments":"0x000000000000000000000000980b4424c007caf7a1f3670b48c8eaef7ebc3d44000000000000000000000000b63abab9019fa0db4a3ab1824c5e5fa7171f1472"}},"runtimeBytecode":{"onchainBytecode":"0x608060405234801561000f575f80fd5b50600436106101aa575f3560e01c806306fdde03146101ae578063095ea7b3146101f15780630e001b38146102145780630eccc7081461022b57806318160ddd1461024a57806318178358146102525780631b2ef1ca1461025c57806323b872dd1461026f5780632e17de7814610282578063313ce5671461029557806336caea92146102af5780633901e3f1146102b75780633fb33da8146102c05780634a4244bc146102c95780634cdad506146102d157806357b17a52146102f25780636d86acc4146102fa57806370a08231146103035780637cbc2373146103225780637f6cbaa914610335578063872697291461033e57806390a577ef14610346578063922b3db41461034f57806395d89b411461036e578063a614849314610391578063a694fc3a1461039a578063a9059cbb146103ad578063af500ba3146103c0578063b3d7f6b9146103d3578063be6eb7e0146103e6578063c1590cd7146103ef578063c66bc046146103f8578063d2dbdd78146103e6578063dd62ed3e14610400578063f2f4eb261461042a578063ff4a563914610469575b5f80fd5b6101db6040518060400160405280600e81526020016d48616d73746572204d6f746f727360901b81525081565b6040516101e8919061105f565b60405180910390f35b6102046101ff3660046110af565b610490565b60405190151581526020016101e8565b61021d60055481565b6040519081526020016101e8565b61021d6102393660046110d7565b600a6020525f908152604090205481565b61021d5f5481565b61025a6104fc565b005b61021d61026a3660046110f7565b6105e3565b61020461027d366004611117565b61078a565b61021d610290366004611151565b6107f9565b61029d601281565b60405160ff90911681526020016101e8565b61021d606481565b61021d60045481565b61021d60025481565b61021d60c881565b6102e46102df366004611151565b610941565b6040516101e8929190611168565b61021d6109dd565b61021d60095481565b61021d6103113660046110d7565b60066020525f908152604090205481565b61021d6103303660046110f7565b6109f9565b61021d610e1081565b61021d610bf9565b61021d60085481565b61021d61035d3660046110d7565b600b6020525f908152604090205481565b6101db604051806040016040528060048152602001632426aa2960e11b81525081565b61021d60035481565b61021d6103a8366004611151565b610c37565b6102046103bb3660046110af565b610d68565b61021d6103ce3660046110d7565b610d7d565b61021d6103e1366004611151565b610dc5565b61021d6101f481565b61021d60015481565b610204610dfb565b61021d61040e366004611176565b600760209081525f928352604080842090915290825290205481565b6104517f000000000000000000000000980b4424c007caf7a1f3670b48c8eaef7ebc3d4481565b6040516001600160a01b0390911681526020016101e8565b6104517f000000000000000000000000b63abab9019fa0db4a3ab1824c5e5fa7171f147281565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ea9086815260200190565b60405180910390a35060015b92915050565b5f610505610e31565b90506002548111156105565760028190554260058190556040517fc4208a34f6a363fa04719fd2d82056203fa577f8d61872a0e1da28cd368225159161054d91849190611168565b60405180910390a15b6003541580159061057e575080158061057e57506101f460045461057a91906111bb565b8110155b156105e0577f658c0761b19711ccd8c11a5edfeee3b1c7875a86f68b688c851704ef35c7a442600354826040516105b6929190611168565b60405180910390a160035460015f8282546105d191906111bb565b90915550505f60035560048190555b50565b5f6105ec6104fc565b6105f583610dc5565b9050805f036106175760405163f456040360e01b815260040160405180910390fd5b8181101561063857604051633de57c2360e21b815260040160405180910390fd5b8260015f82825461064991906111bb565b92505081905550805f8082825461066091906111bb565b9091555050335f90815260066020526040812080548392906106839084906111bb565b909155505060405181815233905f905f805160206113468339815191529060200160405180910390a3336001600160a01b03167f25b428dfde728ccfaddad7e29e4ac23c24ed7fd1a6e3e3f91894a9a073f5dfff84836040516106e7929190611168565b60405180910390a26040516323b872dd60e01b8152336004820152306024820152604481018490527f000000000000000000000000b63abab9019fa0db4a3ab1824c5e5fa7171f14726001600160a01b0316906323b872dd906064016020604051808303815f875af115801561075f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078391906111dd565b5092915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1981146107e3576107bf83826111f6565b6001600160a01b0386165f9081526007602090815260408083203384529091529020555b6107ee858585610ec8565b506001949350505050565b5f815f0361081a5760405163f456040360e01b815260040160405180910390fd5b5f610823610e31565b905080158015906108415750335f908152600b602052604090205481105b1561087a57335f908152600b60205260409081902054905163ae5b754160e01b8152610871918391600401611168565b60405180910390fd5b60095460085461088a9085611209565b6108949190611220565b335f908152600a60205260408120805492945085929091906108b79084906111f6565b925050819055508260095f8282546108cf91906111f6565b925050819055508160085f8282546108e791906111f6565b909155506108f89050303384610ec8565b336001600160a01b03167f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e8385604051610933929190611168565b60405180910390a250919050565b5f805f8054841461098657620f42405f5461095c91906111bb565b620f424060015461096d91906111bb565b6109779086611209565b6109819190611220565b61098a565b6001545b905060015481111561099b57506001545b5f5484146109c7576127106109ae6109dd565b6109b89083611209565b6109c29190611220565b6109c9565b5f5b91506109d582826111f6565b925050915091565b5f6109e6610dfb565b6109f157506101f490565b60645b905090565b5f825f03610a1a5760405163f456040360e01b815260040160405180910390fd5b610a226104fc565b5f610a2c84610941565b909250905082821015610a5257604051633de57c2360e21b815260040160405180910390fd5b335f9081526006602052604081208054869290610a709084906111f6565b92505081905550835f80828254610a8791906111f6565b925050819055508160015f828254610a9f91906111f6565b90915550506040518481525f9033905f805160206113468339815191529060200160405180910390a3604080518581526020810184905290810182905233907f484c40561359f3e3b8be9101897f8680aa82fbe1df9fd9038e0dbc62840326469060600160405180910390a25f610b17600483611220565b90508060015f828254610b2a91906111f6565b925050819055508060035f828254610b4291906111bb565b909155505060095415610b6257610b62610b5d600284611220565b610f61565b60405163a9059cbb60e01b8152336004820152602481018490527f000000000000000000000000b63abab9019fa0db4a3ab1824c5e5fa7171f14726001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf091906111dd565b50505092915050565b5f620f42405f54610c0a91906111bb565b620f4240600154610c1b91906111bb565b610c2d90670de0b6b3a7640000611209565b6109f49190611220565b5f815f03610c585760405163f456040360e01b815260040160405180910390fd5b610c606104fc565b60095415610c8757600854600954610c789084611209565b610c829190611220565b610c89565b815b9050805f03610cab5760405163f456040360e01b815260040160405180910390fd5b610cb6333084610ec8565b8160085f828254610cc791906111bb565b925050819055508060095f828254610cdf91906111bb565b9091555050335f908152600a602052604081208054839290610d029084906111bb565b9091555050600254610d169060c8906111bb565b335f818152600b6020526040908190209290925590517f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9090610d5b9085908590611168565b60405180910390a2919050565b5f610d74338484610ec8565b50600192915050565b5f6009545f14610dbe576009546008546001600160a01b0384165f908152600a6020526040902054610daf9190611209565b610db99190611220565b6104f6565b5f92915050565b5f620f4240600154610dd791906111bb565b620f42405f54610de791906111bb565b610df19084611209565b6104f69190611220565b5f600254610e07610e31565b11806109f45750600554158015906109f45750610e10600554610e2a91906111bb565b4210905090565b5f7f000000000000000000000000980b4424c007caf7a1f3670b48c8eaef7ebc3d446001600160a01b031663c19d93fb6040518163ffffffff1660e01b815260040161010060405180830381865afa925050508015610ead575060408051601f3d908101601f19168201909252610eaa9181019061127e565b60015b610eb657505f90565b602001516001600160401b0316919050565b6001600160a01b0383165f9081526006602052604081208054839290610eef9084906111f6565b90915550506001600160a01b0382165f9081526006602052604081208054839290610f1b9084906111bb565b92505081905550816001600160a01b0316836001600160a01b03165f8051602061134683398151915283604051610f5491815260200190565b60405180910390a3505050565b805f03610f6b5750565b5f620f424082600154610f7e91906111f6565b610f8891906111bb565b620f42405f54610f9891906111bb565b610fa29084611209565b610fac9190611220565b9050805f80828254610fbe91906111bb565b9091555050305f9081526006602052604081208054839290610fe19084906111bb565b925050819055508060085f828254610ff991906111bb565b909155505060405181815230905f905f805160206113468339815191529060200160405180910390a37f8082b0dab6d73a8025e5f15e4fdd54b68197a613e361810d4a2446c634b98ada8282604051611053929190611168565b60405180910390a15050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146110aa575f80fd5b919050565b5f80604083850312156110c0575f80fd5b6110c983611094565b946020939093013593505050565b5f602082840312156110e7575f80fd5b6110f082611094565b9392505050565b5f8060408385031215611108575f80fd5b50508035926020909101359150565b5f805f60608486031215611129575f80fd5b61113284611094565b925061114060208501611094565b929592945050506040919091013590565b5f60208284031215611161575f80fd5b5035919050565b918252602082015260400190565b5f8060408385031215611187575f80fd5b61119083611094565b915061119e60208401611094565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104f6576104f66111a7565b805180151581146110aa575f80fd5b5f602082840312156111ed575f80fd5b6110f0826111ce565b818103818111156104f6576104f66111a7565b80820281158282048414176104f6576104f66111a7565b5f8261123a57634e487b7160e01b5f52601260045260245ffd5b500490565b80516001600160401b03811681146110aa575f80fd5b80516001600160601b03811681146110aa575f80fd5b805163ffffffff811681146110aa575f80fd5b5f610100828403128015611290575f80fd5b5060405161010081016001600160401b03811182821017156112c057634e487b7160e01b5f52604160045260245ffd5b6040526112cc8361123f565b81526112da6020840161123f565b60208201526112eb60408401611255565b60408201526112fc6060840161123f565b606082015261130d60808401611255565b608082015261131e60a0840161126b565b60a082015260c0838101519082015261133960e084016111ce565b60e0820152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208cb372687cdf263205158ea8ea31b9f3a38330e7e23debb567b063d7d3129bde64736f6c634300081a0033","recompiledBytecode":"0x608060405234801561000f575f80fd5b50600436106101aa575f3560e01c806306fdde03146101ae578063095ea7b3146101f15780630e001b38146102145780630eccc7081461022b57806318160ddd1461024a57806318178358146102525780631b2ef1ca1461025c57806323b872dd1461026f5780632e17de7814610282578063313ce5671461029557806336caea92146102af5780633901e3f1146102b75780633fb33da8146102c05780634a4244bc146102c95780634cdad506146102d157806357b17a52146102f25780636d86acc4146102fa57806370a08231146103035780637cbc2373146103225780637f6cbaa914610335578063872697291461033e57806390a577ef14610346578063922b3db41461034f57806395d89b411461036e578063a614849314610391578063a694fc3a1461039a578063a9059cbb146103ad578063af500ba3146103c0578063b3d7f6b9146103d3578063be6eb7e0146103e6578063c1590cd7146103ef578063c66bc046146103f8578063d2dbdd78146103e6578063dd62ed3e14610400578063f2f4eb261461042a578063ff4a563914610469575b5f80fd5b6101db6040518060400160405280600e81526020016d48616d73746572204d6f746f727360901b81525081565b6040516101e8919061105f565b60405180910390f35b6102046101ff3660046110af565b610490565b60405190151581526020016101e8565b61021d60055481565b6040519081526020016101e8565b61021d6102393660046110d7565b600a6020525f908152604090205481565b61021d5f5481565b61025a6104fc565b005b61021d61026a3660046110f7565b6105e3565b61020461027d366004611117565b61078a565b61021d610290366004611151565b6107f9565b61029d601281565b60405160ff90911681526020016101e8565b61021d606481565b61021d60045481565b61021d60025481565b61021d60c881565b6102e46102df366004611151565b610941565b6040516101e8929190611168565b61021d6109dd565b61021d60095481565b61021d6103113660046110d7565b60066020525f908152604090205481565b61021d6103303660046110f7565b6109f9565b61021d610e1081565b61021d610bf9565b61021d60085481565b61021d61035d3660046110d7565b600b6020525f908152604090205481565b6101db604051806040016040528060048152602001632426aa2960e11b81525081565b61021d60035481565b61021d6103a8366004611151565b610c37565b6102046103bb3660046110af565b610d68565b61021d6103ce3660046110d7565b610d7d565b61021d6103e1366004611151565b610dc5565b61021d6101f481565b61021d60015481565b610204610dfb565b61021d61040e366004611176565b600760209081525f928352604080842090915290825290205481565b6104517f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e8565b6104517f000000000000000000000000000000000000000000000000000000000000000081565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ea9086815260200190565b60405180910390a35060015b92915050565b5f610505610e31565b90506002548111156105565760028190554260058190556040517fc4208a34f6a363fa04719fd2d82056203fa577f8d61872a0e1da28cd368225159161054d91849190611168565b60405180910390a15b6003541580159061057e575080158061057e57506101f460045461057a91906111bb565b8110155b156105e0577f658c0761b19711ccd8c11a5edfeee3b1c7875a86f68b688c851704ef35c7a442600354826040516105b6929190611168565b60405180910390a160035460015f8282546105d191906111bb565b90915550505f60035560048190555b50565b5f6105ec6104fc565b6105f583610dc5565b9050805f036106175760405163f456040360e01b815260040160405180910390fd5b8181101561063857604051633de57c2360e21b815260040160405180910390fd5b8260015f82825461064991906111bb565b92505081905550805f8082825461066091906111bb565b9091555050335f90815260066020526040812080548392906106839084906111bb565b909155505060405181815233905f905f805160206113468339815191529060200160405180910390a3336001600160a01b03167f25b428dfde728ccfaddad7e29e4ac23c24ed7fd1a6e3e3f91894a9a073f5dfff84836040516106e7929190611168565b60405180910390a26040516323b872dd60e01b8152336004820152306024820152604481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561075f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078391906111dd565b5092915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1981146107e3576107bf83826111f6565b6001600160a01b0386165f9081526007602090815260408083203384529091529020555b6107ee858585610ec8565b506001949350505050565b5f815f0361081a5760405163f456040360e01b815260040160405180910390fd5b5f610823610e31565b905080158015906108415750335f908152600b602052604090205481105b1561087a57335f908152600b60205260409081902054905163ae5b754160e01b8152610871918391600401611168565b60405180910390fd5b60095460085461088a9085611209565b6108949190611220565b335f908152600a60205260408120805492945085929091906108b79084906111f6565b925050819055508260095f8282546108cf91906111f6565b925050819055508160085f8282546108e791906111f6565b909155506108f89050303384610ec8565b336001600160a01b03167f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e8385604051610933929190611168565b60405180910390a250919050565b5f805f8054841461098657620f42405f5461095c91906111bb565b620f424060015461096d91906111bb565b6109779086611209565b6109819190611220565b61098a565b6001545b905060015481111561099b57506001545b5f5484146109c7576127106109ae6109dd565b6109b89083611209565b6109c29190611220565b6109c9565b5f5b91506109d582826111f6565b925050915091565b5f6109e6610dfb565b6109f157506101f490565b60645b905090565b5f825f03610a1a5760405163f456040360e01b815260040160405180910390fd5b610a226104fc565b5f610a2c84610941565b909250905082821015610a5257604051633de57c2360e21b815260040160405180910390fd5b335f9081526006602052604081208054869290610a709084906111f6565b92505081905550835f80828254610a8791906111f6565b925050819055508160015f828254610a9f91906111f6565b90915550506040518481525f9033905f805160206113468339815191529060200160405180910390a3604080518581526020810184905290810182905233907f484c40561359f3e3b8be9101897f8680aa82fbe1df9fd9038e0dbc62840326469060600160405180910390a25f610b17600483611220565b90508060015f828254610b2a91906111f6565b925050819055508060035f828254610b4291906111bb565b909155505060095415610b6257610b62610b5d600284611220565b610f61565b60405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf091906111dd565b50505092915050565b5f620f42405f54610c0a91906111bb565b620f4240600154610c1b91906111bb565b610c2d90670de0b6b3a7640000611209565b6109f49190611220565b5f815f03610c585760405163f456040360e01b815260040160405180910390fd5b610c606104fc565b60095415610c8757600854600954610c789084611209565b610c829190611220565b610c89565b815b9050805f03610cab5760405163f456040360e01b815260040160405180910390fd5b610cb6333084610ec8565b8160085f828254610cc791906111bb565b925050819055508060095f828254610cdf91906111bb565b9091555050335f908152600a602052604081208054839290610d029084906111bb565b9091555050600254610d169060c8906111bb565b335f818152600b6020526040908190209290925590517f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9090610d5b9085908590611168565b60405180910390a2919050565b5f610d74338484610ec8565b50600192915050565b5f6009545f14610dbe576009546008546001600160a01b0384165f908152600a6020526040902054610daf9190611209565b610db99190611220565b6104f6565b5f92915050565b5f620f4240600154610dd791906111bb565b620f42405f54610de791906111bb565b610df19084611209565b6104f69190611220565b5f600254610e07610e31565b11806109f45750600554158015906109f45750610e10600554610e2a91906111bb565b4210905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c19d93fb6040518163ffffffff1660e01b815260040161010060405180830381865afa925050508015610ead575060408051601f3d908101601f19168201909252610eaa9181019061127e565b60015b610eb657505f90565b602001516001600160401b0316919050565b6001600160a01b0383165f9081526006602052604081208054839290610eef9084906111f6565b90915550506001600160a01b0382165f9081526006602052604081208054839290610f1b9084906111bb565b92505081905550816001600160a01b0316836001600160a01b03165f8051602061134683398151915283604051610f5491815260200190565b60405180910390a3505050565b805f03610f6b5750565b5f620f424082600154610f7e91906111f6565b610f8891906111bb565b620f42405f54610f9891906111bb565b610fa29084611209565b610fac9190611220565b9050805f80828254610fbe91906111bb565b9091555050305f9081526006602052604081208054839290610fe19084906111bb565b925050819055508060085f828254610ff991906111bb565b909155505060405181815230905f905f805160206113468339815191529060200160405180910390a37f8082b0dab6d73a8025e5f15e4fdd54b68197a613e361810d4a2446c634b98ada8282604051611053929190611168565b60405180910390a15050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146110aa575f80fd5b919050565b5f80604083850312156110c0575f80fd5b6110c983611094565b946020939093013593505050565b5f602082840312156110e7575f80fd5b6110f082611094565b9392505050565b5f8060408385031215611108575f80fd5b50508035926020909101359150565b5f805f60608486031215611129575f80fd5b61113284611094565b925061114060208501611094565b929592945050506040919091013590565b5f60208284031215611161575f80fd5b5035919050565b918252602082015260400190565b5f8060408385031215611187575f80fd5b61119083611094565b915061119e60208401611094565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104f6576104f66111a7565b805180151581146110aa575f80fd5b5f602082840312156111ed575f80fd5b6110f0826111ce565b818103818111156104f6576104f66111a7565b80820281158282048414176104f6576104f66111a7565b5f8261123a57634e487b7160e01b5f52601260045260245ffd5b500490565b80516001600160401b03811681146110aa575f80fd5b80516001600160601b03811681146110aa575f80fd5b805163ffffffff811681146110aa575f80fd5b5f610100828403128015611290575f80fd5b5060405161010081016001600160401b03811182821017156112c057634e487b7160e01b5f52604160045260245ffd5b6040526112cc8361123f565b81526112da6020840161123f565b60208201526112eb60408401611255565b60408201526112fc6060840161123f565b606082015261130d60808401611255565b608082015261131e60a0840161126b565b60a082015260c0838101519082015261133960e084016111ce565b60e0820152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208cb372687cdf263205158ea8ea31b9f3a38330e7e23debb567b063d7d3129bde64736f6c634300081a0033","sourceMap":"1482:7672:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1508:46;;;;;;;;;;;;;;;-1:-1:-1;;;1508:46:0;;;;;;;;;;;;:::i;:::-;;;;;;;;8181:170;;;;;;:::i;:::-;;:::i;:::-;;;1085:14:1;;1078:22;1060:41;;1048:2;1033:18;8181:170:0;920:187:1;2641:23:0;;;;;;;;;1258:25:1;;;1246:2;1231:18;2641:23:0;1112:177:1;2924:42:0;;;;;;:::i;:::-;;;;;;;;;;;;;;2277:26;;;;;;4413:404;;;:::i;:::-;;5346:492;;;;;;:::i;:::-;;:::i;8470:249::-;;;;;;:::i;:::-;;:::i;7329:489::-;;;;;;:::i;:::-;;:::i;1604:35::-;;1637:2;1604:35;;;;;2618:4:1;2606:17;;;2588:36;;2576:2;2561:18;1604:35:0;2446:184:1;1645:42:0;;1684:3;1645:42;;2540:24;;;;;;2419:23;;;;;;1906:40;;1943:3;1906:40;;4958:382;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;4212:108::-;;;:::i;2893:25::-;;;;;;2670:44;;;;;;:::i;:::-;;;;;;;;;;;;;;5844:640;;;;;;:::i;:::-;;:::i;1807:45::-;;1845:7;1807:45;;3932:114;;;:::i;2790:27::-;;;;;;2972:44;;;;;;:::i;:::-;;;;;;;;;;;;;;1560:38;;;;;;;;;;;;;;;-1:-1:-1;;;1560:38:0;;;;;2448:20;;;;;;6737:497;;;;;;:::i;:::-;;:::i;8357:107::-;;;;;;:::i;:::-;;:::i;6490:147::-;;;;;;:::i;:::-;;:::i;4823:129::-;;;;;;:::i;:::-;;:::i;1724:44::-;;1765:3;1724:44;;2309:18;;;;;;4052:154;;;:::i;2720:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2205:32;;;;;;;;-1:-1:-1;;;;;3334:32:1;;;3316:51;;3304:2;3289:18;2205:32:0;3153:220:1;2243:27:0;;;;;8181:170;8264:10;8238:4;8254:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;8254:24:0;;;;;;;;;;:28;;;8297:26;8238:4;;8254:24;;8297:26;;;;8281:1;1258:25:1;;1246:2;1231:18;;1112:177;8297:26:0;;;;;;;;-1:-1:-1;8340:4:0;8181:170;;;;;:::o;4413:404::-;4446:9;4458:7;:5;:7::i;:::-;4446:19;;4483:8;;4479:1;:12;4475:100;;;4495:8;:12;;;4520:15;4509:8;:26;;;4542:30;;;;;;4506:1;;4520:15;4542:30;:::i;:::-;;;;;;;;4475:100;4588:5;;:10;;;;:53;;-1:-1:-1;4603:6:0;;;:37;;;2047:3;4618:9;;:22;;;;:::i;:::-;4613:1;:27;;4603:37;4584:227;;;4702:22;4715:5;;4722:1;4702:22;;;;;;;:::i;:::-;;;;;;;;4745:5;;4738:3;;:12;;;;;;;:::i;:::-;;;;-1:-1:-1;;4772:1:0;4764:5;:9;4787;:13;;;4584:227;4436:381;4413:404::o;5346:492::-;5413:14;5439:6;:4;:6::i;:::-;5464:19;5476:6;5464:11;:19::i;:::-;5455:28;;5497:6;5507:1;5497:11;5493:30;;5517:6;;-1:-1:-1;;;5517:6:0;;;;;;;;;;;5493:30;5546:9;5537:6;:18;5533:37;;;5564:6;;-1:-1:-1;;;5564:6:0;;;;;;;;;;;5533:37;5587:6;5580:3;;:13;;;;;;;:::i;:::-;;;;;;;;5618:6;5603:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;5644:10:0;5634:21;;;;:9;:21;;;;;:31;;5659:6;;5634:21;:31;;5659:6;;5634:31;:::i;:::-;;;;-1:-1:-1;;5680:40:0;;1258:25:1;;;5701:10:0;;5697:1;;-1:-1:-1;;;;;;;;;;;5680:40:0;1246:2:1;1231:18;5680:40:0;;;;;;;5742:10;-1:-1:-1;;;;;5735:34:0;;5754:6;5762;5735:34;;;;;;;:::i;:::-;;;;;;;;5779:52;;-1:-1:-1;;;5779:52:0;;5797:10;5779:52;;;4062:51:1;5817:4:0;4129:18:1;;;4122:60;4198:18;;;4191:34;;;5779:4:0;-1:-1:-1;;;;;5779:17:0;;;;4035:18:1;;5779:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5346:492;;;;:::o;8470:249::-;-1:-1:-1;;;;;8572:12:0;;8544:4;8572:12;;;:9;:12;;;;;;;;8585:10;8572:24;;;;;;;;-1:-1:-1;;8610:22:0;;8606:60;;8661:5;8665:1;8661;:5;:::i;:::-;-1:-1:-1;;;;;8634:12:0;;;;;;:9;:12;;;;;;;;8647:10;8634:24;;;;;;;:32;8606:60;8676:15;8682:1;8685:2;8689:1;8676:5;:15::i;:::-;-1:-1:-1;8708:4:0;;8470:249;-1:-1:-1;;;;8470:249:0:o;7329:489::-;7379:14;7409:5;7418:1;7409:10;7405:29;;7428:6;;-1:-1:-1;;;7428:6:0;;;;;;;;;;;7405:29;7444:9;7456:7;:5;:7::i;:::-;7444:19;-1:-1:-1;7477:6:0;;;;;:35;;-1:-1:-1;7501:10:0;7491:21;;;;:9;:21;;;;;;7487:25;;7477:35;7473:87;;;7548:10;7538:21;;;;:9;:21;;;;;;;;7521:39;;-1:-1:-1;;;7521:39:0;;;;7535:1;;7521:39;;;:::i;:::-;;;;;;;;7473:87;7602:10;;7587:12;;7579:20;;:5;:20;:::i;:::-;:33;;;;:::i;:::-;7630:10;7622:19;;;;:7;:19;;;;;:28;;7570:42;;-1:-1:-1;7645:5:0;;7622:19;;;:28;;7645:5;;7622:28;:::i;:::-;;;;;;;;7674:5;7660:10;;:19;;;;;;;:::i;:::-;;;;;;;;7705:6;7689:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;7721:40:0;;-1:-1:-1;7735:4:0;7742:10;7754:6;7721:5;:40::i;:::-;7785:10;-1:-1:-1;;;;;7776:35:0;;7797:6;7805:5;7776:35;;;;;;;:::i;:::-;;;;;;;;7395:423;7329:489;;;:::o;4958:382::-;5018:14;5034:11;5057:13;5083:11;;5073:6;:21;:80;;2145:3;5131:11;;:21;;;;:::i;:::-;2145:3;5113;;:13;;;;:::i;:::-;5103:24;;:6;:24;:::i;:::-;:50;;;;:::i;:::-;5073:80;;;5097:3;;5073:80;5057:96;;5175:3;;5167:5;:11;5163:28;;;-1:-1:-1;5188:3:0;;5163:28;5217:11;;5207:6;:21;:57;;5258:6;5243:12;:10;:12::i;:::-;5235:20;;:5;:20;:::i;:::-;:29;;;;:::i;:::-;5207:57;;;5231:1;5207:57;5201:63;-1:-1:-1;5322:11:0;5201:63;5322:5;:11;:::i;:::-;5313:20;;5047:293;4958:382;;;:::o;4212:108::-;4255:7;4273:12;:10;:12::i;:::-;:44;;-1:-1:-1;1765:3:0;;4212:108::o;4273:44::-;1684:3;4273:44;4266:51;;4212:108;:::o;5844:640::-;5913:14;5943:6;5953:1;5943:11;5939:30;;5963:6;;-1:-1:-1;;;5963:6:0;;;;;;;;;;;5939:30;5979:6;:4;:6::i;:::-;5995:11;6032:21;6046:6;6032:13;:21::i;:::-;6016:37;;-1:-1:-1;6016:37:0;-1:-1:-1;6067:18:0;;;6063:37;;;6094:6;;-1:-1:-1;;;6094:6:0;;;;;;;;;;;6063:37;6120:10;6110:21;;;;:9;:21;;;;;:31;;6135:6;;6110:21;:31;;6135:6;;6110:31;:::i;:::-;;;;;;;;6166:6;6151:11;;:21;;;;;;;:::i;:::-;;;;;;;;6189:6;6182:3;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;6210:40:0;;1258:25:1;;;6239:1:0;;6219:10;;-1:-1:-1;;;;;;;;;;;6210:40:0;1246:2:1;1231:18;6210:40:0;;;;;;;6265:41;;;5342:25:1;;;5398:2;5383:18;;5376:34;;;5426:18;;;5419:34;;;6274:10:0;;6265:41;;5330:2:1;5315:18;6265:41:0;;;;;;;6316:13;6332:7;6338:1;6332:3;:7;:::i;:::-;6316:23;;6356:5;6349:3;;:12;;;;;;;:::i;:::-;;;;;;;;6380:5;6371;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;6399:10:0;;:15;6395:39;;6416:18;6426:7;6432:1;6426:3;:7;:::i;:::-;6416:9;:18::i;:::-;6444:33;;-1:-1:-1;;;6444:33:0;;6458:10;6444:33;;;5638:51:1;5705:18;;;5698:34;;;6444:4:0;-1:-1:-1;;;;;6444:13:0;;;;5611:18:1;;6444:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5929:555;;5844:640;;;;:::o;3932:114::-;3977:7;2145:3;4021:11;;:21;;;;:::i;:::-;2145:3;3996;;:13;;;;:::i;:::-;3995:22;;4013:4;3995:22;:::i;:::-;:48;;;;:::i;6737:497::-;6786:13;6815:6;6825:1;6815:11;6811:30;;6835:6;;-1:-1:-1;;;6835:6:0;;;;;;;;;;;6811:30;6851:6;:4;:6::i;:::-;6875:10;;:15;:61;;6924:12;;6911:10;;6902:19;;:6;:19;:::i;:::-;:34;;;;:::i;:::-;6875:61;;;6893:6;6875:61;6867:69;;6950:5;6959:1;6950:10;6946:29;;6969:6;;-1:-1:-1;;;6969:6:0;;;;;;;;;;;6946:29;6985:40;6991:10;7011:4;7018:6;6985:5;:40::i;:::-;7051:6;7035:12;;:22;;;;;;;:::i;:::-;;;;;;;;7081:5;7067:10;;:19;;;;;;;:::i;:::-;;;;-1:-1:-1;;7104:10:0;7096:19;;;;:7;:19;;;;;:28;;7119:5;;7096:19;:28;;7119:5;;7096:28;:::i;:::-;;;;-1:-1:-1;;7158:8:0;;:21;;1943:3;;7158:21;:::i;:::-;7144:10;7134:21;;;;:9;:21;;;;;;;:45;;;;7194:33;;;;;;7213:6;;7221:5;;7194:33;:::i;:::-;;;;;;;;6737:497;;;:::o;8357:107::-;8416:4;8424:24;8430:10;8442:2;8446:1;8424:5;:24::i;:::-;-1:-1:-1;8457:4:0;8357:107;;;;:::o;6490:147::-;6542:7;6568:10;;6582:1;6568:15;:62;;6620:10;;6605:12;;-1:-1:-1;;;;;6590:12:0;;;;;;:7;:12;;;;;;:27;;6605:12;6590:27;:::i;:::-;:40;;;;:::i;:::-;6568:62;;;6586:1;6561:69;6490:147;-1:-1:-1;;6490:147:0:o;4823:129::-;4881:7;2145:3;4935;;:13;;;;:::i;:::-;2145:3;4909:11;;:21;;;;:::i;:::-;4899:32;;:6;:32;:::i;:::-;:50;;;;:::i;4052:154::-;4095:4;4128:8;;4118:7;:5;:7::i;:::-;:18;:81;;;-1:-1:-1;4141:8:0;;:13;;;;:57;;;1845:7;4176:8;;:22;;;;:::i;:::-;4158:15;:40;4111:88;;4052:154;:::o;8987:165::-;9026:7;9049:4;-1:-1:-1;;;;;9049:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9049:12:0;;;;;;;;-1:-1:-1;;9049:12:0;;;;;;;;;;;;:::i;:::-;;;9045:101;;-1:-1:-1;9142:1:0;;8987:165::o;9045:101::-;9107:16;;;-1:-1:-1;;;;;9100:23:0;;8987:165;-1:-1:-1;8987:165:0:o;8725:152::-;-1:-1:-1;;;;;8792:12:0;;;;;;:9;:12;;;;;:17;;8808:1;;8792:12;:17;;8808:1;;8792:17;:::i;:::-;;;;-1:-1:-1;;;;;;;8819:13:0;;;;;;:9;:13;;;;;:18;;8836:1;;8819:13;:18;;8836:1;;8819:18;:::i;:::-;;;;;;;;8864:2;-1:-1:-1;;;;;8852:18:0;8861:1;-1:-1:-1;;;;;8852:18:0;-1:-1:-1;;;;;;;;;;;8868:1:0;8852:18;;;;1258:25:1;;1246:2;1231:18;;1112:177;8852:18:0;;;;;;;;8725:152;;;:::o;7824:351::-;7881:6;7891:1;7881:11;7877:24;;7824:351;:::o;7877:24::-;7910:10;2145:3;7965:6;7959:3;;:12;;;;:::i;:::-;:22;;;;:::i;:::-;2145:3;7933:11;;:21;;;;:::i;:::-;7923:32;;:6;:32;:::i;:::-;:59;;;;:::i;:::-;7910:72;;8007:2;7992:11;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;8037:4:0;8019:24;;;;:9;:24;;;;;:30;;8047:2;;8019:24;:30;;8047:2;;8019:30;:::i;:::-;;;;;;;;8075:2;8059:12;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;8092:39:0;;1258:25:1;;;8121:4:0;;8109:1;;-1:-1:-1;;;;;;;;;;;8092:39:0;1246:2:1;1231:18;8092:39:0;;;;;;;8146:22;8157:6;8165:2;8146:22;;;;;;;:::i;:::-;;;;;;;;7867:308;7824:351;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:1;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:300::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;881:2;866:18;;;;853:32;;-1:-1:-1;;;615:300:1:o;1294:186::-;1353:6;1406:2;1394:9;1385:7;1381:23;1377:32;1374:52;;;1422:1;1419;1412:12;1374:52;1445:29;1464:9;1445:29;:::i;:::-;1435:39;1294:186;-1:-1:-1;;;1294:186:1:o;1485:346::-;1553:6;1561;1614:2;1602:9;1593:7;1589:23;1585:32;1582:52;;;1630:1;1627;1620:12;1582:52;-1:-1:-1;;1675:23:1;;;1795:2;1780:18;;;1767:32;;-1:-1:-1;1485:346:1:o;1836:374::-;1913:6;1921;1929;1982:2;1970:9;1961:7;1957:23;1953:32;1950:52;;;1998:1;1995;1988:12;1950:52;2021:29;2040:9;2021:29;:::i;:::-;2011:39;;2069:38;2103:2;2092:9;2088:18;2069:38;:::i;:::-;1836:374;;2059:48;;-1:-1:-1;;;2176:2:1;2161:18;;;;2148:32;;1836:374::o;2215:226::-;2274:6;2327:2;2315:9;2306:7;2302:23;2298:32;2295:52;;;2343:1;2340;2333:12;2295:52;-1:-1:-1;2388:23:1;;2215:226;-1:-1:-1;2215:226:1:o;2635:248::-;2809:25;;;2865:2;2850:18;;2843:34;2797:2;2782:18;;2635:248::o;2888:260::-;2956:6;2964;3017:2;3005:9;2996:7;2992:23;2988:32;2985:52;;;3033:1;3030;3023:12;2985:52;3056:29;3075:9;3056:29;:::i;:::-;3046:39;;3104:38;3138:2;3127:9;3123:18;3104:38;:::i;:::-;3094:48;;2888:260;;;;;:::o;3598:127::-;3659:10;3654:3;3650:20;3647:1;3640:31;3690:4;3687:1;3680:15;3714:4;3711:1;3704:15;3730:125;3795:9;;;3816:10;;;3813:36;;;3829:18;;:::i;4236:164::-;4312:13;;4361;;4354:21;4344:32;;4334:60;;4390:1;4387;4380:12;4405:202;4472:6;4525:2;4513:9;4504:7;4500:23;4496:32;4493:52;;;4541:1;4538;4531:12;4493:52;4564:37;4591:9;4564:37;:::i;4612:128::-;4679:9;;;4700:11;;;4697:37;;;4714:18;;:::i;4745:168::-;4818:9;;;4849;;4866:15;;;4860:22;;4846:37;4836:71;;4887:18;;:::i;4918:217::-;4958:1;4984;4974:132;;5028:10;5023:3;5019:20;5016:1;5009:31;5063:4;5060:1;5053:15;5091:4;5088:1;5081:15;4974:132;-1:-1:-1;5120:9:1;;4918:217::o;5743:175::-;5821:13;;-1:-1:-1;;;;;5863:30:1;;5853:41;;5843:69;;5908:1;5905;5898:12;5923:175;6001:13;;-1:-1:-1;;;;;6043:30:1;;6033:41;;6023:69;;6088:1;6085;6078:12;6103:167;6181:13;;6234:10;6223:22;;6213:33;;6203:61;;6260:1;6257;6250:12;6275:1200;6366:6;6426:3;6414:9;6405:7;6401:23;6397:33;6442:2;6439:22;;;6457:1;6454;6447:12;6439:22;-1:-1:-1;6506:2:1;6500:9;6548:3;6536:16;;-1:-1:-1;;;;;6567:34:1;;6603:22;;;6564:62;6561:185;;;6668:10;6663:3;6659:20;6656:1;6649:31;6703:4;6700:1;6693:15;6731:4;6728:1;6721:15;6561:185;6762:2;6755:22;6801:39;6830:9;6801:39;:::i;:::-;6793:6;6786:55;6874:48;6918:2;6907:9;6903:18;6874:48;:::i;:::-;6869:2;6861:6;6857:15;6850:73;6956:48;7000:2;6989:9;6985:18;6956:48;:::i;:::-;6951:2;6943:6;6939:15;6932:73;7038:48;7082:2;7071:9;7067:18;7038:48;:::i;:::-;7033:2;7025:6;7021:15;7014:73;7121:49;7165:3;7154:9;7150:19;7121:49;:::i;:::-;7115:3;7107:6;7103:16;7096:75;7205:49;7249:3;7238:9;7234:19;7205:49;:::i;:::-;7199:3;7187:16;;7180:75;7317:3;7302:19;;;7296:26;7338:16;;;7331:31;7396:47;7438:3;7423:19;;7396:47;:::i;:::-;7390:3;7378:16;;7371:73;7382:6;6275:1200;-1:-1:-1;;;6275:1200:1:o","linkReferences":{},"cborAuxdata":{"1":{"value":"0xa26469706673582212208cb372687cdf263205158ea8ea31b9f3a38330e7e23debb567b063d7d3129bde64736f6c634300081a0033","offset":4966}},"immutableReferences":{"77":[{"start":1071,"length":32},{"start":3636,"length":32}],"80":[{"start":1134,"length":32},{"start":1809,"length":32},{"start":2942,"length":32}]},"transformations":[{"id":"77","type":"replace","offset":1071,"reason":"immutable"},{"id":"80","type":"replace","offset":1134,"reason":"immutable"},{"id":"80","type":"replace","offset":1809,"reason":"immutable"},{"id":"80","type":"replace","offset":2942,"reason":"immutable"},{"id":"77","type":"replace","offset":3636,"reason":"immutable"}],"transformationValues":{"immutables":{"77":"0x000000000000000000000000980b4424c007caf7a1f3670b48c8eaef7ebc3d44","80":"0x000000000000000000000000b63abab9019fa0db4a3ab1824c5e5fa7171f1472"}}},"deployment":{"transactionHash":"0x4ace534569ec281b9ee5c5847171ebb9526cf32cc4657643686a6031866dcdfb","blockNumber":"12038867","transactionIndex":"80","deployer":"0xbC8744370bCb6D5AbF5dE8B4086ecfBB4C5629C3"},"sources":{"src/WheelStock.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.26;\n\ninterface ICoreClock {\n    struct State {\n        uint64 settledThroughRound;\n        uint64 cumulativeWork;\n        uint96 cumulativeBlockUnits;\n        uint64 blockHeight;\n        uint96 blockProgress;\n        uint32 workPerThousandBlocks;\n        uint256 authorizationNonce;\n        bool paused;\n    }\n    function state() external view returns (State memory);\n}\ninterface IBSQK {\n    function transfer(address to, uint256 v) external returns (bool);\n    function transferFrom(address f, address t, uint256 v) external returns (bool);\n}\n\n/// @title WheelStock\n/// @notice A share token backed by bSQK, with no maturity. Anyone mints at net asset value and can\n///         trade the token freely. Redeeming charges an exit fee that stays in the pool, which raises\n///         the price of every remaining share: the fee is the dividend. The market keeps hamster\n///         hours: the fee is low while the wheel has moved recently and high while the hamster sleeps.\n///         Shares staked back into the contract earn half of every exit fee as new shares, so a\n///         stake compounds. An unstake waits for the wheel to turn STAKE_WORK units.\n///         A hamster hoards food in its cheeks, so a quarter of each fee goes into the cheek pouch,\n///         outside the share price. Each POUCH_WORK of running empties the pouch into the pool.\n///         There is no owner and no admin, and redeeming is never blocked.\ncontract WheelStock {\n    string public constant name = \"Hamster Motors\";\n    string public constant symbol = \"HMTR\";\n    uint8 public constant decimals = 18;\n    uint256 public constant OPEN_FEE_BPS = 100;     // 1% during hamster hours\n    uint256 public constant CLOSED_FEE_BPS = 500;   // 5% while the hamster sleeps\n    uint256 public constant OPEN_WINDOW = 1 hours;  // how long a wheel move keeps the market open\n    uint256 public constant STAKE_WORK = 200;       // wheel work a stake must wait, blocks fee sniping\n    uint256 public constant POUCH_WORK = 500;       // one run of this much empties the cheek pouch\n    uint256 private constant VIRTUAL = 1e6;         // blunts first-depositor share inflation\n\n    ICoreClock public immutable core;\n    IBSQK public immutable bsqk;\n\n    uint256 public totalSupply;\n    uint256 public nav;                             // bSQK backing the shares; direct transfers do not count\n    uint256 public lastWork;\n    uint256 public pouch;                           // fees hoarded outside the share price\n    uint256 public pouchWork;                       // wheel work at the last time the pouch emptied\n    uint256 public lastMove;\n    mapping(address => uint256) public balanceOf;\n    mapping(address => mapping(address => uint256)) public allowance;\n    uint256 public stakedShares;                    // shares held for stakers, grows as fees compound\n    uint256 public totalUnits;\n    mapping(address => uint256) public unitsOf;\n    mapping(address => uint256) public unstakeAt;   // wheel work at which a stake can leave\n\n    error Zero();\n    error Slip();\n    error WheelTooEarly(uint256 work, uint256 needed);\n\n    event Transfer(address indexed from, address indexed to, uint256 value);\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n    event Minted(address indexed to, uint256 assets, uint256 shares);\n    event Redeemed(address indexed from, uint256 shares, uint256 assets, uint256 fee);\n    event Staked(address indexed who, uint256 shares, uint256 units);\n    event Unstaked(address indexed who, uint256 shares, uint256 units);\n    event Compounded(uint256 assets, uint256 shares);\n    event PouchEmptied(uint256 assets, uint256 work);\n    event WheelMoved(uint256 work, uint256 at);\n\n    constructor(address core_, address bsqk_) {\n        core = ICoreClock(core_);\n        bsqk = IBSQK(bsqk_);\n        lastWork = pouchWork = _work();\n    }\n\n    function sharePrice() external view returns (uint256) { return (nav + VIRTUAL) * 1e18 / (totalSupply + VIRTUAL); }\n\n    function marketOpen() public view returns (bool) {\n        return _work() > lastWork || (lastMove != 0 && block.timestamp < lastMove + OPEN_WINDOW);\n    }\n\n    function exitFeeBps() public view returns (uint256) { return marketOpen() ? OPEN_FEE_BPS : CLOSED_FEE_BPS; }\n\n    /// @notice Records a wheel move. Anyone can call it; mint and redeem call it too.\n    function poke() public {\n        uint256 w = _work();\n        if (w > lastWork) { lastWork = w; lastMove = block.timestamp; emit WheelMoved(w, block.timestamp); }\n        if (pouch != 0 && (w == 0 || w >= pouchWork + POUCH_WORK)) {   // a dead clock cannot trap the pouch\n            emit PouchEmptied(pouch, w);\n            nav += pouch;\n            pouch = 0;\n            pouchWork = w;\n        }\n    }\n\n    function previewMint(uint256 assets) public view returns (uint256) { return assets * (totalSupply + VIRTUAL) / (nav + VIRTUAL); }\n\n    function previewRedeem(uint256 shares) public view returns (uint256 assets, uint256 fee) {\n        uint256 gross = shares == totalSupply ? nav : shares * (nav + VIRTUAL) / (totalSupply + VIRTUAL);\n        if (gross > nav) gross = nav;\n        fee = shares == totalSupply ? 0 : gross * exitFeeBps() / 10_000;   // the last holder has nobody to pay\n        assets = gross - fee;\n    }\n\n    function mint(uint256 assets, uint256 minShares) external returns (uint256 shares) {\n        poke();\n        shares = previewMint(assets);\n        if (shares == 0) revert Zero();\n        if (shares < minShares) revert Slip();\n        nav += assets;\n        totalSupply += shares;\n        balanceOf[msg.sender] += shares;\n        emit Transfer(address(0), msg.sender, shares);\n        emit Minted(msg.sender, assets, shares);\n        bsqk.transferFrom(msg.sender, address(this), assets);\n    }\n\n    function redeem(uint256 shares, uint256 minAssets) external returns (uint256 assets) {\n        if (shares == 0) revert Zero();\n        poke();\n        uint256 fee;\n        (assets, fee) = previewRedeem(shares);\n        if (assets < minAssets) revert Slip();\n        balanceOf[msg.sender] -= shares;\n        totalSupply -= shares;\n        nav -= assets;\n        emit Transfer(msg.sender, address(0), shares);\n        emit Redeemed(msg.sender, shares, assets, fee);\n        uint256 cheek = fee / 4;\n        nav -= cheek;\n        pouch += cheek;\n        if (totalUnits != 0) _compound(fee / 2);\n        bsqk.transfer(msg.sender, assets);\n    }\n\n    function stakedOf(address who) public view returns (uint256) {\n        return totalUnits == 0 ? 0 : unitsOf[who] * stakedShares / totalUnits;\n    }\n\n    /// @notice Stake shares back. A new stake restarts the wheel wait on the whole position.\n    function stake(uint256 shares) external returns (uint256 units) {\n        if (shares == 0) revert Zero();\n        poke();\n        units = totalUnits == 0 ? shares : shares * totalUnits / stakedShares;\n        if (units == 0) revert Zero();\n        _move(msg.sender, address(this), shares);\n        stakedShares += shares;\n        totalUnits += units;\n        unitsOf[msg.sender] += units;\n        unstakeAt[msg.sender] = lastWork + STAKE_WORK;\n        emit Staked(msg.sender, shares, units);\n    }\n\n    /// @notice Leave the stake. If the clock cannot be read the wait no longer applies.\n    function unstake(uint256 units) external returns (uint256 shares) {\n        if (units == 0) revert Zero();\n        uint256 w = _work();\n        if (w != 0 && w < unstakeAt[msg.sender]) revert WheelTooEarly(w, unstakeAt[msg.sender]);\n        shares = units * stakedShares / totalUnits;\n        unitsOf[msg.sender] -= units;\n        totalUnits -= units;\n        stakedShares -= shares;\n        _move(address(this), msg.sender, shares);\n        emit Unstaked(msg.sender, shares, units);\n    }\n\n    function _compound(uint256 assets) private {\n        if (assets == 0) return;\n        uint256 sh = assets * (totalSupply + VIRTUAL) / (nav - assets + VIRTUAL);\n        totalSupply += sh;\n        balanceOf[address(this)] += sh;\n        stakedShares += sh;\n        emit Transfer(address(0), address(this), sh);\n        emit Compounded(assets, sh);\n    }\n\n    function approve(address s, uint256 v) external returns (bool) {\n        allowance[msg.sender][s] = v;\n        emit Approval(msg.sender, s, v);\n        return true;\n    }\n\n    function transfer(address to, uint256 v) external returns (bool) { _move(msg.sender, to, v); return true; }\n\n    function transferFrom(address f, address to, uint256 v) external returns (bool) {\n        uint256 a = allowance[f][msg.sender];\n        if (a != type(uint256).max) allowance[f][msg.sender] = a - v;\n        _move(f, to, v);\n        return true;\n    }\n\n    function _move(address f, address to, uint256 v) private {\n        balanceOf[f] -= v;\n        balanceOf[to] += v;\n        emit Transfer(f, to, v);\n    }\n\n    /// @dev An unreadable clock counts as a closed market, so redeeming still works at the higher fee.\n    function _work() private view returns (uint256) {\n        try core.state() returns (ICoreClock.State memory s) { return s.cumulativeWork; } catch { return 0; }\n    }\n}\n"}},"compilation":{"language":"Solidity","compiler":"solc","compilerVersion":"0.8.26+commit.8a97fa7a","compilerSettings":{"viaIR":false,"metadata":{"appendCBOR":true,"bytecodeHash":"ipfs","useLiteralContent":false},"libraries":{},"optimizer":{"runs":1,"enabled":true},"evmVersion":"cancun","remappings":["forge-std/=/Users/loserzx/squeek/burrow-lite/lib/forge-std/src/"]},"name":"WheelStock","fullyQualifiedName":"src/WheelStock.sol:WheelStock"},"abi":[{"type":"constructor","inputs":[{"name":"core_","type":"address","internalType":"address"},{"name":"bsqk_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"name":"Slip","type":"error","inputs":[]},{"name":"WheelTooEarly","type":"error","inputs":[{"name":"work","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"name":"Zero","type":"error","inputs":[]},{"name":"Approval","type":"event","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Compounded","type":"event","inputs":[{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Minted","type":"event","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"PouchEmptied","type":"event","inputs":[{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"work","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Redeemed","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Staked","type":"event","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"units","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Transfer","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Unstaked","type":"event","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"units","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"WheelMoved","type":"event","inputs":[{"name":"work","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"at","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"CLOSED_FEE_BPS","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"OPEN_FEE_BPS","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"OPEN_WINDOW","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"POUCH_WORK","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"STAKE_WORK","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"allowance","type":"function","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"approve","type":"function","inputs":[{"name":"s","type":"address","internalType":"address"},{"name":"v","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"balanceOf","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"bsqk","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBSQK"}],"stateMutability":"view"},{"name":"core","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ICoreClock"}],"stateMutability":"view"},{"name":"decimals","type":"function","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"name":"exitFeeBps","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"lastMove","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"lastWork","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"marketOpen","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"mint","type":"function","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"minShares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"name","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"nav","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"poke","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"pouch","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"pouchWork","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"previewMint","type":"function","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"previewRedeem","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"redeem","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"minAssets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"sharePrice","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"stake","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"units","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"stakedOf","type":"function","inputs":[{"name":"who","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"stakedShares","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"symbol","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"totalSupply","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalUnits","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"transfer","type":"function","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"v","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"transferFrom","type":"function","inputs":[{"name":"f","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"v","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"unitsOf","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"unstake","type":"function","inputs":[{"name":"units","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"unstakeAt","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"core_","type":"address"},{"internalType":"address","name":"bsqk_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Slip","type":"error"},{"inputs":[{"internalType":"uint256","name":"work","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"WheelTooEarly","type":"error"},{"inputs":[],"name":"Zero","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Compounded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"work","type":"uint256"}],"name":"PouchEmptied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"Redeemed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"units","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"units","type":"uint256"}],"name":"Unstaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"work","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"at","type":"uint256"}],"name":"WheelMoved","type":"event"},{"inputs":[],"name":"CLOSED_FEE_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPEN_FEE_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPEN_WINDOW","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POUCH_WORK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKE_WORK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"s","type":"address"},{"internalType":"uint256","name":"v","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bsqk","outputs":[{"internalType":"contract IBSQK","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"core","outputs":[{"internalType":"contract ICoreClock","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exitFeeBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastMove","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastWork","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"minShares","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nav","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pouch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pouchWork","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"minAssets","type":"uint256"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sharePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"stake","outputs":[{"internalType":"uint256","name":"units","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"stakedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakedShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"v","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"f","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"v","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unitsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"units","type":"uint256"}],"name":"unstake","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unstakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"title":"WheelStock","version":1},"userdoc":{"kind":"user","methods":{"poke()":{"notice":"Records a wheel move. Anyone can call it; mint and redeem call it too."},"stake(uint256)":{"notice":"Stake shares back. A new stake restarts the wheel wait on the whole position."},"unstake(uint256)":{"notice":"Leave the stake. If the clock cannot be read the wait no longer applies."}},"notice":"A share token backed by bSQK, with no maturity. Anyone mints at net asset value and can         trade the token freely. Redeeming charges an exit fee that stays in the pool, which raises         the price of every remaining share: the fee is the dividend. The market keeps hamster         hours: the fee is low while the wheel has moved recently and high while the hamster sleeps.         Shares staked back into the contract earn half of every exit fee as new shares, so a         stake compounds. An unstake waits for the wheel to turn STAKE_WORK units.         A hamster hoards food in its cheeks, so a quarter of each fee goes into the cheek pouch,         outside the share price. Each POUCH_WORK of running empties the pouch into the pool.         There is no owner and no admin, and redeeming is never blocked.","version":1}},"settings":{"compilationTarget":{"src/WheelStock.sol":"WheelStock"},"evmVersion":"cancun","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":1},"remappings":[":forge-std/=/Users/loserzx/squeek/burrow-lite/lib/forge-std/src/"]},"sources":{"src/WheelStock.sol":{"keccak256":"0x88bb1b074ca1b31e006fe75e524000c67c2e9ea11038b87d318cebdbb021c5bd","license":"MIT","urls":["bzz-raw://80f4d9c24481398abb34634cc462fe9f18f1d312918a50898112b01e2241b4ef","dweb:/ipfs/QmScb6qDfCqc8o5DqvqDSMHTxNyQnYT67DQdeiH37SXsEh"]}},"version":1},"storageLayout":{"types":{"t_address":{"label":"address","encoding":"inplace","numberOfBytes":"20"},"t_uint256":{"label":"uint256","encoding":"inplace","numberOfBytes":"32"},"t_mapping(t_address,t_uint256)":{"key":"t_address","label":"mapping(address => uint256)","value":"t_uint256","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"key":"t_address","label":"mapping(address => mapping(address => uint256))","value":"t_mapping(t_address,t_uint256)","encoding":"mapping","numberOfBytes":"32"}},"storage":[{"slot":"0","type":"t_uint256","astId":82,"label":"totalSupply","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"1","type":"t_uint256","astId":84,"label":"nav","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"2","type":"t_uint256","astId":86,"label":"lastWork","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"3","type":"t_uint256","astId":88,"label":"pouch","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"4","type":"t_uint256","astId":90,"label":"pouchWork","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"5","type":"t_uint256","astId":92,"label":"lastMove","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"6","type":"t_mapping(t_address,t_uint256)","astId":96,"label":"balanceOf","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"7","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))","astId":102,"label":"allowance","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"8","type":"t_uint256","astId":104,"label":"stakedShares","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"9","type":"t_uint256","astId":106,"label":"totalUnits","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"10","type":"t_mapping(t_address,t_uint256)","astId":110,"label":"unitsOf","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"11","type":"t_mapping(t_address,t_uint256)","astId":114,"label":"unstakeAt","offset":0,"contract":"src/WheelStock.sol:WheelStock"}]},"transientStorageLayout":null,"userdoc":{"kind":"user","notice":"A share token backed by bSQK, with no maturity. Anyone mints at net asset value and can         trade the token freely. Redeeming charges an exit fee that stays in the pool, which raises         the price of every remaining share: the fee is the dividend. The market keeps hamster         hours: the fee is low while the wheel has moved recently and high while the hamster sleeps.         Shares staked back into the contract earn half of every exit fee as new shares, so a         stake compounds. An unstake waits for the wheel to turn STAKE_WORK units.         A hamster hoards food in its cheeks, so a quarter of each fee goes into the cheek pouch,         outside the share price. Each POUCH_WORK of running empties the pouch into the pool.         There is no owner and no admin, and redeeming is never blocked.","methods":{"poke()":{"notice":"Records a wheel move. Anyone can call it; mint and redeem call it too."},"stake(uint256)":{"notice":"Stake shares back. A new stake restarts the wheel wait on the whole position."},"unstake(uint256)":{"notice":"Leave the stake. If the clock cannot be read the wait no longer applies."}},"version":1},"devdoc":{"kind":"dev","title":"WheelStock","methods":{},"version":1},"sourceIds":{"src/WheelStock.sol":{"id":0}},"additionalInput":null,"stdJsonInput":{"sources":{"src/WheelStock.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.26;\n\ninterface ICoreClock {\n    struct State {\n        uint64 settledThroughRound;\n        uint64 cumulativeWork;\n        uint96 cumulativeBlockUnits;\n        uint64 blockHeight;\n        uint96 blockProgress;\n        uint32 workPerThousandBlocks;\n        uint256 authorizationNonce;\n        bool paused;\n    }\n    function state() external view returns (State memory);\n}\ninterface IBSQK {\n    function transfer(address to, uint256 v) external returns (bool);\n    function transferFrom(address f, address t, uint256 v) external returns (bool);\n}\n\n/// @title WheelStock\n/// @notice A share token backed by bSQK, with no maturity. Anyone mints at net asset value and can\n///         trade the token freely. Redeeming charges an exit fee that stays in the pool, which raises\n///         the price of every remaining share: the fee is the dividend. The market keeps hamster\n///         hours: the fee is low while the wheel has moved recently and high while the hamster sleeps.\n///         Shares staked back into the contract earn half of every exit fee as new shares, so a\n///         stake compounds. An unstake waits for the wheel to turn STAKE_WORK units.\n///         A hamster hoards food in its cheeks, so a quarter of each fee goes into the cheek pouch,\n///         outside the share price. Each POUCH_WORK of running empties the pouch into the pool.\n///         There is no owner and no admin, and redeeming is never blocked.\ncontract WheelStock {\n    string public constant name = \"Hamster Motors\";\n    string public constant symbol = \"HMTR\";\n    uint8 public constant decimals = 18;\n    uint256 public constant OPEN_FEE_BPS = 100;     // 1% during hamster hours\n    uint256 public constant CLOSED_FEE_BPS = 500;   // 5% while the hamster sleeps\n    uint256 public constant OPEN_WINDOW = 1 hours;  // how long a wheel move keeps the market open\n    uint256 public constant STAKE_WORK = 200;       // wheel work a stake must wait, blocks fee sniping\n    uint256 public constant POUCH_WORK = 500;       // one run of this much empties the cheek pouch\n    uint256 private constant VIRTUAL = 1e6;         // blunts first-depositor share inflation\n\n    ICoreClock public immutable core;\n    IBSQK public immutable bsqk;\n\n    uint256 public totalSupply;\n    uint256 public nav;                             // bSQK backing the shares; direct transfers do not count\n    uint256 public lastWork;\n    uint256 public pouch;                           // fees hoarded outside the share price\n    uint256 public pouchWork;                       // wheel work at the last time the pouch emptied\n    uint256 public lastMove;\n    mapping(address => uint256) public balanceOf;\n    mapping(address => mapping(address => uint256)) public allowance;\n    uint256 public stakedShares;                    // shares held for stakers, grows as fees compound\n    uint256 public totalUnits;\n    mapping(address => uint256) public unitsOf;\n    mapping(address => uint256) public unstakeAt;   // wheel work at which a stake can leave\n\n    error Zero();\n    error Slip();\n    error WheelTooEarly(uint256 work, uint256 needed);\n\n    event Transfer(address indexed from, address indexed to, uint256 value);\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n    event Minted(address indexed to, uint256 assets, uint256 shares);\n    event Redeemed(address indexed from, uint256 shares, uint256 assets, uint256 fee);\n    event Staked(address indexed who, uint256 shares, uint256 units);\n    event Unstaked(address indexed who, uint256 shares, uint256 units);\n    event Compounded(uint256 assets, uint256 shares);\n    event PouchEmptied(uint256 assets, uint256 work);\n    event WheelMoved(uint256 work, uint256 at);\n\n    constructor(address core_, address bsqk_) {\n        core = ICoreClock(core_);\n        bsqk = IBSQK(bsqk_);\n        lastWork = pouchWork = _work();\n    }\n\n    function sharePrice() external view returns (uint256) { return (nav + VIRTUAL) * 1e18 / (totalSupply + VIRTUAL); }\n\n    function marketOpen() public view returns (bool) {\n        return _work() > lastWork || (lastMove != 0 && block.timestamp < lastMove + OPEN_WINDOW);\n    }\n\n    function exitFeeBps() public view returns (uint256) { return marketOpen() ? OPEN_FEE_BPS : CLOSED_FEE_BPS; }\n\n    /// @notice Records a wheel move. Anyone can call it; mint and redeem call it too.\n    function poke() public {\n        uint256 w = _work();\n        if (w > lastWork) { lastWork = w; lastMove = block.timestamp; emit WheelMoved(w, block.timestamp); }\n        if (pouch != 0 && (w == 0 || w >= pouchWork + POUCH_WORK)) {   // a dead clock cannot trap the pouch\n            emit PouchEmptied(pouch, w);\n            nav += pouch;\n            pouch = 0;\n            pouchWork = w;\n        }\n    }\n\n    function previewMint(uint256 assets) public view returns (uint256) { return assets * (totalSupply + VIRTUAL) / (nav + VIRTUAL); }\n\n    function previewRedeem(uint256 shares) public view returns (uint256 assets, uint256 fee) {\n        uint256 gross = shares == totalSupply ? nav : shares * (nav + VIRTUAL) / (totalSupply + VIRTUAL);\n        if (gross > nav) gross = nav;\n        fee = shares == totalSupply ? 0 : gross * exitFeeBps() / 10_000;   // the last holder has nobody to pay\n        assets = gross - fee;\n    }\n\n    function mint(uint256 assets, uint256 minShares) external returns (uint256 shares) {\n        poke();\n        shares = previewMint(assets);\n        if (shares == 0) revert Zero();\n        if (shares < minShares) revert Slip();\n        nav += assets;\n        totalSupply += shares;\n        balanceOf[msg.sender] += shares;\n        emit Transfer(address(0), msg.sender, shares);\n        emit Minted(msg.sender, assets, shares);\n        bsqk.transferFrom(msg.sender, address(this), assets);\n    }\n\n    function redeem(uint256 shares, uint256 minAssets) external returns (uint256 assets) {\n        if (shares == 0) revert Zero();\n        poke();\n        uint256 fee;\n        (assets, fee) = previewRedeem(shares);\n        if (assets < minAssets) revert Slip();\n        balanceOf[msg.sender] -= shares;\n        totalSupply -= shares;\n        nav -= assets;\n        emit Transfer(msg.sender, address(0), shares);\n        emit Redeemed(msg.sender, shares, assets, fee);\n        uint256 cheek = fee / 4;\n        nav -= cheek;\n        pouch += cheek;\n        if (totalUnits != 0) _compound(fee / 2);\n        bsqk.transfer(msg.sender, assets);\n    }\n\n    function stakedOf(address who) public view returns (uint256) {\n        return totalUnits == 0 ? 0 : unitsOf[who] * stakedShares / totalUnits;\n    }\n\n    /// @notice Stake shares back. A new stake restarts the wheel wait on the whole position.\n    function stake(uint256 shares) external returns (uint256 units) {\n        if (shares == 0) revert Zero();\n        poke();\n        units = totalUnits == 0 ? shares : shares * totalUnits / stakedShares;\n        if (units == 0) revert Zero();\n        _move(msg.sender, address(this), shares);\n        stakedShares += shares;\n        totalUnits += units;\n        unitsOf[msg.sender] += units;\n        unstakeAt[msg.sender] = lastWork + STAKE_WORK;\n        emit Staked(msg.sender, shares, units);\n    }\n\n    /// @notice Leave the stake. If the clock cannot be read the wait no longer applies.\n    function unstake(uint256 units) external returns (uint256 shares) {\n        if (units == 0) revert Zero();\n        uint256 w = _work();\n        if (w != 0 && w < unstakeAt[msg.sender]) revert WheelTooEarly(w, unstakeAt[msg.sender]);\n        shares = units * stakedShares / totalUnits;\n        unitsOf[msg.sender] -= units;\n        totalUnits -= units;\n        stakedShares -= shares;\n        _move(address(this), msg.sender, shares);\n        emit Unstaked(msg.sender, shares, units);\n    }\n\n    function _compound(uint256 assets) private {\n        if (assets == 0) return;\n        uint256 sh = assets * (totalSupply + VIRTUAL) / (nav - assets + VIRTUAL);\n        totalSupply += sh;\n        balanceOf[address(this)] += sh;\n        stakedShares += sh;\n        emit Transfer(address(0), address(this), sh);\n        emit Compounded(assets, sh);\n    }\n\n    function approve(address s, uint256 v) external returns (bool) {\n        allowance[msg.sender][s] = v;\n        emit Approval(msg.sender, s, v);\n        return true;\n    }\n\n    function transfer(address to, uint256 v) external returns (bool) { _move(msg.sender, to, v); return true; }\n\n    function transferFrom(address f, address to, uint256 v) external returns (bool) {\n        uint256 a = allowance[f][msg.sender];\n        if (a != type(uint256).max) allowance[f][msg.sender] = a - v;\n        _move(f, to, v);\n        return true;\n    }\n\n    function _move(address f, address to, uint256 v) private {\n        balanceOf[f] -= v;\n        balanceOf[to] += v;\n        emit Transfer(f, to, v);\n    }\n\n    /// @dev An unreadable clock counts as a closed market, so redeeming still works at the higher fee.\n    function _work() private view returns (uint256) {\n        try core.state() returns (ICoreClock.State memory s) { return s.cumulativeWork; } catch { return 0; }\n    }\n}\n"}},"language":"Solidity","settings":{"viaIR":false,"metadata":{"appendCBOR":true,"bytecodeHash":"ipfs","useLiteralContent":false},"libraries":{},"optimizer":{"runs":1,"enabled":true},"evmVersion":"cancun","remappings":["forge-std/=/Users/loserzx/squeek/burrow-lite/lib/forge-std/src/"]}},"stdJsonOutput":{"sources":{"src/WheelStock.sol":{"id":0}},"contracts":{"src/WheelStock.sol":{"WheelStock":{"abi":[{"type":"constructor","inputs":[{"name":"core_","type":"address","internalType":"address"},{"name":"bsqk_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"name":"Slip","type":"error","inputs":[]},{"name":"WheelTooEarly","type":"error","inputs":[{"name":"work","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"name":"Zero","type":"error","inputs":[]},{"name":"Approval","type":"event","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Compounded","type":"event","inputs":[{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Minted","type":"event","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"PouchEmptied","type":"event","inputs":[{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"work","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Redeemed","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Staked","type":"event","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"units","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Transfer","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Unstaked","type":"event","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"units","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"WheelMoved","type":"event","inputs":[{"name":"work","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"at","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"CLOSED_FEE_BPS","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"OPEN_FEE_BPS","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"OPEN_WINDOW","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"POUCH_WORK","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"STAKE_WORK","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"allowance","type":"function","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"approve","type":"function","inputs":[{"name":"s","type":"address","internalType":"address"},{"name":"v","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"balanceOf","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"bsqk","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBSQK"}],"stateMutability":"view"},{"name":"core","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ICoreClock"}],"stateMutability":"view"},{"name":"decimals","type":"function","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"name":"exitFeeBps","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"lastMove","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"lastWork","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"marketOpen","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"mint","type":"function","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"minShares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"name","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"nav","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"poke","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"pouch","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"pouchWork","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"previewMint","type":"function","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"previewRedeem","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"redeem","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"minAssets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"sharePrice","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"stake","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"units","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"stakedOf","type":"function","inputs":[{"name":"who","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"stakedShares","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"symbol","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"totalSupply","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalUnits","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"transfer","type":"function","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"v","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"transferFrom","type":"function","inputs":[{"name":"f","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"v","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"unitsOf","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"unstake","type":"function","inputs":[{"name":"units","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"unstakeAt","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"core_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"bsqk_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Slip\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"work\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"WheelTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Zero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Compounded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"work\",\"type\":\"uint256\"}],\"name\":\"PouchEmptied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"Redeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"units\",\"type\":\"uint256\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"units\",\"type\":\"uint256\"}],\"name\":\"Unstaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"work\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"at\",\"type\":\"uint256\"}],\"name\":\"WheelMoved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CLOSED_FEE_BPS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPEN_FEE_BPS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPEN_WINDOW\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POUCH_WORK\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKE_WORK\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"s\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"v\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bsqk\",\"outputs\":[{\"internalType\":\"contract IBSQK\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"core\",\"outputs\":[{\"internalType\":\"contract ICoreClock\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exitFeeBps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastMove\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastWork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"marketOpen\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minShares\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nav\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pouch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pouchWork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAssets\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sharePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"units\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"stakedOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakedShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalUnits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"v\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"f\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"v\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unitsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"units\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unstakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"WheelStock\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"poke()\":{\"notice\":\"Records a wheel move. Anyone can call it; mint and redeem call it too.\"},\"stake(uint256)\":{\"notice\":\"Stake shares back. A new stake restarts the wheel wait on the whole position.\"},\"unstake(uint256)\":{\"notice\":\"Leave the stake. If the clock cannot be read the wait no longer applies.\"}},\"notice\":\"A share token backed by bSQK, with no maturity. Anyone mints at net asset value and can         trade the token freely. Redeeming charges an exit fee that stays in the pool, which raises         the price of every remaining share: the fee is the dividend. The market keeps hamster         hours: the fee is low while the wheel has moved recently and high while the hamster sleeps.         Shares staked back into the contract earn half of every exit fee as new shares, so a         stake compounds. An unstake waits for the wheel to turn STAKE_WORK units.         A hamster hoards food in its cheeks, so a quarter of each fee goes into the cheek pouch,         outside the share price. Each POUCH_WORK of running empties the pouch into the pool.         There is no owner and no admin, and redeeming is never blocked.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WheelStock.sol\":\"WheelStock\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":forge-std/=/Users/loserzx/squeek/burrow-lite/lib/forge-std/src/\"]},\"sources\":{\"src/WheelStock.sol\":{\"keccak256\":\"0x88bb1b074ca1b31e006fe75e524000c67c2e9ea11038b87d318cebdbb021c5bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80f4d9c24481398abb34634cc462fe9f18f1d312918a50898112b01e2241b4ef\",\"dweb:/ipfs/QmScb6qDfCqc8o5DqvqDSMHTxNyQnYT67DQdeiH37SXsEh\"]}},\"version\":1}","userdoc":{"kind":"user","notice":"A share token backed by bSQK, with no maturity. Anyone mints at net asset value and can         trade the token freely. Redeeming charges an exit fee that stays in the pool, which raises         the price of every remaining share: the fee is the dividend. The market keeps hamster         hours: the fee is low while the wheel has moved recently and high while the hamster sleeps.         Shares staked back into the contract earn half of every exit fee as new shares, so a         stake compounds. An unstake waits for the wheel to turn STAKE_WORK units.         A hamster hoards food in its cheeks, so a quarter of each fee goes into the cheek pouch,         outside the share price. Each POUCH_WORK of running empties the pouch into the pool.         There is no owner and no admin, and redeeming is never blocked.","methods":{"poke()":{"notice":"Records a wheel move. Anyone can call it; mint and redeem call it too."},"stake(uint256)":{"notice":"Stake shares back. A new stake restarts the wheel wait on the whole position."},"unstake(uint256)":{"notice":"Leave the stake. If the clock cannot be read the wait no longer applies."}},"version":1},"devdoc":{"kind":"dev","title":"WheelStock","methods":{},"version":1},"storageLayout":{"types":{"t_address":{"label":"address","encoding":"inplace","numberOfBytes":"20"},"t_uint256":{"label":"uint256","encoding":"inplace","numberOfBytes":"32"},"t_mapping(t_address,t_uint256)":{"key":"t_address","label":"mapping(address => uint256)","value":"t_uint256","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"key":"t_address","label":"mapping(address => mapping(address => uint256))","value":"t_mapping(t_address,t_uint256)","encoding":"mapping","numberOfBytes":"32"}},"storage":[{"slot":"0","type":"t_uint256","astId":82,"label":"totalSupply","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"1","type":"t_uint256","astId":84,"label":"nav","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"2","type":"t_uint256","astId":86,"label":"lastWork","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"3","type":"t_uint256","astId":88,"label":"pouch","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"4","type":"t_uint256","astId":90,"label":"pouchWork","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"5","type":"t_uint256","astId":92,"label":"lastMove","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"6","type":"t_mapping(t_address,t_uint256)","astId":96,"label":"balanceOf","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"7","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))","astId":102,"label":"allowance","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"8","type":"t_uint256","astId":104,"label":"stakedShares","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"9","type":"t_uint256","astId":106,"label":"totalUnits","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"10","type":"t_mapping(t_address,t_uint256)","astId":110,"label":"unitsOf","offset":0,"contract":"src/WheelStock.sol:WheelStock"},{"slot":"11","type":"t_mapping(t_address,t_uint256)","astId":114,"label":"unstakeAt","offset":0,"contract":"src/WheelStock.sol:WheelStock"}]},"transientStorageLayout":null,"evm":{"bytecode":{"object":"60c060405234801561000f575f80fd5b5060405161160438038061160483398101604081905261002e916100ed565b6001600160a01b03808316608052811660a052610049610059565b6004819055600255506102339050565b5f6080516001600160a01b031663c19d93fb6040518163ffffffff1660e01b815260040161010060405180830381865afa9250505080156100b7575060408051601f3d908101601f191682019092526100b49181019061016c565b60015b6100c057505f90565b602001516001600160401b0316919050565b80516001600160a01b03811681146100e8575f80fd5b919050565b5f80604083850312156100fe575f80fd5b610107836100d2565b9150610115602084016100d2565b90509250929050565b80516001600160401b03811681146100e8575f80fd5b80516001600160601b03811681146100e8575f80fd5b805163ffffffff811681146100e8575f80fd5b805180151581146100e8575f80fd5b5f61010082840312801561017e575f80fd5b5060405161010081016001600160401b03811182821017156101ae57634e487b7160e01b5f52604160045260245ffd5b6040526101ba8361011e565b81526101c86020840161011e565b60208201526101d960408401610134565b60408201526101ea6060840161011e565b60608201526101fb60808401610134565b608082015261020c60a0840161014a565b60a082015260c0838101519082015261022760e0840161015d565b60e08201529392505050565b60805160a05161139b6102695f395f818161046e015281816107110152610b7e01525f818161042f0152610e34015261139b5ff3fe608060405234801561000f575f80fd5b50600436106101aa575f3560e01c806306fdde03146101ae578063095ea7b3146101f15780630e001b38146102145780630eccc7081461022b57806318160ddd1461024a57806318178358146102525780631b2ef1ca1461025c57806323b872dd1461026f5780632e17de7814610282578063313ce5671461029557806336caea92146102af5780633901e3f1146102b75780633fb33da8146102c05780634a4244bc146102c95780634cdad506146102d157806357b17a52146102f25780636d86acc4146102fa57806370a08231146103035780637cbc2373146103225780637f6cbaa914610335578063872697291461033e57806390a577ef14610346578063922b3db41461034f57806395d89b411461036e578063a614849314610391578063a694fc3a1461039a578063a9059cbb146103ad578063af500ba3146103c0578063b3d7f6b9146103d3578063be6eb7e0146103e6578063c1590cd7146103ef578063c66bc046146103f8578063d2dbdd78146103e6578063dd62ed3e14610400578063f2f4eb261461042a578063ff4a563914610469575b5f80fd5b6101db6040518060400160405280600e81526020016d48616d73746572204d6f746f727360901b81525081565b6040516101e8919061105f565b60405180910390f35b6102046101ff3660046110af565b610490565b60405190151581526020016101e8565b61021d60055481565b6040519081526020016101e8565b61021d6102393660046110d7565b600a6020525f908152604090205481565b61021d5f5481565b61025a6104fc565b005b61021d61026a3660046110f7565b6105e3565b61020461027d366004611117565b61078a565b61021d610290366004611151565b6107f9565b61029d601281565b60405160ff90911681526020016101e8565b61021d606481565b61021d60045481565b61021d60025481565b61021d60c881565b6102e46102df366004611151565b610941565b6040516101e8929190611168565b61021d6109dd565b61021d60095481565b61021d6103113660046110d7565b60066020525f908152604090205481565b61021d6103303660046110f7565b6109f9565b61021d610e1081565b61021d610bf9565b61021d60085481565b61021d61035d3660046110d7565b600b6020525f908152604090205481565b6101db604051806040016040528060048152602001632426aa2960e11b81525081565b61021d60035481565b61021d6103a8366004611151565b610c37565b6102046103bb3660046110af565b610d68565b61021d6103ce3660046110d7565b610d7d565b61021d6103e1366004611151565b610dc5565b61021d6101f481565b61021d60015481565b610204610dfb565b61021d61040e366004611176565b600760209081525f928352604080842090915290825290205481565b6104517f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e8565b6104517f000000000000000000000000000000000000000000000000000000000000000081565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ea9086815260200190565b60405180910390a35060015b92915050565b5f610505610e31565b90506002548111156105565760028190554260058190556040517fc4208a34f6a363fa04719fd2d82056203fa577f8d61872a0e1da28cd368225159161054d91849190611168565b60405180910390a15b6003541580159061057e575080158061057e57506101f460045461057a91906111bb565b8110155b156105e0577f658c0761b19711ccd8c11a5edfeee3b1c7875a86f68b688c851704ef35c7a442600354826040516105b6929190611168565b60405180910390a160035460015f8282546105d191906111bb565b90915550505f60035560048190555b50565b5f6105ec6104fc565b6105f583610dc5565b9050805f036106175760405163f456040360e01b815260040160405180910390fd5b8181101561063857604051633de57c2360e21b815260040160405180910390fd5b8260015f82825461064991906111bb565b92505081905550805f8082825461066091906111bb565b9091555050335f90815260066020526040812080548392906106839084906111bb565b909155505060405181815233905f905f805160206113468339815191529060200160405180910390a3336001600160a01b03167f25b428dfde728ccfaddad7e29e4ac23c24ed7fd1a6e3e3f91894a9a073f5dfff84836040516106e7929190611168565b60405180910390a26040516323b872dd60e01b8152336004820152306024820152604481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561075f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078391906111dd565b5092915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1981146107e3576107bf83826111f6565b6001600160a01b0386165f9081526007602090815260408083203384529091529020555b6107ee858585610ec8565b506001949350505050565b5f815f0361081a5760405163f456040360e01b815260040160405180910390fd5b5f610823610e31565b905080158015906108415750335f908152600b602052604090205481105b1561087a57335f908152600b60205260409081902054905163ae5b754160e01b8152610871918391600401611168565b60405180910390fd5b60095460085461088a9085611209565b6108949190611220565b335f908152600a60205260408120805492945085929091906108b79084906111f6565b925050819055508260095f8282546108cf91906111f6565b925050819055508160085f8282546108e791906111f6565b909155506108f89050303384610ec8565b336001600160a01b03167f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e8385604051610933929190611168565b60405180910390a250919050565b5f805f8054841461098657620f42405f5461095c91906111bb565b620f424060015461096d91906111bb565b6109779086611209565b6109819190611220565b61098a565b6001545b905060015481111561099b57506001545b5f5484146109c7576127106109ae6109dd565b6109b89083611209565b6109c29190611220565b6109c9565b5f5b91506109d582826111f6565b925050915091565b5f6109e6610dfb565b6109f157506101f490565b60645b905090565b5f825f03610a1a5760405163f456040360e01b815260040160405180910390fd5b610a226104fc565b5f610a2c84610941565b909250905082821015610a5257604051633de57c2360e21b815260040160405180910390fd5b335f9081526006602052604081208054869290610a709084906111f6565b92505081905550835f80828254610a8791906111f6565b925050819055508160015f828254610a9f91906111f6565b90915550506040518481525f9033905f805160206113468339815191529060200160405180910390a3604080518581526020810184905290810182905233907f484c40561359f3e3b8be9101897f8680aa82fbe1df9fd9038e0dbc62840326469060600160405180910390a25f610b17600483611220565b90508060015f828254610b2a91906111f6565b925050819055508060035f828254610b4291906111bb565b909155505060095415610b6257610b62610b5d600284611220565b610f61565b60405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf091906111dd565b50505092915050565b5f620f42405f54610c0a91906111bb565b620f4240600154610c1b91906111bb565b610c2d90670de0b6b3a7640000611209565b6109f49190611220565b5f815f03610c585760405163f456040360e01b815260040160405180910390fd5b610c606104fc565b60095415610c8757600854600954610c789084611209565b610c829190611220565b610c89565b815b9050805f03610cab5760405163f456040360e01b815260040160405180910390fd5b610cb6333084610ec8565b8160085f828254610cc791906111bb565b925050819055508060095f828254610cdf91906111bb565b9091555050335f908152600a602052604081208054839290610d029084906111bb565b9091555050600254610d169060c8906111bb565b335f818152600b6020526040908190209290925590517f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9090610d5b9085908590611168565b60405180910390a2919050565b5f610d74338484610ec8565b50600192915050565b5f6009545f14610dbe576009546008546001600160a01b0384165f908152600a6020526040902054610daf9190611209565b610db99190611220565b6104f6565b5f92915050565b5f620f4240600154610dd791906111bb565b620f42405f54610de791906111bb565b610df19084611209565b6104f69190611220565b5f600254610e07610e31565b11806109f45750600554158015906109f45750610e10600554610e2a91906111bb565b4210905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c19d93fb6040518163ffffffff1660e01b815260040161010060405180830381865afa925050508015610ead575060408051601f3d908101601f19168201909252610eaa9181019061127e565b60015b610eb657505f90565b602001516001600160401b0316919050565b6001600160a01b0383165f9081526006602052604081208054839290610eef9084906111f6565b90915550506001600160a01b0382165f9081526006602052604081208054839290610f1b9084906111bb565b92505081905550816001600160a01b0316836001600160a01b03165f8051602061134683398151915283604051610f5491815260200190565b60405180910390a3505050565b805f03610f6b5750565b5f620f424082600154610f7e91906111f6565b610f8891906111bb565b620f42405f54610f9891906111bb565b610fa29084611209565b610fac9190611220565b9050805f80828254610fbe91906111bb565b9091555050305f9081526006602052604081208054839290610fe19084906111bb565b925050819055508060085f828254610ff991906111bb565b909155505060405181815230905f905f805160206113468339815191529060200160405180910390a37f8082b0dab6d73a8025e5f15e4fdd54b68197a613e361810d4a2446c634b98ada8282604051611053929190611168565b60405180910390a15050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146110aa575f80fd5b919050565b5f80604083850312156110c0575f80fd5b6110c983611094565b946020939093013593505050565b5f602082840312156110e7575f80fd5b6110f082611094565b9392505050565b5f8060408385031215611108575f80fd5b50508035926020909101359150565b5f805f60608486031215611129575f80fd5b61113284611094565b925061114060208501611094565b929592945050506040919091013590565b5f60208284031215611161575f80fd5b5035919050565b918252602082015260400190565b5f8060408385031215611187575f80fd5b61119083611094565b915061119e60208401611094565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104f6576104f66111a7565b805180151581146110aa575f80fd5b5f602082840312156111ed575f80fd5b6110f0826111ce565b818103818111156104f6576104f66111a7565b80820281158282048414176104f6576104f66111a7565b5f8261123a57634e487b7160e01b5f52601260045260245ffd5b500490565b80516001600160401b03811681146110aa575f80fd5b80516001600160601b03811681146110aa575f80fd5b805163ffffffff811681146110aa575f80fd5b5f610100828403128015611290575f80fd5b5060405161010081016001600160401b03811182821017156112c057634e487b7160e01b5f52604160045260245ffd5b6040526112cc8361123f565b81526112da6020840161123f565b60208201526112eb60408401611255565b60408201526112fc6060840161123f565b606082015261130d60808401611255565b608082015261131e60a0840161126b565b60a082015260c0838101519082015261133960e084016111ce565b60e0820152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208cb372687cdf263205158ea8ea31b9f3a38330e7e23debb567b063d7d3129bde64736f6c634300081a0033","sourceMap":"1482:7672:0:-:0;;;3774:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3826:24:0;;;;;3860:19;;;;3912:7;:5;:7::i;:::-;3900:9;:19;;;3889:8;:30;-1:-1:-1;1482:7672:0;;-1:-1:-1;1482:7672:0;8987:165;9026:7;9049:4;;-1:-1:-1;;;;;9049:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9049:12:0;;;;;;;;-1:-1:-1;;9049:12:0;;;;;;;;;;;;:::i;:::-;;;9045:101;;-1:-1:-1;9142:1:0;;8987:165::o;9045:101::-;9107:16;;;-1:-1:-1;;;;;9100:23:0;;8987:165;-1:-1:-1;8987:165:0:o;14:177:1:-;93:13;;-1:-1:-1;;;;;135:31:1;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;494:175::-;572:13;;-1:-1:-1;;;;;614:30:1;;604:41;;594:69;;659:1;656;649:12;674:175;752:13;;-1:-1:-1;;;;;794:30:1;;784:41;;774:69;;839:1;836;829:12;854:167;932:13;;985:10;974:22;;964:33;;954:61;;1011:1;1008;1001:12;1026:164;1102:13;;1151;;1144:21;1134:32;;1124:60;;1180:1;1177;1170:12;1195:1200;1286:6;1346:3;1334:9;1325:7;1321:23;1317:33;1362:2;1359:22;;;1377:1;1374;1367:12;1359:22;-1:-1:-1;1426:2:1;1420:9;1468:3;1456:16;;-1:-1:-1;;;;;1487:34:1;;1523:22;;;1484:62;1481:185;;;1588:10;1583:3;1579:20;1576:1;1569:31;1623:4;1620:1;1613:15;1651:4;1648:1;1641:15;1481:185;1682:2;1675:22;1721:39;1750:9;1721:39;:::i;:::-;1713:6;1706:55;1794:48;1838:2;1827:9;1823:18;1794:48;:::i;:::-;1789:2;1781:6;1777:15;1770:73;1876:48;1920:2;1909:9;1905:18;1876:48;:::i;:::-;1871:2;1863:6;1859:15;1852:73;1958:48;2002:2;1991:9;1987:18;1958:48;:::i;:::-;1953:2;1945:6;1941:15;1934:73;2041:49;2085:3;2074:9;2070:19;2041:49;:::i;:::-;2035:3;2027:6;2023:16;2016:75;2125:49;2169:3;2158:9;2154:19;2125:49;:::i;:::-;2119:3;2107:16;;2100:75;2237:3;2222:19;;;2216:26;2258:16;;;2251:31;2316:47;2358:3;2343:19;;2316:47;:::i;:::-;2310:3;2298:16;;2291:73;2302:6;1195:1200;-1:-1:-1;;;1195:1200:1:o;:::-;1482:7672:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"608060405234801561000f575f80fd5b50600436106101aa575f3560e01c806306fdde03146101ae578063095ea7b3146101f15780630e001b38146102145780630eccc7081461022b57806318160ddd1461024a57806318178358146102525780631b2ef1ca1461025c57806323b872dd1461026f5780632e17de7814610282578063313ce5671461029557806336caea92146102af5780633901e3f1146102b75780633fb33da8146102c05780634a4244bc146102c95780634cdad506146102d157806357b17a52146102f25780636d86acc4146102fa57806370a08231146103035780637cbc2373146103225780637f6cbaa914610335578063872697291461033e57806390a577ef14610346578063922b3db41461034f57806395d89b411461036e578063a614849314610391578063a694fc3a1461039a578063a9059cbb146103ad578063af500ba3146103c0578063b3d7f6b9146103d3578063be6eb7e0146103e6578063c1590cd7146103ef578063c66bc046146103f8578063d2dbdd78146103e6578063dd62ed3e14610400578063f2f4eb261461042a578063ff4a563914610469575b5f80fd5b6101db6040518060400160405280600e81526020016d48616d73746572204d6f746f727360901b81525081565b6040516101e8919061105f565b60405180910390f35b6102046101ff3660046110af565b610490565b60405190151581526020016101e8565b61021d60055481565b6040519081526020016101e8565b61021d6102393660046110d7565b600a6020525f908152604090205481565b61021d5f5481565b61025a6104fc565b005b61021d61026a3660046110f7565b6105e3565b61020461027d366004611117565b61078a565b61021d610290366004611151565b6107f9565b61029d601281565b60405160ff90911681526020016101e8565b61021d606481565b61021d60045481565b61021d60025481565b61021d60c881565b6102e46102df366004611151565b610941565b6040516101e8929190611168565b61021d6109dd565b61021d60095481565b61021d6103113660046110d7565b60066020525f908152604090205481565b61021d6103303660046110f7565b6109f9565b61021d610e1081565b61021d610bf9565b61021d60085481565b61021d61035d3660046110d7565b600b6020525f908152604090205481565b6101db604051806040016040528060048152602001632426aa2960e11b81525081565b61021d60035481565b61021d6103a8366004611151565b610c37565b6102046103bb3660046110af565b610d68565b61021d6103ce3660046110d7565b610d7d565b61021d6103e1366004611151565b610dc5565b61021d6101f481565b61021d60015481565b610204610dfb565b61021d61040e366004611176565b600760209081525f928352604080842090915290825290205481565b6104517f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e8565b6104517f000000000000000000000000000000000000000000000000000000000000000081565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ea9086815260200190565b60405180910390a35060015b92915050565b5f610505610e31565b90506002548111156105565760028190554260058190556040517fc4208a34f6a363fa04719fd2d82056203fa577f8d61872a0e1da28cd368225159161054d91849190611168565b60405180910390a15b6003541580159061057e575080158061057e57506101f460045461057a91906111bb565b8110155b156105e0577f658c0761b19711ccd8c11a5edfeee3b1c7875a86f68b688c851704ef35c7a442600354826040516105b6929190611168565b60405180910390a160035460015f8282546105d191906111bb565b90915550505f60035560048190555b50565b5f6105ec6104fc565b6105f583610dc5565b9050805f036106175760405163f456040360e01b815260040160405180910390fd5b8181101561063857604051633de57c2360e21b815260040160405180910390fd5b8260015f82825461064991906111bb565b92505081905550805f8082825461066091906111bb565b9091555050335f90815260066020526040812080548392906106839084906111bb565b909155505060405181815233905f905f805160206113468339815191529060200160405180910390a3336001600160a01b03167f25b428dfde728ccfaddad7e29e4ac23c24ed7fd1a6e3e3f91894a9a073f5dfff84836040516106e7929190611168565b60405180910390a26040516323b872dd60e01b8152336004820152306024820152604481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561075f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078391906111dd565b5092915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1981146107e3576107bf83826111f6565b6001600160a01b0386165f9081526007602090815260408083203384529091529020555b6107ee858585610ec8565b506001949350505050565b5f815f0361081a5760405163f456040360e01b815260040160405180910390fd5b5f610823610e31565b905080158015906108415750335f908152600b602052604090205481105b1561087a57335f908152600b60205260409081902054905163ae5b754160e01b8152610871918391600401611168565b60405180910390fd5b60095460085461088a9085611209565b6108949190611220565b335f908152600a60205260408120805492945085929091906108b79084906111f6565b925050819055508260095f8282546108cf91906111f6565b925050819055508160085f8282546108e791906111f6565b909155506108f89050303384610ec8565b336001600160a01b03167f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e8385604051610933929190611168565b60405180910390a250919050565b5f805f8054841461098657620f42405f5461095c91906111bb565b620f424060015461096d91906111bb565b6109779086611209565b6109819190611220565b61098a565b6001545b905060015481111561099b57506001545b5f5484146109c7576127106109ae6109dd565b6109b89083611209565b6109c29190611220565b6109c9565b5f5b91506109d582826111f6565b925050915091565b5f6109e6610dfb565b6109f157506101f490565b60645b905090565b5f825f03610a1a5760405163f456040360e01b815260040160405180910390fd5b610a226104fc565b5f610a2c84610941565b909250905082821015610a5257604051633de57c2360e21b815260040160405180910390fd5b335f9081526006602052604081208054869290610a709084906111f6565b92505081905550835f80828254610a8791906111f6565b925050819055508160015f828254610a9f91906111f6565b90915550506040518481525f9033905f805160206113468339815191529060200160405180910390a3604080518581526020810184905290810182905233907f484c40561359f3e3b8be9101897f8680aa82fbe1df9fd9038e0dbc62840326469060600160405180910390a25f610b17600483611220565b90508060015f828254610b2a91906111f6565b925050819055508060035f828254610b4291906111bb565b909155505060095415610b6257610b62610b5d600284611220565b610f61565b60405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf091906111dd565b50505092915050565b5f620f42405f54610c0a91906111bb565b620f4240600154610c1b91906111bb565b610c2d90670de0b6b3a7640000611209565b6109f49190611220565b5f815f03610c585760405163f456040360e01b815260040160405180910390fd5b610c606104fc565b60095415610c8757600854600954610c789084611209565b610c829190611220565b610c89565b815b9050805f03610cab5760405163f456040360e01b815260040160405180910390fd5b610cb6333084610ec8565b8160085f828254610cc791906111bb565b925050819055508060095f828254610cdf91906111bb565b9091555050335f908152600a602052604081208054839290610d029084906111bb565b9091555050600254610d169060c8906111bb565b335f818152600b6020526040908190209290925590517f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9090610d5b9085908590611168565b60405180910390a2919050565b5f610d74338484610ec8565b50600192915050565b5f6009545f14610dbe576009546008546001600160a01b0384165f908152600a6020526040902054610daf9190611209565b610db99190611220565b6104f6565b5f92915050565b5f620f4240600154610dd791906111bb565b620f42405f54610de791906111bb565b610df19084611209565b6104f69190611220565b5f600254610e07610e31565b11806109f45750600554158015906109f45750610e10600554610e2a91906111bb565b4210905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c19d93fb6040518163ffffffff1660e01b815260040161010060405180830381865afa925050508015610ead575060408051601f3d908101601f19168201909252610eaa9181019061127e565b60015b610eb657505f90565b602001516001600160401b0316919050565b6001600160a01b0383165f9081526006602052604081208054839290610eef9084906111f6565b90915550506001600160a01b0382165f9081526006602052604081208054839290610f1b9084906111bb565b92505081905550816001600160a01b0316836001600160a01b03165f8051602061134683398151915283604051610f5491815260200190565b60405180910390a3505050565b805f03610f6b5750565b5f620f424082600154610f7e91906111f6565b610f8891906111bb565b620f42405f54610f9891906111bb565b610fa29084611209565b610fac9190611220565b9050805f80828254610fbe91906111bb565b9091555050305f9081526006602052604081208054839290610fe19084906111bb565b925050819055508060085f828254610ff991906111bb565b909155505060405181815230905f905f805160206113468339815191529060200160405180910390a37f8082b0dab6d73a8025e5f15e4fdd54b68197a613e361810d4a2446c634b98ada8282604051611053929190611168565b60405180910390a15050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146110aa575f80fd5b919050565b5f80604083850312156110c0575f80fd5b6110c983611094565b946020939093013593505050565b5f602082840312156110e7575f80fd5b6110f082611094565b9392505050565b5f8060408385031215611108575f80fd5b50508035926020909101359150565b5f805f60608486031215611129575f80fd5b61113284611094565b925061114060208501611094565b929592945050506040919091013590565b5f60208284031215611161575f80fd5b5035919050565b918252602082015260400190565b5f8060408385031215611187575f80fd5b61119083611094565b915061119e60208401611094565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104f6576104f66111a7565b805180151581146110aa575f80fd5b5f602082840312156111ed575f80fd5b6110f0826111ce565b818103818111156104f6576104f66111a7565b80820281158282048414176104f6576104f66111a7565b5f8261123a57634e487b7160e01b5f52601260045260245ffd5b500490565b80516001600160401b03811681146110aa575f80fd5b80516001600160601b03811681146110aa575f80fd5b805163ffffffff811681146110aa575f80fd5b5f610100828403128015611290575f80fd5b5060405161010081016001600160401b03811182821017156112c057634e487b7160e01b5f52604160045260245ffd5b6040526112cc8361123f565b81526112da6020840161123f565b60208201526112eb60408401611255565b60408201526112fc6060840161123f565b606082015261130d60808401611255565b608082015261131e60a0840161126b565b60a082015260c0838101519082015261133960e084016111ce565b60e0820152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208cb372687cdf263205158ea8ea31b9f3a38330e7e23debb567b063d7d3129bde64736f6c634300081a0033","sourceMap":"1482:7672:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1508:46;;;;;;;;;;;;;;;-1:-1:-1;;;1508:46:0;;;;;;;;;;;;:::i;:::-;;;;;;;;8181:170;;;;;;:::i;:::-;;:::i;:::-;;;1085:14:1;;1078:22;1060:41;;1048:2;1033:18;8181:170:0;920:187:1;2641:23:0;;;;;;;;;1258:25:1;;;1246:2;1231:18;2641:23:0;1112:177:1;2924:42:0;;;;;;:::i;:::-;;;;;;;;;;;;;;2277:26;;;;;;4413:404;;;:::i;:::-;;5346:492;;;;;;:::i;:::-;;:::i;8470:249::-;;;;;;:::i;:::-;;:::i;7329:489::-;;;;;;:::i;:::-;;:::i;1604:35::-;;1637:2;1604:35;;;;;2618:4:1;2606:17;;;2588:36;;2576:2;2561:18;1604:35:0;2446:184:1;1645:42:0;;1684:3;1645:42;;2540:24;;;;;;2419:23;;;;;;1906:40;;1943:3;1906:40;;4958:382;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;4212:108::-;;;:::i;2893:25::-;;;;;;2670:44;;;;;;:::i;:::-;;;;;;;;;;;;;;5844:640;;;;;;:::i;:::-;;:::i;1807:45::-;;1845:7;1807:45;;3932:114;;;:::i;2790:27::-;;;;;;2972:44;;;;;;:::i;:::-;;;;;;;;;;;;;;1560:38;;;;;;;;;;;;;;;-1:-1:-1;;;1560:38:0;;;;;2448:20;;;;;;6737:497;;;;;;:::i;:::-;;:::i;8357:107::-;;;;;;:::i;:::-;;:::i;6490:147::-;;;;;;:::i;:::-;;:::i;4823:129::-;;;;;;:::i;:::-;;:::i;1724:44::-;;1765:3;1724:44;;2309:18;;;;;;4052:154;;;:::i;2720:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2205:32;;;;;;;;-1:-1:-1;;;;;3334:32:1;;;3316:51;;3304:2;3289:18;2205:32:0;3153:220:1;2243:27:0;;;;;8181:170;8264:10;8238:4;8254:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;8254:24:0;;;;;;;;;;:28;;;8297:26;8238:4;;8254:24;;8297:26;;;;8281:1;1258:25:1;;1246:2;1231:18;;1112:177;8297:26:0;;;;;;;;-1:-1:-1;8340:4:0;8181:170;;;;;:::o;4413:404::-;4446:9;4458:7;:5;:7::i;:::-;4446:19;;4483:8;;4479:1;:12;4475:100;;;4495:8;:12;;;4520:15;4509:8;:26;;;4542:30;;;;;;4506:1;;4520:15;4542:30;:::i;:::-;;;;;;;;4475:100;4588:5;;:10;;;;:53;;-1:-1:-1;4603:6:0;;;:37;;;2047:3;4618:9;;:22;;;;:::i;:::-;4613:1;:27;;4603:37;4584:227;;;4702:22;4715:5;;4722:1;4702:22;;;;;;;:::i;:::-;;;;;;;;4745:5;;4738:3;;:12;;;;;;;:::i;:::-;;;;-1:-1:-1;;4772:1:0;4764:5;:9;4787;:13;;;4584:227;4436:381;4413:404::o;5346:492::-;5413:14;5439:6;:4;:6::i;:::-;5464:19;5476:6;5464:11;:19::i;:::-;5455:28;;5497:6;5507:1;5497:11;5493:30;;5517:6;;-1:-1:-1;;;5517:6:0;;;;;;;;;;;5493:30;5546:9;5537:6;:18;5533:37;;;5564:6;;-1:-1:-1;;;5564:6:0;;;;;;;;;;;5533:37;5587:6;5580:3;;:13;;;;;;;:::i;:::-;;;;;;;;5618:6;5603:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;5644:10:0;5634:21;;;;:9;:21;;;;;:31;;5659:6;;5634:21;:31;;5659:6;;5634:31;:::i;:::-;;;;-1:-1:-1;;5680:40:0;;1258:25:1;;;5701:10:0;;5697:1;;-1:-1:-1;;;;;;;;;;;5680:40:0;1246:2:1;1231:18;5680:40:0;;;;;;;5742:10;-1:-1:-1;;;;;5735:34:0;;5754:6;5762;5735:34;;;;;;;:::i;:::-;;;;;;;;5779:52;;-1:-1:-1;;;5779:52:0;;5797:10;5779:52;;;4062:51:1;5817:4:0;4129:18:1;;;4122:60;4198:18;;;4191:34;;;5779:4:0;-1:-1:-1;;;;;5779:17:0;;;;4035:18:1;;5779:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5346:492;;;;:::o;8470:249::-;-1:-1:-1;;;;;8572:12:0;;8544:4;8572:12;;;:9;:12;;;;;;;;8585:10;8572:24;;;;;;;;-1:-1:-1;;8610:22:0;;8606:60;;8661:5;8665:1;8661;:5;:::i;:::-;-1:-1:-1;;;;;8634:12:0;;;;;;:9;:12;;;;;;;;8647:10;8634:24;;;;;;;:32;8606:60;8676:15;8682:1;8685:2;8689:1;8676:5;:15::i;:::-;-1:-1:-1;8708:4:0;;8470:249;-1:-1:-1;;;;8470:249:0:o;7329:489::-;7379:14;7409:5;7418:1;7409:10;7405:29;;7428:6;;-1:-1:-1;;;7428:6:0;;;;;;;;;;;7405:29;7444:9;7456:7;:5;:7::i;:::-;7444:19;-1:-1:-1;7477:6:0;;;;;:35;;-1:-1:-1;7501:10:0;7491:21;;;;:9;:21;;;;;;7487:25;;7477:35;7473:87;;;7548:10;7538:21;;;;:9;:21;;;;;;;;7521:39;;-1:-1:-1;;;7521:39:0;;;;7535:1;;7521:39;;;:::i;:::-;;;;;;;;7473:87;7602:10;;7587:12;;7579:20;;:5;:20;:::i;:::-;:33;;;;:::i;:::-;7630:10;7622:19;;;;:7;:19;;;;;:28;;7570:42;;-1:-1:-1;7645:5:0;;7622:19;;;:28;;7645:5;;7622:28;:::i;:::-;;;;;;;;7674:5;7660:10;;:19;;;;;;;:::i;:::-;;;;;;;;7705:6;7689:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;7721:40:0;;-1:-1:-1;7735:4:0;7742:10;7754:6;7721:5;:40::i;:::-;7785:10;-1:-1:-1;;;;;7776:35:0;;7797:6;7805:5;7776:35;;;;;;;:::i;:::-;;;;;;;;7395:423;7329:489;;;:::o;4958:382::-;5018:14;5034:11;5057:13;5083:11;;5073:6;:21;:80;;2145:3;5131:11;;:21;;;;:::i;:::-;2145:3;5113;;:13;;;;:::i;:::-;5103:24;;:6;:24;:::i;:::-;:50;;;;:::i;:::-;5073:80;;;5097:3;;5073:80;5057:96;;5175:3;;5167:5;:11;5163:28;;;-1:-1:-1;5188:3:0;;5163:28;5217:11;;5207:6;:21;:57;;5258:6;5243:12;:10;:12::i;:::-;5235:20;;:5;:20;:::i;:::-;:29;;;;:::i;:::-;5207:57;;;5231:1;5207:57;5201:63;-1:-1:-1;5322:11:0;5201:63;5322:5;:11;:::i;:::-;5313:20;;5047:293;4958:382;;;:::o;4212:108::-;4255:7;4273:12;:10;:12::i;:::-;:44;;-1:-1:-1;1765:3:0;;4212:108::o;4273:44::-;1684:3;4273:44;4266:51;;4212:108;:::o;5844:640::-;5913:14;5943:6;5953:1;5943:11;5939:30;;5963:6;;-1:-1:-1;;;5963:6:0;;;;;;;;;;;5939:30;5979:6;:4;:6::i;:::-;5995:11;6032:21;6046:6;6032:13;:21::i;:::-;6016:37;;-1:-1:-1;6016:37:0;-1:-1:-1;6067:18:0;;;6063:37;;;6094:6;;-1:-1:-1;;;6094:6:0;;;;;;;;;;;6063:37;6120:10;6110:21;;;;:9;:21;;;;;:31;;6135:6;;6110:21;:31;;6135:6;;6110:31;:::i;:::-;;;;;;;;6166:6;6151:11;;:21;;;;;;;:::i;:::-;;;;;;;;6189:6;6182:3;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;6210:40:0;;1258:25:1;;;6239:1:0;;6219:10;;-1:-1:-1;;;;;;;;;;;6210:40:0;1246:2:1;1231:18;6210:40:0;;;;;;;6265:41;;;5342:25:1;;;5398:2;5383:18;;5376:34;;;5426:18;;;5419:34;;;6274:10:0;;6265:41;;5330:2:1;5315:18;6265:41:0;;;;;;;6316:13;6332:7;6338:1;6332:3;:7;:::i;:::-;6316:23;;6356:5;6349:3;;:12;;;;;;;:::i;:::-;;;;;;;;6380:5;6371;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;6399:10:0;;:15;6395:39;;6416:18;6426:7;6432:1;6426:3;:7;:::i;:::-;6416:9;:18::i;:::-;6444:33;;-1:-1:-1;;;6444:33:0;;6458:10;6444:33;;;5638:51:1;5705:18;;;5698:34;;;6444:4:0;-1:-1:-1;;;;;6444:13:0;;;;5611:18:1;;6444:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5929:555;;5844:640;;;;:::o;3932:114::-;3977:7;2145:3;4021:11;;:21;;;;:::i;:::-;2145:3;3996;;:13;;;;:::i;:::-;3995:22;;4013:4;3995:22;:::i;:::-;:48;;;;:::i;6737:497::-;6786:13;6815:6;6825:1;6815:11;6811:30;;6835:6;;-1:-1:-1;;;6835:6:0;;;;;;;;;;;6811:30;6851:6;:4;:6::i;:::-;6875:10;;:15;:61;;6924:12;;6911:10;;6902:19;;:6;:19;:::i;:::-;:34;;;;:::i;:::-;6875:61;;;6893:6;6875:61;6867:69;;6950:5;6959:1;6950:10;6946:29;;6969:6;;-1:-1:-1;;;6969:6:0;;;;;;;;;;;6946:29;6985:40;6991:10;7011:4;7018:6;6985:5;:40::i;:::-;7051:6;7035:12;;:22;;;;;;;:::i;:::-;;;;;;;;7081:5;7067:10;;:19;;;;;;;:::i;:::-;;;;-1:-1:-1;;7104:10:0;7096:19;;;;:7;:19;;;;;:28;;7119:5;;7096:19;:28;;7119:5;;7096:28;:::i;:::-;;;;-1:-1:-1;;7158:8:0;;:21;;1943:3;;7158:21;:::i;:::-;7144:10;7134:21;;;;:9;:21;;;;;;;:45;;;;7194:33;;;;;;7213:6;;7221:5;;7194:33;:::i;:::-;;;;;;;;6737:497;;;:::o;8357:107::-;8416:4;8424:24;8430:10;8442:2;8446:1;8424:5;:24::i;:::-;-1:-1:-1;8457:4:0;8357:107;;;;:::o;6490:147::-;6542:7;6568:10;;6582:1;6568:15;:62;;6620:10;;6605:12;;-1:-1:-1;;;;;6590:12:0;;;;;;:7;:12;;;;;;:27;;6605:12;6590:27;:::i;:::-;:40;;;;:::i;:::-;6568:62;;;6586:1;6561:69;6490:147;-1:-1:-1;;6490:147:0:o;4823:129::-;4881:7;2145:3;4935;;:13;;;;:::i;:::-;2145:3;4909:11;;:21;;;;:::i;:::-;4899:32;;:6;:32;:::i;:::-;:50;;;;:::i;4052:154::-;4095:4;4128:8;;4118:7;:5;:7::i;:::-;:18;:81;;;-1:-1:-1;4141:8:0;;:13;;;;:57;;;1845:7;4176:8;;:22;;;;:::i;:::-;4158:15;:40;4111:88;;4052:154;:::o;8987:165::-;9026:7;9049:4;-1:-1:-1;;;;;9049:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9049:12:0;;;;;;;;-1:-1:-1;;9049:12:0;;;;;;;;;;;;:::i;:::-;;;9045:101;;-1:-1:-1;9142:1:0;;8987:165::o;9045:101::-;9107:16;;;-1:-1:-1;;;;;9100:23:0;;8987:165;-1:-1:-1;8987:165:0:o;8725:152::-;-1:-1:-1;;;;;8792:12:0;;;;;;:9;:12;;;;;:17;;8808:1;;8792:12;:17;;8808:1;;8792:17;:::i;:::-;;;;-1:-1:-1;;;;;;;8819:13:0;;;;;;:9;:13;;;;;:18;;8836:1;;8819:13;:18;;8836:1;;8819:18;:::i;:::-;;;;;;;;8864:2;-1:-1:-1;;;;;8852:18:0;8861:1;-1:-1:-1;;;;;8852:18:0;-1:-1:-1;;;;;;;;;;;8868:1:0;8852:18;;;;1258:25:1;;1246:2;1231:18;;1112:177;8852:18:0;;;;;;;;8725:152;;;:::o;7824:351::-;7881:6;7891:1;7881:11;7877:24;;7824:351;:::o;7877:24::-;7910:10;2145:3;7965:6;7959:3;;:12;;;;:::i;:::-;:22;;;;:::i;:::-;2145:3;7933:11;;:21;;;;:::i;:::-;7923:32;;:6;:32;:::i;:::-;:59;;;;:::i;:::-;7910:72;;8007:2;7992:11;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;8037:4:0;8019:24;;;;:9;:24;;;;;:30;;8047:2;;8019:24;:30;;8047:2;;8019:30;:::i;:::-;;;;;;;;8075:2;8059:12;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;8092:39:0;;1258:25:1;;;8121:4:0;;8109:1;;-1:-1:-1;;;;;;;;;;;8092:39:0;1246:2:1;1231:18;8092:39:0;;;;;;;8146:22;8157:6;8165:2;8146:22;;;;;;;:::i;:::-;;;;;;;;7867:308;7824:351;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:1;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:300::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;881:2;866:18;;;;853:32;;-1:-1:-1;;;615:300:1:o;1294:186::-;1353:6;1406:2;1394:9;1385:7;1381:23;1377:32;1374:52;;;1422:1;1419;1412:12;1374:52;1445:29;1464:9;1445:29;:::i;:::-;1435:39;1294:186;-1:-1:-1;;;1294:186:1:o;1485:346::-;1553:6;1561;1614:2;1602:9;1593:7;1589:23;1585:32;1582:52;;;1630:1;1627;1620:12;1582:52;-1:-1:-1;;1675:23:1;;;1795:2;1780:18;;;1767:32;;-1:-1:-1;1485:346:1:o;1836:374::-;1913:6;1921;1929;1982:2;1970:9;1961:7;1957:23;1953:32;1950:52;;;1998:1;1995;1988:12;1950:52;2021:29;2040:9;2021:29;:::i;:::-;2011:39;;2069:38;2103:2;2092:9;2088:18;2069:38;:::i;:::-;1836:374;;2059:48;;-1:-1:-1;;;2176:2:1;2161:18;;;;2148:32;;1836:374::o;2215:226::-;2274:6;2327:2;2315:9;2306:7;2302:23;2298:32;2295:52;;;2343:1;2340;2333:12;2295:52;-1:-1:-1;2388:23:1;;2215:226;-1:-1:-1;2215:226:1:o;2635:248::-;2809:25;;;2865:2;2850:18;;2843:34;2797:2;2782:18;;2635:248::o;2888:260::-;2956:6;2964;3017:2;3005:9;2996:7;2992:23;2988:32;2985:52;;;3033:1;3030;3023:12;2985:52;3056:29;3075:9;3056:29;:::i;:::-;3046:39;;3104:38;3138:2;3127:9;3123:18;3104:38;:::i;:::-;3094:48;;2888:260;;;;;:::o;3598:127::-;3659:10;3654:3;3650:20;3647:1;3640:31;3690:4;3687:1;3680:15;3714:4;3711:1;3704:15;3730:125;3795:9;;;3816:10;;;3813:36;;;3829:18;;:::i;4236:164::-;4312:13;;4361;;4354:21;4344:32;;4334:60;;4390:1;4387;4380:12;4405:202;4472:6;4525:2;4513:9;4504:7;4500:23;4496:32;4493:52;;;4541:1;4538;4531:12;4493:52;4564:37;4591:9;4564:37;:::i;4612:128::-;4679:9;;;4700:11;;;4697:37;;;4714:18;;:::i;4745:168::-;4818:9;;;4849;;4866:15;;;4860:22;;4846:37;4836:71;;4887:18;;:::i;4918:217::-;4958:1;4984;4974:132;;5028:10;5023:3;5019:20;5016:1;5009:31;5063:4;5060:1;5053:15;5091:4;5088:1;5081:15;4974:132;-1:-1:-1;5120:9:1;;4918:217::o;5743:175::-;5821:13;;-1:-1:-1;;;;;5863:30:1;;5853:41;;5843:69;;5908:1;5905;5898:12;5923:175;6001:13;;-1:-1:-1;;;;;6043:30:1;;6033:41;;6023:69;;6088:1;6085;6078:12;6103:167;6181:13;;6234:10;6223:22;;6213:33;;6203:61;;6260:1;6257;6250:12;6275:1200;6366:6;6426:3;6414:9;6405:7;6401:23;6397:33;6442:2;6439:22;;;6457:1;6454;6447:12;6439:22;-1:-1:-1;6506:2:1;6500:9;6548:3;6536:16;;-1:-1:-1;;;;;6567:34:1;;6603:22;;;6564:62;6561:185;;;6668:10;6663:3;6659:20;6656:1;6649:31;6703:4;6700:1;6693:15;6731:4;6728:1;6721:15;6561:185;6762:2;6755:22;6801:39;6830:9;6801:39;:::i;:::-;6793:6;6786:55;6874:48;6918:2;6907:9;6903:18;6874:48;:::i;:::-;6869:2;6861:6;6857:15;6850:73;6956:48;7000:2;6989:9;6985:18;6956:48;:::i;:::-;6951:2;6943:6;6939:15;6932:73;7038:48;7082:2;7071:9;7067:18;7038:48;:::i;:::-;7033:2;7025:6;7021:15;7014:73;7121:49;7165:3;7154:9;7150:19;7121:49;:::i;:::-;7115:3;7107:6;7103:16;7096:75;7205:49;7249:3;7238:9;7234:19;7205:49;:::i;:::-;7199:3;7187:16;;7180:75;7317:3;7302:19;;;7296:26;7338:16;;;7331:31;7396:47;7438:3;7423:19;;7396:47;:::i;:::-;7390:3;7378:16;;7371:73;7382:6;6275:1200;-1:-1:-1;;;6275:1200:1:o","linkReferences":{},"immutableReferences":{"77":[{"start":1071,"length":32},{"start":3636,"length":32}],"80":[{"start":1134,"length":32},{"start":1809,"length":32},{"start":2942,"length":32}]}}}}}}},"signatures":{"function":[{"signature":"allowance(address,address)","signatureHash4":"0xdd62ed3e","signatureHash32":"0xdd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4"},{"signature":"approve(address,uint256)","signatureHash4":"0x095ea7b3","signatureHash32":"0x095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba"},{"signature":"balanceOf(address)","signatureHash4":"0x70a08231","signatureHash32":"0x70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be"},{"signature":"bsqk()","signatureHash4":"0xff4a5639","signatureHash32":"0xff4a563998ac401b4062bead721558cb62551db9e257794f78249c74932982bc"},{"signature":"CLOSED_FEE_BPS()","signatureHash4":"0xbe6eb7e0","signatureHash32":"0xbe6eb7e040889f7fe6a8b54b91540c73a1bc4831b6e0172621517734b041d506"},{"signature":"core()","signatureHash4":"0xf2f4eb26","signatureHash32":"0xf2f4eb266c1410ab85e588db2511aa954e60c3c01704b351499b55bcb681a087"},{"signature":"decimals()","signatureHash4":"0x313ce567","signatureHash32":"0x313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9"},{"signature":"exitFeeBps()","signatureHash4":"0x57b17a52","signatureHash32":"0x57b17a529880c7801ba9113f06fa7b5894e1d0cbcac0e08e7c712a4acb70c559"},{"signature":"lastMove()","signatureHash4":"0x0e001b38","signatureHash32":"0x0e001b38afa1c17d162bc76a9d3a8bb3afefeb910dfd9b9b9ca89b37e3ddb14a"},{"signature":"lastWork()","signatureHash4":"0x3fb33da8","signatureHash32":"0x3fb33da853055c29e28f442f6f94fdc408b0f1b4fcaedc02e495313bb91e8fed"},{"signature":"marketOpen()","signatureHash4":"0xc66bc046","signatureHash32":"0xc66bc0467971fa890b7a6f902e6388613e0b59b6b0e21528f70399430c97ad81"},{"signature":"mint(uint256,uint256)","signatureHash4":"0x1b2ef1ca","signatureHash32":"0x1b2ef1ca104ec753c817f038e7e2a0c7cb28cc3c0877c7c2b78e5a14a407a623"},{"signature":"name()","signatureHash4":"0x06fdde03","signatureHash32":"0x06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796"},{"signature":"nav()","signatureHash4":"0xc1590cd7","signatureHash32":"0xc1590cd7c47099592e7a172c72c5cec038f64d3e56b17e66f771f3486f27523e"},{"signature":"OPEN_FEE_BPS()","signatureHash4":"0x36caea92","signatureHash32":"0x36caea927c8c951e829ac9fd9dc351891321de85000fedc528252f3f7db09943"},{"signature":"OPEN_WINDOW()","signatureHash4":"0x7f6cbaa9","signatureHash32":"0x7f6cbaa9c315e2c172fdaa68c6b261537540b9044c445e2138d796d15593e280"},{"signature":"poke()","signatureHash4":"0x18178358","signatureHash32":"0x181783582ee60d0d3771442a015568e6de269a82caf89fd91c74a77514f7545b"},{"signature":"pouch()","signatureHash4":"0xa6148493","signatureHash32":"0xa61484937f68f888c4156b84c6bb4e50b55e24ccc0a725bbac9fdf74b89b6949"},{"signature":"pouchWork()","signatureHash4":"0x3901e3f1","signatureHash32":"0x3901e3f12087d34ac4e770fa11013a727b54ae6f0890180a13645dbbb950fad6"},{"signature":"POUCH_WORK()","signatureHash4":"0xd2dbdd78","signatureHash32":"0xd2dbdd78b3b939725cb530482317228744fcc6f826600f8730ef217330267da8"},{"signature":"previewMint(uint256)","signatureHash4":"0xb3d7f6b9","signatureHash32":"0xb3d7f6b9638bbc33e68026f247be37f99ef5e7a0a876c11b709f75b175ec170d"},{"signature":"previewRedeem(uint256)","signatureHash4":"0x4cdad506","signatureHash32":"0x4cdad506b0d2802827e85739d7f82f09a428af7a9aa4806240ca073483c7fa7b"},{"signature":"redeem(uint256,uint256)","signatureHash4":"0x7cbc2373","signatureHash32":"0x7cbc2373cc11147653d93fee4ec6d57ec2d23617894d647d07a01878df176af0"},{"signature":"sharePrice()","signatureHash4":"0x87269729","signatureHash32":"0x8726972959fe931df50488ad088c22b7b3d78416de60f8cae0a7969a979b31aa"},{"signature":"stakedOf(address)","signatureHash4":"0xaf500ba3","signatureHash32":"0xaf500ba3cab9863b6acd7e31d4de1e93baf17e52ac151c908faf64363d224bef"},{"signature":"stakedShares()","signatureHash4":"0x90a577ef","signatureHash32":"0x90a577ef426a8af955a72c93ac36b68f1059a277c1b407cbb3054162e95f65fe"},{"signature":"stake(uint256)","signatureHash4":"0xa694fc3a","signatureHash32":"0xa694fc3a9be557197d0136d5e7dd615518dbfe3af0753bf945e64e3bed38fba8"},{"signature":"STAKE_WORK()","signatureHash4":"0x4a4244bc","signatureHash32":"0x4a4244bc2fe893e1c68b08f55404e35dfb02b3387db91c1e6b0b2da87b6a0c91"},{"signature":"symbol()","signatureHash4":"0x95d89b41","signatureHash32":"0x95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec"},{"signature":"totalSupply()","signatureHash4":"0x18160ddd","signatureHash32":"0x18160ddd7f15c72528c2f94fd8dfe3c8d5aa26e2c50c7d81f4bc7bee8d4b7932"},{"signature":"totalUnits()","signatureHash4":"0x6d86acc4","signatureHash32":"0x6d86acc4312105255ac9eb497162848245dc86a596bffbb573e2234f58a115bd"},{"signature":"transfer(address,uint256)","signatureHash4":"0xa9059cbb","signatureHash32":"0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b"},{"signature":"transferFrom(address,address,uint256)","signatureHash4":"0x23b872dd","signatureHash32":"0x23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b"},{"signature":"unitsOf(address)","signatureHash4":"0x0eccc708","signatureHash32":"0x0eccc708c94a256e2d85cd3453355e754617d12c295270628463a0d31343d14b"},{"signature":"unstakeAt(address)","signatureHash4":"0x922b3db4","signatureHash32":"0x922b3db4ae656c3023c4e39187a96287877417965b22ce825e3cdb6302f0d33d"},{"signature":"unstake(uint256)","signatureHash4":"0x2e17de78","signatureHash32":"0x2e17de78782a3e2bdf248304b8ae296b06fe4bd58bfb23fc13e9e4963635c2d4"}],"event":[{"signature":"Approval(address,address,uint256)","signatureHash4":"0x8c5be1e5","signatureHash32":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"},{"signature":"Compounded(uint256,uint256)","signatureHash4":"0x8082b0da","signatureHash32":"0x8082b0dab6d73a8025e5f15e4fdd54b68197a613e361810d4a2446c634b98ada"},{"signature":"Minted(address,uint256,uint256)","signatureHash4":"0x25b428df","signatureHash32":"0x25b428dfde728ccfaddad7e29e4ac23c24ed7fd1a6e3e3f91894a9a073f5dfff"},{"signature":"PouchEmptied(uint256,uint256)","signatureHash4":"0x658c0761","signatureHash32":"0x658c0761b19711ccd8c11a5edfeee3b1c7875a86f68b688c851704ef35c7a442"},{"signature":"Redeemed(address,uint256,uint256,uint256)","signatureHash4":"0x484c4056","signatureHash32":"0x484c40561359f3e3b8be9101897f8680aa82fbe1df9fd9038e0dbc6284032646"},{"signature":"Staked(address,uint256,uint256)","signatureHash4":"0x1449c6dd","signatureHash32":"0x1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90"},{"signature":"Transfer(address,address,uint256)","signatureHash4":"0xddf252ad","signatureHash32":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"},{"signature":"Unstaked(address,uint256,uint256)","signatureHash4":"0x7fc4727e","signatureHash32":"0x7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e"},{"signature":"WheelMoved(uint256,uint256)","signatureHash4":"0xc4208a34","signatureHash32":"0xc4208a34f6a363fa04719fd2d82056203fa577f8d61872a0e1da28cd36822515"}],"error":[{"signature":"Slip()","signatureHash4":"0xf795f08c","signatureHash32":"0xf795f08cb2166690e663d69cc082d351d3778d984f8d019e47ff28a9c2963811"},{"signature":"WheelTooEarly(uint256,uint256)","signatureHash4":"0xae5b7541","signatureHash32":"0xae5b75418483b647710ba734c70ffe4302d58d0372560782e7a612cfabc97488"},{"signature":"Zero()","signatureHash4":"0xf4560403","signatureHash32":"0xf4560403888256621a13abd81f4930ecb469c609f6317e1dd2ee34fe69293e1b"}]},"proxyResolution":{"isProxy":false,"proxyType":null,"implementations":[]},"match":"exact_match","chainId":"11155111","address":"0x48313863170fe6845182fD9b516d6d7d9279ffCE"}