70 txs
70 calls
constructor
constructor(address _fomo, address _usdc, address _fomoUsdcLp, address _steakIC, address _fomoIC, address _memberNFT, address _nftChecker, address _controllerFactory, address _identityVerifier, address _dexProvider)
functions
activeLaunches
viewfunction activeLaunches(uint256) view returns (uint256)
CONTROLLER_FACTORY
viewfunction CONTROLLER_FACTORY() view returns (address)
dexProviders
viewfunction dexProviders(uint256) view returns (address)
FOMO
viewfunction FOMO() view returns (address)
fomoIC
viewfunction fomoIC() view returns (address)
fomoUsdcLp
viewfunction fomoUsdcLp() view returns (address)
getLaunchConfig
viewfunction getLaunchConfig(uint256 _launchId) view returns (tuple)
identityVerifier
viewfunction identityVerifier() view returns (address)
isKOL
viewfunction isKOL(address) view returns (bool)
kolAddresses
viewfunction kolAddresses(uint256) view returns (address)
LAUNCH_FEE
viewfunction LAUNCH_FEE() view returns (uint256)
launches
viewfunction launches(uint256) view returns (string name, string symbol, address dexProvider, address team, address x, uint8 status)
launchToNFTPledge
viewfunction launchToNFTPledge(uint256, uint256) view returns (uint256 lp, uint256 usdc, uint256 claimed)
launchToUserPledge
viewfunction launchToUserPledge(uint256, address) view returns (uint256 lp, uint256 usdc, uint256 claimed)
memberNFT
viewfunction memberNFT() view returns (address)
nftChecker
viewfunction nftChecker() view returns (address)
owner
viewfunction owner() view returns (address)
PLATFORM_MEME_FEE
viewfunction PLATFORM_MEME_FEE() view returns (uint16)
PLATFORM_STEAK_FEE
viewfunction PLATFORM_STEAK_FEE() view returns (uint16)
steakIC
viewfunction steakIC() view returns (address)
tokenAddresses
viewfunction tokenAddresses(uint256) view returns (uint256 usdc, uint256 fomo, address token, address fomoLP, address usdcLP, address tokenIC, address tokenICProxy, address fomoLPIC, address usdcLPIC, address vesting)
USDC_DECIMALS
viewfunction USDC_DECIMALS() view returns (uint256)
USDC_KOL_MAX
viewfunction USDC_KOL_MAX() view returns (uint256)
USDC_KOL_MIN
viewfunction USDC_KOL_MIN() view returns (uint256)
USDC_MAX
viewfunction USDC_MAX() view returns (uint256)
USDC_MIN
viewfunction USDC_MIN() view returns (uint256)
USDC_SOFT_CAP
viewfunction USDC_SOFT_CAP() view returns (uint256)
USDC
viewfunction USDC() view returns (address)
addDexProvider
nonpayablefunction addDexProvider(address _dexProvider)
addKOL
nonpayablefunction addKOL(address _kolAddress)
claimTokens
nonpayablefunction claimTokens(uint256 _launchId)
createLaunch
nonpayablefunction createLaunch(tuple _config, bool _staked, bytes _data)
emergencyFailLaunch
nonpayablefunction emergencyFailLaunch(uint256 _launchId)
getFundsBack
nonpayablefunction getFundsBack(uint256 _launchId, bool _stake)
launch
nonpayablefunction launch(uint256 _launchId)
pledge
nonpayablefunction pledge(uint256 _launchId, uint256 _amount, bool _staked, bytes _data)
pledgeWithNFT
nonpayablefunction pledgeWithNFT(uint256 _launchId, uint256 _amount, bool _staked, uint256 _nftId, address _controllerWithNFT, bytes _data)
removeKOL
nonpayablefunction removeKOL(address _kolAddress)
renounceOwnership
nonpayablefunction renounceOwnership()
setControllerFactory
nonpayablefunction setControllerFactory(address _controllerFactory)
setFomoIC
nonpayablefunction setFomoIC(address _fomoIC)
setMemePlatformFee
nonpayablefunction setMemePlatformFee(uint16 _fee)
setPledgeLimits
nonpayablefunction setPledgeLimits(uint256 _min, uint256 _max)
setPledgeLimitsForKOLs
nonpayablefunction setPledgeLimitsForKOLs(uint256 _min, uint256 _max)
setSoftCapAndFees
nonpayablefunction setSoftCapAndFees(uint256 _softCap, uint256 _launchFee)
setSteakIC
nonpayablefunction setSteakIC(address _steakIC)
setSteakPlatformFee
nonpayablefunction setSteakPlatformFee(uint16 _fee)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
ControllerFactorySet
event ControllerFactorySet(address indexed factory)
DexProviderAdded
event DexProviderAdded(uint256 indexed index, address indexed provider)
FomoICSet
event FomoICSet(address indexed ic)
HardCapReached
event HardCapReached(uint256 indexed launchId)
LaunchCreated
event LaunchCreated(string indexed name, string indexed symbol, uint256 indexed launchId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Pledged
event Pledged(uint256 indexed launchId, address indexed user, uint256 amountLP, uint256 amountUsdc)
PledgedWithNFT
event PledgedWithNFT(uint256 indexed launchId, address indexed user, uint256 amountLP, uint256 amountUsdc, uint256 indexed nftId)
SteakICSet
event SteakICSet(address indexed ic)
errors
AlreadyClaimed
error AlreadyClaimed()
AlreadyLaunched
error AlreadyLaunched()
ArraysLengthMismatch
error ArraysLengthMismatch()
InvalidAllocations
error InvalidAllocations()
InvalidDexIndex
error InvalidDexIndex()
InvalidHardCap
error InvalidHardCap()
InvalidRewardsAllocations
error InvalidRewardsAllocations()
InvalidRounds
error InvalidRounds()
InvalidSteakTeamFee
error InvalidSteakTeamFee()
InvalidTotalSupply
error InvalidTotalSupply()
LaunchFailed
error LaunchFailed()
LaunchIsNotFailed
error LaunchIsNotFailed()
LaunchIsNotLaunched
error LaunchIsNotLaunched()
LaunchIsNotPending
error LaunchIsNotPending()
LiquidityAllocationIsZero
error LiquidityAllocationIsZero()
MinPledgeNotReached
error MinPledgeNotReached()
PledgeLimitReached
error PledgeLimitReached()
TeamIsAddressZero
error TeamIsAddressZero()
UserIsKOL
error UserIsKOL()
UserIsNotKOL
error UserIsNotKOL()
UserNotNFTOwner
error UserNotNFTOwner()
UserSaleNotStarted
error UserSaleNotStarted()
VerificationFailed
error VerificationFailed()
XIsAddressZero
error XIsAddressZero()
creation bytecode
0x61016060405264174876e80060015564012a05f20060028190556302faf080600355633b9aca00600455631dcd65006005556006556007805463ffffffff191663011301f41790553480156200005457600080fd5b506040516200547b3803806200547b83398101604081905262000077916200022c565b6200008233620001bf565b6001600160a01b03808b16608052891660a08190526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa158015620000d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f99190620002fb565b6200010690600a6200043c565b60c0526001600160a01b0397881660e052600880549789166001600160a01b03199889161790556009805496891696881696909617909555928616610100529085166101205290841661014052600c80546001810182556000919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180549285169290931691909117909155600780549190921664010000000002600160201b600160c01b0319909116179055506200044d9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200022757600080fd5b919050565b6000806000806000806000806000806101408b8d0312156200024d57600080fd5b620002588b6200020f565b99506200026860208c016200020f565b98506200027860408c016200020f565b97506200028860608c016200020f565b96506200029860808c016200020f565b9550620002a860a08c016200020f565b9450620002b860c08c016200020f565b9350620002c860e08c016200020f565b9250620002d96101008c016200020f565b9150620002ea6101208c016200020f565b90509295989b9194979a5092959850565b6000602082840312156200030e57600080fd5b815160ff811681146200032057600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200037e57816000190482111562000362576200036262000327565b808516156200037057918102915b93841c939080029062000342565b509250929050565b600082620003975750600162000436565b81620003a65750600062000436565b8160018114620003bf5760028114620003ca57620003ea565b600191505062000436565b60ff841115620003de57620003de62000327565b50506001821b62000436565b5060208310610133831016604e8410600b84101617156200040f575081810a62000436565b6200041b83836200033d565b806000190482111562000432576200043262000327565b0290505b92915050565b60006200032060ff84168362000386565b60805160a05160c05160e051610100516101205161014051614ec9620005b2600039600081816106c00152818161138601528181611b7401528181611cda01528181611ea5015281816132c10152613a0c0152600081816104830152818161164e015281816116d2015281816117570152611d9f01526000818161051b015281816114130152818161336701528181613aaa0152613d3301526000818161035d01528181610fcf0152818161106e0152818161146301528181611f770152818161204501528181612420015281816133b7015281816138580152613afa01526000818161066a015281816107c1015281816107fd015281816108aa015281816108de01528181610ed201528181610f06015281816121f201526129a60152600081816104ec0152818161148b01528181611f9f015281816133df0152613b220152600081816103ed0152818161143b0152818161338f0152613ad20152614ec96000f3fe608060405234801561001057600080fd5b50600436106102a05760003560e01c806385b12c7c11610167578063b63bc6ff116100ce578063e03d359f11610087578063e03d359f146106e2578063e0f443e9146106f5578063e34c296114610708578063e5df8b841461071b578063f1b900fa1461078d578063f2fde38b1461079b57600080fd5b8063b63bc6ff14610652578063c1419def14610665578063c85b77571461068c578063cc7b75df14610695578063d1edb52f146106a8578063dfd572a0146106bb57600080fd5b8063959d3b9b11610120578063959d3b9b146105925780639c2a4cce146105cc5780639d06126d146105ff5780639ee7edd414610612578063a38d1b2114610625578063ab8228151461063f57600080fd5b806385b12c7c146104c157806388d482a6146104d457806389a30271146104e75780638da5cb5b1461050e5780638e851a7c146105165780639207a7ad1461053d57600080fd5b80635844c6bf1161020b578063715018a6116101c4578063715018a61461043e57806376e5cdd8146104465780637b443a76146104595780637dd6dff91461047e5780638289e2d3146104a557806385a18054146104ae57600080fd5b80635844c6bf146103c25780635ef4a182146103d557806367e445d9146103e85780636a10412a1461040f5780636abcff16146104225780636b211dcc1461042b57600080fd5b80631cad862d1161025d5780631cad862d1461032f5780632fd5bc201461034f5780633469a99a1461035857806338716b131461037f57806346e04a2f146103a6578063488f2aa0146103b957600080fd5b8063032b2efb146102a557806309197a81146102ba5780630ba95c76146102d65780630cd92bb5146102e9578063146b480f146102fc57806316895af11461030f575b600080fd5b6102b86102b3366004614179565b6107ae565b005b6102c360025481565b6040519081526020015b60405180910390f35b6102b86102e43660046141b2565b610829565b6102b86102f73660046141b2565b610864565b6102b861030a366004614179565b610897565b600954610322906001600160a01b031681565b6040516102cd91906141cd565b61034261033d3660046141e1565b61090b565b6040516102cd9190614300565b6102c360035481565b6103227f000000000000000000000000000000000000000000000000000000000000000081565b6007546103939062010000900461ffff1681565b60405161ffff90911681526020016102cd565b6102b86103b43660046141e1565b610bc4565b6102c360065481565b6102b86103d03660046143e6565b610e26565b6102c36103e33660046141e1565b610e9e565b6103227f000000000000000000000000000000000000000000000000000000000000000081565b6102b861041d366004614179565b610ebf565b6102c360045481565b6102b861043936600461441a565b610f32565b6102b861109d565b6103226104543660046141e1565b6110b1565b61046c6104673660046141e1565b6110db565b6040516102cd9695949392919061444a565b6103227f000000000000000000000000000000000000000000000000000000000000000081565b6102c360055481565b6102b86104bc3660046143e6565b61124b565b6102b86104cf3660046141e1565b6112aa565b6103226104e23660046141e1565b6119d1565b6103227f000000000000000000000000000000000000000000000000000000000000000081565b6103226119e1565b6103227f000000000000000000000000000000000000000000000000000000000000000081565b61057761054b3660046144aa565b601060209081526000928352604080842090915290825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060016102cd565b6105776105a0366004614179565b601160209081526000928352604080842090915290825290208054600182015460029092015490919083565b6105ef6105da3660046143e6565b600f6020526000908152604090205460ff1681565b60405190151581526020016102cd565b6102b861060d3660046143e6565b6119f0565b6102b86106203660046141e1565b611aa2565b60075461032290600160201b90046001600160a01b031681565b6102b861064d36600461451e565b611b5d565b600854610322906001600160a01b031681565b6102c37f000000000000000000000000000000000000000000000000000000000000000081565b6102c360015481565b6102b86106a33660046143e6565b611c20565b6102b86106b6366004614587565b611cc3565b6103227f000000000000000000000000000000000000000000000000000000000000000081565b6102b86106f03660046143e6565b611e3c565b6102b8610703366004614814565b611e8e565b6102b86107163660046143e6565b612c55565b61072e6107293660046141e1565b612ca7565b604080519a8b5260208b01999099526001600160a01b03978816988a01989098529486166060890152928516608088015290841660a0870152831660c0860152821660e0850152811661010084015216610120820152610140016102cd565b6007546103939061ffff1681565b6102b86107a93660046143e6565b612d23565b6107b6612d9e565b81156107ea576107e67f00000000000000000000000000000000000000000000000000000000000000008361497a565b6001555b60015481106107f857600080fd5b6108227f00000000000000000000000000000000000000000000000000000000000000008261497a565b6002555050565b610831612d9e565b6107d08161ffff16111561084457600080fd5b6007805461ffff909216620100000263ffff000019909216919091179055565b61086c612d9e565b6107d08161ffff16111561087f57600080fd5b6007805461ffff191661ffff92909216919091179055565b61089f612d9e565b81156108d3576108cf7f00000000000000000000000000000000000000000000000000000000000000008361497a565b6003555b8015610907576109037f00000000000000000000000000000000000000000000000000000000000000008261497a565b6004555b5050565b610913613fcd565b600a828154811061092657610926614997565b906000526020600020906017020160405180610120016040529081600082018054610950906149ad565b80601f016020809104026020016040519081016040528092919081815260200182805461097c906149ad565b80156109c95780601f1061099e576101008083540402835291602001916109c9565b820191906000526020600020905b8154815290600101906020018083116109ac57829003601f168201915b505050505081526020016001820180546109e2906149ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0e906149ad565b8015610a5b5780601f10610a3057610100808354040283529160200191610a5b565b820191906000526020600020905b815481529060010190602001808311610a3e57829003601f168201915b505050918352505060028201546001600160a01b0390811660208301526003830154811660408084019190915260048401549091166060830152805160e0810191829052608090920191906005840190600790826000855b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411610ab35750505092845250506040805160a081019182905260209093019291506006840190600590826000855b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411610b12575050509284525050604080516101e081019182905260209093019291506007840190600f9082845b815481526020019060010190808311610b70575050509183525050601682015460209091019060ff166004811115610baa57610baa6142c8565b6004811115610bbb57610bbb6142c8565b90525092915050565b6000600a8281548110610bd957610bd9614997565b6000918252602090912060179091020190506004601682015460ff166004811115610c0657610c066142c8565b14610c2457604051630ce54d6b60e31b815260040160405180910390fd5b6000600b8381548110610c3957610c39614997565b6000918252602080832086845260108083526040808620338752845280862091880154825460058a0154600a979097029094016002810154835163313ce56760e01b8152935191995093979661271096929594600160401b90910461ffff16936001600160a01b039091169263313ce567926004808401938290030181865afa158015610cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cee91906149e1565b610cf990600a614ae8565b600a890154610d08919061497a565b610d12919061497a565b610d1c919061497a565b610d269190614af7565b610d309190614af7565b905080826002015410610d5657604051630c8d9eab60e31b815260040160405180910390fd5b6002820154610d659082614b19565b60028401546040516370a0823160e01b81529192506000916001600160a01b03909116906370a0823190610d9d9030906004016141cd565b602060405180830381865afa158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190614b2c565b905081811015610dec578091505b81836002016000828254610e009190614b45565b90915550506002840154610e1e906001600160a01b03163384612dfd565b505050505050565b610e2e612d9e565b6001600160a01b0381166000908152600f602052604090205460ff16610e6757604051637ca4e27560e11b815260040160405180910390fd5b6001600160a01b0381166000908152600f60205260409020805460ff19169055610e9081612e65565b610e9b816001612f61565b50565b600e8181548110610eae57600080fd5b600091825260209091200154905081565b610ec7612d9e565b8115610efb57610ef77f00000000000000000000000000000000000000000000000000000000000000008361497a565b6005555b801561090757610f2b7f00000000000000000000000000000000000000000000000000000000000000008261497a565b6006555050565b6000600a8381548110610f4757610f47614997565b6000918252602090912060179091020190506003601682015460ff166004811115610f7457610f746142c8565b14610f92576040516389f4addf60e01b815260040160405180910390fd5b6000838152601060209081526040808320338452909152902080541561109757805460008255831561106157600854610ff8906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168361302e565b600854604051636e553f6560e01b81526001600160a01b0390911690636e553f659061102a9084903390600401614b58565b600060405180830381600087803b15801561104457600080fd5b505af1158015611058573d6000803e3d6000fd5b50505050611095565b6110956001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383612dfd565b505b50505050565b6110a5612d9e565b6110af6000613143565b565b600d81815481106110c157600080fd5b6000918252602090912001546001600160a01b0316905081565b600a81815481106110eb57600080fd5b906000526020600020906017020160009150905080600001805461110e906149ad565b80601f016020809104026020016040519081016040528092919081815260200182805461113a906149ad565b80156111875780601f1061115c57610100808354040283529160200191611187565b820191906000526020600020905b81548152906001019060200180831161116a57829003601f168201915b50505050509080600101805461119c906149ad565b80601f01602080910402602001604051908101604052809291908181526020018280546111c8906149ad565b80156112155780601f106111ea57610100808354040283529160200191611215565b820191906000526020600020905b8154815290600101906020018083116111f857829003601f168201915b50505060028401546003850154600486015460169096015494956001600160a01b03928316959183169450909116915060ff1686565b611253612d9e565b60078054640100000000600160c01b031916600160201b6001600160a01b038416908102919091179091556040517f9fbeca9fe81a4189023825785f38dc66e7efdd345c0d44765d15a7fc390c7d8090600090a250565b6000600a82815481106112bf576112bf614997565b6000918252602090912060179091020190506003601682015460ff1660048111156112ec576112ec6142c8565b0361130a57604051637992ed6b60e01b815260040160405180910390fd5b6004601682015460ff166004811115611325576113256142c8565b03611343576040516319f4db0f60e31b815260040160405180910390fd5b6000600b838154811061135857611358614997565b6000918252602080832060408051610160810182526007546001600160a01b03600160201b909104811682527f00000000000000000000000000000000000000000000000000000000000000008116948201949094526008548416918101919091526009549092166060830152600c8054600a9094029091019450909160808301919084906113e9576113e9614997565b600091825260209182902001546001600160a01b03908116835260028701548116918301919091527f0000000000000000000000000000000000000000000000000000000000000000811660408301527f0000000000000000000000000000000000000000000000000000000000000000811660608301527f0000000000000000000000000000000000000000000000000000000000000000811660808301527f00000000000000000000000000000000000000000000000000000000000000001660a082015260c0016114bb6119e1565b6001600160a01b0316905290506000601684015460ff1660048111156114e3576114e36142c8565b036115b5576040516328cb377560e21b8152600090731190643dd4ad521b524ac139a1a553fc4ea591e49063a32cddd4906115249087908690600401614c3c565b608060405180830381865af4158015611541573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115659190614c51565b935060009250611573915050565b816004811115611585576115856142c8565b03611591575050505050565b60038160048111156115a5576115a56142c8565b036115b35761109585613193565b505b6115be84613193565b604051630478ef1d60e31b8152731190643dd4ad521b524ac139a1a553fc4ea591e4906323c778e8906115f990869086908690600401614c96565b60006040518083038186803b15801561161157600080fd5b505af4158015611625573d6000803e3d6000fd5b505050600283015460058401546040516374bb1f8760e11b81526001600160a01b0392831693507f000000000000000000000000000000000000000000000000000000000000000083169263e9763f0e92611685929116906004016141cd565b600060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b50505060078401546040516374bb1f8760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116935063e9763f0e9261170a929116906004016141cd565b600060405180830381600087803b15801561172457600080fd5b505af1158015611738573d6000803e3d6000fd5b50505060088401546040516374bb1f8760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116935063e9763f0e9261178f929116906004016141cd565b600060405180830381600087803b1580156117a957600080fd5b505af11580156117bd573d6000803e3d6000fd5b505050506005840154604080516318160ddd60e01b81529051600092612710926201000090910461ffff16916001600160a01b038616916318160ddd9160048083019260209291908290030181865afa15801561181e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118429190614b2c565b61184c919061497a565b6118569190614af7565b60118601549091501580159061186c5750600081115b156119b557600984015461188d906001600160a01b0384811691168361302e565b600d5460005b818110156119ae576000888152601060205260408120600d8054839190859081106118c0576118c0614997565b60009182526020808320909101546001600160a01b031683528201929092526040018120915060078901600a015482546118fb90879061497a565b6119059190614af7565b905080156119a4576009880154600d80546001600160a01b039092169163df7bb46f9184918790811061193a5761193a614997565b6000918252602090912001546040516001600160e01b031960e085901b16815261197192916001600160a01b031690600401614b58565b600060405180830381600087803b15801561198b57600080fd5b505af115801561199f573d6000803e3d6000fd5b505050505b5050600101611893565b5050610e1e565b610e1e6119c06119e1565b6001600160a01b0384169083612dfd565b600c81815481106110c157600080fd5b6000546001600160a01b031690565b6119f8612d9e565b6001600160a01b0381166000908152600f602052604090205460ff1615611a325760405163086bffed60e11b815260040160405180910390fd5b6001600160a01b0381166000818152600f60205260408120805460ff19166001908117909155600d8054918201815582527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b031916909217909155610e9b908290612f61565b611aaa612d9e565b6000600a8281548110611abf57611abf614997565b6000918252602090912060179091020190506003601682015460ff166004811115611aec57611aec6142c8565b03611b0a57604051637992ed6b60e01b815260040160405180910390fd5b6004601682015460ff166004811115611b2557611b256142c8565b03611b43576040516319f4db0f60e31b815260040160405180910390fd5b611b4c82613193565b601601805460ff1916600317905550565b604051631290746b60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634a41d1ac90611bad90339086908690600401614cb2565b6020604051808303816000875af1158015611bcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf09190614cf2565b611c0d5760405163439cc0cd60e01b815260040160405180910390fd5b6110958585856001600160ff1b03613240565b611c28612d9e565b6001600160a01b038116611c3b57600080fd5b600c80546001808201835560008390527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c790910180546001600160a01b0319166001600160a01b0385169081179091559154611c979190614b19565b6040517f95870d2a8ff2119bfbe14e36c0172ac24dc717099845cf27757bed652b4a60dd90600090a350565b604051631290746b60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634a41d1ac90611d1390339086908690600401614cb2565b6020604051808303816000875af1158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d569190614cf2565b611d735760405163439cc0cd60e01b815260040160405180910390fd5b6040516333b9ce8760e11b8152336004820152602481018590526001600160a01b0384811660448301527f000000000000000000000000000000000000000000000000000000000000000016906367739d0e90606401602060405180830381865afa158015611de6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0a9190614cf2565b611e2757604051631509e28560e21b815260040160405180910390fd5b611e3387878787613240565b50505050505050565b611e44612d9e565b600880546001600160a01b0319166001600160a01b0383169081179091556040517fca84f067a98029b57e8a0eda451bab688311cfbe9cacf6cd3a49464f04cdfee990600090a250565b604051631290746b60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634a41d1ac90611ede90339086908690600401614cb2565b6020604051808303816000875af1158015611efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f219190614cf2565b611f3e5760405163439cc0cd60e01b815260040160405180910390fd5b6000600c600081548110611f5457611f54614997565b60009182526020909120015460405163e2fa36b560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301529091169063e2fa36b590604401602060405180830381865afa158015611fef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120139190614b2c565b9050600081600280546120269190614af7565b6120359064e8d4a5100061497a565b61203f9190614af7565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c59190614b2c565b9050600064e8d4a510006120d9838561497a565b6120e39190614af7565b9050600081116120f5576120f5614d0f565b60c08801516060015161ffff1660000361212257604051633083114f60e11b815260040160405180910390fd5b60c088015160a0015161ffff1615801590612148575060a08801516001600160a01b0316155b1561216657604051630bc8502960e31b815260040160405180910390fd5b60808801516001600160a01b03166121915760405163319a783d60e01b815260040160405180910390fd5b6007546121a49061ffff16612710614b19565b886101400151106121c85760405163572759eb60e11b815260040160405180910390fd5b87604001516000036121ed576040516334bbd58560e01b815260040160405180910390fd5b6001547f00000000000000000000000000000000000000000000000000000000000000008960600151612220919061497a565b1161223e57604051631a683d1960e11b815260040160405180910390fd5b610100880151511580612258575061010088015160200151155b8061226a575061010088015160400151155b1561228857604051630ebd719560e01b815260040160405180910390fd5b600c54610120890151106122af57604051630e4fbb2560e11b815260040160405180910390fd5b60075460c089015160a0810151608082015160608301516040840151602085015194516127109662010000900461ffff16956122ea91614d25565b6122f49190614d25565b6122fe9190614d25565b6123089190614d25565b6123129190614d25565b61231c9190614d25565b61ffff161461233e576040516314b932c760e21b815260040160405180910390fd5b60e0880151608081015160608201516040830151602084015193516127109461236691614d25565b6123709190614d25565b61237a9190614d25565b6123849190614d25565b61ffff16146123a65760405163b900a93760e01b815260040160405180910390fd5b861561241357600854604051627b8a6760e11b81526001600160a01b039091169062f714ce906123dc9084903390600401614b58565b600060405180830381600087803b1580156123f657600080fd5b505af115801561240a573d6000803e3d6000fd5b50505050612448565b6124486001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084613c03565b604080516101408101825260008082526020808301828152838501838152606085018481526080860185815260a0870186815260c0880187815260e089018881526101008a01898152610120808c018b8152600b80546001810182559c529b517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9600a9c8d029081019190915598517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba8a015596517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb890180546001600160a01b03199081166001600160a01b039384161790915596517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbc8a018054891691831691909117905594517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbd89018054881691871691909117905592517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbe88018054871691861691909117905590517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbf870180548616918516919091179055517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dc0860180548516918416919091179055517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dc185018054841691831691909117905595517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dc290930180549091169290951691909117909355835180840185528c5181528c82015191810191909152918b0151600c8054929484019290919081106126d1576126d1614997565b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b031681526020018a608001516001600160a01b031681526020018a60a001516001600160a01b031681526020016040518060e001604052808c60c0015160006006811061274557612745614997565b602002015161ffff1661ffff1681526020018c60c0015160016006811061276e5761276e614997565b602002015161ffff1661ffff1681526020018c60c0015160026006811061279757612797614997565b602002015161ffff1661ffff1681526020018c60c001516003600681106127c0576127c0614997565b602002015161ffff1661ffff1681526020018c60c001516004600681106127e9576127e9614997565b602002015161ffff1661ffff1681526020018c60c0015160056006811061281257612812614997565b602002015161ffff1661ffff168152602001600760029054906101000a900461ffff1661ffff1661ffff1681525081526020016040518060a001604052808c60e0015160006005811061286757612867614997565b602002015161ffff1661ffff1681526020018c60e0015160016005811061289057612890614997565b602002015161ffff1661ffff1681526020018c60e001516002600581106128b9576128b9614997565b602002015161ffff1661ffff1681526020018c60e001516003600581106128e2576128e2614997565b602002015161ffff1661ffff1681526020018c60e0015160046005811061290b5761290b614997565b602002015161ffff1661ffff168152508152602001604051806101e001604052808c610100015160006003811061294457612944614997565b602002015181526020018c610100015160016003811061296657612966614997565b602002015181526020018c610100015160026003811061298857612988614997565b602002015181526020018c60400151815260200160015481526020017f00000000000000000000000000000000000000000000000000000000000000008d606001516129d4919061497a565b815260035460208083019190915260045460408084019190915242606084015260808301889052336000908152600f90925290205460a09091019060ff16612a1d576000612a1f565b855b81526101408d015160208083019190915260075461ffff166040830152600554606083015260065460809092019190915290825201600090528154600181018355600092835260209092208151919260170201908190612a7f9082614d8f565b5060208201516001820190612a949082614d8f565b5060408201516002820180546001600160a01b039283166001600160a01b0319918216179091556060840151600384018054918416918316919091179055608084015160048401805491909316911617905560a0820151612afb9060058301906007614045565b5060c0820151612b119060068301906005614045565b5060e0820151612b27906007830190600f6140db565b5061010082015160168201805460ff19166001836004811115612b4c57612b4c6142c8565b021790555050600a54600e9150612b6590600190614b19565b81546001818101845560009384526020842090910191909155600a546010918391612b909190614b19565b8152602080820192909252604090810160009081203382529092528120805490925083918391612bc1908490614b45565b9091555050600254600182018054600090612bdd908490614b45565b9091555050600a54612bf190600190614b19565b8960200151604051612c039190614e4e565b6040519081900381208b519091612c1a9190614e4e565b604051908190038120907fe90a1e5fca45d9fdb8b2ff32329610b5f76b495fdf694af097fc5ab6b960302990600090a4505050505050505050565b612c5d612d9e565b600980546001600160a01b0319166001600160a01b0383169081179091556040517f7f3b2ac792cfc454f1b699514c9d19bf59a62bd8aabf8f3717c2251ecea50dab90600090a250565b600b8181548110612cb757600080fd5b60009182526020909120600a9091020180546001820154600283015460038401546004850154600586015460068701546007880154600889015460099099015497995095976001600160a01b03958616979486169693861695928316949183169383169290811691168a565b612d2b612d9e565b6001600160a01b038116612d955760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610e9b81613143565b33612da76119e1565b6001600160a01b0316146110af5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401612d8c565b6040516001600160a01b038316602482015260448101829052612e6090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613c3b565b505050565b600d5460005b81811015612e6057826001600160a01b0316600d8281548110612e9057612e90614997565b6000918252602090912001546001600160a01b031603612f5957600d612eb7600184614b19565b81548110612ec757612ec7614997565b600091825260209091200154600d80546001600160a01b039092169183908110612ef357612ef3614997565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600d805480612f3257612f32614e6a565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b600101612e6b565b600e5460005b81811015611097576000600e8281548110612f8457612f84614997565b60009182526020808320909101548083526010825260408084206001600160a01b038a168552909252912080549192509015613024576000600a8381548110612fcf57612fcf614997565b906000526020600020906017020190508515613006578154601182018054600090612ffb908490614b19565b909155506130229050565b815460118201805460009061301c908490614b45565b90915550505b505b5050600101612f67565b8015806130a85750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a69190614b2c565b155b6131135760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401612d8c565b6040516001600160a01b038316602482015260448101829052612e6090849063095ea7b360e01b90606401612e29565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600e5460005b81811015612e605782600e82815481106131b5576131b5614997565b90600052602060002001540361323857600e6131d2600184614b19565b815481106131e2576131e2614997565b9060005260206000200154600e828154811061320057613200614997565b600091825260209091200155600e80548061321d5761321d614e6a565b60019003818190600052602060002001600090559055505050565b600101613199565b6000600a858154811061325557613255614997565b6000918252602082206017909102019150601682015460ff16600481111561327f5761327f6142c8565b1461329d57604051636fdf78bb60e11b815260040160405180910390fd5b60408051610160810182526007546001600160a01b03600160201b909104811682527f0000000000000000000000000000000000000000000000000000000000000000811660208301526008548116928201929092526009549091166060820152600c8054600092839283928392731190643dd4ad521b524ac139a1a553fc4ea591e49263a32cddd4928992916080830191879061333d5761333d614997565b600091825260209182902001546001600160a01b03908116835260028c01548116918301919091527f0000000000000000000000000000000000000000000000000000000000000000811660408301527f0000000000000000000000000000000000000000000000000000000000000000811660608301527f0000000000000000000000000000000000000000000000000000000000000000811660808301527f00000000000000000000000000000000000000000000000000000000000000001660a082015260c00161340f6119e1565b6001600160a01b03168152506040518363ffffffff1660e01b8152600401613438929190614c3c565b608060405180830381865af4158015613455573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134799190614c51565b929650909450925090506000816004811115613497576134976142c8565b146134c85760038160048111156134b0576134b06142c8565b036134be576134be89613193565b5050505050611097565b60008060006040518060400160405280896007016006600f81106134ee576134ee614997565b01548152600e8a01546020909101526007890154600f8a015491925061351391614b45565b42101561356057336000908152600f602052604090205460ff1661354a57604051637ca4e27560e11b815260040160405180910390fd5b601488015481526015880154602082015261363e565b6001600160ff1b0389146135cd57336000908152600f602052604090205460ff161561359f5760405163086bffed60e11b815260040160405180910390fd5b600a6135aa8a613d10565b82602001516135b9919061497a565b6135c39190614af7565b602082015261363e565b336000908152600f602052604090205460ff1661362c5760088801546007890154600f8a01546135fd9190614b45565b6136079190614b45565b42101561362757604051630841998f60e21b815260040160405180910390fd5b61363e565b60148801548152601588015460208201525b60006001600160ff1b038a0361366c5760008d81526010602090815260408083203384529091529020613686565b60008d81526011602090815260408083208d845290915290205b905081602001518160010154106136b05760405163089faeff60e21b815260040160405180910390fd5b8060010154826020018181516136c69190614b19565b905250600c89015460208301516136dd9088614b45565b11156136f957600c8901546136f3908790614b19565b60208301525b64e8d4a5100087896002856020015164e8d4a51000613718919061497a565b6137229190614af7565b61372c9190614af7565b613736919061497a565b6137409190614af7565b9350816020015192508b841115613777578b93508661375f898661497a565b61376a90600261497a565b6137749190614af7565b92505b64e8d4a5100087896002856000015164e8d4a51000613796919061497a565b6137a09190614af7565b6137aa9190614af7565b6137b4919061497a565b6137be9190614af7565b8410156137de57604051634ff50f2160e01b815260040160405180910390fd5b8a1561384b57600854604051627b8a6760e11b81526001600160a01b039091169062f714ce906138149087903390600401614b58565b600060405180830381600087803b15801561382e57600080fd5b505af1158015613842573d6000803e3d6000fd5b50505050613880565b6138806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333087613c03565b838160000160008282546138949190614b45565b92505081905550828160010160008282546138af9190614b45565b9091555084905060078a0160090160008282546138cc9190614b45565b9091555050336000908152600f602052604090205460ff1615915061390a9050578160078801600a0160008282546139049190614b45565b90915550505b6001600160ff1b0388146139aa5760008b81526010602090815260408083203384529091528120805490918491839190613945908490614b45565b92505081905550818160010160008282546139609190614b45565b909155505060408051848152602081018490528a9133918f917f1c57ab84e96e1244e0b9f5eac2ff45a2f42b63cb6e4706c0daa07cc44f640a89910160405180910390a4506139e8565b604080518381526020810183905233918d917ffabcee59b087198e783f36043458140e49fa7a37626eaaacebdf3838dd304cba910160405180910390a35b60408051610160810182526007546001600160a01b03600160201b909104811682527f0000000000000000000000000000000000000000000000000000000000000000811660208301526008548116928201929092526009549091166060820152600c8054731190643dd4ad521b524ac139a1a553fc4ea591e49263a32cddd4928b92608083019190600090613a8057613a80614997565b600091825260209182902001546001600160a01b03908116835260028e01548116918301919091527f0000000000000000000000000000000000000000000000000000000000000000811660408301527f0000000000000000000000000000000000000000000000000000000000000000811660608301527f0000000000000000000000000000000000000000000000000000000000000000811660808301527f00000000000000000000000000000000000000000000000000000000000000001660a082015260c001613b526119e1565b6001600160a01b03168152506040518363ffffffff1660e01b8152600401613b7b929190614c3c565b608060405180830381865af4158015613b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bbc9190614c51565b955060039250613bca915050565b836004811115613bdc57613bdc6142c8565b03613bf657613bea8b613193565b50505050505050611097565b5050505050505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526110979085906323b872dd60e01b90608401612e29565b6000613c90826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613e399092919063ffffffff16565b9050805160001480613cb1575080806020019051810190613cb19190614cf2565b612e605760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401612d8c565b604051630284a7a560e51b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635094f4a090602401602060405180830381865afa158015613d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d9e9190614b2c565b905080600003613db15750603292915050565b80600103613dc25750602892915050565b80600203613dd35750601e92915050565b80600303613de45750601492915050565b80600403613df55750600f92915050565b60405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081d1bdad95b881b195d995b606a1b6044820152606401612d8c565b50919050565b6060613e488484600085613e52565b90505b9392505050565b606082471015613eb35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401612d8c565b600080866001600160a01b03168587604051613ecf9190614e4e565b60006040518083038185875af1925050503d8060008114613f0c576040519150601f19603f3d011682016040523d82523d6000602084013e613f11565b606091505b5091509150613f2287838387613f2f565b925050505b949350505050565b60608315613f9e578251600003613f97576001600160a01b0385163b613f975760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401612d8c565b5081613f27565b613f278383815115613fb35781518083602001fd5b8060405162461bcd60e51b8152600401612d8c9190614e80565b604051806101200160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200161401f614109565b815260200161402c614127565b8152602001614039614145565b81526020016000905290565b6001830191839082156140cb5791602002820160005b8382111561409b57835183826101000a81548161ffff021916908361ffff160217905550926020019260020160208160010104928301926001030261405b565b80156140c95782816101000a81549061ffff021916905560020160208160010104928301926001030261409b565b505b506140d7929150614164565b5090565b82600f81019282156140cb579160200282015b828111156140cb5782518255916020019190600101906140ee565b6040518060e001604052806007906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806101e00160405280600f906020820280368337509192915050565b5b808211156140d75760008155600101614165565b6000806040838503121561418c57600080fd5b50508035926020909101359150565b803561ffff811681146141ad57600080fd5b919050565b6000602082840312156141c457600080fd5b613e4b8261419b565b6001600160a01b0391909116815260200190565b6000602082840312156141f357600080fd5b5035919050565b60005b838110156142155781810151838201526020016141fd565b50506000910152565b600081518084526142368160208601602086016141fa565b601f01601f19169290920160200192915050565b6001600160a01b03169052565b8060005b600781101561109757815161ffff1684526020938401939091019060010161425b565b8060005b600581101561109757815161ffff16845260209384019390910190600101614282565b8060005b600f8110156110975781518452602093840193909101906001016142a9565b634e487b7160e01b600052602160045260246000fd5b600581106142fc57634e487b7160e01b600052602160045260246000fd5b9052565b602081526000825161042080602085015261431f61044085018361421e565b91506020850151601f1985840301604086015261433c838261421e565b9250506040850151614351606086018261424a565b506060850151614364608086018261424a565b50608085015161437760a086018261424a565b5060a085015161438a60c0860182614257565b5060c085015161439e6101a086018261427e565b5060e08501516143b26102408601826142a5565b506101008501516143c5828601826142de565b5090949350505050565b80356001600160a01b03811681146141ad57600080fd5b6000602082840312156143f857600080fd5b613e4b826143cf565b8015158114610e9b57600080fd5b80356141ad81614401565b6000806040838503121561442d57600080fd5b82359150602083013561443f81614401565b809150509250929050565b60c08152600061445d60c083018961421e565b828103602084015261446f818961421e565b6001600160a01b038881166040860152878116606086015286166080850152915061449f905060a08301846142de565b979650505050505050565b600080604083850312156144bd57600080fd5b823591506144cd602084016143cf565b90509250929050565b60008083601f8401126144e857600080fd5b5081356001600160401b038111156144ff57600080fd5b60208301915083602082850101111561451757600080fd5b9250929050565b60008060008060006080868803121561453657600080fd5b8535945060208601359350604086013561454f81614401565b925060608601356001600160401b0381111561456a57600080fd5b614576888289016144d6565b969995985093965092949392505050565b600080600080600080600060c0888a0312156145a257600080fd5b873596506020880135955060408801356145bb81614401565b9450606088013593506145d0608089016143cf565b925060a08801356001600160401b038111156145eb57600080fd5b6145f78a828b016144d6565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b03811182821017156146435761464361460a565b60405290565b600082601f83011261465a57600080fd5b81356001600160401b03808211156146745761467461460a565b604051601f8301601f19908116603f0116810190828211818310171561469c5761469c61460a565b816040528381528660208588010111156146b557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600082601f8301126146e657600080fd5b60405160c081018181106001600160401b03821117156147085761470861460a565b6040528060c084018581111561471d57600080fd5b845b8181101561473e576147308161419b565b83526020928301920161471f565b509195945050505050565b600082601f83011261475a57600080fd5b60405160a081018181106001600160401b038211171561477c5761477c61460a565b6040528060a084018581111561479157600080fd5b845b8181101561473e576147a48161419b565b835260209283019201614793565b600082601f8301126147c357600080fd5b604051606081018181106001600160401b03821117156147e5576147e561460a565b6040528060608401858111156147fa57600080fd5b845b8181101561473e5780358352602092830192016147fc565b6000806000806060858703121561482a57600080fd5b84356001600160401b038082111561484157600080fd5b908601906102c0828903121561485657600080fd5b61485e614620565b82358281111561486d57600080fd5b6148798a828601614649565b82525060208301358281111561488e57600080fd5b61489a8a828601614649565b60208301525060408301356040820152606083013560608201526148c0608084016143cf565b60808201526148d160a084016143cf565b60a08201526148e38960c085016146d5565b60c08201526148f6896101808501614749565b60e08201526149098961022085016147b2565b6101008201526102808301356101208201526102a083013561014082015295506149356020880161440f565b9450604087013591508082111561494b57600080fd5b50614958878288016144d6565b95989497509550505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761499157614991614964565b92915050565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806149c157607f821691505b602082108103613e3357634e487b7160e01b600052602260045260246000fd5b6000602082840312156149f357600080fd5b815160ff81168114613e4b57600080fd5b600181815b80851115614a3f578160001904821115614a2557614a25614964565b80851615614a3257918102915b93841c9390800290614a09565b509250929050565b600082614a5657506001614991565b81614a6357506000614991565b8160018114614a795760028114614a8357614a9f565b6001915050614991565b60ff841115614a9457614a94614964565b50506001821b614991565b5060208310610133831016604e8410600b8410161715614ac2575081810a614991565b614acc8383614a04565b8060001904821115614ae057614ae0614964565b029392505050565b6000613e4b60ff841683614a47565b600082614b1457634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561499157614991614964565b600060208284031215614b3e57600080fd5b5051919050565b8082018082111561499157614991614964565b9182526001600160a01b0316602082015260400190565b614b7a82825161424a565b6020810151614b8c602084018261424a565b506040810151614b9f604084018261424a565b506060810151614bb2606084018261424a565b506080810151614bc5608084018261424a565b5060a0810151614bd860a084018261424a565b5060c0810151614beb60c084018261424a565b5060e0810151614bfe60e084018261424a565b5061010080820151614c128285018261424a565b505061012080820151614c278285018261424a565b5050610140808201516110978285018261424a565b8281526101808101613e4b6020830184614b6f565b60008060008060808587031215614c6757600080fd5b845193506020850151925060408501519150606085015160058110614c8b57600080fd5b939692955090935050565b838152602081018390526101a08101613f276040830184614b6f565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b600060208284031215614d0457600080fd5b8151613e4b81614401565b634e487b7160e01b600052600160045260246000fd5b61ffff818116838216019080821115614d4057614d40614964565b5092915050565b601f821115612e60576000816000526020600020601f850160051c81016020861015614d705750805b601f850160051c820191505b81811015610e1e57828155600101614d7c565b81516001600160401b03811115614da857614da861460a565b614dbc81614db684546149ad565b84614d47565b602080601f831160018114614df15760008415614dd95750858301515b600019600386901b1c1916600185901b178555610e1e565b600085815260208120601f198616915b82811015614e2057888601518255948401946001909101908401614e01565b5085821015614e3e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614e608184602087016141fa565b9190910192915050565b634e487b7160e01b600052603160045260246000fd5b602081526000613e4b602083018461421e56fea2646970667358221220b5110ea9b80d105a508f92eed75c1d2a44105aab87775a57820809ec4c376d6764736f6c634300081700330000000000000000000000009a86980d3625b4a6e69d8a4606d51cbc019e2002000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000133968c3fa3288a7c802b2d061ba9bd5c1150bce000000000000000000000000afbc149adfc6169bdb81919ca1ffd4dcb5ce720a000000000000000000000000b5c168a5b9427f78237fc46f5f6bd020da9621280000000000000000000000000cc2120d12efe0cf15bf37694a67a2f4c2ead2360000000000000000000000007aefd99a023f5e7a6278d64462b04d0ed8b7ad12000000000000000000000000b49d0b4da43f24697d932bb70a429e06e3823a8c000000000000000000000000943d6ef251951c61cea89d3bedd6ad08a523504200000000000000000000000086c4d3321e05394d0a913b7443c7de5909c578eb