0 txs
2.8k calls
constructor
constructor()
functions
CCf
viewfunction CCf() view returns (address)
CCfMg
viewfunction CCfMg() view returns (address)
CCfV2
viewfunction CCfV2() view returns (address)
CLaunchpool
viewfunction CLaunchpool() view returns (address)
CStake
viewfunction CStake() view returns (address)
CTier
viewfunction CTier() view returns (address)
getCurrentRank
viewfunction getCurrentRank(address _staker) view returns (tuple rank)
getKOLs
viewfunction getKOLs() view returns (address[])
getRankName
viewfunction getRankName(address _staker) view returns (string)
getUserInfo
viewfunction getUserInfo() view returns (uint256 _stakedAmount, uint256 _withdrawalsCount, uint256 _pendingWithdrawalAmount, uint256 _completedWithdrawalAmount, string _rankName, uint256 _maxAllocation)
getWhitelisted
viewfunction getWhitelisted() view returns (address[])
getWithdrawals
viewfunction getWithdrawals(address _staker) view returns (tuple[])
isKOL
viewfunction isKOL(address _kol) view returns (bool)
isWhitelisted
viewfunction isWhitelisted(address _addr) view returns (bool)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
roles
viewfunction roles(address) view returns (uint8)
TEN
viewfunction TEN() view returns (address)
addCf
nonpayablefunction addCf(bool isMegalodon, string tokenName, address tAdr, address cfOwner, uint256 sc, uint256 hc, uint256 wlDuration, uint256 sTime, uint256 eTime, uint256[5] pAlloc, bool isV2) returns (uint256 projectId)
addKOL
nonpayablefunction addKOL(address _kol)
addKOLS
nonpayablefunction addKOLS(address[] _kol)
addWhitelisted
nonpayablefunction addWhitelisted(address _addr)
addWhitelistedBatch
nonpayablefunction addWhitelistedBatch(address[] _addrs)
allowlistDestinationChain
nonpayablefunction allowlistDestinationChain(uint64 _chainId, uint64 _detinationChainSelector, bool allowed)
banBuyer
nonpayablefunction banBuyer(address _buyer)
banBuyerForCf
nonpayablefunction banBuyerForCf(uint256 _cf, address _buyer)
batchBanBuyer
nonpayablefunction batchBanBuyer(address[] _buyers)
batchBanBuyerForCf
nonpayablefunction batchBanBuyerForCf(uint256 _cf, address[] _buyers)
batchUnbanBuyer
nonpayablefunction batchUnbanBuyer(address[] _buyers)
batchUnbanBuyerForCf
nonpayablefunction batchUnbanBuyerForCf(uint256 _cf, address[] _buyers)
buyCf
nonpayablefunction buyCf(uint256 _cf, uint256 _amount, bool isV2)
cancel
nonpayablefunction cancel(uint256 _cf, bool isV2)
cancelLaunchpool
nonpayablefunction cancelLaunchpool(uint256 _launchpoolId)
cancelUnstake
nonpayablefunction cancelUnstake(uint256 _requestId)
claimRewards
nonpayablefunction claimRewards()
createLaunchpool
nonpayablefunction createLaunchpool(address _token, uint256 _maxParticipation, uint256 _sTime, uint256 _eTime, uint256 _openWindowDuration, uint256 _tokenAmt, uint64 _chainId, uint64 _decimal)
finalize
nonpayablefunction finalize(uint256 _cf, bool isV2)
initialize
nonpayablefunction initialize(address _token)
participate
nonpayablefunction participate(uint256 _launchpoolId, uint256 _tenAmt)
refillRewardPool
nonpayablefunction refillRewardPool(uint256 amount, uint32 period)
refundCf
nonpayablefunction refundCf(uint256 _cf, bool isV2)
removeKOL
nonpayablefunction removeKOL(uint256 index)
removeWhitelisted
nonpayablefunction removeWhitelisted(uint256 index)
renounceOwnership
nonpayablefunction renounceOwnership()
requestUnstake
nonpayablefunction requestUnstake(uint256 _amount)
setCA
nonpayablefunction setCA(address stakeAddress, address tierAddress, address cfAddress, address cfV2Address, address cfMgAddress, address launchpoolAddress)
setCooldown
nonpayablefunction setCooldown(uint32 _cooldown)
setFFA
nonpayablefunction setFFA(uint256 _cf, bool isActive, bool isV2)
setLpMc
nonpayablefunction setLpMc(address _lp, uint64 _chainId)
setMinStake
nonpayablefunction setMinStake(uint256 _minStake)
setRoles
nonpayablefunction setRoles(address user, uint256 role)
stake
nonpayablefunction stake(uint256 _amount)
stakeFor
nonpayablefunction stakeFor(uint256 _amount, address _staker)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unbanBuyer
nonpayablefunction unbanBuyer(address _buyer)
unbanBuyerForCf
nonpayablefunction unbanBuyerForCf(uint256 _cf, address _buyer)
unparticipate
payablefunction unparticipate(uint256 _launchpoolId) payable
unstake
nonpayablefunction unstake(uint256 _requestId)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw(address _beneficiary)
withdrawToken
nonpayablefunction withdrawToken(address _beneficiary, address _token)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
ContractAddressesSet
event ContractAddressesSet(address stakeAddress, address tierAddress, address cfAddress, address cfV2Address, address cfMgAddress, address launchpoolAddress)
CrowdfundingAdded
event CrowdfundingAdded(uint256 projectId)
CrowdfundingBought
event CrowdfundingBought(uint256 cfId, address indexed buyer, uint256 amount)
CrowdfundingFinalized
event CrowdfundingFinalized(uint256 cfId)
FFASet
event FFASet(uint256 cfId, bool isActive)
Initialized
event Initialized(uint8 version)
KOLAdded
event KOLAdded(address indexed _kol)
KOLRemoved
event KOLRemoved(address indexed _kol)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RoleSet
event RoleSet(address indexed user, uint8 role)
Upgraded
event Upgraded(address indexed implementation)
WhitelistedAdded
event WhitelistedAdded(address indexed _addr)
WhitelistedRemoved
event WhitelistedRemoved(address indexed _addr)
errors
FailedToWithdrawEth
error FailedToWithdrawEth(address owner, address target, uint256 value)
NothingToWithdraw
error NothingToWithdraw()
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516156ff6200012d600039600081816117b1015281816117f101528181611f0901528181611f4901528181612289015281816135cb015261360b01526156ff6000f3fe6080604052600436106103b15760003560e01c80636f9b66a6116101e7578063acffddaf1161010d578063cde24cdc116100a0578063ee2f3a051161006f578063ee2f3a0514610b75578063f210fe4414610b96578063f2fde38b14610bb6578063f8718c5a14610bd657600080fd5b8063cde24cdc14610ae7578063d7b12ea114610b07578063e742b37814610b34578063ed44f02f14610b5457600080fd5b8063c2fc8f8d116100dc578063c2fc8f8d14610a67578063c4d66de814610a87578063c63cac2e14610aa7578063cd0ca2d214610ac757600080fd5b8063acffddaf146109da578063ad077210146109fa578063b594b0c714610a1a578063b90288f214610a4757600080fd5b80638ddebcfb116101855780639c2a4cce116101545780639c2a4cce146109405780639d06126d1461097a578063a5b53a711461099a578063a694fc3a146109ba57600080fd5b80638ddebcfb146108ad57806395750e38146108cd57806399374642146108ed5780639b372b2b1461092b57600080fd5b806388ba27d9116101c157806388ba27d91461082f5780638c80fd901461084f5780638d52547f1461086f5780638da5cb5b1461088f57600080fd5b80636f9b66a6146107e7578063701d665b14610807578063715018a61461081a57600080fd5b8063377cf5f0116102d757806351746bb21161026a57806354c2a4a71161023957806354c2a4a7146107605780635d8d15851461078057806364842d91146107a757806365beff62146107c757600080fd5b806351746bb2146106dd57806351cff8d9146106fd5780635209ebed1461071d57806352d1902d1461073d57600080fd5b80633af32abf116102a65780633af32abf1461063e578063469bcd2d146106885780634c3bc531146106aa5780634f1ef286146106ca57600080fd5b8063377cf5f0146105b157806337dc3191146105d15780633a2b643a146105f15780633aeac4e11461061e57600080fd5b8063163c9c541161034f5780632e17de781161031e5780632e17de781461053c57806333a3ad8f1461055c5780633659cfe61461057c578063372500ab1461059c57600080fd5b8063163c9c54146104bc57806323095721146104dc5780632985654c146104fc5780632b187b2b1461051c57600080fd5b80630990ae7e1161038b5780630990ae7e1461043c5780630eddce6d1461045c57806310154bad1461047c578063129874aa1461049c57600080fd5b80630175c92a146103bd57806307547513146103df57806307b068ee146103ff57600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103dd6103d83660046146a3565b610bf6565b005b3480156103eb57600080fd5b506103dd6103fa3660046146f3565b610eec565b34801561040b57600080fd5b5060fc5461041f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561044857600080fd5b506103dd610457366004614727565b610f84565b34801561046857600080fd5b506103dd6104773660046147b1565b61107c565b34801561048857600080fd5b506103dd6104973660046146f3565b611141565b3480156104a857600080fd5b506103dd6104b73660046147dd565b6112e5565b3480156104c857600080fd5b506103dd6104d73660046147ff565b611382565b3480156104e857600080fd5b506103dd6104f7366004614838565b6114b6565b34801561050857600080fd5b5060fb5461041f906001600160a01b031681565b34801561052857600080fd5b506103dd610537366004614838565b611591565b34801561054857600080fd5b506103dd610557366004614838565b611608565b34801561056857600080fd5b506103dd610577366004614851565b611647565b34801561058857600080fd5b506103dd6105973660046146f3565b6117a7565b3480156105a857600080fd5b506103dd61186c565b3480156105bd57600080fd5b506103dd6105cc3660046148c8565b6118dd565b3480156105dd57600080fd5b506103dd6105ec3660046146a3565b61197a565b3480156105fd57600080fd5b5061061161060c3660046146f3565b611b60565b6040516104339190614909565b34801561062a57600080fd5b506103dd61063936600461496f565b611bd9565b34801561064a57600080fd5b506106786106593660046146f3565b6001600160a01b03166000908152610104602052604090205460ff1690565b6040519015158152602001610433565b34801561069457600080fd5b5061069d611c83565b604051610433919061499d565b3480156106b657600080fd5b506103dd6106c5366004614838565b611d1a565b6103dd6106d8366004614adf565b611eff565b3480156106e957600080fd5b506103dd6106f8366004614b42565b611fb4565b34801561070957600080fd5b506103dd6107183660046146f3565b6121c5565b34801561072957600080fd5b5060fd5461041f906001600160a01b031681565b34801561074957600080fd5b5061075261227c565b604051908152602001610433565b34801561076c57600080fd5b506103dd61077b3660046148c8565b61232f565b34801561078c57600080fd5b50610795612396565b60405161043396959493929190614bb7565b3480156107b357600080fd5b506103dd6107c2366004614bf5565b612432565b3480156107d357600080fd5b506103dd6107e2366004614c40565b6124d2565b3480156107f357600080fd5b5060fe5461041f906001600160a01b031681565b6103dd610815366004614838565b6127dd565b34801561082657600080fd5b506103dd612832565b34801561083b57600080fd5b506103dd61084a366004614cc2565b612844565b34801561085b57600080fd5b506103dd61086a366004614838565b6128c1565b34801561087b57600080fd5b506103dd61088a366004614d11565b612934565b34801561089b57600080fd5b506033546001600160a01b031661041f565b3480156108b957600080fd5b506103dd6108c8366004614d9f565b6129a8565b3480156108d957600080fd5b506103dd6108e8366004614d11565b612c3d565b3480156108f957600080fd5b5061091e6109083660046146f3565b6101066020526000908152604090205460ff1681565b6040516104339190614dec565b34801561093757600080fd5b5061069d612cb1565b34801561094c57600080fd5b5061067861095b3660046146f3565b6001600160a01b03166000908152610102602052604090205460ff1690565b34801561098657600080fd5b506103dd6109953660046146f3565b612d46565b3480156109a657600080fd5b506103dd6109b5366004614b42565b612e84565b3480156109c657600080fd5b506103dd6109d5366004614838565b612ef2565b3480156109e657600080fd5b506103dd6109f5366004614838565b6130c9565b348015610a0657600080fd5b506103dd610a15366004614e14565b613144565b348015610a2657600080fd5b50610a3a610a353660046146f3565b61320e565b6040516104339190614e40565b348015610a5357600080fd5b506103dd610a62366004614838565b61336b565b348015610a7357600080fd5b506103dd610a823660046146f3565b61355a565b348015610a9357600080fd5b506103dd610aa23660046146f3565b6135c1565b348015610ab357600080fd5b506103dd610ac23660046146a3565b6137ff565b348015610ad357600080fd5b506103dd610ae2366004614bf5565b6138ad565b348015610af357600080fd5b50610752610b02366004614f07565b613916565b348015610b1357600080fd5b50610b27610b223660046146f3565b613c62565b6040516104339190614fe1565b348015610b4057600080fd5b506103dd610b4f366004614b42565b613c74565b348015610b6057600080fd5b506101005461041f906001600160a01b031681565b348015610b8157600080fd5b506101015461041f906001600160a01b031681565b348015610ba257600080fd5b5060ff5461041f906001600160a01b031681565b348015610bc257600080fd5b506103dd610bd13660046146f3565b613ce2565b348015610be257600080fd5b506103dd610bf1366004614ff4565b613d58565b610bfe613dd0565b8015610d8e57336000908152610106602052604081205460ff166002811115610c2957610c29614dd6565b141580610ca7575061010054604051630d3abefd60e41b8152336004820152602481018490526001600160a01b039091169063d3abefd0906044016020604051808303816000875af1158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca7919061500f565b610ccc5760405162461bcd60e51b8152600401610cc39061502c565b60405180910390fd5b610100546040516302930d7560e11b8152600481018490526001600160a01b03909116906305261aea90602401600060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505060ff5460405163f57857bd60e01b8152600481018690526001600160a01b03909116925063f57857bd9150602401600060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b50505050610eab565b336000908152610106602052604081205460ff166002811115610db357610db3614dd6565b141580610e30575060fd54604051630d3abefd60e41b8152336004820152602481018490526001600160a01b039091169063d3abefd0906044016020604051808303816000875af1158015610e0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e30919061500f565b610e4c5760405162461bcd60e51b8152600401610cc39061502c565b60fd546040516302930d7560e11b8152600481018490526001600160a01b03909116906305261aea90602401600060405180830381600087803b158015610e9257600080fd5b505af1158015610ea6573d6000803e3d6000fd5b505050505b6040518281527f8e8a5ce85832ba1a42669e3af3f09bbdfedbd1c0956f740ce487e28822dacdac9060200160405180910390a1610ee86001606555565b5050565b610ef533613e30565b80610f045750610f0433613e5f565b610f205760405162461bcd60e51b8152600401610cc39061502c565b61010054604051630754751360e01b81526001600160a01b038381166004830152909116906307547513906024015b600060405180830381600087803b158015610f6957600080fd5b505af1158015610f7d573d6000803e3d6000fd5b5050505050565b610f8c613dd0565b336000908152610106602052604081205460ff166002811115610fb157610fb1614dd6565b03610fce5760405162461bcd60e51b8152600401610cc39061502c565b60fe546040516304c8573f60e11b81526001600160a01b038a81166004830152602482018a905260448201899052606482018890526084820187905260a482018690526001600160401b0380861660c4840152841660e483015290911690630990ae7e9061010401600060405180830381600087803b15801561105057600080fd5b505af1158015611064573d6000803e3d6000fd5b505050506110726001606555565b5050505050505050565b611084613dd0565b336000908152610106602052604081205460ff1660028111156110a9576110a9614dd6565b036110c65760405162461bcd60e51b8152600401610cc39061502c565b60fb546040516389bcede160e01b81526004810184905263ffffffff831660248201523360448201526001600160a01b03909116906389bcede1906064015b600060405180830381600087803b15801561111f57600080fd5b505af1158015611133573d6000803e3d6000fd5b50505050610ee86001606555565b61114a33613e30565b80611159575061115933613e5f565b6111755760405162461bcd60e51b8152600401610cc39061502c565b6001600160a01b0381166111bd5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610cc3565b6001600160a01b0381166000908152610102602052604090205460ff16156112275760405162461bcd60e51b815260206004820152601960248201527f4b4f4c2063616e6e6f742062652077686974656c6973746564000000000000006044820152606401610cc3565b6001600160a01b0381166000908152610104602052604090205460ff166112ae57610105805460018082019092557ffc62abc8c0fc47c2d92f5aec99bf8b60f375828e14394d89345cae11a98673710180546001600160a01b0319166001600160a01b038416908117909155600090815261010460205260409020805460ff191690911790555b6040516001600160a01b038216907fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f90600090a250565b6112ed613dd0565b60fe546040516374f54c9360e01b815260048101849052602481018390523360448201526001600160a01b03909116906374f54c9390606401600060405180830381600087803b15801561134057600080fd5b505af1158015611354573d6000803e3d6000fd5b505060fe546101015461137893506001600160a01b03908116925033911684613e98565b610ee86001606555565b61138a613dd0565b80156114005760ff5460405163d857ed7960e01b815260048101859052336024820152604481018490526001600160a01b039091169063d857ed7990606401600060405180830381600087803b1580156113e357600080fd5b505af11580156113f7573d6000803e3d6000fd5b5050505061146c565b60fd5460405163d857ed7960e01b815260048101859052336024820152604481018490526001600160a01b039091169063d857ed7990606401600060405180830381600087803b15801561145357600080fd5b505af1158015611467573d6000803e3d6000fd5b505050505b604080518481526020810184905233917f15c0cd802f93b19a8415c799848cd9d7b828141196ba588669bdbd151d39d3d4910160405180910390a26114b16001606555565b505050565b6114be613dd0565b600081116115055760405162461bcd60e51b81526020600482015260146024820152735769746864726177696e67203020746f6b656e7360601b6044820152606401610cc3565b60006115103361320e565b60fb5460a0820151604051631495706760e31b81526004810186905260248101919091523360448201529192506001600160a01b03169063a4ab8338906064015b600060405180830381600087803b15801561156b57600080fd5b505af115801561157f573d6000803e3d6000fd5b505050505061158e6001606555565b50565b611599613dd0565b60fb54604051635db399c360e11b8152600481018390523360248201526001600160a01b039091169063bb673386906044015b600060405180830381600087803b1580156115e657600080fd5b505af11580156115fa573d6000803e3d6000fd5b5050505061158e6001606555565b611610613dd0565b60fb546040516341c0f0c160e11b8152600481018390523360248201526001600160a01b0390911690638381e182906044016115cc565b61165033613e30565b8061165f575061165f33613e5f565b61167b5760405162461bcd60e51b8152600401610cc39061502c565b600381106116ba5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420726f6c6560a01b6044820152606401610cc3565b6001600160a01b0382166117075760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642075736572206164647265737360601b6044820152606401610cc3565b80600281111561171957611719614dd6565b6001600160a01b038316600090815261010660205260409020805460ff1916600183600281111561174c5761174c614dd6565b0217905550816001600160a01b03167f86ca834ed77043799de2a6c996fa4b79fadfb467b4694e233b20c43aa072821882600281111561178e5761178e614dd6565b60405161179b9190614dec565b60405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117ef5760405162461bcd60e51b8152600401610cc390615052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611821613f09565b6001600160a01b0316146118475760405162461bcd60e51b8152600401610cc39061509e565b61185081613f25565b6040805160008082526020820190925261158e91839190613f2d565b611874613dd0565b60fb54604051633bd73ee360e21b81523360048201526001600160a01b039091169063ef5cfb8c90602401600060405180830381600087803b1580156118b957600080fd5b505af11580156118cd573d6000803e3d6000fd5b505050506118db6001606555565b565b6118e633613e30565b806118f557506118f533613e5f565b6119115760405162461bcd60e51b8152600401610cc39061502c565b61010054604051630377cf5f60e41b81526001600160a01b039091169063377cf5f0906119449085908590600401615133565b600060405180830381600087803b15801561195e57600080fd5b505af1158015611972573d6000803e3d6000fd5b505050505050565b8015611a7157336000908152610106602052604081205460ff1660028111156119a5576119a5614dd6565b141580611a23575061010054604051630d3abefd60e41b8152336004820152602481018490526001600160a01b039091169063d3abefd0906044016020604051808303816000875af11580156119ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a23919061500f565b611a3f5760405162461bcd60e51b8152600401610cc39061502c565b610100546040516340e58ee560e01b8152600481018490526001600160a01b03909116906340e58ee590602401611944565b336000908152610106602052604081205460ff166002811115611a9657611a96614dd6565b141580611b13575060fd54604051630d3abefd60e41b8152336004820152602481018490526001600160a01b039091169063d3abefd0906044016020604051808303816000875af1158015611aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b13919061500f565b611b2f5760405162461bcd60e51b8152600401610cc39061502c565b60fd546040516340e58ee560e01b8152600481018490526001600160a01b03909116906340e58ee590602401611944565b60fb54604051631d15b21d60e11b81526001600160a01b0383811660048301526060921690633a2b643a90602401600060405180830381865afa158015611bab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bd391908101906151ee565b92915050565b611be1614098565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4c9190615222565b905080600003611c6f57604051630686827b60e51b815260040160405180910390fd5b6114b16001600160a01b03831684836140f2565b6060611c8e33613e30565b80611c9d5750611c9d33613e5f565b611cb95760405162461bcd60e51b8152600401610cc39061502c565b610103805480602002602001604051908101604052809291908181526020018280548015611d1057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611cf2575b5050505050905090565b611d2333613e30565b80611d325750611d3233613e5f565b611d4e5760405162461bcd60e51b8152600401610cc39061502c565b611d8e6101038281548110611d6557611d6561523b565b60009182526020808320909101546001600160a01b031682526101029052604090205460ff1690565b611dd05760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964204b4f4c206164647265737360681b6044820152606401610cc3565b60006101038281548110611de657611de661523b565b60009182526020808320909101546001600160a01b03168083526101029091526040909120805460ff19169055610103805491925090611e2890600190615267565b81548110611e3857611e3861523b565b60009182526020909120015461010380546001600160a01b039092169184908110611e6557611e6561523b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610103805480611ea557611ea561527a565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b038316917f13804342f71c806010e48884a27d663bcdeb9b832d00cdfc08e04389fadcf9ef91a25050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611f475760405162461bcd60e51b8152600401610cc390615052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611f79613f09565b6001600160a01b031614611f9f5760405162461bcd60e51b8152600401610cc39061509e565b611fa882613f25565b610ee882826001613f2d565b611fbc613dd0565b610101546040516370a0823160e01b815233600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015612005573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120299190615222565b10156120775760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e63650000000000006044820152606401610cc3565b61010154604051636eb1769f60e11b81523360048201523060248201526000916001600160a01b03169063dd62ed3e90604401602060405180830381865afa1580156120c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120eb9190615222565b9050828110156121345760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f75676820616c6c6f77616e636560601b6044820152606401610cc3565b60fb5461010154612154916001600160a01b039182169133911686613e98565b60fb54604051637acb775760e01b8152600481018590526001600160a01b03848116602483015290911690637acb775790604401600060405180830381600087803b1580156121a257600080fd5b505af11580156121b6573d6000803e3d6000fd5b5050505050610ee86001606555565b6121cd614098565b4760008190036121f057604051630686827b60e51b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461223d576040519150601f19603f3d011682016040523d82523d6000602084013e612242565b606091505b50509050806114b157604051639d11f56360e01b81523360048201526001600160a01b038416602482015260448101839052606401610cc3565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461231c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610cc3565b5060008051602061568383398151915290565b61233833613e30565b80612347575061234733613e5f565b6123635760405162461bcd60e51b8152600401610cc39061502c565b610100546040516354c2a4a760e01b81526001600160a01b03909116906354c2a4a7906119449085908590600401615133565b60008060008060606000806123aa3361320e565b60fb5460405163c345315360e01b81523360048201529192506001600160a01b03169063c345315390602401608060405180830381865afa1580156123f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124179190615290565b8451608090950151939b929a50909850965091945092509050565b61243b33613e30565b8061244a575061244a33613e5f565b6124665760405162461bcd60e51b8152600401610cc39061502c565b610100546040516364842d9160e01b81526001600160a01b03909116906364842d919061249b908690869086906004016152c6565b600060405180830381600087803b1580156124b557600080fd5b505af11580156124c9573d6000803e3d6000fd5b50505050505050565b6124db33613e30565b806124ea57506124ea33613e5f565b6125065760405162461bcd60e51b8152600401610cc39061502c565b6001600160a01b03861661255c5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964207374616b6520636f6e7472616374206164647265737300006044820152606401610cc3565b6001600160a01b0385166125b25760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964207469657220636f6e747261637420616464726573730000006044820152606401610cc3565b6001600160a01b0384166126085760405162461bcd60e51b815260206004820152601b60248201527f496e76616c696420636620636f6e7472616374206164647265737300000000006044820152606401610cc3565b6001600160a01b03831661265e5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206366563220636f6e747261637420616464726573730000006044820152606401610cc3565b6001600160a01b0382166126b45760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642063664d6720636f6e747261637420616464726573730000006044820152606401610cc3565b6001600160a01b0381166127165760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c61756e6368706f6f6c20636f6e7472616374206164647260448201526265737360e81b6064820152608401610cc3565b60fb80546001600160a01b038881166001600160a01b0319928316811790935560fc8054898316908416811790915560fd8054898416908516811790915560ff805489851690861681179091556101008054898616908716811790915560fe8054958916959096168517909555604080519687526020870193909352918501526060840152608083019190915260a08201527f5186d1c06bdc37723c4dcc0059c5cc7692369264528689dbb6b467cae05ff45a9060c00160405180910390a1505050505050565b6127e5613dd0565b60fe54604051639f4f807360e01b8152600481018390523360248201526001600160a01b0390911690639f4f80739034906044016000604051808303818588803b15801561156b57600080fd5b61283a614098565b6118db6000614122565b61284c613dd0565b61285533613e30565b80612864575061286433613e5f565b6128805760405162461bcd60e51b8152600401610cc39061502c565b60fe546040516388ba27d960e01b81526001600160a01b0384811660048301526001600160401b0384166024830152909116906388ba27d990604401611105565b336000908152610106602052604081205460ff1660028111156128e6576128e6614dd6565b036129035760405162461bcd60e51b8152600401610cc39061502c565b60fb546040516308c80fd960e41b8152600481018390526001600160a01b0390911690638c80fd9090602401610f4f565b61293d33613e30565b8061294c575061294c33613e5f565b6129685760405162461bcd60e51b8152600401610cc39061502c565b60005b8151811015610ee8576129968282815181106129895761298961523b565b6020026020010151612d46565b806129a0816152e9565b91505061296b565b8015612ad957336000908152610106602052604081205460ff1660028111156129d3576129d3614dd6565b141580612a51575061010054604051630d3abefd60e41b8152336004820152602481018590526001600160a01b039091169063d3abefd0906044016020604051808303816000875af1158015612a2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a51919061500f565b612a6d5760405162461bcd60e51b8152600401610cc39061502c565b610100546040516330a61e2560e01b81526004810185905283151560248201526001600160a01b03909116906330a61e2590604401600060405180830381600087803b158015612abc57600080fd5b505af1158015612ad0573d6000803e3d6000fd5b50505050612bfe565b336000908152610106602052604081205460ff166002811115612afe57612afe614dd6565b141580612b7b575060fd54604051630d3abefd60e41b8152336004820152602481018590526001600160a01b039091169063d3abefd0906044016020604051808303816000875af1158015612b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7b919061500f565b612b975760405162461bcd60e51b8152600401610cc39061502c565b60fd546040516330a61e2560e01b81526004810185905283151560248201526001600160a01b03909116906330a61e2590604401600060405180830381600087803b158015612be557600080fd5b505af1158015612bf9573d6000803e3d6000fd5b505050505b6040805184815283151560208201527f63044fbc5b4f2bc3581f43a93da3d89389faeb1a2f3524bd49ad0e9ffd776926910160405180910390a1505050565b612c4633613e30565b80612c555750612c5533613e5f565b612c715760405162461bcd60e51b8152600401610cc39061502c565b60005b8151811015610ee857612c9f828281518110612c9257612c9261523b565b6020026020010151611141565b80612ca9816152e9565b915050612c74565b6060612cbc33613e30565b80612ccb5750612ccb33613e5f565b612ce75760405162461bcd60e51b8152600401610cc39061502c565b610105805480602002602001604051908101604052809291908181526020018280548015611d10576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611cf2575050505050905090565b612d4f33613e30565b80612d5e5750612d5e33613e5f565b612d7a5760405162461bcd60e51b8152600401610cc39061502c565b6001600160a01b038116612dc65760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964204b4f4c206164647265737360681b6044820152606401610cc3565b6001600160a01b0381166000908152610102602052604090205460ff16612e4d57610103805460018082019092557f02c297ab74aad0aede3a1895c857b1f2c71e6a203feb727bec95ac752998cb780180546001600160a01b0319166001600160a01b038416908117909155600090815261010260205260409020805460ff191690911790555b6040516001600160a01b038216907f7f3d29dc2e60d164d8160abe05ef916c7a8e153831a1477a7527e81947e1dc3e90600090a250565b612e8d33613e30565b80612e9c5750612e9c33613e5f565b612eb85760405162461bcd60e51b8152600401610cc39061502c565b6101005460405163a5b53a7160e01b8152600481018490526001600160a01b0383811660248301529091169063a5b53a7190604401611944565b612efa613dd0565b610101546040516370a0823160e01b815233600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015612f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f679190615222565b1015612fb55760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e63650000000000006044820152606401610cc3565b61010154604051636eb1769f60e11b81523360048201523060248201526000916001600160a01b03169063dd62ed3e90604401602060405180830381865afa158015613005573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130299190615222565b9050818110156130725760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f75676820616c6c6f77616e636560601b6044820152606401610cc3565b60fb5461010154613092916001600160a01b039182169133911685613e98565b60fb54604051637acb775760e01b8152600481018490523360248201526001600160a01b0390911690637acb775790604401611551565b6130d1613dd0565b336000908152610106602052604081205460ff1660028111156130f6576130f6614dd6565b036131135760405162461bcd60e51b8152600401610cc39061502c565b60fe5460405163acffddaf60e01b8152600481018390526001600160a01b039091169063acffddaf906024016115cc565b61314c613dd0565b336000908152610106602052604081205460ff16600281111561317157613171614dd6565b0361318e5760405162461bcd60e51b8152600401610cc39061502c565b60fe54604051630ad0772160e41b81526001600160401b0380861660048301528416602482015282151560448201526001600160a01b039091169063ad07721090606401600060405180830381600087803b1580156131ec57600080fd5b505af1158015613200573d6000803e3d6000fd5b505050506114b16001606555565b6132476040518060c001604052806060815260200160008152602001600081526020016000815260200160008152602001600081525090565b60fb5460405163a23c44b160e01b81526001600160a01b038481166004830152600092169063a23c44b190602401600060405180830381865afa158015613292573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132ba9190810190615302565b5190506132e0836001600160a01b03166000908152610102602052604090205460ff1690565b156132f3576132f081600261538e565b90505b60fc54604051630672850b60e51b8152600481018390526001600160a01b039091169063ce50a16090602401600060405180830381865afa15801561333c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261336491908101906153a5565b9392505050565b61337433613e30565b80613383575061338333613e5f565b61339f5760405162461bcd60e51b8152600401610cc39061502c565b6133df61010582815481106133b6576133b661523b565b60009182526020808320909101546001600160a01b031682526101049052604090205460ff1690565b61342b5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642077686974656c6973746564206164647265737300000000006044820152606401610cc3565b600061010582815481106134415761344161523b565b60009182526020808320909101546001600160a01b03168083526101049091526040909120805460ff1916905561010580549192509061348390600190615267565b815481106134935761349361523b565b60009182526020909120015461010580546001600160a01b0390921691849081106134c0576134c061523b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101058054806135005761350061527a565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b038316917f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b691a25050565b61356333613e30565b80613572575061357233613e5f565b61358e5760405162461bcd60e51b8152600401610cc39061502c565b6101005460405163c2fc8f8d60e01b81526001600160a01b0383811660048301529091169063c2fc8f8d90602401610f4f565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036136095760405162461bcd60e51b8152600401610cc390615052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661363b613f09565b6001600160a01b0316146136615760405162461bcd60e51b8152600401610cc39061509e565b600054610100900460ff16158080156136815750600054600160ff909116105b8061369b5750303b15801561369b575060005460ff166001145b6136fe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610cc3565b6000805460ff191660011790558015613721576000805461ff0019166101001790555b6001600160a01b03821661376f5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610cc3565b61010180546001600160a01b0319166001600160a01b03841617905533600090815261010660205260409020805460ff191660011790556137ae614174565b6137b66141a3565b8015610ee8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b613807613dd0565b80156138765760ff546040516360ffcfc960e11b8152600481018490523360248201526001600160a01b039091169063c1ff9f9290604401600060405180830381600087803b15801561385957600080fd5b505af115801561386d573d6000803e3d6000fd5b50505050611378565b60fd546040516360ffcfc960e11b8152600481018490523360248201526001600160a01b039091169063c1ff9f9290604401611105565b6138b633613e30565b806138c557506138c533613e5f565b6138e15760405162461bcd60e51b8152600401610cc39061502c565b61010054604051636686516960e11b81526001600160a01b039091169063cd0ca2d29061249b908690869086906004016152c6565b600080336000908152610106602052604090205460ff16600281111561393e5761393e614dd6565b0361395b5760405162461bcd60e51b8152600401610cc39061502c565b6080830151606084015160408501516020860151865160009493929161398091615480565b61398a9190615480565b6139949190615480565b61399e9190615480565b905087811480156139af5750888110155b6139fb5760405162461bcd60e51b815260206004820152601d60248201527f496e636f727265637420616c6c6f636174696f6e73206f7220636170730000006044820152606401610cc3565b8215613b3757613a0961462c565b84518152602080860151908201526040808601519082015260608086015190820152608080860151908201528d15613a76576080810151613a4a9083615267565b158015613a55575087155b613a715760405162461bcd60e51b8152600401610cc390615493565b613a98565b608081015115613a985760405162461bcd60e51b8152600401610cc390615493565b61010060009054906101000a90046001600160a01b03166001600160a01b0316634c3be09a8f8f8f8f8f8f8f8f8f8b6040518b63ffffffff1660e01b8152600401613aec9a999897969594939291906154d9565b6020604051808303816000875af1158015613b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2f9190615222565b925050613c1f565b613b5b60405180606001604052806000815260200160008152602001600081525090565b846000602002015181528460016020908102919091015190820152846002602002015181604001818152505060fd60009054906101000a90046001600160a01b03166001600160a01b0316636b129b1b8e8e8e8e8e8e8e8e8a6040518a63ffffffff1660e01b8152600401613bd8999897969594939291906155a2565b6020604051808303816000875af1158015613bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c1b9190615222565b9250505b6040518281527ff7d00a16df1db503fe70341e00d72c0688bedf66ee2c42f3decb62867ee69e409060200160405180910390a1509b9a5050505050505050505050565b6060613c6d8261320e565b5192915050565b613c7d33613e30565b80613c8c5750613c8c33613e5f565b613ca85760405162461bcd60e51b8152600401610cc39061502c565b61010054604051631ce8566f60e31b8152600481018490526001600160a01b0383811660248301529091169063e742b37890604401611944565b613cea614098565b6001600160a01b038116613d4f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610cc3565b61158e81614122565b336000908152610106602052604081205460ff166002811115613d7d57613d7d614dd6565b03613d9a5760405162461bcd60e51b8152600401610cc39061502c565b60fb54604051637c38c62d60e11b815263ffffffff831660048201526001600160a01b039091169063f8718c5a90602401610f4f565b600260655403613e225760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610cc3565b6002606555565b6001606555565b6000613e446033546001600160a01b031690565b6001600160a01b0316826001600160a01b0316149050919050565b600060016001600160a01b0383166000908152610106602052604090205460ff166002811115613e9157613e91614dd6565b1492915050565b6040516001600160a01b0380851660248301528316604482015260648101829052613f039085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526141d2565b50505050565b600080516020615683833981519152546001600160a01b031690565b61158e614098565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613f60576114b1836142a7565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613fba575060408051601f3d908101601f19168201909252613fb791810190615222565b60015b61401d5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610cc3565b600080516020615683833981519152811461408c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610cc3565b506114b1838383614343565b6033546001600160a01b031633146118db5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cc3565b6040516001600160a01b0383166024820152604481018290526114b190849063a9059cbb60e01b90606401613ecc565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661419b5760405162461bcd60e51b8152600401610cc39061561b565b6118db614368565b600054610100900460ff166141ca5760405162461bcd60e51b8152600401610cc39061561b565b6118db614398565b6000614227826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166143bf9092919063ffffffff16565b9050805160001480614248575080806020019051810190614248919061500f565b6114b15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610cc3565b6001600160a01b0381163b6143145760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610cc3565b60008051602061568383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61434c836143d6565b6000825111806143595750805b156114b157613f038383614416565b600054610100900460ff1661438f5760405162461bcd60e51b8152600401610cc39061561b565b6118db33614122565b600054610100900460ff16613e295760405162461bcd60e51b8152600401610cc39061561b565b60606143ce848460008561443b565b949350505050565b6143df816142a7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061336483836040518060600160405280602781526020016156a360279139614516565b60608247101561449c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610cc3565b600080866001600160a01b031685876040516144b89190615666565b60006040518083038185875af1925050503d80600081146144f5576040519150601f19603f3d011682016040523d82523d6000602084013e6144fa565b606091505b509150915061450b8783838761458e565b979650505050505050565b6060600080856001600160a01b0316856040516145339190615666565b600060405180830381855af49150503d806000811461456e576040519150601f19603f3d011682016040523d82523d6000602084013e614573565b606091505b50915091506145848683838761458e565b9695505050505050565b606083156145fd5782516000036145f6576001600160a01b0385163b6145f65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610cc3565b50816143ce565b6143ce83838151156146125781518083602001fd5b8060405162461bcd60e51b8152600401610cc39190614fe1565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001614662614667565b905290565b6040518060a001604052806005906020820280368337509192915050565b801515811461158e57600080fd5b803561469e81614685565b919050565b600080604083850312156146b657600080fd5b8235915060208301356146c881614685565b809150509250929050565b6001600160a01b038116811461158e57600080fd5b803561469e816146d3565b60006020828403121561470557600080fd5b8135613364816146d3565b80356001600160401b038116811461469e57600080fd5b600080600080600080600080610100898b03121561474457600080fd5b883561474f816146d3565b97506020890135965060408901359550606089013594506080890135935060a0890135925061478060c08a01614710565b915061478e60e08a01614710565b90509295985092959890939650565b803563ffffffff8116811461469e57600080fd5b600080604083850312156147c457600080fd5b823591506147d46020840161479d565b90509250929050565b600080604083850312156147f057600080fd5b50508035926020909101359150565b60008060006060848603121561481457600080fd5b8335925060208401359150604084013561482d81614685565b809150509250925092565b60006020828403121561484a57600080fd5b5035919050565b6000806040838503121561486457600080fd5b823561486f816146d3565b946020939093013593505050565b60008083601f84011261488f57600080fd5b5081356001600160401b038111156148a657600080fd5b6020830191508360208260051b85010111156148c157600080fd5b9250929050565b600080602083850312156148db57600080fd5b82356001600160401b038111156148f157600080fd5b6148fd8582860161487d565b90969095509350505050565b602080825282518282018190526000919060409081850190868401855b82811015614962578151805185528681015187860152858101518686015260609081015115159085015260809093019290850190600101614926565b5091979650505050505050565b6000806040838503121561498257600080fd5b823561498d816146d3565b915060208301356146c8816146d3565b6020808252825182820181905260009190848201906040850190845b818110156149de5783516001600160a01b0316835292840192918401916001016149b9565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715614a2257614a226149ea565b60405290565b60405160c081016001600160401b0381118282101715614a2257614a226149ea565b604051601f8201601f191681016001600160401b0381118282101715614a7257614a726149ea565b604052919050565b60006001600160401b03821115614a9357614a936149ea565b50601f01601f191660200190565b6000614ab4614aaf84614a7a565b614a4a565b9050828152838383011115614ac857600080fd5b828260208301376000602084830101529392505050565b60008060408385031215614af257600080fd5b8235614afd816146d3565b915060208301356001600160401b03811115614b1857600080fd5b8301601f81018513614b2957600080fd5b614b3885823560208401614aa1565b9150509250929050565b60008060408385031215614b5557600080fd5b8235915060208301356146c8816146d3565b60005b83811015614b82578181015183820152602001614b6a565b50506000910152565b60008151808452614ba3816020860160208601614b67565b601f01601f19169290920160200192915050565b86815285602082015284604082015283606082015260c060808201526000614be260c0830185614b8b565b90508260a0830152979650505050505050565b600080600060408486031215614c0a57600080fd5b8335925060208401356001600160401b03811115614c2757600080fd5b614c338682870161487d565b9497909650939450505050565b60008060008060008060c08789031215614c5957600080fd5b8635614c64816146d3565b95506020870135614c74816146d3565b94506040870135614c84816146d3565b93506060870135614c94816146d3565b92506080870135614ca4816146d3565b915060a0870135614cb4816146d3565b809150509295509295509295565b60008060408385031215614cd557600080fd5b8235614ce0816146d3565b91506147d460208401614710565b60006001600160401b03821115614d0757614d076149ea565b5060051b60200190565b60006020808385031215614d2457600080fd5b82356001600160401b03811115614d3a57600080fd5b8301601f81018513614d4b57600080fd5b8035614d59614aaf82614cee565b81815260059190911b82018301908381019087831115614d7857600080fd5b928401925b8284101561450b578335614d90816146d3565b82529284019290840190614d7d565b600080600060608486031215614db457600080fd5b833592506020840135614dc681614685565b9150604084013561482d81614685565b634e487b7160e01b600052602160045260246000fd5b6020810160038310614e0e57634e487b7160e01b600052602160045260246000fd5b91905290565b600080600060608486031215614e2957600080fd5b614e3284614710565b9250614dc660208501614710565b602081526000825160c06020840152614e5c60e0840182614b8b565b9050602084015160408401526040840151606084015260608401516080840152608084015160a084015260a084015160c08401528091505092915050565b600082601f830112614eab57600080fd5b60405160a081018181106001600160401b0382111715614ecd57614ecd6149ea565b6040528060a0840185811115614ee257600080fd5b845b81811015614efc578035835260209283019201614ee4565b509195945050505050565b60008060008060008060008060008060006101e08c8e031215614f2957600080fd5b8b35614f3481614685565b9a5060208c01356001600160401b03811115614f4f57600080fd5b8c01601f81018e13614f6057600080fd5b614f6f8e823560208401614aa1565b9a5050614f7e60408d016146e8565b9850614f8c60608d016146e8565b975060808c0135965060a08c0135955060c08c0135945060e08c013593506101008c01359250614fc08d6101208e01614e9a565b9150614fcf6101c08d01614693565b90509295989b509295989b9093969950565b6020815260006133646020830184614b8b565b60006020828403121561500657600080fd5b6133648261479d565b60006020828403121561502157600080fd5b815161336481614685565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b8183526000602080850194508260005b8581101561512857813561510d816146d3565b6001600160a01b0316875295820195908201906001016150fa565b509495945050505050565b6020815260006143ce6020830184866150ea565b600082601f83011261515857600080fd5b81516020615168614aaf83614cee565b82815260079290921b8401810191818101908684111561518757600080fd5b8286015b848110156151e357608081890312156151a45760008081fd5b6151ac614a00565b815181528482015185820152604080830151908201526060808301516151d181614685565b9082015283529183019160800161518b565b509695505050505050565b60006020828403121561520057600080fd5b81516001600160401b0381111561521657600080fd5b6143ce84828501615147565b60006020828403121561523457600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115611bd357611bd3615251565b634e487b7160e01b600052603160045260246000fd5b600080600080608085870312156152a657600080fd5b505082516020840151604085015160609095015191969095509092509050565b8381526040602082015260006152e06040830184866150ea565b95945050505050565b6000600182016152fb576152fb615251565b5060010190565b60006020828403121561531457600080fd5b81516001600160401b038082111561532b57600080fd5b908301906040828603121561533f57600080fd5b60405160408101818110838211171561535a5761535a6149ea565b6040528251815260208301518281111561537357600080fd5b61537f87828601615147565b60208301525095945050505050565b8082028115828204841417611bd357611bd3615251565b600060208083850312156153b857600080fd5b82516001600160401b03808211156153cf57600080fd5b9084019060c082870312156153e357600080fd5b6153eb614a28565b8251828111156153fa57600080fd5b83019150601f8201871361540d57600080fd5b815161541b614aaf82614a7a565b818152888683860101111561542f57600080fd5b61543e82878301888701614b67565b8083525050838301518482015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528094505050505092915050565b80820180821115611bd357611bd3615251565b60208082526026908201527f4d6567616c6f646f6e27732070726f6a656374206f6e6c7920666f72204d656760408201526530b637b237b760d11b606082015260800190565b60006102608c15158352602081818501526154f68285018e614b8b565b925060018060a01b039150818c166040850152818b1660608501528960808501528860a08501528760c08501528660e0850152856101008501528451610120850152808501516101408501526040850151610160850152606085015161018085015260808501516101a085015260a085015191506101c0840160005b600581101561558f57835182529282019290820190600101615572565b505050509b9a5050505050505050505050565b60006101608083526155b68184018d614b8b565b91505060018060a01b03808b166020840152808a166040840152508760608301528660808301528560a08301528460c08301528360e08301528251610100830152602083015161012083015260408301516101408301529a9950505050505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251615678818460208701614b67565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205f9c734035e99c3413a515bcfdf490bc3bdd2b7f40cebb50cd812d2b5cc0df5664736f6c63430008130033