0 txs
124.4k calls
constructor
constructor()
functions
accessControlManager
viewfunction accessControlManager() view returns (address)
admin
viewfunction admin() view returns (address)
blocksOrSecondsPerYear
viewfunction blocksOrSecondsPerYear() view returns (uint256)
checkpoints
viewfunction checkpoints(address, uint32) view returns (uint32 fromBlockOrSecond, uint96 votes)
delegates
viewfunction delegates(address) view returns (address)
DELEGATION_TYPEHASH
viewfunction DELEGATION_TYPEHASH() view returns (bytes32)
DOMAIN_TYPEHASH
viewfunction DOMAIN_TYPEHASH() view returns (bytes32)
getBlockNumberOrTimestamp
viewfunction getBlockNumberOrTimestamp() view returns (uint256)
getCurrentVotes
viewfunction getCurrentVotes(address account) view returns (uint96)
getEligibleWithdrawalAmount
viewfunction getEligibleWithdrawalAmount(address _rewardToken, uint256 _pid, address _user) view returns (uint256 withdrawalAmount)
getPriorVotes
viewfunction getPriorVotes(address account, uint256 blockNumberOrSecond) view returns (uint96)
getRequestedAmount
viewfunction getRequestedAmount(address _rewardToken, uint256 _pid, address _user) view returns (uint256)
getUserInfo
viewfunction getUserInfo(address _rewardToken, uint256 _pid, address _user) view returns (uint256 amount, uint256 rewardDebt, uint256 pendingWithdrawals)
getWithdrawalRequests
viewfunction getWithdrawalRequests(address _rewardToken, uint256 _pid, address _user) view returns (tuple[])
implementation
viewfunction implementation() view returns (address)
isStakedToken
viewfunction isStakedToken(address) view returns (bool)
isTimeBased
viewfunction isTimeBased() view returns (bool)
MAX_LOCK_PERIOD
viewfunction MAX_LOCK_PERIOD() view returns (uint256)
nonces
viewfunction nonces(address) view returns (uint256)
numCheckpoints
viewfunction numCheckpoints(address) view returns (uint32)
pendingAdmin
viewfunction pendingAdmin() view returns (address)
pendingReward
viewfunction pendingReward(address _rewardToken, uint256 _pid, address _user) view returns (uint256)
pendingRewardTransfers
viewfunction pendingRewardTransfers(address, address) view returns (uint256)
pendingWithdrawalsBeforeUpgrade
viewfunction pendingWithdrawalsBeforeUpgrade(address _rewardToken, uint256 _pid, address _user) view returns (uint256 beforeUpgradeWithdrawalAmount)
pendingXVSVaultImplementation
viewfunction pendingXVSVaultImplementation() view returns (address)
poolInfos
viewfunction poolInfos(address, uint256) view returns (address token, uint256 allocPoint, uint256 lastRewardBlockOrSecond, uint256 accRewardPerShare, uint256 lockPeriod)
poolLength
viewfunction poolLength(address rewardToken) view returns (uint256)
primePoolId
viewfunction primePoolId() view returns (uint256)
primeRewardToken
viewfunction primeRewardToken() view returns (address)
primeToken
viewfunction primeToken() view returns (address)
rewardTokenAmountsPerBlock
viewfunction rewardTokenAmountsPerBlock(address _rewardToken) view returns (uint256)
rewardTokenAmountsPerBlockOrSecond
viewfunction rewardTokenAmountsPerBlockOrSecond(address) view returns (uint256)
SECONDS_PER_YEAR
viewfunction SECONDS_PER_YEAR() view returns (uint256)
totalAllocPoints
viewfunction totalAllocPoints(address) view returns (uint256)
totalPendingWithdrawals
viewfunction totalPendingWithdrawals(address, uint256) view returns (uint256)
vaultPaused
viewfunction vaultPaused() view returns (bool)
xvsAddress
viewfunction xvsAddress() view returns (address)
xvsStore
viewfunction xvsStore() view returns (address)
_become
nonpayablefunction _become(address xvsVaultProxy)
add
nonpayablefunction add(address _rewardToken, uint256 _allocPoint, address _token, uint256 _rewardPerBlockOrSecond, uint256 _lockPeriod)
claim
nonpayablefunction claim(address _account, address _rewardToken, uint256 _pid)
delegate
nonpayablefunction delegate(address delegatee)
delegateBySig
nonpayablefunction delegateBySig(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s)
deposit
nonpayablefunction deposit(address _rewardToken, uint256 _pid, uint256 _amount)
executeWithdrawal
nonpayablefunction executeWithdrawal(address _rewardToken, uint256 _pid)
initializeTimeManager
nonpayablefunction initializeTimeManager(bool timeBased_, uint256 blocksPerYear_)
pause
nonpayablefunction pause()
requestWithdrawal
nonpayablefunction requestWithdrawal(address _rewardToken, uint256 _pid, uint256 _amount)
resume
nonpayablefunction resume()
set
nonpayablefunction set(address _rewardToken, uint256 _pid, uint256 _allocPoint)
setAccessControl
nonpayablefunction setAccessControl(address newAccessControlAddress)
setBlocksPerYear
nonpayablefunction setBlocksPerYear(uint256 blocksPerYear_)
setPrimeToken
nonpayablefunction setPrimeToken(address _primeToken, address _primeRewardToken, uint256 _primePoolId)
setRewardAmountPerBlockOrSecond
nonpayablefunction setRewardAmountPerBlockOrSecond(address _rewardToken, uint256 _rewardAmount)
setWithdrawalLockingPeriod
nonpayablefunction setWithdrawalLockingPeriod(address _rewardToken, uint256 _pid, uint256 _newPeriod)
setXvsStore
nonpayablefunction setXvsStore(address _xvs, address _xvsStore)
updatePool
nonpayablefunction updatePool(address _rewardToken, uint256 _pid)
events
Claim
event Claim(address indexed user, address indexed rewardToken, uint256 indexed pid, uint256 amount)
DelegateChangedV2
event DelegateChangedV2(address indexed delegator, address indexed fromDelegate, address indexed toDelegate)
DelegateVotesChangedV2
event DelegateVotesChangedV2(address indexed delegate, uint256 previousBalance, uint256 newBalance)
Deposit
event Deposit(address indexed user, address indexed rewardToken, uint256 indexed pid, uint256 amount)
ExecutedWithdrawal
event ExecutedWithdrawal(address indexed user, address indexed rewardToken, uint256 indexed pid, uint256 amount)
InitializeTimeManager
event InitializeTimeManager(bool indexed timebased, uint256 indexed blocksOrSecondsPerYear)
NewAccessControlManager
event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager)
NewPrimeToken
event NewPrimeToken(address indexed oldPrimeToken, address indexed newPrimeToken, address oldPrimeRewardToken, address newPrimeRewardToken, uint256 oldPrimePoolId, uint256 newPrimePoolId)
PoolAdded
event PoolAdded(address indexed rewardToken, uint256 indexed pid, address indexed token, uint256 allocPoints, uint256 rewardPerBlockOrSecond, uint256 lockPeriod)
PoolUpdated
event PoolUpdated(address indexed rewardToken, uint256 indexed pid, uint256 oldAllocPoints, uint256 newAllocPoints)
RequestedWithdrawal
event RequestedWithdrawal(address indexed user, address indexed rewardToken, uint256 indexed pid, uint256 amount)
RewardAmountUpdated
event RewardAmountUpdated(address indexed rewardToken, uint256 oldReward, uint256 newReward)
SetBlocksPerYear
event SetBlocksPerYear(uint256 indexed prevBlocksPerYear, uint256 indexed newBlocksPerYear)
StoreUpdated
event StoreUpdated(address oldXvs, address oldStore, address newXvs, address newStore)
VaultDebtUpdated
event VaultDebtUpdated(address indexed rewardToken, address indexed userAddress, uint256 oldOwedAmount, uint256 newOwedAmount)
VaultPaused
event VaultPaused(address indexed admin)
VaultResumed
event VaultResumed(address indexed admin)
WithdrawalLockingPeriodUpdated
event WithdrawalLockingPeriodUpdated(address indexed rewardToken, uint256 indexed pid, uint256 oldPeriod, uint256 newPeriod)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561595180620000336000396000f3fe608060405234801561001057600080fd5b50600436106103835760003560e01c806392e35000116101de578063c7ad08951161010f578063e6a69ab8116100ad578063f55401621161007c578063f554016214610750578063f851a44014610758578063fba1b1f914610760578063fe5a451a1461077357610383565b8063e6a69ab814610717578063e7a324dc1461071f578063e8f2be6f14610727578063f1127ed81461072f57610383565b8063dae66bbe116100e9578063dae66bbe146106e1578063de0368b2146106f4578063e1d146fb146106fc578063e5fa2b701461070457610383565b8063c7ad0895146106b3578063cd9b94e7146106bb578063d7ae45e2146106ce57610383565b8063add893371161017c578063b6a5fd2f11610156578063b6a5fd2f1461065a578063c21025961461066d578063c3c754a81461068d578063c3cda520146106a057610383565b8063add893371461062a578063b4a0bdf314610632578063b4b5ea571461064757610383565b80639e2b6c4d116101b85780639e2b6c4d146105de578063a09eab7a146105f1578063a699776214610604578063a9d69a691461061757610383565b806392e350001461058557806398e1b31b146105a9578063996cba68146105cb57610383565b80635c19a95c116102b857806373d025d6116102565780637ecebe00116102305780637ecebe00146105445780638308d7e9146105575780638456cb591461056a5780638ed7333d1461057257610383565b806373d025d6146104fc578063782d6fe1146105115780637ac924561461053157610383565b80635ff56315116102925780635ff56315146104ae5780636857249c146104c15780636dd77cbd146104c95780636fcfff45146104dc57610383565b80635c19a95c146104805780635c60da1b146104935780635f14e7001461049b57610383565b806324f52bbf11610325578063358ae036116102ff578063358ae0361461043f5780633d4180f9146104475780634298bdbd1461045a578063587cde1e1461046d57610383565b806324f52bbf1461040f57806326782247146104245780632eda5c6c1461042c57610383565b8063115b512f11610361578063115b512f146103ce57806319129e5a146103e15780631d504dc6146103f457806320606b701461040757610383565b8063046f7da2146103885780630af13728146103925780630efe6a8b146103bb575b600080fd5b61039061077b565b005b6103a56103a03660046141c9565b610806565b6040516103b29190615256565b60405180910390f35b6103906103c9366004614281565b61084c565b6103906103dc366004614281565b610b41565b6103906103ef3660046140d6565b610ef5565b6103906104023660046143c8565b610f2b565b6103a561105c565b610417611073565b6040516103b291906150f4565b610417611082565b6103a561043a3660046140d6565b611091565b6104176110b0565b6103a5610455366004614112565b6110bf565b6103a56104683660046140d6565b6110dc565b61041761047b3660046140d6565b6110ee565b61039061048e3660046140d6565b611109565b610417611136565b6103a56104a9366004614199565b611145565b6103906104bc366004614112565b611162565b6103a5611256565b6103a56104d73660046141c9565b61125c565b6104ef6104ea3660046140d6565b611311565b6040516103b29190615624565b610504611329565b6040516103b29190615248565b61052461051f366004614199565b611332565b6040516103b2919061564d565b61039061053f366004614199565b611548565b6103a56105523660046140d6565b611891565b610390610565366004614281565b6118a3565b610390611a49565b610390610580366004614199565b611ace565b610598610593366004614199565b611b09565b6040516103b29594939291906152c3565b6105bc6105b73660046141c9565b611b5e565b6040516103b293929190615609565b6103906105d936600461414c565b611bb0565b6103906105ec366004614281565b611d42565b6103a56105ff3660046141c9565b611e2d565b610390610612366004614388565b61207d565b6103a56106253660046141c9565b6120b1565b6104176120f3565b61063a612102565b6040516103b291906152b5565b6105246106553660046140d6565b612111565b610390610668366004614199565b612181565b61068061067b3660046141c9565b6122a7565b6040516103b29190615237565b61050461069b3660046140d6565b612361565b6103906106ae3660046142b3565b612376565b61050461251a565b6103a56106c93660046140d6565b612523565b6103a56106dc3660046140d6565b612535565b6103906106ef3660046143a7565b612550565b61041761265c565b6103a561266b565b6103906107123660046143e6565b612692565b6103a56126d9565b6103a56126e1565b6103a56126ed565b61074261073d36600461433a565b6126f3565b6040516103b2929190615632565b6103a5612728565b610417612730565b61039061076e36600461420c565b61273f565b61063a612a24565b6107a460405180604001604052806008815260200167726573756d65282960c01b815250612a33565b60135460ff166107cf5760405162461bcd60e51b81526004016107c690615380565b60405180910390fd5b6013805460ff1916905560405133907fd2619572a1464e0df0bb351d834fd47f3350984d7bfdb1ab69cfcb0b8e42141590600090a2565b60006108128484612ad5565b506001600160a01b0380841660009081526007602090815260408083208684528252808320938516835292905220600201545b9392505050565b600354600160a01b900460ff166108755760405162461bcd60e51b81526004016107c690615500565b6003805460ff60a01b1916905560135460ff16156108a55760405162461bcd60e51b81526004016107c690615370565b6108af8383612ad5565b6001600160a01b03831660009081526008602052604081208054849081106108d357fe5b600091825260208083206001600160a01b038816845260078252604080852088865283528085203386529092529220600590910290910191506109168585612b0c565b6109218585336120b1565b1561093e5760405162461bcd60e51b81526004016107c6906154a0565b8054156109b35760006109518284612ce9565b905080156109b157610964863383612cfd565b84866001600160a01b0316336001600160a01b03167f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e94645846040516109a89190615256565b60405180910390a45b505b81546109d0906001600160a01b031633308663ffffffff612f7616565b80546109e2908463ffffffff612fd716565b81556109ee8183613019565b600182015560055482546001600160a01b0390811691161415610a5557336000908152600f60209081526040808320548151606081019092526021808352610a5594936001600160a01b0390921692610a50928992906157f190830139613047565b613076565b6017546001600160a01b038681169116148015610a73575060185484145b15610adb576016546040516337f23cd360e01b81526001600160a01b03909116906337f23cd390610aa8903390600401615102565b600060405180830381600087803b158015610ac257600080fd5b505af1158015610ad6573d6000803e3d6000fd5b505050505b83856001600160a01b0316336001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d786604051610b1f9190615256565b60405180910390a450506003805460ff60a01b1916600160a01b179055505050565b600354600160a01b900460ff16610b6a5760405162461bcd60e51b81526004016107c690615500565b6003805460ff60a01b1916905560135460ff1615610b9a5760405162461bcd60e51b81526004016107c690615370565b610ba48383612ad5565b60008111610bc45760405162461bcd60e51b81526004016107c6906154c0565b6001600160a01b0383166000908152600760209081526040808320858452825280832033845290915290206002810154610c04908363ffffffff612fd716565b81541015610c245760405162461bcd60e51b81526004016107c6906155a0565b6001600160a01b0384166000908152600860205260408120805485908110610c4857fe5b600091825260208083206001600160a01b0389168452600a825260408085208986528352808520338652909252908320600590920201925090610c8a82613208565b5090508015610cab5760405162461bcd60e51b81526004016107c6906154a0565b610cb58787612b0c565b6000610cc18585612ce9565b9050610cce883383612cfd565b6004840154600090610ce6904263ffffffff612fd716565b9050610cf4868589846132ac565b6001600160a01b03891660009081526012602090815260408083208b8452909152902054610d28908863ffffffff612fd716565b6001600160a01b038a1660009081526012602090815260408083208c8452909152902055610d568686613019565b600187015560055485546001600160a01b0390811691161415610db957336000908152600f6020908152604080832054815160608101909252602b808352610db9946001600160a01b03909216939192610a50928d929061579e90830139613047565b6017546001600160a01b038a81169116148015610dd7575060185488145b15610e3f576016546040516337f23cd360e01b81526001600160a01b03909116906337f23cd390610e0c903390600401615102565b600060405180830381600087803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b505050505b87896001600160a01b0316336001600160a01b03167f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e9464585604051610e839190615256565b60405180910390a487896001600160a01b0316336001600160a01b03167f88a254a0ef28a0b9e957ff600beae69870f6f924065147f3627c3f814e60ec118a604051610ecf9190615256565b60405180910390a450506003805460ff60a01b1916600160a01b17905550505050505050565b6000546001600160a01b03163314610f1f5760405162461bcd60e51b81526004016107c690615520565b610f2881613490565b50565b806001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6457600080fd5b505afa158015610f78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f9c91908101906140f4565b6001600160a01b0316336001600160a01b031614610fcc5760405162461bcd60e51b81526004016107c6906155c0565b806001600160a01b031663c1e803346040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561100757600080fd5b505af115801561101b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061103f9190810190614404565b15610f285760405162461bcd60e51b81526004016107c690615530565b604051611068906150de565b604051809103902081565b6004546001600160a01b031681565b6001546001600160a01b031681565b6001600160a01b0381166000908152600660205260409020545b919050565b6005546001600160a01b031681565b601560209081526000928352604080842090915290825290205481565b60096020526000908152604090205481565b600f602052600090815260409020546001600160a01b031681565b60135460ff161561112c5760405162461bcd60e51b81526004016107c690615370565b610f283382613515565b6002546001600160a01b031681565b601260209081526000928352604080842090915290825290205481565b6000546001600160a01b0316331461118c5760405162461bcd60e51b81526004016107c690615520565b611195826135a4565b61119e816135a4565b6005546004546001600160a01b03918216911681156111cf5760405162461bcd60e51b81526004016107c690615460565b600580546001600160a01b038087166001600160a01b03199283161790925560048054928616929091169190911790556003805460ff60a01b1916600160a01b1790556040517f559f314bb90394a4a9ceb724f365b36a53587d894352c43d12901fd68010145690611248908490849088908890615173565b60405180910390a150505050565b60795481565b60006112688484612ad5565b6001600160a01b038085166000908152600a60209081526040808320878452825280832093861683529290522080545b6000811180156112c857506112c88260018303815481106112b557fe5b90600052602060002090600202016135ca565b15611308576112fd8260018303815481106112df57fe5b6000918252602090912060029091020154849063ffffffff612fd716565b925060001901611298565b50509392505050565b60116020526000908152604090205463ffffffff1681565b60135460ff1681565b600061133c61266b565b821061135a5760405162461bcd60e51b81526004016107c690615470565b6001600160a01b03831660009081526011602052604090205463ffffffff1680611388576000915050611542565b6001600160a01b038416600090815260106020908152604080832063ffffffff600019860181168552925290912054168310611404576001600160a01b03841660009081526010602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b03169050611542565b6001600160a01b038416600090815260106020908152604080832083805290915290205463ffffffff1683101561143f576000915050611542565b600060001982015b8163ffffffff168163ffffffff16111561150257600282820363ffffffff1604810361147161405c565b506001600160a01b038716600090815260106020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b031691810191909152908714156114dd576020015194506115429350505050565b805163ffffffff168711156114f4578193506114fb565b6001820392505b5050611447565b506001600160a01b038516600090815260106020908152604080832063ffffffff909416835292905220546001600160601b03600160201b909104169150505b92915050565b600354600160a01b900460ff166115715760405162461bcd60e51b81526004016107c690615500565b6003805460ff60a01b1916905560135460ff16156115a15760405162461bcd60e51b81526004016107c690615370565b6115ab8282612ad5565b6001600160a01b03821660009081526008602052604081208054839081106115cf57fe5b600091825260208083206001600160a01b038716808552600783526040808620888752845280862033808852908552818720928752600a855281872089885285528187209087529093529184206005909302019350918061163084846135df565b9092509050811515806116435750600081115b61165f5760405162461bcd60e51b81526004016107c690615540565b81158061166a575080155b6116865760405162461bcd60e51b81526004016107c690615330565b811561179f576116968787612b0c565b60006116dc85600101546116d064e8d4a510006116c48a600301548a600001546136d690919063ffffffff16565b9063ffffffff61371016565b9063ffffffff61375216565b6004805460405163135b33cd60e31b81529293506001600160a01b031691639ad99e6891611710918c91339187910161514b565b600060405180830381600087803b15801561172a57600080fd5b505af115801561173e573d6000803e3d6000fd5b50508654611755925090508463ffffffff61375216565b80865560038701546117789164e8d4a51000916116c4919063ffffffff6136d616565b60018601558554611799906001600160a01b0316338563ffffffff61379416565b50611823565b83546117b1908263ffffffff61375216565b84556001600160a01b03871660009081526012602090815260408083208984529091529020546117e7908263ffffffff61375216565b6001600160a01b0380891660009081526012602090815260408083208b845290915290209190915585546118239116338363ffffffff61379416565b856001600160a01b038816337fe31da05fae6db869f5ea51f4b638aa6884070b6c87f18f63bd2291a12cb2f518611860868663ffffffff612fd716565b60405161186d9190615256565b60405180910390a450506003805460ff60a01b1916600160a01b1790555050505050565b600e6020526000908152604090205481565b6118e16040518060400160405280601c81526020017f73657428616464726573732c75696e743235362c75696e743235362900000000815250612a33565b6118eb8383612ad5565b6118f4836137b6565b6001600160a01b0383166000908152600860205260408120805490919061196d9084906119619085908890811061192757fe5b60009182526020808320600160059093020191909101546001600160a01b038b16835260099091526040909120549063ffffffff61375216565b9063ffffffff612fd716565b90506000811161198f5760405162461bcd60e51b81526004016107c6906155d0565b600082858154811061199d57fe5b9060005260206000209060050201600101549050838386815481106119be57fe5b9060005260206000209060050201600101819055508160096000886001600160a01b03166001600160a01b031681526020019081526020016000208190555084866001600160a01b03167f6ee09c6cb801194690c195c69f465aaf7c80255cbeafaab9600f47ed79de2ca98387604051611a399291906155fb565b60405180910390a3505050505050565b611a71604051806040016040528060078152602001667061757365282960c81b815250612a33565b60135460ff1615611a945760405162461bcd60e51b81526004016107c690615410565b6013805460ff1916600117905560405133907fdffada2889ebfab9224c24069d833f3de835d8cf99872d49e7b7ba5fccb7a46f90600090a2565b60135460ff1615611af15760405162461bcd60e51b81526004016107c690615370565b611afb8282612ad5565b611b058282612b0c565b5050565b60086020528160005260406000208181548110611b2257fe5b6000918252602090912060059091020180546001820154600283015460038401546004909401546001600160a01b039093169550909350919085565b6000806000611b6d8686612ad5565b5050506001600160a01b03928316600090815260076020908152604080832094835293815283822092909416815292529020805460018201546002909201549092565b600354600160a01b900460ff16611bd95760405162461bcd60e51b81526004016107c690615500565b6003805460ff60a01b1916905560135460ff1615611c095760405162461bcd60e51b81526004016107c690615370565b611c138282612ad5565b6001600160a01b0382166000908152600860205260408120805483908110611c3757fe5b600091825260208083206001600160a01b0380881685526007835260408086208887528452808620918a1686529252922060059091029091019150611c7c8484612b0c565b611c878484876120b1565b15611ca45760405162461bcd60e51b81526004016107c6906154a0565b805415611d28576000611cb78284612ce9565b90508015611d2657611cc98284613019565b6001830155611cd9858783612cfd565b83856001600160a01b0316876001600160a01b03167f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e9464584604051611d1d9190615256565b60405180910390a45b505b50506003805460ff60a01b1916600160a01b179055505050565b611d6360405180606001604052806033815260200161585460339139612a33565b611d6d8383612ad5565b600081118015611d8057506312cc030081105b611d9c5760405162461bcd60e51b81526004016107c690615550565b6001600160a01b0383166000908152600860205260408120805484908110611dc057fe5b9060005260206000209060050201905060008160040154905082826004018190555083856001600160a01b03167f0bcf80c5060ccf99b7a993c57a94b232fc2c5c04bd74c7c7d174595fee6bc31f8386604051611e1e9291906155fb565b60405180910390a35050505050565b6000611e398484612ad5565b6001600160a01b0384166000908152600860205260408120805485908110611e5d57fe5b600091825260208083206001600160a01b03808a168086526007845260408087208b885285528087208a8416885285528087206003600590970290940195860154918752601285528087208b885290945283862054855494516370a0823160e01b8152959750929590949093611f34939216906370a0823190611ee49030906004016150f4565b60206040518083038186803b158015611efc57600080fd5b505afa158015611f10573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116d09190810190614404565b90506000611f4061266b565b6001600160a01b038a1660009081526006602052604090205460028701549192509082118015611f6f57508215155b15612005576000611f8d87600201548461375290919063ffffffff16565b6001600160a01b038c1660009081526009602052604081205460018a01549293509091611fd591906116c490611fc9868863ffffffff6136d616565b9063ffffffff6136d616565b9050612000611ff3866116c48464e8d4a5100063ffffffff6136d616565b879063ffffffff612fd716565b955050505b6001600160a01b03808b166000908152600a602090815260408083208d84528252808320938c1683529290529081209061203e82613208565b91505061206d87600101546116d064e8d4a510006116c48a611fc9878e6000015461375290919063ffffffff16565b9c9b505050505050505050505050565b6000546001600160a01b031633146120a75760405162461bcd60e51b81526004016107c690615520565b611b0582826137eb565b6001600160a01b038084166000908152600a60209081526040808320868452825280832093851683529290529081206120e981613208565b5095945050505050565b6017546001600160a01b031681565b6047546001600160a01b031690565b6001600160a01b03811660009081526011602052604081205463ffffffff168061213c576000610845565b6001600160a01b0383166000908152601060209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03169392505050565b6121a26040518060600160405280603081526020016158b360309139612a33565b60048054604051633d6ac5b360e21b81526001600160a01b039091169163f5ab16cc916121d1918691016150f4565b60206040518083038186803b1580156121e957600080fd5b505afa1580156121fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612221919081019061436a565b61223d5760405162461bcd60e51b81526004016107c690615510565b612246826137b6565b6001600160a01b0382166000818152600660205260409081902080549084905590519091907fad96cee0d692f0250b98e085504f399da6733854908215f6203fe3c69366d9f59061229a90849086906155fb565b60405180910390a2505050565b60606122b38484612ad5565b6001600160a01b038085166000908152600a602090815260408083208784528252808320938616835292815282822080548451818402810184019095528085529092909184015b828210156123545760008481526020908190206040805160608101825260028602909201805483526001908101546001600160801b0380821685870152600160801b909104169183019190915290835290920191016122fa565b5050505090509392505050565b60146020526000908152604090205460ff1681565b60135460ff16156123995760405162461bcd60e51b81526004016107c690615370565b60006040516123a7906150de565b604080519182900382208282019091526008825267161594d5985d5b1d60c21b6020909201919091527fddfcc46608a8bd52ebf900f03a24cc97b73a6046cec8c5d0f74a211e376e967a6123f96138cc565b3060405160200161240d9493929190615272565b6040516020818303038152906040528051906020012090506000604051612433906150e9565b60405190819003812061244e918a908a908a90602001615264565b6040516020818303038152906040528051906020012090506000828260405160200161247b9291906150ad565b60405160208183030381529060405280519060200120905060006124a1828888886138d0565b6001600160a01b0381166000908152600e6020526040902080546001810190915590915089146124e35760405162461bcd60e51b81526004016107c6906153e0565b874211156125035760405162461bcd60e51b81526004016107c6906153c0565b61250d818b613515565b505050505b505050505050565b607a5460ff1681565b60066020526000908152604090205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b0316331461257a5760405162461bcd60e51b81526004016107c690615520565b6001600160a01b0383166125a05760405162461bcd60e51b81526004016107c6906153d0565b6001600160a01b0382166125c65760405162461bcd60e51b81526004016107c690615480565b6125d08282612ad5565b6016546017546018546040516001600160a01b03808816948116937f8def9436d6e31b89ed00948ba91d0cb6936eada5154cb1b45b55683fb9e492379361261f939190921691889188906151cc565b60405180910390a3601680546001600160a01b039485166001600160a01b0319918216179091556017805493909416921691909117909155601855565b6003546001600160a01b031681565b607a5460009060ff16612685576126806138fa565b61268d565b61268d6138fe565b905090565b6126d06040518060400160405280601981526020017f736574426c6f636b73506572596561722875696e743235362900000000000000815250612a33565b610f2881613902565b6301e1338081565b604051611068906150e9565b60185481565b601060209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b6312cc030081565b6000546001600160a01b031681565b6127606040518060600160405280602c81526020016158e3602c9139612a33565b612769856135a4565b612772836135a4565b6004546001600160a01b031661279a5760405162461bcd60e51b81526004016107c690615350565b600084116127ba5760405162461bcd60e51b81526004016107c690615560565b6127c3856137b6565b6001600160a01b0385166000908152600860205260408120805490915b8181101561283e57856001600160a01b03168382815481106127fe57fe5b60009182526020909120600590910201546001600160a01b031614156128365760405162461bcd60e51b81526004016107c6906154e0565b6001016127e0565b506001600160a01b03851660009081526014602052604090205460ff16156128785760405162461bcd60e51b81526004016107c690615450565b6001600160a01b0387166000908152600960205260409020546128a1908763ffffffff612fd716565b6001600160a01b038089166000908152600960209081526040808320949094556006815290839020879055825160a08101845291881682528101889052839181016128ea61266b565b8152600060208083018290526040928301889052845460018082018755958352818320855160059092020180546001600160a01b0319166001600160a01b039283161781558583015181880155858501516002820155606086015160038201556080909501516004958601558a81168352601490915290829020805460ff1916851790558254915163fb66fb4d60e01b815291169263fb66fb4d92612992928c929101615201565b600060405180830381600087803b1580156129ac57600080fd5b505af11580156129c0573d6000803e3d6000fd5b50505050846001600160a01b03166001838054905003886001600160a01b03167fd7fa4bff1cd2253c0789c3291a786a6f6b1a3b4569a75af683a15d52abb6a0bf898888604051612a1393929190615609565b60405180910390a450505050505050565b6016546001600160a01b031681565b6047546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab90612a669033908690600401615110565b60206040518083038186803b158015612a7e57600080fd5b505afa158015612a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ab6919081019061436a565b905080611b055760405162461bcd60e51b81526004016107c690615390565b6001600160a01b0382166000908152600860205260409020548110611b055760405162461bcd60e51b81526004016107c690615340565b6001600160a01b0382166000908152600860205260408120805483908110612b3057fe5b906000526020600020906005020190508060020154612b4d61266b565b11612b585750611b05565b80546040516370a0823160e01b81526000916001600160a01b0316906370a0823190612b889030906004016150f4565b60206040518083038186803b158015612ba057600080fd5b505afa158015612bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612bd89190810190614404565b6001600160a01b0385166000908152601260209081526040808320878452909152902054909150612c1090829063ffffffff61375216565b905080612c2e57612c1f61266b565b82600201819055505050611b05565b6000612c3861266b565b90506000612c5384600201548361375290919063ffffffff16565b6001600160a01b03871660009081526009602090815260408083205460018901546006909352908320549394509192612c9c92916116c491611fc990879063ffffffff6136d616565b9050612ccb612cba856116c48464e8d4a5100063ffffffff6136d616565b60038701549063ffffffff612fd716565b6003860155612cd861266b565b856002018190555050505050505050565b600061084583600101546116d08585613019565b600480546040516370a0823160e01b81526001600160a01b03918216926000928716916370a0823191612d32918691016150f4565b60206040518083038186803b158015612d4a57600080fd5b505afa158015612d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d829190810190614404565b6001600160a01b038087166000908152601560209081526040808320938916835292905290812054919250612dbd858363ffffffff612fd716565b9050828111612e9b578115612e30576001600160a01b038088166000818152601560209081526040808320948b1680845294909152808220829055517f6bdfd5e51d01475945224d3d37965916fd8df699ef9e8888af4359aa8622216091612e27918791906155e0565b60405180910390a35b60405163135b33cd60e31b81526001600160a01b03851690639ad99e6890612e60908a908a9086906004016151b1565b600060405180830381600087803b158015612e7a57600080fd5b505af1158015612e8e573d6000803e3d6000fd5b5050505050505050612f71565b6001600160a01b038088166000818152601560209081526040808320948b168084529490915290819020868503908190559051909291907f6bdfd5e51d01475945224d3d37965916fd8df699ef9e8888af4359aa8622216090612f0190879086906155fb565b60405180910390a360405163135b33cd60e31b81526001600160a01b03861690639ad99e6890612f39908b908b9089906004016151b1565b600060405180830381600087803b158015612f5357600080fd5b505af1158015612f67573d6000803e3d6000fd5b5050505050505050505b505050565b604051612fd19085906323b872dd60e01b90612f9a908790879087906024016151b1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613976565b50505050565b600061084583836040518060400160405280601b81526020017f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815250613a5b565b600061084564e8d4a510006116c48460030154611fc98760020154886000015461375290919063ffffffff16565b600081600160601b841061306e5760405162461bcd60e51b81526004016107c6919061530f565b509192915050565b816001600160a01b0316836001600160a01b0316141580156130a157506000816001600160601b0316115b15612f71576001600160a01b03831615613159576001600160a01b03831660009081526011602052604081205463ffffffff1690816130e1576000613120565b6001600160a01b0385166000908152601060209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b9050600061314782856040518060600160405280602c8152602001615887602c9139613a8b565b905061315586848484613aca565b5050505b6001600160a01b03821615612f71576001600160a01b03821660009081526011602052604081205463ffffffff1690816131945760006131d3565b6001600160a01b0384166000908152601060209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b905060006131fa82856040518060600160405280602b8152602001615773602b9139613c86565b905061251285848484613aca565b805460009081905b80156132a65783600182038154811061322557fe5b6000918252602090912060016002909202018101546001600160801b03600160801b9091041614156132885761328184600183038154811061326357fe5b6000918252602090912060029091020154839063ffffffff612fd716565b915061329d565b61329a8460018303815481106112df57fe5b92505b60001901613210565b50915091565b8254604080516060810182526000808252602080830182815260019484018581528587018a5589845291909220925160028602909301928355905191909201805492516001600160801b03908116600160801b029281166001600160801b0319909416939093179092161790555b60008111801561335557508184600183038154811061333557fe5b60009182526020909120600160029092020101546001600160801b031611155b156133dc5783600182038154811061336957fe5b906000526020600020906002020184828154811061338357fe5b600091825260209091208254600290920201908155600191820180549290910180546001600160801b0319166001600160801b03938416178082559154600160801b90819004841602919092161790556000190161331a565b60405180606001604052808481526020016133f684613cb9565b6001600160801b0316815260200160016001600160801b031681525084828154811061341e57fe5b60009182526020918290208351600292830290910190815591830151600190920180546040909401516001600160801b03199094166001600160801b03938416178316600160801b93909416929092029290921790558501546134819084612fd7565b85600201819055505050505050565b6001600160a01b0381166134b65760405162461bcd60e51b81526004016107c690615420565b604780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906135099083908590615130565b60405180910390a15050565b6001600160a01b038083166000908152600f60205260408120549091169061353c84613ce2565b6001600160a01b038581166000818152600f602052604080822080546001600160a01b031916898616908117909155905194955093928616927f0cc323ffec3ea49cbcddc0de1480978126d350c6a45dff33ad2f1cda6ae992619190a4612fd1828483613076565b6001600160a01b038116610f285760405162461bcd60e51b81526004016107c690615490565b60010154426001600160801b03909116111590565b805460009081905b60008111801561360457506136048460018303815481106112b557fe5b156136a55783600182038154811061361857fe5b6000918252602090912060016002909202018101546001600160801b03600160801b90910416141561365d5761365684600183038154811061326357fe5b9150613672565b61366f8460018303815481106112df57fe5b92505b8380548061367c57fe5b6000828152602081206000199283016002810290910182815560010191909155909155016135e7565b506136ca6136b9828463ffffffff612fd716565b60028601549063ffffffff61375216565b60028501559250929050565b6000826136e557506000611542565b828202828482816136f257fe5b04146108455760405162461bcd60e51b81526004016107c6906154d0565b600061084583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613df8565b600061084583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613e2f565b604051612f7190849063a9059cbb60e01b90612f9a908690869060240161521c565b6001600160a01b038116600090815260086020526040812054905b81811015612f71576137e38382612b0c565b6001016137d1565b607a54610100900460ff16156138135760405162461bcd60e51b81526004016107c690615570565b8115801561381f575080155b1561383c5760405162461bcd60e51b81526004016107c6906154f0565b81801561384857508015155b156138655760405162461bcd60e51b81526004016107c690615400565b607a805461010061ff00199091161760ff191683151517905581613889578061388f565b6301e133805b6079819055607a5460405160ff9091161515907f934cf29f9679e41858121018ea3d3756f7ba98f09e5b93bdc4e188f32c0a72b890600090a35050565b4690565b60008060006138e187878787613e53565b915091506138ee81613f33565b5090505b949350505050565b4390565b4290565b8061391f5760405162461bcd60e51b81526004016107c6906155b0565b607a5460ff16156139425760405162461bcd60e51b81526004016107c690615440565b6079546040518291907fabcc41e4a6d75e5cafe0a021b2461af7640ae31b3482ffce6512edceb1434a8390600090a3607955565b613988826001600160a01b0316613ffc565b6139a45760405162461bcd60e51b81526004016107c690615590565b60006060836001600160a01b0316836040516139c091906150a1565b6000604051808303816000865af19150503d80600081146139fd576040519150601f19603f3d011682016040523d82523d6000602084013e613a02565b606091505b509150915081613a245760405162461bcd60e51b81526004016107c690615580565b805115612fd15780806020019051613a3f919081019061436a565b612fd15760405162461bcd60e51b81526004016107c6906153b0565b60008383018285821015613a825760405162461bcd60e51b81526004016107c6919061530f565b50949350505050565b6000836001600160601b0316836001600160601b031611158290613ac25760405162461bcd60e51b81526004016107c6919061530f565b505050900390565b6000613af5613ad761266b565b60405180608001604052806042815260200161581260429139614035565b905060008463ffffffff16118015613b3e57506001600160a01b038516600090815260106020908152604080832063ffffffff6000198901811685529252909120548282169116145b15613b9d576001600160a01b0385166000908152601060209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b03851602179055613c3c565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152601083528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252601190935292909220805460018801909316929091169190911790555b846001600160a01b03167f6adb589fed1e8542fb7a6b10f00a85e02265e77f9ae3ca8ff93b22983e1af9a08484604051613c7792919061565b565b60405180910390a25050505050565b6000838301826001600160601b038087169083161015613a825760405162461bcd60e51b81526004016107c6919061530f565b6000600160801b8210613cde5760405162461bcd60e51b81526004016107c6906153f0565b5090565b6005546000906001600160a01b0316613d0d5760405162461bcd60e51b81526004016107c6906153a0565b6005546001600160a01b03166000908152600860205260408120805490915b81811015613ded5760055483546001600160a01b0390911690849083908110613d5157fe5b60009182526020909120600590910201546001600160a01b03161415613de5576005546001600160a01b039081166000908152600760209081526040808320858452825280832093891683529290522060028101548154613dda91613dbc919063ffffffff61375216565b6040518060600160405280602881526020016157c960289139613047565b9450505050506110ab565b600101613d2c565b506000949350505050565b60008183613e195760405162461bcd60e51b81526004016107c6919061530f565b506000838581613e2557fe5b0495945050505050565b60008184841115613ac25760405162461bcd60e51b81526004016107c6919061530f565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613e8a5750600090506003613f2a565b8460ff16601b14158015613ea257508460ff16601c14155b15613eb35750600090506004613f2a565b600060018787878760405160008152602001604052604051613ed8949392919061529a565b6020604051602081039080840390855afa158015613efa573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613f2357506000915060019050613f2a565b9150600090505b94509492505050565b6000816004811115613f4157fe5b1415613f4c57610f28565b6001816004811115613f5a57fe5b1415613f785760405162461bcd60e51b81526004016107c690615320565b6002816004811115613f8657fe5b1415613fa45760405162461bcd60e51b81526004016107c690615360565b6003816004811115613fb257fe5b1415613fd05760405162461bcd60e51b81526004016107c690615430565b6004816004811115613fde57fe5b1415610f285760405162461bcd60e51b81526004016107c6906154b0565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906138f2575050151592915050565b600081600160201b841061306e5760405162461bcd60e51b81526004016107c6919061530f565b604080518082019091526000808252602082015290565b803561154281615731565b805161154281615731565b803561154281615745565b805161154281615745565b80356115428161574e565b803561154281615757565b80516115428161574e565b803561154281615760565b803561154281615769565b6000602082840312156140e857600080fd5b60006138f28484614073565b60006020828403121561410657600080fd5b60006138f2848461407e565b6000806040838503121561412557600080fd5b60006141318585614073565b925050602061414285828601614073565b9150509250929050565b60008060006060848603121561416157600080fd5b600061416d8686614073565b935050602061417e86828701614073565b925050604061418f8682870161409f565b9150509250925092565b600080604083850312156141ac57600080fd5b60006141b88585614073565b92505060206141428582860161409f565b6000806000606084860312156141de57600080fd5b60006141ea8686614073565b93505060206141fb8682870161409f565b925050604061418f86828701614073565b600080600080600060a0868803121561422457600080fd5b60006142308888614073565b95505060206142418882890161409f565b9450506040614252888289016140aa565b93505060606142638882890161409f565b92505060806142748882890161409f565b9150509295509295909350565b60008060006060848603121561429657600080fd5b60006142a28686614073565b935050602061417e8682870161409f565b60008060008060008060c087890312156142cc57600080fd5b60006142d88989614073565b96505060206142e989828a0161409f565b95505060406142fa89828a0161409f565b945050606061430b89828a016140cb565b935050608061431c89828a0161409f565b92505060a061432d89828a0161409f565b9150509295509295509295565b6000806040838503121561434d57600080fd5b60006143598585614073565b9250506020614142858286016140c0565b60006020828403121561437c57600080fd5b60006138f28484614094565b6000806040838503121561439b57600080fd5b60006141b88585614089565b6000806000606084860312156143bc57600080fd5b600061416d86866140aa565b6000602082840312156143da57600080fd5b60006138f284846140aa565b6000602082840312156143f857600080fd5b60006138f2848461409f565b60006020828403121561441657600080fd5b60006138f284846140b5565b600061442e8383615041565b505060600190565b61443f816156da565b82525050565b61443f81615689565b60006144598261567c565b6144638185615680565b935061446e83615676565b8060005b8381101561449c5781516144868882614422565b975061449183615676565b925050600101614472565b509495945050505050565b61443f81615694565b61443f81615699565b61443f6144c582615699565b615699565b60006144d58261567c565b6144df81856110ab565b93506144ef8185602086016156fb565b9290920192915050565b61443f8161569c565b61443f816156e5565b60006145168261567c565b6145208185615680565b93506145308185602086016156fb565b61453981615727565b9093019392505050565b6000614550601883615680565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000815260200192915050565b6000614589601283615680565b71696e636f6e73697374656e7420737461746560701b815260200192915050565b60006145b7601383615680565b727661756c743a20706f6f6c206578697374733f60681b815260200192915050565b60006145e6601f83615680565b7f53746f726520636f6e7472616374206164647265737320697320656d70747900815260200192915050565b600061461f601f83615680565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800815260200192915050565b6000614658600f83615680565b6e15985d5b1d081a5cc81c185d5cd959608a1b815260200192915050565b6000614683601383615680565b7215985d5b1d081a5cc81b9bdd081c185d5cd959606a1b815260200192915050565b60006146b2600c83615680565b6b155b985d5d1a1bdc9a5e995960a21b815260200192915050565b60006146da603083615680565b7f5856535661756c743a3a6765745374616b65416d6f756e743a2078767320616481526f191c995cdcc81a5cc81b9bdd081cd95d60821b602082015260400192915050565b600061472c602a83615680565b7f5361666542455032303a204245503230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015260400192915050565b6000614778602a83615680565b7f5856535661756c743a3a64656c656761746542795369673a207369676e6174758152691c9948195e1c1a5c995960b21b602082015260400192915050565b60006147c4602283615680565b7f7072696d6520746f6b656e2063616e6e6f74206265207a65726f206164647265815261737360f01b602082015260400192915050565b6000614808602683615680565b7f5856535661756c743a3a64656c656761746542795369673a20696e76616c6964815265206e6f6e636560d01b602082015260400192915050565b60006148506002836110ab565b61190160f01b815260020192915050565b600061486e602783615680565b7f53616665436173743a2076616c756520646f65736e27742066697420696e20318152663238206269747360c81b602082015260400192915050565b60006148b7602083615680565b7f496e76616c69642074696d6520626173656420636f6e66696775726174696f6e815260200192915050565b60006148f0601783615680565b7f5661756c7420697320616c726561647920706175736564000000000000000000815260200192915050565b6000614929602583615680565b7f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b602082015260400192915050565b6000614970602283615680565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c815261756560f01b602082015260400192915050565b60006149b4602483615680565b7f43616e6e6f742075706461746520666f722074696d65206261736564206e6574815263776f726b60e01b602082015260400192915050565b60006149fa601a83615680565b7f546f6b656e2065786973747320696e206f7468657220706f6f6c000000000000815260200192915050565b6000614a33601383615680565b72185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b815260200192915050565b6000614a62602b83615680565b7f5856535661756c743a3a6765745072696f72566f7465733a206e6f742079657481526a0819195d195c9b5a5b995960aa1b602082015260400192915050565b6000614aaf601d83615680565b7f7265776172642063616e6e6f74206265207a65726f2061646472657373000000815260200192915050565b6000614ae8601883615680565b7f7a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000815260200192915050565b6000614b21601a83615680565b7f657865637574652070656e64696e67207769746864726177616c000000000000815260200192915050565b6000614b5a602283615680565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c815261756560f01b602082015260400192915050565b6000614b9e6043836110ab565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000614c09601f83615680565b7f72657175657374656420616d6f756e742063616e6e6f74206265207a65726f00815260200192915050565b6000614c42602183615680565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000614c85601283615680565b71141bdbdb08185b1c9958591e48185919195960721b815260200192915050565b6000614cb3601783615680565b7f496e76616c696420626c6f636b73207065722079656172000000000000000000815260200192915050565b6000614cec600a83615680565b691c994b595b9d195c995960b21b815260200192915050565b6000614d12601483615680565b7324b73b30b634b2103932bbb0b932103a37b5b2b760611b815260200192915050565b6000614d42600e83615680565b6d37b7363c9030b236b4b71031b0b760911b815260200192915050565b6000614d6c601583615680565b7418da185b99d9481b9bdd08185d5d1a1bdc9a5e9959605a1b815260200192915050565b6000614d9d601383615680565b726e6f7468696e6720746f20776974686472617760681b815260200192915050565b6000614dcc601a83615680565b7f496e76616c6964206e6577206c6f636b696e6720706572696f64000000000000815260200192915050565b6000614e05601d83615680565b7f416c6c6f6320706f696e7473206d757374206e6f74206265207a65726f000000815260200192915050565b6000614e3e601f83615680565b7f416c726561647920696e697469616c697a65642054696d654d616e6167657200815260200192915050565b6000614e77602083615680565b7f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000614eb0603a836110ab565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b6000614f0f601f83615680565b7f5361666542455032303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b6000614f48601b83615680565b7f72657175657374656420616d6f756e7420697320696e76616c69640000000000815260200192915050565b6000614f81601e83615680565b7f426c6f636b732070657220796561722063616e6e6f74206265207a65726f0000815260200192915050565b6000614fba602283615680565b7f6f6e6c792070726f78792061646d696e2063616e206368616e676520627261698152616e7360f01b602082015260400192915050565b6000614ffe602e83615680565b7f416c6c6f6320706f696e7473207065722072657761726420746f6b656e206d7581526d7374206e6f74206265207a65726f60901b602082015260400192915050565b8051606083019061505284826144b0565b5060208201516150656020850182615074565b506040820151612fd160408501825b61443f816156a7565b61443f816156bf565b61443f816156c8565b61443f816156f0565b61443f816156ce565b600061084582846144ca565b60006150b882614843565b91506150c482856144b9565b6020820191506150d482846144b9565b5060200192915050565b600061154282614b91565b600061154282614ea3565b602081016115428284614445565b602081016115428284614436565b6040810161511e8285614436565b81810360208301526138f2818461450b565b6040810161513e8285614445565b6108456020830184614445565b606081016151598286614445565b6151666020830185614436565b6138f260408301846144b0565b608081016151818287614445565b61518e6020830186614445565b61519b6040830185614445565b6151a86060830184614445565b95945050505050565b606081016151bf8286614445565b6151666020830185614445565b608081016151da8287614445565b6151e76020830186614445565b6151f460408301856144b0565b6151a860608301846144b0565b6040810161520f8285614445565b61084560208301846144a7565b6040810161522a8285614445565b61084560208301846144b0565b60208082528101610845818461444e565b6020810161154282846144a7565b6020810161154282846144b0565b608081016151da82876144b0565b6080810161528082876144b0565b61528d60208301866144b0565b61519b60408301856144b0565b608081016152a882876144b0565b6151e76020830186615086565b6020810161154282846144f9565b60a081016152d182886144f9565b6152de60208301876144b0565b6152eb60408301866144b0565b6152f860608301856144b0565b61530560808301846144b0565b9695505050505050565b60208082528101610845818461450b565b6020808252810161154281614543565b602080825281016115428161457c565b60208082528101611542816145aa565b60208082528101611542816145d9565b6020808252810161154281614612565b602080825281016115428161464b565b6020808252810161154281614676565b60208082528101611542816146a5565b60208082528101611542816146cd565b602080825281016115428161471f565b602080825281016115428161476b565b60208082528101611542816147b7565b60208082528101611542816147fb565b6020808252810161154281614861565b60208082528101611542816148aa565b60208082528101611542816148e3565b602080825281016115428161491c565b6020808252810161154281614963565b60208082528101611542816149a7565b60208082528101611542816149ed565b6020808252810161154281614a26565b6020808252810161154281614a55565b6020808252810161154281614aa2565b6020808252810161154281614adb565b6020808252810161154281614b14565b6020808252810161154281614b4d565b6020808252810161154281614bfc565b6020808252810161154281614c35565b6020808252810161154281614c78565b6020808252810161154281614ca6565b6020808252810161154281614cdf565b6020808252810161154281614d05565b6020808252810161154281614d35565b6020808252810161154281614d5f565b6020808252810161154281614d90565b6020808252810161154281614dbf565b6020808252810161154281614df8565b6020808252810161154281614e31565b6020808252810161154281614e6a565b6020808252810161154281614f02565b6020808252810161154281614f3b565b6020808252810161154281614f74565b6020808252810161154281614fad565b6020808252810161154281614ff1565b604081016155ee82856144b0565b6108456020830184614502565b6040810161522a82856144b0565b6060810161561782866144b0565b61516660208301856144b0565b60208101611542828461507d565b60408101615640828561507d565b6108456020830184615098565b602081016115428284615098565b60408101615669828561508f565b610845602083018461508f565b60200190565b5190565b90815260200190565b6000611542826156b3565b151590565b90565b600061154282615689565b6001600160801b031690565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b60006115428261569c565b600061154282615699565b6000611542826156ce565b60005b838110156157165781810151838201526020016156fe565b83811115612fd15750506000910152565b601f01601f191690565b61573a81615689565b8114610f2857600080fd5b61573a81615694565b61573a81615699565b61573a8161569c565b61573a816156bf565b61573a816156c856fe5856535661756c743a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77735856535661756c743a3a726571756573745769746864726177616c3a20766f746573206f766572666c6f775856535661756c743a3a6765745374616b65416d6f756e743a20766f746573206f766572666c6f775856535661756c743a3a6465706f7369743a20766f746573206f766572666c6f775856535661756c743a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206f72207365636f6e64206578636565647320333220626974737365745769746864726177616c4c6f636b696e67506572696f6428616464726573732c75696e743235362c75696e74323536295856535661756c743a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773736574526577617264416d6f756e74506572426c6f636b4f725365636f6e6428616464726573732c75696e743235362961646428616464726573732c75696e743235362c616464726573732c75696e743235362c75696e7432353629a365627a7a72315820f1a4334075c913e6abda9a9011e03201e0c2506e85a50c1ebec6db80f2c8e2886c6578706572696d656e74616cf564736f6c63430005100040