69 txs
1.6k calls
constructor
constructor(address _usdAddress, address _thirdPartyAddress, address _oldVault, address[] _initialDistributionAddresses, uint256[] _initialDistributionAmounts, uint256 _totalDepositCap, uint256 _interestRate, uint256 _autoCompoundIncentive, uint8 _decimals, string _tokenName, string _tokenSymbol)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
autoCompoundAllowed
viewfunction autoCompoundAllowed(address) view returns (bool)
autoCompoundIncentive
viewfunction autoCompoundIncentive() view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
cashedInterest
viewfunction cashedInterest(address) view returns (uint256)
currentProxyBenefactor
viewfunction currentProxyBenefactor() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
getPendingInterest
viewfunction getPendingInterest(address _user) view returns (uint256)
getPendingInterestBulk
viewfunction getPendingInterestBulk(address[] _users) view returns (uint256[])
getPendingInterestBulkByTimeStamp
viewfunction getPendingInterestBulkByTimeStamp(address[] _users, uint256 _timestamp) view returns (uint256[])
getPendingInterestByTimeStamp
viewfunction getPendingInterestByTimeStamp(address _user, uint256 _timestamp) view returns (uint256)
getTotalInterestUser
viewfunction getTotalInterestUser(address _user) view returns (uint256)
getTotalInterestUserBulk
viewfunction getTotalInterestUserBulk(address[] _users) view returns (uint256[])
getTotalInterestUserBulkByTimeStamp
viewfunction getTotalInterestUserBulkByTimeStamp(address[] _users, uint256 _timestamp) view returns (uint256[])
getTotalInterestUserByTimeStamp
viewfunction getTotalInterestUserByTimeStamp(address _user, uint256 _timestamp) view returns (uint256)
IERC20Decimals
viewfunction IERC20Decimals() view returns (bytes4)
interestRate
viewfunction interestRate() view returns (uint256)
InterestRateProxy
viewfunction InterestRateProxy() view returns (address)
interestRateProxyPermanent
viewfunction interestRateProxyPermanent() view returns (bool)
isWhiteListed
viewfunction isWhiteListed(address) view returns (bool)
lastSyncTimeStamp
viewfunction lastSyncTimeStamp(address) view returns (uint256)
master
viewfunction master() view returns (address)
name
viewfunction name() view returns (string)
paused
viewfunction paused() view returns (bool)
proposedMaster
viewfunction proposedMaster() view returns (address)
proxyBalance
viewfunction proxyBalance(address) view returns (uint256)
supplyChangeByOwnerNotAllowed
viewfunction supplyChangeByOwnerNotAllowed() view returns (bool)
symbol
viewfunction symbol() view returns (string)
thirdPartyAddress
viewfunction thirdPartyAddress() view returns (address)
totalDepositCap
viewfunction totalDepositCap() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
transferInterestWithTokens
viewfunction transferInterestWithTokens(address) view returns (bool)
USD_TOKEN
viewfunction USD_TOKEN() view returns (address)
withdrawAllowed
viewfunction withdrawAllowed() view returns (bool)
allowAutoCompound
nonpayablefunction allowAutoCompound()
allowWithdraw
nonpayablefunction allowWithdraw()
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burnSupply
nonpayablefunction burnSupply(address _from, uint256 _amount)
claimInterest
nonpayablefunction claimInterest() returns (uint256)
claimInterestExactAmount
nonpayablefunction claimInterestExactAmount(uint256 _amount) returns (uint256)
claimInterestPartiallyAndCompound
nonpayablefunction claimInterestPartiallyAndCompound(uint256 _amount) returns (uint256 claimedAmount)
claimOwnership
nonpayablefunction claimOwnership()
compoundInterest
nonpayablefunction compoundInterest() returns (uint256)
compoundInterestOnBehalf
nonpayablefunction compoundInterestOnBehalf(address _user) returns (uint256)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
decreaseProxyBalance
nonpayablefunction decreaseProxyBalance(address _proxyUser, uint256 _amount)
deposit
nonpayablefunction deposit(uint256 _amount)
depositAndClaimInterest
nonpayablefunction depositAndClaimInterest(uint256 _amount) returns (uint256)
depositAndCompoundInterest
nonpayablefunction depositAndCompoundInterest(uint256 _amount) returns (uint256)
disallowAutoCompound
nonpayablefunction disallowAutoCompound()
disAllowSupplyChangeByOwner
nonpayablefunction disAllowSupplyChangeByOwner()
disallowWithdraw
nonpayablefunction disallowWithdraw()
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
increaseProxyBalance
nonpayablefunction increaseProxyBalance(address _proxyUser, uint256 _amount)
mintSupply
nonpayablefunction mintSupply(address _to, uint256 _amount)
pauseDeposits
nonpayablefunction pauseDeposits()
proposeOwner
nonpayablefunction proposeOwner(address _proposedOwner)
removeWhiteListAddress
nonpayablefunction removeWhiteListAddress(address _unfriendlyUser)
renounceOwnership
nonpayablefunction renounceOwnership()
setInterestRate
nonpayablefunction setInterestRate(uint256 _interestRate)
setInterestRateProxy
nonpayablefunction setInterestRateProxy(address _interestRateProxy)
setInterestRateProxyPermanent
nonpayablefunction setInterestRateProxyPermanent()
setProxyBenefactor
nonpayablefunction setProxyBenefactor(address _proxyBeneFactor)
setThirdPartyAddress
nonpayablefunction setThirdPartyAddress(address _thirdPartyAddress)
setTotalDepositCap
nonpayablefunction setTotalDepositCap(uint256 _totalDepositCap)
setTransferInterestWithTokens
nonpayablefunction setTransferInterestWithTokens(bool _transferInterestWithTokens)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
triggerAssignInterest
nonpayablefunction triggerAssignInterest(address _user)
unpauseDeposits
nonpayablefunction unpauseDeposits()
whiteListAddress
nonpayablefunction whiteListAddress(address _friendlyUser)
withdraw
nonpayablefunction withdraw(uint256 _amount)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
AutoCompoundAllowedSet
event AutoCompoundAllowedSet(address indexed user, bool isAllowed)
BurnSupply
event BurnSupply(address indexed from, uint256 amount)
ClaimInterestExactAmount
event ClaimInterestExactAmount(address indexed user, uint256 amount)
ClaimInterestSimple
event ClaimInterestSimple(address indexed user, uint256 interest)
ClaimInterestWithIncentive
event ClaimInterestWithIncentive(address indexed user, address indexed destination, uint256 interest, uint256 incentive)
CompoundInterest
event CompoundInterest(address indexed user, uint256 interest)
Deposited
event Deposited(address indexed user, uint256 amount)
InterestRateProxyClaimed
event InterestRateProxyClaimed(address indexed proxy, bool isClaimed)
InterestRateProxyProposal
event InterestRateProxyProposal(address indexed proxy, bool isProposing)
InterestRateProxySet
event InterestRateProxySet(address interestRateProxy)
InterestRateSet
event InterestRateSet(uint256 interestRate)
MasterProposed
event MasterProposed(address indexed proposer, address indexed proposedMaster)
MintSupply
event MintSupply(address indexed to, uint256 amount)
Paused
event Paused(address account)
ProxyBalanceDecreased
event ProxyBalanceDecreased(address indexed proxyUser, uint256 amount)
ProxyBalanceIncreased
event ProxyBalanceIncreased(address indexed proxyUser, uint256 amount)
ProxyBeneFactorSet
event ProxyBeneFactorSet(address indexed proxyBeneFactor)
ProxyBenefactorSet
event ProxyBenefactorSet(address proxyBeneFactor)
RenouncedOwnership
event RenouncedOwnership(address indexed previousMaster)
SupplyChangeByOwnerNotAllowedSet
event SupplyChangeByOwnerNotAllowedSet(bool supplyChangeByOwnerNotAllowed)
ThirdPartyAddressSet
event ThirdPartyAddressSet(address thirdPartyAddress)
TotalDepositCapSet
event TotalDepositCapSet(uint256 totalDepositCap)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
TransferInterestWithTokensSet
event TransferInterestWithTokensSet(address indexed user, bool transferInterestWithTokens)
Unpaused
event Unpaused(address account)
WhiteListAddressSet
event WhiteListAddressSet(address indexed user, bool isWhiteListed)
Withdrawn
event Withdrawn(address indexed user, uint256 amount)
WithdrawStatusChanged
event WithdrawStatusChanged(bool withdrawAllowed)
errors
CompoundNotAllowed
error CompoundNotAllowed()
DepositExceedCap
error DepositExceedCap()
InsufficientBalance
error InsufficientBalance()
InsufficientBalanceInContract
error InsufficientBalanceInContract(uint256 attemptedWithdrawAmount, uint256 contractBalance)
InsufficientInterest
error InsufficientInterest()
InterestRateProxyAlreadySet
error InterestRateProxyAlreadySet()
InvalidPosition
error InvalidPosition()
InvalidValue
error InvalidValue()
NoInterest
error NoInterest()
NoRewards
error NoRewards()
NotInterestRateProxy
error NotInterestRateProxy()
NotMaster
error NotMaster()
NotProposed
error NotProposed()
NotWhiteListed
error NotWhiteListed()
NoValue
error NoValue()
SupplyChangeNotAllowed
error SupplyChangeNotAllowed()
WithdrawNotAllowed
error WithdrawNotAllowed()
creation bytecode
0x60a0604052600c80546001600160a01b031916905534801561001f575f5ffd5b5060405161466838038061466883398101604081905261003e91610629565b8a8a8a8a8a8a8a8a8a8a8a8181338061006a5760405163f2365b5b60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b03929092169190911790556001805460ff60a01b1916815560025560066100a583826107d5565b5060076100b282826107d5565b5050506100c78b8b888861013a60201b60201c565b6001600160a01b038b8116608052600a8054600d899055600888905560098790556001600160a81b031916610100928d169290920260ff19169190911760ff8516179055610115888861018d565b61011f8989610220565b505050505050505050505050505050505050505050506108f5565b801580610145575081155b8061015757506001600160a01b038416155b8061016957506001600160a01b038316155b1561018757604051632a9ffab760e21b815260040160405180910390fd5b50505050565b5f5b825181101561021b576101da8382815181106101ad576101ad61088f565b60200260200101518383815181106101c7576101c761088f565b60200260200101516103a260201b60201c565b4260105f8584815181106101f0576101f061088f565b6020908102919091018101516001600160a01b031682528101919091526040015f205560010161018f565b505050565b6001600160a01b0382161561039e575f5b815181101561021b575f5f846001600160a01b03168484815181106102585761025861088f565b602002602001015160405160240161027f91906001600160a01b0391909116815260200190565b60408051601f198184030181529181526020820180516001600160e01b0316636aee2c6b60e11b179052516102b491906108a3565b5f60405180830381855afa9150503d805f81146102ec576040519150601f19603f3d011682016040523d82523d5f602084013e6102f1565b606091505b5091509150816103485760405162461bcd60e51b815260206004820152601560248201527f6f6c64207661756c742063616c6c206661696c6564000000000000000000000060448201526064015b60405180910390fd5b8080602001905181019061035c91906108b9565b60115f8686815181106103715761037161088f565b6020908102919091018101516001600160a01b031682528101919091526040015f20555050600101610231565b5050565b6001600160a01b0382166103f85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161033f565b8060055f82825461040991906108d0565b90915550506001600160a01b0382165f818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80516001600160a01b0381168114610477575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156104b8576104b861047c565b604052919050565b5f6001600160401b038211156104d8576104d861047c565b5060051b60200190565b5f82601f8301126104f1575f5ffd5b81516105046104ff826104c0565b610490565b8082825260208201915060208360051b860101925085831115610525575f5ffd5b602085015b838110156105495761053b81610461565b83526020928301920161052a565b5095945050505050565b5f82601f830112610562575f5ffd5b81516105706104ff826104c0565b8082825260208201915060208360051b860101925085831115610591575f5ffd5b602085015b83811015610549578051835260209283019201610596565b805160ff81168114610477575f5ffd5b5f82601f8301126105cd575f5ffd5b81516001600160401b038111156105e6576105e661047c565b6105f9601f8201601f1916602001610490565b81815284602083860101111561060d575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f5f5f5f5f5f5f5f6101608c8e031215610644575f5ffd5b61064d8c610461565b9a5061065b60208d01610461565b995061066960408d01610461565b60608d01519099506001600160401b03811115610684575f5ffd5b6106908e828f016104e2565b60808e015190995090506001600160401b038111156106ad575f5ffd5b6106b98e828f01610553565b9750505f60a08d01519050809650505f60c08d01519050809550505f60e08d01519050809450506106ed6101008d016105ae565b6101208d01519093506001600160401b03811115610709575f5ffd5b6107158e828f016105be565b6101408e015190935090506001600160401b03811115610733575f5ffd5b61073f8e828f016105be565b9150509295989b509295989b9093969950565b600181811c9082168061076657607f821691505b60208210810361078457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561021b57805f5260205f20601f840160051c810160208510156107af5750805b601f840160051c820191505b818110156107ce575f81556001016107bb565b5050505050565b81516001600160401b038111156107ee576107ee61047c565b610802816107fc8454610752565b8461078a565b6020601f821160018114610834575f831561081d5750848201515b5f19600385901b1c1916600184901b1784556107ce565b5f84815260208120601f198516915b828110156108635787850151825560209485019460019092019101610843565b508482101561088057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f602082840312156108c9575f5ffd5b5051919050565b808201808211156108ef57634e487b7160e01b5f52601160045260245ffd5b92915050565b608051613d1c61094c5f395f818161085101528181611d2f01528181611df601528181611ec401528181611f4a01528181612363015281816123a8015281816126be0152818161284501526129b10152613d1c5ff3fe608060405234801561000f575f5ffd5b506004361061048f575f3560e01c8063783576891161025d578063b6b55f2511610148578063dd62ed3e116100c3578063ebbf5c1711610093578063edf8378111610079578063edf8378114610a9f578063ee97f7f314610af7578063f1ead25214610b16575f5ffd5b8063ebbf5c1714610a6d578063ed9c683414610a80575f5ffd5b8063dd62ed3e146109fa578063e345bd1014610a3f578063e425e8b514610a52578063e742806a14610a5a575f5ffd5b8063cf52a7b211610118578063d5dc58d6116100fe578063d5dc58d6146109ad578063d6adbb61146109c0578063dd3792cd146109d3575f5ffd5b8063cf52a7b21461097a578063d3573a331461098d575f5ffd5b8063b6b55f2514610938578063c35ad6b01461094b578063c849a6b314610954578063ce114c2514610967575f5ffd5b80639f981e1a116101d8578063abec101f116101a8578063b384c0101161018e578063b384c010146108ff578063b387cdfc14610912578063b5ed298a14610925575f5ffd5b8063abec101f146108d9578063aecf8a6d146108ec575f5ffd5b80639f981e1a146108985780639fa8e272146108a0578063a457c2d7146108b3578063a9059cbb146108c6575f5ffd5b8063900eb0051161022d57806395d89b411161021357806395d89b41146108445780639d23c8121461084c5780639f7096b614610873575f5ffd5b8063900eb0051461081257806395b20d6e14610825575f5ffd5b806378357689146107bd5780637c3a00fd146107e35780637d31de9c146107ec5780638c859fca146107ff575f5ffd5b80634e71e0c81161037d5780636095ad55116102f85780636c561567116102c857806370a08231116102ae57806370a0823114610760578063715018a614610795578063740bde041461079d575f5ffd5b80636c5615671461072b5780636f9170f61461073e575f5ffd5b80636095ad551461070057806363d8882a1461070857806364259daa1461071057806367bbdfaf14610718575f5ffd5b80635c975abb1161034d5780635f3743df116103335780635f3743df146106b85780635f84f302146106da5780635fed40da146106ed575f5ffd5b80635c975abb1461068c5780635db88e85146106af575f5ffd5b80634e71e0c81461064f57806351a5fee3146106575780635438ebaa1461065f578063574eab0114610667575f5ffd5b80632c12c0741161040d57806335981fd8116103dd57806339509351116103c357806339509351146105fd5780633e5bec071461061057806340d0dcdd1461062f575f5ffd5b806335981fd8146105e2578063394edada146105ea575f5ffd5b80632c12c074146105945780632c28f026146105a75780632e1a7d4d146105ba578063313ce567146105cd575f5ffd5b80630da21b1a1161046257806318160ddd1161044857806318160ddd14610557578063235668e41461055f57806323b872dd14610581575f5ffd5b80630da21b1a146104f1578063151d9b7414610536575f5ffd5b8063021919801461049357806306fdde031461049d578063095ea7b3146104bb5780630bac5bd0146104de575b5f5ffd5b61049b610b1e565b005b6104a5610b42565b6040516104b29190613879565b60405180910390f35b6104ce6104c93660046138ef565b610bd2565b60405190151581526020016104b2565b61049b6104ec366004613917565b610beb565b600c546105119073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016104b2565b610549610544366004613917565b610c11565b6040519081526020016104b2565b600554610549565b6104ce61056d366004613917565b60126020525f908152604090205460ff1681565b6104ce61058f366004613930565b610c1c565b61049b6105a23660046138ef565b610c9c565b6105496105b53660046138ef565b610cb2565b61049b6105c836600461396a565b610cf3565b600a5460405160ff90911681526020016104b2565b610549610d2a565b6105496105f83660046138ef565b610d5e565b6104ce61060b3660046138ef565b610e2d565b61054961061e366004613917565b60136020525f908152604090205481565b61064261063d366004613a6f565b610e78565b6040516104b29190613ab1565b61049b610f1c565b61049b610f4f565b61049b610faa565b600c546104ce9074010000000000000000000000000000000000000000900460ff1681565b60015474010000000000000000000000000000000000000000900460ff166104ce565b610549600d5481565b6104ce6106c6366004613917565b600e6020525f908152604090205460ff1681565b61049b6106e836600461396a565b610fbd565b6106426106fb366004613af3565b610fd6565b61049b610fe2565b61049b610ffb565b61049b611013565b61049b610726366004613917565b611025565b610642610739366004613a6f565b611036565b6104ce61074c366004613917565b600f6020525f908152604090205460ff1681565b61054961076e366004613917565b73ffffffffffffffffffffffffffffffffffffffff165f9081526003602052604090205490565b61049b6110d2565b600b546105119073ffffffffffffffffffffffffffffffffffffffff1681565b600c546104ce907501000000000000000000000000000000000000000000900460ff1681565b61054960085481565b6105496107fa366004613917565b611136565b61049b61080d366004613917565b611188565b610642610820366004613af3565b6111a1565b610549610833366004613917565b60106020525f908152604090205481565b6104a56111ad565b6105117f000000000000000000000000000000000000000000000000000000000000000081565b600a5461051190610100900473ffffffffffffffffffffffffffffffffffffffff1681565b61049b6111bc565b6105496108ae36600461396a565b6111d4565b6104ce6108c13660046138ef565b611205565b6104ce6108d43660046138ef565b6112e5565b6105496108e736600461396a565b611363565b61049b6108fa3660046138ef565b611387565b61054961090d36600461396a565b6113c2565b61049b6109203660046138ef565b6113e7565b61049b610933366004613917565b611403565b61049b61094636600461396a565b6114c8565b61054960095481565b61049b610962366004613917565b6114eb565b61049b610975366004613917565b611504565b61049b610988366004613917565b61151e565b6001546105119073ffffffffffffffffffffffffffffffffffffffff1681565b6105496109bb366004613917565b611539565b6105496109ce36600461396a565b611544565b600c546104ce90760100000000000000000000000000000000000000000000900460ff1681565b610549610a08366004613b25565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260046020908152604080832093909416825291909152205490565b61049b610a4d366004613b63565b611569565b61054961157a565b61049b610a683660046138ef565b61159e565b61049b610a7b36600461396a565b6115ca565b610549610a8e366004613917565b60116020525f908152604090205481565b610ac67f313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f981565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016104b2565b5f546105119073ffffffffffffffffffffffffffffffffffffffff1681565b61049b6115e3565b610b266115fd565b610b2e61164f565b610b366116c0565b610b406001600255565b565b606060068054610b5190613b7e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7d90613b7e565b8015610bc85780601f10610b9f57610100808354040283529160200191610bc8565b820191905f5260205f20905b815481529060010190602001808311610bab57829003601f168201915b5050505050905090565b5f33610bdf81858561175a565b60019150505b92915050565b610bf36115fd565b610bfb61164f565b610c048161190c565b610c0e6001600255565b50565b5f610be58242610d5e565b5f83610c27816119fe565b83610c31816119fe565b610c3961164f565b5f8411610c72576040517faa7feadc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c7c8686611ad3565b610c87868686611aec565b9250610c936001600255565b50509392505050565b610ca4611b04565b610cae8282611b55565b5050565b5f610cbd8383610d5e565b73ffffffffffffffffffffffffffffffffffffffff84165f90815260116020526040902054610cec9190613bfc565b9392505050565b610cfb611bde565b610d0361164f565b33610d0d816119fe565b610d1682611c63565b610d1f82611ea0565b50610c0e6001600255565b5f610d33611bde565b610d3b61164f565b33610d45816119fe565b610d4e33611f24565b915050610d5b6001600255565b90565b600b545f9073ffffffffffffffffffffffffffffffffffffffff90811690841603610d8a57505f610be5565b73ffffffffffffffffffffffffffffffffffffffff83165f908152601360209081526040808320546003909252822054610dc49190613bfc565b9050805f03610dd6575f915050610be5565b73ffffffffffffffffffffffffffffffffffffffff84165f90815260106020526040902054808411610e0c575f92505050610be5565b5f610e178286613c0f565b9050610e238382611fc6565b9695505050505050565b335f81815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190610bdf9082908690610e73908790613bfc565b61175a565b60605f835167ffffffffffffffff811115610e9557610e95613981565b604051908082528060200260200182016040528015610ebe578160200160208202803683370190505b5090505f5b8451811015610f1457610eef858281518110610ee157610ee1613c22565b602002602001015185610cb2565b828281518110610f0157610f01613c22565b6020908102919091010152600101610ec3565b509392505050565b610f2461202e565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b610f576115fd565b610f5f61164f565b600c80547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16760100000000000000000000000000000000000000000000179055610b406001600255565b610fb261164f565b610b36336001612081565b610fc56115fd565b610fcd61164f565b610c0481612103565b6060610be58242611036565b610fea6115fd565b610ff261164f565b610b365f612138565b6110036115fd565b61100b61164f565b610b366121b1565b61101b61164f565b610b36335f612081565b61102d611b04565b610c0e816119fe565b60605f835167ffffffffffffffff81111561105357611053613981565b60405190808252806020026020018201604052801561107c578160200160208202803683370190505b5090505f5b8451811015610f14576110ad85828151811061109f5761109f613c22565b602002602001015185610d5e565b8282815181106110bf576110bf613c22565b6020908102919091010152600101611081565b6110da6115fd565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116825560018054909116905560405133917f6172baf984ea013d88b784409f46655b96ba7f2ff91bca1ac9bcd27b113e6eb091a2565b5f61113f611bde565b61114761164f565b81611151816119fe565b3361115b816119fe565b611163612208565b61116c84612255565b611175846122b3565b925050506111836001600255565b919050565b6111906115fd565b61119861164f565b610c0481612430565b6060610be58242610e78565b606060078054610b5190613b7e565b6111c46115fd565b6111cc61164f565b610b366124aa565b5f6111dd611bde565b6111e561164f565b336111ef816119fe565b6111f88361251b565b9150506111836001600255565b335f81815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156112cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6112da828686840361175a565b506001949350505050565b5f336112f0816119fe565b836112fa816119fe565b61130261164f565b5f841161133b576040517faa7feadc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113453386611ad3565b61134f858561252e565b925061135b6001600255565b505092915050565b5f61136c611bde565b61137461164f565b3361137e816119fe565b6111f88361253b565b61138f6115fd565b81611399816119fe565b6113a161164f565b6113a961254e565b6113b383836125a4565b6113bd6001600255565b505050565b5f6113cb611bde565b6113d361164f565b336113dd816119fe565b6111f833846125f6565b816113f1816119fe565b6113f9611b04565b6113bd8383612616565b61140b6115fd565b73ffffffffffffffffffffffffffffffffffffffff8116611458576040517ff2365b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907f322fd6444c59daffa82e4689b7685b6fafc6109a1eff8a6ca10c5a8e3206cda1905f90a350565b6114d0611bde565b6114d861164f565b336114e2816119fe565b610d1f82612697565b6114f361164f565b6114fb611b04565b610c048161272b565b61150c6115fd565b61151461164f565b610c04815f61279e565b6115266115fd565b61152e61164f565b610c0481600161279e565b5f610be58242610cb2565b5f61154d611bde565b61155561164f565b3361155f816119fe565b6111f83384612820565b61157161164f565b610c04816128c2565b5f611583611bde565b61158b61164f565b33611595816119fe565b610d4e3361292e565b6115a66115fd565b816115b0816119fe565b6115b861164f565b6115c061254e565b6113b38383612a27565b6115d26115fd565b6115da61164f565b610c0481612a79565b6115eb6115fd565b6115f361164f565b610b366001612138565b5f5473ffffffffffffffffffffffffffffffffffffffff16330361161d57565b6040517fb4ec2ff200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028054036116ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016112c4565b60028055565b6116c8611bde565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861172f3390565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390a1565b73ffffffffffffffffffffffffffffffffffffffff83166117fc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016112c4565b73ffffffffffffffffffffffffffffffffffffffff821661189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016112c4565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600c54760100000000000000000000000000000000000000000000900460ff1615155f0361198457600b5473ffffffffffffffffffffffffffffffffffffffff1615611984576040517f4d12eca900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f648eabf179bb687149cf49a66ed1d305330d6cac489719f3c2aac9fb98634b54906020015b60405180910390a150565b600b54819073ffffffffffffffffffffffffffffffffffffffff90811690821603611a3e5750600c5473ffffffffffffffffffffffffffffffffffffffff165b73ffffffffffffffffffffffffffffffffffffffff8116611a5d575050565b5f611a6782610c11565b90508015611aa95773ffffffffffffffffffffffffffffffffffffffff82165f9081526011602052604081208054839290611aa3908490613bfc565b90915550505b5073ffffffffffffffffffffffffffffffffffffffff165f90815260106020526040902042905550565b611add8282612aae565b15610cae57610cae8282612b30565b5f33611af9858285612bd1565b6112da858585612ca7565b600b5473ffffffffffffffffffffffffffffffffffffffff163314610b40576040517f08681c9c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82165f9081526013602052604081208054839290611b89908490613bfc565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f17efb838b15394c37cccd9e145be5de4af8533e598248917d2259c892638b380906020015b60405180910390a25050565b60015474010000000000000000000000000000000000000000900460ff1615610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016112c4565b600c5474010000000000000000000000000000000000000000900460ff16611cb7576040517f15e34e0500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f90815260036020526040902054811115611cff576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015281907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611d89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dad9190613c4f565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291111590829073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611e3b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e5f9190613c4f565b90916113bd576040517f193bf9d2000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016112c4565b611eaa3382612f1b565b611eeb73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633836130df565b60405181815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5906020015b60405180910390a250565b5f611f2e826131b3565b9050611f7173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001683836130df565b8173ffffffffffffffffffffffffffffffffffffffff167fe80e84647eadd4602bc2e02fe58170b58a1468f70fe9cd7ba009d9877aaf668182604051611fb991815260200190565b60405180910390a2919050565b5f806301e14320611fdf670de0b6b3a764000085613c66565b611fe99190613c7d565b90505f670de0b6b3a764000061271083600854886120079190613c66565b6120119190613c66565b61201b9190613c7d565b6120259190613c7d565b95945050505050565b60015473ffffffffffffffffffffffffffffffffffffffff16330361204f57565b6040517ff2a87d5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82165f818152600e602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fdfea50175ad28f84dfdc615ffeb1ce327316161a22d1fbc95bee3f5828748b629101611bd2565b60088190556040518181527f532f252238b3b0d2b8c8a257b087fb3fdbdc775e3e0acca8e680a2f36aafa34b906020016119f3565b600c805482151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161790556040517fa59b481860a10c65e6c236866c8b1bc53ef042e8fb85092e3f8ae8da8c94fd9e906119f390831515815260200190565b6121b961323b565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361172f565b335f908152600f602052604090205460ff161515600114610b40576040517f6a9a57a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f908152600e602052604090205460ff16610c0e576040517fe35e1ed300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6122bd826131b3565b90505f612710600954836122d19190613c66565b6122db9190613c7d565b90505f6122e88284613c0f565b9050600d54816122f760055490565b6123019190613bfc565b1115612339576040517f9c960c6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61234384826132bf565b811561238a5761238a73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633846130df565b600a546123d69073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811691610100900416836130df565b6040805184815260208101849052339173ffffffffffffffffffffffffffffffffffffffff8716917faf4eaa811715c916f90eae521acf99b305a7b017af01066eb31cfbede2a4fa45910160405180910390a35050919050565b600a80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8416908102919091179091556040519081527f8c25a8c4e1e16b73c6b3f1838b1fce5f427542654c22e0c2747232e78e518cb6906020016119f3565b600c80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055604051600181527f9acf9166c4f7fe511d2cbf97021911adce2432b21e58b3a960c20924e4a9f81590602001611750565b5f61252582612697565b610be53361292e565b5f33610bdf818585612ca7565b5f61254582612697565b610be533611f24565b600c547501000000000000000000000000000000000000000000900460ff1615610b40576040517f443da05b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125ae8282612f1b565b8173ffffffffffffffffffffffffffffffffffffffff167ff034c8ef36a776c16481660ebabfc5fefb012d0216bdca1e319e505139ddd8c282604051611bd291815260200190565b5f6126018383612820565b905061260c8361292e565b610cec9082613bfc565b73ffffffffffffffffffffffffffffffffffffffff82165f908152601360205260408120805483929061264a908490613c0f565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907fc8ce495b026a1dd63df2fe39907a16dd18fe9740a4a1627dcdc934f7eb041c9390602001611bd2565b6126a0816133b2565b600a546126ef9073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116913391610100909104168461343a565b6126f933826132bf565b60405181815233907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c490602001611f19565b600c80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f4324195566b322742774293fde8736bce7c39fb4c6e0a72d1448b9d5270ed12b906020016119f3565b73ffffffffffffffffffffffffffffffffffffffff82165f818152600f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fd10c392295f26878d83a87e077dade637f269e806ae702a78da5d91ff4bfd1e49101611bd2565b5f61282b8383613498565b61286c73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001684846130df565b8273ffffffffffffffffffffffffffffffffffffffff167f848f9e7aa591d2555bcc69c44a97cf51bc4c5b8a8533af5fe53315815863c416836040516128b491815260200190565b60405180910390a250919050565b335f8181526012602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f846180f0bc83e5e274a962758a11f6b693c99e916696d728b6caa2d4f2fc88749101611f19565b5f612938826131b3565b9050600d548161294760055490565b6129519190613bfc565b1115612989576040517f9c960c6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61299382826132bf565b600a546129df9073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811691610100900416836130df565b8173ffffffffffffffffffffffffffffffffffffffff167f05cd4ef3654b71705aeab65b0a34502b6859bac071a4b6d704b63db8d3dab3d882604051611fb991815260200190565b612a3182826132bf565b8173ffffffffffffffffffffffffffffffffffffffff167f62f93f1b31714b9d7ec79040d8257e63e03448ab8853d4fa6109b7ce22171a8b82604051611bd291815260200190565b600d8190556040518181527f4b26f6244f0c5e2ce9ac8d7dfd1191255cdb3bc1e68ed3c4e1a01784ac2cd8f5906020016119f3565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526012602052604081205460ff1615156001148015612b025750600b5473ffffffffffffffffffffffffffffffffffffffff838116911614155b8015610cec5750600b5473ffffffffffffffffffffffffffffffffffffffff84811691161415905092915050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b67575050565b73ffffffffffffffffffffffffffffffffffffffff8083165f9081526011602052604080822054928416825281208054909190612ba5908490613bfc565b90915550505073ffffffffffffffffffffffffffffffffffffffff165f90815260116020526040812055565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612ca15781811015612c94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016112c4565b612ca1848484840361175a565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316612d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016112c4565b73ffffffffffffffffffffffffffffffffffffffff8216612ded576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016112c4565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526003602052604090205481811015612ea2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016112c4565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526003602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612f0e9086815260200190565b60405180910390a3612ca1565b73ffffffffffffffffffffffffffffffffffffffff8216612fbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016112c4565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526003602052604090205481811015613073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016112c4565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526003602090815260408083208686039055600580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526113bd9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613567565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526011602052604081205490819003613212576040517f79a85f2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff9091165f9081526011602052604081205590565b60015474010000000000000000000000000000000000000000900460ff16610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016112c4565b73ffffffffffffffffffffffffffffffffffffffff821661333c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016112c4565b8060055f82825461334d9190613bfc565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b805f036133eb576040517faa7feadc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54816133f860055490565b6134029190613bfc565b1115610c0e576040517f9c960c6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052612ca19085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401613131565b805f036134d1576040517faa7feadc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82165f9081526011602052604090205481811015613530576040517f0ffe80f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61353a8282613c0f565b73ffffffffffffffffffffffffffffffffffffffff9093165f908152601160205260409020929092555050565b5f6135c8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166136749092919063ffffffff16565b905080515f14806135e85750808060200190518101906135e89190613cb5565b6113bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016112c4565b606061368284845f8561368a565b949350505050565b60608247101561371c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016112c4565b5f5f8673ffffffffffffffffffffffffffffffffffffffff1685876040516137449190613cd0565b5f6040518083038185875af1925050503d805f811461377e576040519150601f19603f3d011682016040523d82523d5f602084013e613783565b606091505b50915091506137948783838761379f565b979650505050505050565b606083156138345782515f0361382d5773ffffffffffffffffffffffffffffffffffffffff85163b61382d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016112c4565b5081613682565b61368283838151156138495781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c491905b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611183575f5ffd5b5f5f60408385031215613900575f5ffd5b613909836138cc565b946020939093013593505050565b5f60208284031215613927575f5ffd5b610cec826138cc565b5f5f5f60608486031215613942575f5ffd5b61394b846138cc565b9250613959602085016138cc565b929592945050506040919091013590565b5f6020828403121561397a575f5ffd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126139bd575f5ffd5b813567ffffffffffffffff8111156139d7576139d7613981565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff82111715613a2257613a22613981565b604052918252602081850181019290810186841115613a3f575f5ffd5b6020860192505b83831015613a6557613a57836138cc565b815260209283019201613a46565b5095945050505050565b5f5f60408385031215613a80575f5ffd5b823567ffffffffffffffff811115613a96575f5ffd5b613aa2858286016139ae565b95602094909401359450505050565b602080825282518282018190525f918401906040840190835b81811015613ae8578351835260209384019390920191600101613aca565b509095945050505050565b5f60208284031215613b03575f5ffd5b813567ffffffffffffffff811115613b19575f5ffd5b613682848285016139ae565b5f5f60408385031215613b36575f5ffd5b613b3f836138cc565b9150613b4d602084016138cc565b90509250929050565b8015158114610c0e575f5ffd5b5f60208284031215613b73575f5ffd5b8135610cec81613b56565b600181811c90821680613b9257607f821691505b602082108103613bc9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610be557610be5613bcf565b81810381811115610be557610be5613bcf565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215613c5f575f5ffd5b5051919050565b8082028115828204841417610be557610be5613bcf565b5f82613cb0577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f60208284031215613cc5575f5ffd5b8151610cec81613b56565b5f82518060208501845e5f92019182525091905056fea2646970667358221220fc9ed1527d100a9d656a84f8387726e84aecf106c867e15473b75ed78f6b037a64736f6c634300081d0033000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb900000000000000000000000028839a860dbf95e013d6ea528f6140e7340d0880000000000000000000000000cdc4ca5c30256ecb6f473b37e3c2a9a9a4e934f9000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000e8d4a5100000000000000000000000000000000000000000000000000000000000000007d000000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000004200000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000004b9a22da2c2b6f3b61b232a70ab8f75c9080f93c000000000000000000000000c167b6c615ccabf9465c8ad1f0b3b5854c5556730000000000000000000000007f31bdd729398db00b7b1d5ec2a64d4fa25d18c20000000000000000000000009a764ffd185545070410214130dde1b30db1ea94000000000000000000000000b25cb7da01d7c65e03c8c22644a6cbebff30d12d00000000000000000000000022079a848266a7d2e40cf0ff71a6573d78adcf37000000000000000000000000641ad78baca220c5bd28b51ce8e0f495e85fe6890000000000000000000000009d3c180159687891ee466ffa251dc8a8ea38c396000000000000000000000000a2267e7eea7164161e37f95037250c9a3dcca30a000000000000000000000000a422f5330e1e92cbba82d122e923385f35377580000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000597c30760000000000000000000000000000000000000000000000000000000008eedb550000000000000000000000000000000000000000000000000000000002dc6c000000000000000000000000000000000000000000000000000000000002af68cd0000000000000000000000000000000000000000000000000000000000bebc200000000000000000000000000000000000000000000000000000000000a1748800000000000000000000000000000000000000000000000000000000000fc6c60000000000000000000000000000000000000000000000000000000000077a1000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000002552574120574f524c44204d4f42494c45205641554c542045524332302055534454204152420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012525741574d564552433230555344544152420000000000000000000000000000