0 txs
0 calls
constructor
No constructor.
functions
balanceOf
viewfunction balanceOf(address[] tokens) view returns (uint256[] balances)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
earlyWithdrawalFee
viewfunction earlyWithdrawalFee() view returns (uint256)
feeBase
viewfunction feeBase() view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getUserInfo
viewfunction getUserInfo(address user) view returns (tuple _userInfo, uint256 _totalAmount, uint256 _maxStakePerUser, uint256 _earlyWithdrawalFee, bool endLockPeriod, uint256 bswBalance)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
INTEREST_PAYMENT_ROLE
viewfunction INTEREST_PAYMENT_ROLE() view returns (bytes32)
lockPeriod
viewfunction lockPeriod() view returns (uint256)
maxStakePerUser
viewfunction maxStakePerUser() view returns (uint256)
minInitialStake
viewfunction minInitialStake() view returns (uint256)
paused
viewfunction paused() view returns (bool)
stakeToken
viewfunction stakeToken() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalAmount
viewfunction totalAmount() view returns (uint256)
treasuryAddress
viewfunction treasuryAddress() view returns (address)
userInfo
viewfunction userInfo(address) view returns (uint128 amount, uint128 lastDepositTimestamp, uint128 unlockTimestamp)
deposit
nonpayablefunction deposit(uint128 amount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
harvest
nonpayablefunction harvest(address user, tuple[] payments)
initialize
nonpayablefunction initialize(address _stakeToken, uint256 _earlyWithdrawalFee, uint256 _feeBase, uint256 _maxStakePerUser, uint256 _minInitialStake, uint256 _lockPeriod, address _treasuryAddress, address interestPaymentAddress)
pause
nonpayablefunction pause()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setEarlyWithdrawalFee
nonpayablefunction setEarlyWithdrawalFee(uint256 _earlyWithdrawalFee, uint256 _feeBase, uint256 _lockPeriod)
setMaxStakePerUser
nonpayablefunction setMaxStakePerUser(uint256 _minInitialStake, uint256 _maxStakePerUser)
setTreasuryAddress
nonpayablefunction setTreasuryAddress(address _treasuryAddress)
unpause
nonpayablefunction unpause()
withdraw
nonpayablefunction withdraw(uint128 amount, bool earlyWithdraw)
withdrawAll
nonpayablefunction withdrawAll(bool earlyWithdraw)
withdrawTokens
nonpayablefunction withdrawTokens(tuple[] payments, address receiver)
events
Deposit
event Deposit(address user, uint256 amount, uint256 currentUserBalance, uint256 totalAmount)
EarlyWithdraw
event EarlyWithdraw(address user, uint256 amount, uint256 fee, uint256 currentUserBalance, uint256 totalAmount)
InterestPayout
event InterestPayout(address user, (address token, uint256 amount)[] payments)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Unpaused
event Unpaused(address account)
Withdraw
event Withdraw(address user, uint256 amount, uint256 currentUserBalance, uint256 totalAmount)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50612bf2806100206000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806336568abe1161010f5780636ede518f116100a2578063a217fddf11610071578063a217fddf14610521578063a50d5f3d14610529578063c5f956af1461053c578063d547741f1461055c57600080fd5b80636ede518f146104a35780638456cb59146104ca57806391d14854146104d257806395e911a81461051857600080fd5b806354469aea116100de57806354469aea146104025780635c975abb146104155780636386c1c7146104205780636605bfda1461049057600080fd5b806336568abe146103985780633f4ba83a146103ab5780633fd8b02f146103b357806351ed6a30146103bd57600080fd5b80631a39d8ef11610187578063248a9ca311610156578063248a9ca31461033c5780632646707d1461035f5780632737033f146103725780632f2ff15d1461038557600080fd5b80631a39d8ef146103035780631b0ebabb1461030c5780631c1c6fe51461031657806321c58e541461032957600080fd5b806306b68323116101c357806306b683231461023a5780630717d0321461025a57806316330d40146102725780631959a0021461027b57600080fd5b8063011d154c146101ea57806301ffc9a7146101ff5780630392a6b114610227575b600080fd5b6101fd6101f8366004612417565b61056f565b005b61021261020d366004612443565b6105e0565b60405190151581526020015b60405180910390f35b6101fd6102353660046124f3565b610679565b61024d61024836600461254a565b6107b9565b60405161021e91906125bf565b6102646101015481565b60405190815260200161021e565b61026460fd5481565b6102d0610289366004612603565b61010360205260009081526040902080546001909101546fffffffffffffffffffffffffffffffff8083169270010000000000000000000000000000000090048116911683565b604080516fffffffffffffffffffffffffffffffff9485168152928416602084015292169181019190915260600161021e565b61026460fc5481565b6102646101005481565b6101fd61032436600461262e565b610907565b6101fd61033736600461264b565b610938565b61026461034a36600461266d565b600090815260c9602052604090206001015490565b6101fd61036d366004612686565b61094f565b6101fd6103803660046126db565b610aca565b6101fd610393366004612757565b610c92565b6101fd6103a6366004612757565b610cbd565b6101fd610d52565b6102646101025481565b60fb546103dd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021e565b6101fd6104103660046127ac565b610d69565b60655460ff16610212565b61043361042e366004612603565b611154565b6040805187516fffffffffffffffffffffffffffffffff90811682526020808a015182169083015297820151909716908701526060860194909452608085019290925260a0840152151560c083015260e08201526101000161021e565b6101fd61049e366004612603565b61128e565b6102647f835db7a94fe9ccb9f50b4c2e65d61e6f73cafdbc1b827a4d8adfba1f67aad4f581565b6101fd611345565b6102126104e0366004612757565b600091825260c96020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61026460fe5481565b610264600081565b6101fd6105373660046127c7565b611359565b60ff546103dd9073ffffffffffffffffffffffffffffffffffffffff1681565b6101fd61056a366004612757565b6117ee565b600061057b8133611814565b600083116105d05760405162461bcd60e51b815260206004820152601160248201527f56616c75652063616e206265207a65726f00000000000000000000000000000060448201526064015b60405180910390fd5b5060fd9290925560fe5561010255565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061067357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7f835db7a94fe9ccb9f50b4c2e65d61e6f73cafdbc1b827a4d8adfba1f67aad4f56106a48133611814565b60005b838110156107b2578484828181106106c1576106c16127f3565b6106d79260206040909202019081019150612603565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84878785818110610705576107056127f3565b905060400201602001356040518363ffffffff1660e01b815260040161074d92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602060405180830381600087803b15801561076757600080fd5b505af115801561077b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079f9190612822565b50806107aa8161286e565b9150506106a7565b5050505050565b60608167ffffffffffffffff8111156107d4576107d46128a7565b6040519080825280602002602001820160405280156107fd578160200160208202803683370190505b50905060005b828110156109005783838281811061081d5761081d6127f3565b90506020020160208101906108329190612603565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a082319060240160206040518083038186803b15801561089957600080fd5b505afa1580156108ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d191906128d6565b8282815181106108e3576108e36127f3565b6020908102919091010152806108f88161286e565b915050610803565b5092915050565b33600090815261010360205260409020546fffffffffffffffffffffffffffffffff166109348183611359565b5050565b60006109448133611814565b506101015561010055565b7f835db7a94fe9ccb9f50b4c2e65d61e6f73cafdbc1b827a4d8adfba1f67aad4f561097a8133611814565b60005b82811015610a8857838382818110610997576109976127f3565b6109ad9260206040909202019081019150612603565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb868686858181106109db576109db6127f3565b905060400201602001356040518363ffffffff1660e01b8152600401610a2392919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602060405180830381600087803b158015610a3d57600080fd5b505af1158015610a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a759190612822565b5080610a808161286e565b91505061097d565b507f0bc38a75289e69c2b515aee28a53737b20661638a5f84b20ed6c3f2e4415bc05848484604051610abc939291906128ef565b60405180910390a150505050565b600054610100900460ff16610ae55760005460ff1615610ae9565b303b155b610b5b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105c7565b600054610100900460ff16158015610b9a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b60fb805473ffffffffffffffffffffffffffffffffffffffff808c167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fd8a905561010188905561010087905561010286905560fe89905560ff805492861692909116919091179055610c136118cc565b610c1b61194b565b610c236119d0565b610c2e600033611a55565b610c587f835db7a94fe9ccb9f50b4c2e65d61e6f73cafdbc1b827a4d8adfba1f67aad4f583611a55565b8015610c8757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b505050505050505050565b600082815260c96020526040902060010154610cae8133611814565b610cb88383611a5b565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610d485760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016105c7565b6109348282611b31565b6000610d5e8133611814565b610d66611bce565b50565b60655460ff1615610dbc5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105c7565b60026001541415610e0f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c7565b6002600155333214610e635760405162461bcd60e51b815260206004820152601a60248201527f50726f787920636f6e7472616374206e6f7420616c6c6f77656400000000000060448201526064016105c7565b333b15610eb25760405162461bcd60e51b815260206004820152601460248201527f436f6e7472616374206e6f7420616c6c6f77656400000000000000000000000060448201526064016105c7565b6000816fffffffffffffffffffffffffffffffff1611610f145760405162461bcd60e51b815260206004820152601360248201527f416d6f756e742063616e74206265207a65726f0000000000000000000000000060448201526064016105c7565b60fb54610f4b9073ffffffffffffffffffffffffffffffffffffffff1633306fffffffffffffffffffffffffffffffff8516611c77565b33600090815261010360205260408120805490918391839190610f819084906fffffffffffffffffffffffffffffffff16612961565b82546101009290920a6fffffffffffffffffffffffffffffffff818102199093169183160217909155610101548354909116111590506110035760405162461bcd60e51b815260206004820152601660248201527f6c696d697420706572207573657220726561636865640000000000000000000060448201526064016105c7565b6101005481546fffffffffffffffffffffffffffffffff1610156110695760405162461bcd60e51b815260206004820152601960248201527f42616c616e6365206c657373207468616e206d696e696d756d0000000000000060448201526064016105c7565b610102546110779042612995565b6001820180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff928316179055815481167001000000000000000000000000000000004283160217825560fc8054918416916000906110e9908490612995565b9091555050805460fc54604080513381526fffffffffffffffffffffffffffffffff80871660208301529093169083015260608201527f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060800160405180910390a1505060018055565b60408051606080820183526000808352602080840182905292840181905273ffffffffffffffffffffffffffffffffffffffff85811680835261010385528583208651948501875280546fffffffffffffffffffffffffffffffff80821687527001000000000000000000000000000000009091048116968601969096526001015490941683860181905260fc546101015460fd5460fb5498517f70a08231000000000000000000000000000000000000000000000000000000008152600481019890985295979196909594429093109391909116906370a082319060240160206040518083038186803b15801561124b57600080fd5b505afa15801561125f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128391906128d6565b905091939550919395565b600061129a8133611814565b73ffffffffffffffffffffffffffffffffffffffff82166112fd5760405162461bcd60e51b815260206004820152601460248201527f43616e74206265207a65726f206164647265737300000000000000000000000060448201526064016105c7565b5060ff80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006113518133611814565b610d66611d59565b60655460ff16156113ac5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105c7565b600260015414156113ff5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c7565b60026001553332146114535760405162461bcd60e51b815260206004820152601a60248201527f50726f787920636f6e7472616374206e6f7420616c6c6f77656400000000000060448201526064016105c7565b333b156114a25760405162461bcd60e51b815260206004820152601460248201527f436f6e7472616374206e6f7420616c6c6f77656400000000000000000000000060448201526064016105c7565b3360009081526101036020526040902080546fffffffffffffffffffffffffffffffff808516911610156115185760405162461bcd60e51b815260206004820152601a60248201527f416d6f756e742065786365656420757365722062616c616e636500000000000060448201526064016105c7565b61010054815461153b9085906fffffffffffffffffffffffffffffffff166129ad565b6fffffffffffffffffffffffffffffffff16101561156a5780546fffffffffffffffffffffffffffffffff1692505b8054839082906000906115909084906fffffffffffffffffffffffffffffffff166129ad565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550826fffffffffffffffffffffffffffffffff1660fc60008282546115ea91906129de565b909155506000905082801561161657506001820154426fffffffffffffffffffffffffffffffff909116115b156116dd5760fe5460fd5461163d906fffffffffffffffffffffffffffffffff87166129f5565b6116479190612a32565b825460fc54604080513381526fffffffffffffffffffffffffffffffff808a1660208301529181018590529216606083015260808201529091507f62e94c92d7c1e198b6fe45d9636fae52b4567dc17878480ddef8a38f9552ad489060a00160405180910390a160ff5460fb546116d89173ffffffffffffffffffffffffffffffffffffffff918216911683611de1565b6117a4565b6001820154426fffffffffffffffffffffffffffffffff90911611156117455760405162461bcd60e51b815260206004820152601760248201527f557365206561726c79576974686472617720706172616d00000000000000000060448201526064016105c7565b815460fc54604080513381526fffffffffffffffffffffffffffffffff80891660208301529093169083015260608201527f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca949060800160405180910390a15b6117e4336117c4836fffffffffffffffffffffffffffffffff88166129de565b60fb5473ffffffffffffffffffffffffffffffffffffffff169190611de1565b5050600180555050565b600082815260c9602052604090206001015461180a8133611814565b610cb88383611b31565b600082815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166109345761186c8173ffffffffffffffffffffffffffffffffffffffff166014611e37565b611877836020611e37565b604051602001611888929190612a99565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b82526105c791600401612b1a565b600054610100900460ff166119495760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b565b600054610100900460ff166119c85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b611949612067565b600054610100900460ff16611a4d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b6119496120ea565b61093482825b600082815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661093457600082815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff851684529091529020805460ff19166001179055611ad33390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561093457600082815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60655460ff16611c205760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105c7565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052611d539085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612173565b50505050565b60655460ff1615611dac5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105c7565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c4d3390565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610cb89084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401611cd1565b60606000611e468360026129f5565b611e51906002612995565b67ffffffffffffffff811115611e6957611e696128a7565b6040519080825280601f01601f191660200182016040528015611e93576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611eca57611eca6127f3565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611f2d57611f2d6127f3565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611f698460026129f5565b611f74906001612995565b90505b6001811115612011577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611fb557611fb56127f3565b1a60f81b828281518110611fcb57611fcb6127f3565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361200a81612b6b565b9050611f77565b5083156120605760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105c7565b9392505050565b600054610100900460ff166120e45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b60018055565b600054610100900460ff166121675760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b6065805460ff19169055565b60006121d5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122659092919063ffffffff16565b805190915015610cb857808060200190518101906121f39190612822565b610cb85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016105c7565b6060612274848460008561227c565b949350505050565b6060824710156122f45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016105c7565b73ffffffffffffffffffffffffffffffffffffffff85163b6123585760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105c7565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123819190612ba0565b60006040518083038185875af1925050503d80600081146123be576040519150601f19603f3d011682016040523d82523d6000602084013e6123c3565b606091505b50915091506123d38282866123de565b979650505050505050565b606083156123ed575081612060565b8251156123fd5782518084602001fd5b8160405162461bcd60e51b81526004016105c79190612b1a565b60008060006060848603121561242c57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561245557600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461206057600080fd5b60008083601f84011261249757600080fd5b50813567ffffffffffffffff8111156124af57600080fd5b6020830191508360208260061b85010111156124ca57600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610d6657600080fd5b60008060006040848603121561250857600080fd5b833567ffffffffffffffff81111561251f57600080fd5b61252b86828701612485565b909450925050602084013561253f816124d1565b809150509250925092565b6000806020838503121561255d57600080fd5b823567ffffffffffffffff8082111561257557600080fd5b818501915085601f83011261258957600080fd5b81358181111561259857600080fd5b8660208260051b85010111156125ad57600080fd5b60209290920196919550909350505050565b6020808252825182820181905260009190848201906040850190845b818110156125f7578351835292840192918401916001016125db565b50909695505050505050565b60006020828403121561261557600080fd5b8135612060816124d1565b8015158114610d6657600080fd5b60006020828403121561264057600080fd5b813561206081612620565b6000806040838503121561265e57600080fd5b50508035926020909101359150565b60006020828403121561267f57600080fd5b5035919050565b60008060006040848603121561269b57600080fd5b83356126a6816124d1565b9250602084013567ffffffffffffffff8111156126c257600080fd5b6126ce86828701612485565b9497909650939450505050565b600080600080600080600080610100898b0312156126f857600080fd5b8835612703816124d1565b97506020890135965060408901359550606089013594506080890135935060a0890135925060c0890135612736816124d1565b915060e0890135612746816124d1565b809150509295985092959890939650565b6000806040838503121561276a57600080fd5b82359150602083013561277c816124d1565b809150509250929050565b80356fffffffffffffffffffffffffffffffff811681146127a757600080fd5b919050565b6000602082840312156127be57600080fd5b61206082612787565b600080604083850312156127da57600080fd5b6127e383612787565b9150602083013561277c81612620565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561283457600080fd5b815161206081612620565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156128a0576128a061283f565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156128e857600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff848116825260406020808401829052838201859052600092869160608601855b88811015612953578435612937816124d1565b8416825284830135838301529385019390850190600101612924565b509998505050505050505050565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561298c5761298c61283f565b01949350505050565b600082198211156129a8576129a861283f565b500190565b60006fffffffffffffffffffffffffffffffff838116908316818110156129d6576129d661283f565b039392505050565b6000828210156129f0576129f061283f565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a2d57612a2d61283f565b500290565b600082612a68577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015612a88578181015183820152602001612a70565b83811115611d535750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612ad1816017850160208801612a6d565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612b0e816028840160208801612a6d565b01602801949350505050565b6020815260008251806020840152612b39816040850160208701612a6d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600081612b7a57612b7a61283f565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60008251612bb2818460208701612a6d565b919091019291505056fea2646970667358221220b13ace242badd78ea46d300f1ac845d9cd9d58bd5bc93e8e43f0305003281f9564736f6c63430008090033