2 txs
689 calls
constructor
constructor(address _VECake, uint256 _cA, uint256 _cB)
functions
activedPools
viewfunction activedPools(address _user) view returns (uint256[] poolList, address[] wrapperList)
BOOST_PRECISION
viewfunction BOOST_PRECISION() view returns (uint256)
CA_PRECISION
viewfunction CA_PRECISION() view returns (uint256)
cA
viewfunction cA() view returns (uint256)
CB_PRECISION
viewfunction CB_PRECISION() view returns (uint256)
cB
viewfunction cB() view returns (uint256)
cBOverride
viewfunction cBOverride(uint256) view returns (uint256)
delegated
viewfunction delegated(address) view returns (address)
delegator
viewfunction delegator(address) view returns (address)
delegatorApprove
viewfunction delegatorApprove(address) view returns (address)
everBoosted
viewfunction everBoosted(uint256) view returns (bool)
getUserMultiplier
viewfunction getUserMultiplier(address _user, uint256 _poolId) view returns (uint256)
getUserMultiplierByWrapper
viewfunction getUserMultiplierByWrapper(address _user, address _wrapper) view returns (uint256)
isBoostedPool
viewfunction isBoostedPool(address _user, uint256 _poolId) view returns (bool)
isBoostedWrapper
viewfunction isBoostedWrapper(address _user, address _wrapper) view returns (bool)
MAX_BOOST_PRECISION
viewfunction MAX_BOOST_PRECISION() view returns (uint256)
MAX_CA
viewfunction MAX_CA() view returns (uint256)
MAX_CB
viewfunction MAX_CB() view returns (uint256)
MIN_CA
viewfunction MIN_CA() view returns (uint256)
MIN_CB
viewfunction MIN_CB() view returns (uint256)
owner
viewfunction owner() view returns (address)
poolLength
viewfunction poolLength() view returns (uint256)
pools
viewfunction pools(uint256) view returns (uint256 poolId, address wrapper, address stakedToken, address rewardToken)
userInfo
viewfunction userInfo(address) view returns (uint256 size)
VECake
viewfunction VECake() view returns (address)
VECakeCaller
viewfunction VECakeCaller() view returns (address)
whiteList
viewfunction whiteList(uint256) view returns (bool)
whiteListWrapper
viewfunction whiteListWrapper(address _wrapper) view returns (bool)
wrapperPoolIds
viewfunction wrapperPoolIds(address) view returns (uint256)
wrapperPools
viewfunction wrapperPools(address _wrapper) view returns (tuple)
approveToVECakeUser
nonpayablefunction approveToVECakeUser(address _VECakeUser)
depositFor
nonpayablefunction depositFor(address _for, uint256 _amount, uint256 _unlockTime, int128 _prevLockedAmount, uint256 _prevLockedEnd, uint256 _actionType, bool _isCakePoolUser)
removeDelegator
nonpayablefunction removeDelegator()
renounceOwnership
nonpayablefunction renounceOwnership()
setBoosterFarms
nonpayablefunction setBoosterFarms(tuple[] _boosterWrappers)
setCA
nonpayablefunction setCA(uint256 _cA)
setCB
nonpayablefunction setCB(uint256 _cB)
setCBOverride
nonpayablefunction setCBOverride(uint256 _poolId, uint256 _cB)
setDelegator
nonpayablefunction setDelegator(address _delegator)
setDelegators
nonpayablefunction setDelegators(tuple[] _delegatorConfigs)
setVECakeCaller
nonpayablefunction setVECakeCaller(address _VECakeCaller)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unlock
nonpayablefunction unlock(address _user, int128 _prevLockedAmount, uint256 _prevLockedEnd, uint256 _withdrawAmount)
updatePositionBoostMultiplier
nonpayablefunction updatePositionBoostMultiplier(address _user) returns (uint256 _multiplier)
events
Approve
event Approve(address indexed delegator, address indexed VECakeUser)
NewPool
event NewPool(uint256 indexed pid, address indexed wrapper, address indexed stakedToken, address rewardToken)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
UpdateBoostFarms
event UpdateBoostFarms(uint256 indexed pid, address wrapper, bool status)
UpdateCA
event UpdateCA(uint256 oldCA, uint256 newCA)
UpdateCB
event UpdateCB(uint256 oldCB, uint256 newCB)
UpdateCBOverride
event UpdateCBOverride(uint256 indexed pid, uint256 oldCB, uint256 newCB)
UpdateDelegator
event UpdateDelegator(address indexed user, address indexed oldDelegator, address indexed delegator)
UpdatePoolBoostMultiplier
event UpdatePoolBoostMultiplier(address indexed user, uint256 indexed pid, address indexed wrapper, uint256 oldMultiplier, uint256 newMultiplier)
UpdateVECakeCaller
event UpdateVECakeCaller(address VECakeCaller)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620035fd380380620035fd833981016040819052620000349162000126565b6200003f33620000d6565b600180556127108210801590620000595750620186a08211155b8015620000665750600081115b80156200007757506305f5e1008111155b620000bc5760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b2103830b930b6b2ba32b960791b604482015260640160405180910390fd5b6001600160a01b039092166080526006556007556200016b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000606084860312156200013c57600080fd5b83516001600160a01b03811681146200015457600080fd5b602085015160409095015190969495509392505050565b60805161346862000195600039600081816104a70152818161274c015261284401526134686000f3fe608060405234801561001057600080fd5b50600436106102f45760003560e01c80638abe300311610191578063b7d6ee5a116100e3578063d6a526cf11610097578063f3598ad911610071578063f3598ad914610738578063f7e7d0031461076e578063fe19a9041461085c57600080fd5b8063d6a526cf146106f2578063e1b2d84414610705578063f2fde38b1461072557600080fd5b8063c61a66e0116100c8578063c61a66e0146105e4578063cc6db2da146106a0578063d0638a8f146106ac57600080fd5b8063b7d6ee5a1461067a578063bdce3e721461068d57600080fd5b80639c1ebe6311610145578063a3c71d9d1161011f578063a3c71d9d146105ae578063a817715b146105e4578063ac4afa38146105ed57600080fd5b80639c1ebe631461058a5780639cc1d7be14610593578063a39a722b1461059b57600080fd5b80638da5cb5b116101765780638da5cb5b14610546578063979a0662146105645780639b3acb731461057757600080fd5b80638abe3003146104755780638ba8d8bd1461053357600080fd5b80635c475d421161024a5780636cbb37dd116101fe57806379453948116101d85780637945394814610504578063810577141461051757806383cd9cc31461052057600080fd5b80636cbb37dd146104d65780636e85ee47146104e9578063715018a6146104fc57600080fd5b80635dd574db1161022f5780635dd574db1461047f57806362534e79146104a257806369b02128146104c957600080fd5b80635c475d42146104525780635c5aaa491461047557600080fd5b806337f7fe29116102ac5780634e986628116102865780634e986628146103cc5780634ffcbb39146103ec578063539e5082146103f757600080fd5b806337f7fe2914610383578063449b0888146103a357806349b61ce0146103ab57600080fd5b80631a13b41e116102dd5780631a13b41e146103385780631cd8965a1461035b57806325f148731461036e57600080fd5b8063081e3eda146102f95780631959a00214610315575b600080fd5b61030260025481565b6040519081526020015b60405180910390f35b610302610323366004612ea2565b600b6020526000908152604090206003015481565b61034b610346366004612ec6565b61086f565b604051901515815260200161030c565b610302610369366004612ef2565b6108af565b61038161037c366004612f2b565b610915565b005b610302610391366004612ea2565b60036020526000908152604090205481565b610381610a5b565b6103be6103b9366004612ea2565b610ca8565b60405161030c929190612f44565b6103026103da366004612f2b565b60086020526000908152604090205481565b6103026305f5e10081565b61042d610405366004612ea2565b600c6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030c565b61034b610460366004612f2b565b60096020526000908152604090205460ff1681565b610302620186a081565b61034b61048d366004612f2b565b600a6020526000908152604090205460ff1681565b61042d7f000000000000000000000000000000000000000000000000000000000000000081565b6103026502ba7def300081565b6103816104e4366004612f2b565b610e3d565b6103816104f7366004612ffc565b610f77565b61038161100a565b610381610512366004613068565b611097565b61030260075481565b61038161052e366004612ea2565b611127565b610302610541366004612ea2565b6114ab565b60005473ffffffffffffffffffffffffffffffffffffffff1661042d565b61034b610572366004612ef2565b611683565b610381610585366004612ea2565b6116ce565b61030260065481565b610302600081565b6103816105a93660046130f8565b611872565b61042d6105bc366004612ea2565b600e6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61030261271081565b61063e6105fb366004612f2b565b6004602052600090815260409020805460018201546002830154600390930154919273ffffffffffffffffffffffffffffffffffffffff91821692908216911684565b6040805194855273ffffffffffffffffffffffffffffffffffffffff93841660208601529183169184019190915216606082015260800161030c565b610302610688366004612ec6565b611cac565b61038161069b3660046130f8565b611cea565b61030264e8d4a5100081565b61034b6106ba366004612ea2565b73ffffffffffffffffffffffffffffffffffffffff166000908152600360209081526040808320548352600990915290205460ff1690565b610381610700366004612ea2565b61211a565b60055461042d9073ffffffffffffffffffffffffffffffffffffffff1681565b610381610733366004612ea2565b612214565b61042d610746366004612ea2565b600d6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61080b61077c366004612ea2565b6040805160808101825260008082526020820181905291810182905260608101919091525073ffffffffffffffffffffffffffffffffffffffff9081166000908152600360208181526040808420548452600482529283902083516080810185528154815260018201548616928101929092526002810154851693820193909352910154909116606082015290565b60405161030c91908151815260208083015173ffffffffffffffffffffffffffffffffffffffff90811691830191909152604080840151821690830152606092830151169181019190915260800190565b61038161086a36600461313a565b612344565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600b6020908152604080832084845260010190915281205415155b90505b92915050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020908152604080832054808452600990925282205460ff1615806108f0575080155b156109035764e8d4a510009150506108a9565b61090d84826124a0565b9150506108a9565b60005473ffffffffffffffffffffffffffffffffffffffff16331461099b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6000811180156109af57506305f5e1008111155b610a15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f496e76616c6964206342000000000000000000000000000000000000000000006044820152606401610992565b600780549082905560408051828152602081018490527fff6a4b972407d470846bd3a5979c60d68807653244cc8d096c4174a76486e71c91015b60405180910390a15050565b60026001541415610ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610992565b6002600155336000908152600c602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610b5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f2064656c656761746f7200000000000000000000000000000000000000006044820152606401610992565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902060028101548015610c12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f506c6561736520776974686472617720616c6c2062616c616e636520696e207760448201527f72617070657200000000000000000000000000000000000000000000000000006064820152608401610992565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600d6020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915533808552600c90935281842080549091169055519192917ffaf5be379b735da94678480d71f43cc64ded8cdc2557b8b94489846dff1379e7908490a450506001805550565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b602052604090206002810154606091829180610ce3575050915091565b8067ffffffffffffffff811115610cfc57610cfc61315c565b604051908082528060200260200182016040528015610d25578160200160208202803683370190505b5093508067ffffffffffffffff811115610d4157610d4161315c565b604051908082528060200260200182016040528015610d6a578160200160208202803683370190505b50925060005b81811015610e35576000836002018281548110610d8f57610d8f61318b565b9060005260206000200154905080868381518110610daf57610daf61318b565b602090810291909101810191909152600082815260049091526040902060010154855173ffffffffffffffffffffffffffffffffffffffff90911690869084908110610dfd57610dfd61318b565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101525080610e2d816131e9565b915050610d70565b505050915091565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ebe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610992565b6127108110158015610ed35750620186a08111155b610f39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f496e76616c6964206341000000000000000000000000000000000000000000006044820152606401610992565b600680549082905560408051828152602081018490527f948053d58d4dfed61c0843c01f010e1a4446c65f03d475567102cc64dfe0ecd49101610a4f565b60055473ffffffffffffffffffffffffffffffffffffffff163314610ff8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f7420766563616b652063616c6c65720000000000000000000000000000006044820152606401610992565b61100187612925565b50505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610992565b61109560006129a2565b565b60055473ffffffffffffffffffffffffffffffffffffffff163314611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f7420766563616b652063616c6c65720000000000000000000000000000006044820152606401610992565b61112184612925565b50505050565b60026001541415611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610992565b600260015573ffffffffffffffffffffffffffffffffffffffff8116611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c6964206164647265737300000000000000000000000000000000006044820152606401610992565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600e60205260409020541633146112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f7420617070726f76656400000000000000000000000000000000000000006044820152606401610992565b336000818152600c602052604090205473ffffffffffffffffffffffffffffffffffffffff16156112f95750336000908152600c602052604090205473ffffffffffffffffffffffffffffffffffffffff165b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600d6020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600b9091528082206002808201549487168452919092209081015491929182158015611372575080155b6113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f506c6561736520776974686472617720616c6c2062616c616e636520696e207760448201527f72617070657200000000000000000000000000000000000000000000000000006064820152608401610992565b336000818152600c60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff808d167fffffffffffffffffffffffff00000000000000000000000000000000000000009283168117909355828652600d85528386208054831688179055600e9094528285208054909116905590519093918916927ffaf5be379b735da94678480d71f43cc64ded8cdc2557b8b94489846dff1379e791a450506001805550505050565b33600081815260036020526040812054909190806114d1575064e8d4a510009392505050565b6000818152600a602052604090205464e8d4a51000935060ff161561167c5773ffffffffffffffffffffffffffffffffffffffff8481166000818152600b60209081526040808320868452918290528083205490517f1959a00200000000000000000000000000000000000000000000000000000000815260048101949094529093909290861690631959a0029060240160a060405180830381865afa15801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a39190613222565b5050506000868152600960205260409020549192505060ff1615806115c6575080155b156115f0576000848152600184016020526040902054156115eb576115eb8385612a17565b611607565b6115fa87856124a0565b9550611607838588612afa565b8473ffffffffffffffffffffffffffffffffffffffff16848873ffffffffffffffffffffffffffffffffffffffff167fba692d2fde5ccf36027d5fa6ae88819f0a476f7b45a73eebad326cfe8d02787d858a604051611670929190918252602082015260400190565b60405180910390a45050505b5050919050565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600360209081526040808320549386168352600b8252808320938352600190930190529081205415156108a6565b6002600154141561173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610992565b6002600155336000908152600d602052604090205473ffffffffffffffffffffffffffffffffffffffff16156117f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f44656c656761746f7220616c72656164792068617320564543616b652061636360448201527f6f756e74000000000000000000000000000000000000000000000000000000006064820152608401610992565b336000818152600e602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590519092917f3ce2da1daf10aa0a28578b70fe768ed2f390a3da82445358f9346fbc2981f6fd91a35060018055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146118f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610992565b60005b81811015611ca75760008383838181106119125761191261318b565b90506040020180360381019061192891906132b2565b805190915073ffffffffffffffffffffffffffffffffffffffff161580159061196a5750602081015173ffffffffffffffffffffffffffffffffffffffff1615155b6119d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c6964206164647265737300000000000000000000000000000000006044820152606401610992565b805160208083015173ffffffffffffffffffffffffffffffffffffffff9081166000908152600e9092526040909120548116911614611a6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f7420617070726f76656400000000000000000000000000000000000000006044820152606401610992565b805173ffffffffffffffffffffffffffffffffffffffff8082166000908152600c60205260409020541615611ac65750805173ffffffffffffffffffffffffffffffffffffffff9081166000908152600c6020526040902054165b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600d6020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600b82528083206002808201549388015190951684529220928301549192909182158015611b41575080155b611bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f506c6561736520776974686472617720616c6c2062616c616e636520696e207760448201527f72617070657200000000000000000000000000000000000000000000000000006064820152608401610992565b60208087018051885173ffffffffffffffffffffffffffffffffffffffff9081166000908152600c8552604080822080549484167fffffffffffffffffffffffff00000000000000000000000000000000000000009586161790558b51855184168352600d87528183208054918516918616919091179055845183168252600e9095528481208054909316909255915189519351908316938984169316917ffaf5be379b735da94678480d71f43cc64ded8cdc2557b8b94489846dff1379e791a45050505050508080611c9f906131e9565b9150506118f6565b505050565b60008181526009602052604081205460ff161580611cc8575081155b15611cd9575064e8d4a510006108a9565b611ce383836124a0565b90506108a9565b60005473ffffffffffffffffffffffffffffffffffffffff163314611d6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610992565b60005b81811015611ca7576000838383818110611d8a57611d8a61318b565b905060400201803603810190611da091906132f3565b805173ffffffffffffffffffffffffffffffffffffffff166000908152600360205260409020549091508061200e5760028054906000611ddf836131e9565b9091555050600254825173ffffffffffffffffffffffffffffffffffffffff908116600090815260036020908152604080832085905584835260048083529281902094855586516001860180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190951690811790945580517fcc7a262e000000000000000000000000000000000000000000000000000000008152905163cc7a262e9382810193928290030181865afa158015611ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec79190613326565b8160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000015173ffffffffffffffffffffffffffffffffffffffff1663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7c9190613326565b6003820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92831690811790915560028054908401546001850154604051938452919550831692169084907f0b248f5416f4f41f62480ecbda8d93b72e6c3a118e80ad0b23b5b34f2b3188339060200160405180910390a4505b8160200151801561202e57506000818152600a602052604090205460ff16155b1561206b576000818152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6020828101805160008481526009845260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169215159290921790915584519151815173ffffffffffffffffffffffffffffffffffffffff909316835215159282019290925282917faf65e8b8c07b34295e36b7bebf26a702d2581411759eec3539eaffb767a26f8d910160405180910390a250508080612112906131e9565b915050611d6e565b60005473ffffffffffffffffffffffffffffffffffffffff16331461219b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610992565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f74893ad32aa66290f59f1716275159e5945397884cb67b7a5a19c96473482e169060200160405180910390a150565b60005473ffffffffffffffffffffffffffffffffffffffff163314612295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610992565b73ffffffffffffffffffffffffffffffffffffffff8116612338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610992565b612341816129a2565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146123c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610992565b6000811180156123d957506305f5e1008111155b806123e2575080155b612448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f496e76616c6964206342000000000000000000000000000000000000000000006044820152606401610992565b600780546000848152600860209081526040918290208590559254815183815293840152909184917fa6a879d52f70ee909a019d4e93c2b17407cfe6a072da32219ad04ab25e15de42910160405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600c602052604081205490911615801590612500575073ffffffffffffffffffffffffffffffffffffffff8084166000818152600c602052604090205490911614155b15612511575064e8d4a510006108a9565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600d60205260409020548491161561256a575073ffffffffffffffffffffffffffffffffffffffff8084166000908152600d6020526040902054165b6000838152600460208181526040808420815160808101835281548152600182015473ffffffffffffffffffffffffffffffffffffffff90811694820185905260028301548116828501526003909201548216606082015291517f1959a002000000000000000000000000000000000000000000000000000000008152908916938101939093529291631959a0029060240160a060405180830381865afa158015612619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263d9190613222565b5050505090506000620186a0826006546126579190613343565b6126619190613380565b9050806126795764e8d4a510009450505050506108a9565b604080840151602085015191517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152600092909116906370a0823190602401602060405180830381865afa1580156126f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271791906133bb565b6000888152600860205260408120549192509061273657600754612746565b6000888152600860205260409020545b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d991906133bb565b9050806127f45764e8d4a510009750505050505050506108a9565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015260009161271091849186917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561288b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128af91906133bb565b6128b99088613343565b6128c39190613343565b6128cd9190613380565b6128d79190613380565b90508464e8d4a510006128ea83836133d4565b881115612900576128fb83886133d4565b612902565b875b61290c9190613343565b6129169190613380565b9b9a5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902060028101548015611ca75760005b818110156111215760008360020182815481106129775761297761318b565b9060005260206000200154905061298f848683612b65565b508061299a816131e9565b915050612958565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081815260018301602052604090205480612a3257505050565b60028301805460009190612a48906001906133ec565b81548110612a5857612a5861318b565b90600052602060002001549050808314612aaf578060028501612a7c6001856133ec565b81548110612a8c57612a8c61318b565b600091825260208083209091019290925582815260018601909152604090208290555b6000838152602085815260408083208390556001870190915281205560028401805480612ade57612ade613403565b6001900381819060005260206000200160009055905550505050565b6000828152600184016020908152604080832054918690529091208290558015612b245750505050565b6002840154612b349060016133d4565b6000848152600180870160209081526040832093909355600290960180549687018155815220909301919091555050565b6000818152600460209081526040808320815160808101835281548152600182015473ffffffffffffffffffffffffffffffffffffffff908116828601526002830154811682850152600390920154909116606082015284845260099092529091205460ff16612c875760008281526020859052604090205464e8d4a510001015612c7d5760208101516040517facb4019200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015264e8d4a5100060248301529091169063acb4019290604401600060405180830381600087803b158015612c6457600080fd5b505af1158015612c78573d6000803e3d6000fd5b505050505b6111218483612a17565b60208101516040517f1959a00200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526000921690631959a0029060240160a060405180830381865afa158015612cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1e9190613222565b5050925050506000612d3085856124a0565b905064e8d4a51000811015612d4b575064e8d4a51000612d62565b6502ba7def3000811115612d6257506502ba7def30005b818114612df85760208301516040517facb4019200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482018490529091169063acb4019290604401600060405180830381600087803b158015612ddf57600080fd5b505af1158015612df3573d6000803e3d6000fd5b505050505b612e03868583612afa565b826020015173ffffffffffffffffffffffffffffffffffffffff16848673ffffffffffffffffffffffffffffffffffffffff167fba692d2fde5ccf36027d5fa6ae88819f0a476f7b45a73eebad326cfe8d02787d8585604051612e70929190918252602082015260400190565b60405180910390a4505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461234157600080fd5b600060208284031215612eb457600080fd5b8135612ebf81612e80565b9392505050565b60008060408385031215612ed957600080fd5b8235612ee481612e80565b946020939093013593505050565b60008060408385031215612f0557600080fd5b8235612f1081612e80565b91506020830135612f2081612e80565b809150509250929050565b600060208284031215612f3d57600080fd5b5035919050565b604080825283519082018190526000906020906060840190828701845b82811015612f7d57815184529284019290840190600101612f61565b5050508381038285015284518082528583019183019060005b81811015612fc857835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101612f96565b5090979650505050505050565b8035600f81900b8114612fe757600080fd5b919050565b80358015158114612fe757600080fd5b600080600080600080600060e0888a03121561301757600080fd5b873561302281612e80565b9650602088013595506040880135945061303e60608901612fd5565b93506080880135925060a0880135915061305a60c08901612fec565b905092959891949750929550565b6000806000806080858703121561307e57600080fd5b843561308981612e80565b935061309760208601612fd5565b93969395505050506040820135916060013590565b60008083601f8401126130be57600080fd5b50813567ffffffffffffffff8111156130d657600080fd5b6020830191508360208260061b85010111156130f157600080fd5b9250929050565b6000806020838503121561310b57600080fd5b823567ffffffffffffffff81111561312257600080fd5b61312e858286016130ac565b90969095509350505050565b6000806040838503121561314d57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561321b5761321b6131ba565b5060010190565b600080600080600060a0868803121561323a57600080fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6040805190810167ffffffffffffffff811182821017156132ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b6000604082840312156132c457600080fd5b6132cc613262565b82356132d781612e80565b815260208301356132e781612e80565b60208201529392505050565b60006040828403121561330557600080fd5b61330d613262565b823561331881612e80565b81526132e760208401612fec565b60006020828403121561333857600080fd5b8151612ebf81612e80565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561337b5761337b6131ba565b500290565b6000826133b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000602082840312156133cd57600080fd5b5051919050565b600082198211156133e7576133e76131ba565b500190565b6000828210156133fe576133fe6131ba565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220105cf9e49998627b6c31fcf3b17ad956139e33822d1f74d6c480dff5c8dd872f64736f6c634300080a00330000000000000000000000000ac4ed1d63c51f2b35c555ee09b425f08e6ea556000000000000000000000000000000000000000000000000000000000000c35000000000000000000000000000000000000000000000000000000000000186a0