0 txs
86.6k calls
constructor
No constructor.
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address _user) view returns (uint256)
burnEventManager
viewfunction burnEventManager() view returns (address)
coolDownInSecs
viewfunction coolDownInSecs() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DENOMINATOR
viewfunction DENOMINATOR() view returns (uint256)
expectedPenaltyAmount
viewfunction expectedPenaltyAmount(uint256 _slotIndex) view returns (uint256 penaltyAmount, uint256 amontToUser)
getFullyUnlock
viewfunction getFullyUnlock(address _user) view returns (uint256 unlockedAmount)
getNextAvailableUnlockSlot
viewfunction getNextAvailableUnlockSlot(address _user) view returns (uint256)
getRewardablePercentWAD
viewfunction getRewardablePercentWAD(address _user) view returns (uint256 percent)
getUserAmountInCoolDown
viewfunction getUserAmountInCoolDown(address _user) view returns (uint256)
getUserNthUnlockSlot
viewfunction getUserNthUnlockSlot(address _user, uint256 n) view returns (uint256 startTime, uint256 endTime, uint256 amountInCoolDown)
getUserTotalLocked
viewfunction getUserTotalLocked(address _user) view returns (uint256 _lockAmount)
getUserUnlockingSchedule
viewfunction getUserUnlockingSchedule(address _user) view returns (tuple[] slots)
getUserUnlockSlotLength
viewfunction getUserUnlockSlotLength(address _user) view returns (uint256)
masterMagpie
viewfunction masterMagpie() view returns (address)
maxSlot
viewfunction maxSlot() view returns (uint256)
MGP
viewfunction MGP() view returns (address)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
penaltyDestination
viewfunction penaltyDestination() view returns (address)
referralStorage
viewfunction referralStorage() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalAmountInCoolDown
viewfunction totalAmountInCoolDown() view returns (uint256)
totalLocked
viewfunction totalLocked() view returns (uint256)
totalPenalty
viewfunction totalPenalty() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
transferWhitelist
viewfunction transferWhitelist(address) view returns (bool)
userUnlockings
viewfunction userUnlockings(address, uint256) view returns (uint256 startTime, uint256 endTime, uint256 amountInCoolDown)
wombatBribeManager
viewfunction wombatBribeManager() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burnVlmgp
nonpayablefunction burnVlmgp(uint256 _vlmgpAmountToBurn, uint256 _vlmgpBurnEventId)
cancelUnlock
nonpayablefunction cancelUnlock(uint256 _slotIndex)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
forceUnLock
nonpayablefunction forceUnLock(uint256 _slotIndex)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
lock
nonpayablefunction lock(uint256 _amount)
lockFor
nonpayablefunction lockFor(uint256 _amount, address _for)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setCoolDownInSecs
nonpayablefunction setCoolDownInSecs(uint256 _coolDownSecs)
setMasterChief
nonpayablefunction setMasterChief(address _masterMagpie)
setMaxSlots
nonpayablefunction setMaxSlots(uint256 _maxSlots)
setMgpBurnEventManager
nonpayablefunction setMgpBurnEventManager(address _burnEventMAnager)
setPenaltyDestination
nonpayablefunction setPenaltyDestination(address _penaltyDestination)
setReferralStorage
nonpayablefunction setReferralStorage(address _referralStorage)
setWhitelistForTransfer
nonpayablefunction setWhitelistForTransfer(address _for, bool _status)
setWombatBribeManager
nonpayablefunction setWombatBribeManager(address _bribeManager)
startUnlock
nonpayablefunction startUnlock(uint256 _amountToCoolDown)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferPenalty
nonpayablefunction transferPenalty()
unlock
nonpayablefunction unlock(uint256 _slotIndex)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
burnEventManagerSet
event burnEventManagerSet(address burnEventManager)
CoolDownInSecsUpdated
event CoolDownInSecsUpdated(uint256 _coolDownSecs)
ForceUnLock
event ForceUnLock(address indexed user, uint256 slotIdx, uint256 mgpamount, uint256 penaltyAmount)
Initialized
event Initialized(uint8 version)
MaxSlotUpdated
event MaxSlotUpdated(uint256 _maxSlot)
NewLock
event NewLock(address indexed user, uint256 indexed timestamp, uint256 amount)
NewMasterChiefUpdated
event NewMasterChiefUpdated(address _oldMaster, address _newMaster)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PenaltyDestinationUpdated
event PenaltyDestinationUpdated(address penaltyDestination)
PenaltySentTo
event PenaltySentTo(address penaltyDestination, uint256 amount)
referralStorageSet
event referralStorageSet(address referralStorage)
ReLock
event ReLock(address indexed user, uint256 slotIdx, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unlock
event Unlock(address indexed user, uint256 indexed timestamp, uint256 amount)
UnlockStarts
event UnlockStarts(address indexed _user, uint256 indexed _timestamp, uint256 _amount)
Unpaused
event Unpaused(address account)
VlMgpBurn
event VlMgpBurn(address indexed user, uint256 indexed timestamp, uint256 amount, uint256 _eventId)
WhitelistSet
event WhitelistSet(address _for, bool _status)
wombatBribeManagerSet
event wombatBribeManagerSet(address wombatBribeManager)
errors
AllUnlockSlotOccupied
error AllUnlockSlotOccupied()
AlreadyMigrated
error AlreadyMigrated()
BeyondUnlockLength
error BeyondUnlockLength()
BeyondUnlockSlotLimit
error BeyondUnlockSlotLimit()
BurnEventManagerNotSet
error BurnEventManagerNotSet()
BurnEvnentManagerPaused
error BurnEvnentManagerPaused()
coolDownInSecCanCauseOverflow
error coolDownInSecCanCauseOverflow()
InvalidAddress
error InvalidAddress()
InvalidCoolDownPeriod
error InvalidCoolDownPeriod()
IsZeroAddress
error IsZeroAddress()
MaxSlotCantLowered
error MaxSlotCantLowered()
MaxSlotShouldNotZero
error MaxSlotShouldNotZero()
NotEnoughLockedMPG
error NotEnoughLockedMPG()
NotInCoolDown
error NotInCoolDown()
PenaltyToNotSet
error PenaltyToNotSet()
StillInCoolDown
error StillInCoolDown()
TransferNotWhiteListed
error TransferNotWhiteListed()
UnlockedAlready
error UnlockedAlready()
UnlockSlotOccupied
error UnlockSlotOccupied()
creation bytecode
0x608060405234801561001057600080fd5b50615aff80620000216000396000f3fe608060405234801561001057600080fd5b50600436106103775760003560e01c806379c94062116101d3578063a506dc3811610104578063d037443e116100a2578063dd62ed3e1161007c578063dd62ed3e14610a5f578063e6af61c814610a8f578063f2fde38b14610aad578063f9fa1b3914610ac957610377565b8063d037443e14610a0b578063d4d500e814610a27578063dd46706414610a4357610377565b8063ae4d7f9a116100de578063ae4d7f9a14610985578063beea574e146109a1578063c8691afe146109bd578063ce002775146109db57610377565b8063a506dc3814610907578063a80b54ad14610925578063a9059cbb1461095557610377565b80638c9d7b6811610171578063918f86741161014b578063918f86741461086957806395d89b41146108875780639f9996da146108a5578063a457c2d7146108d757610377565b80638c9d7b68146107fd5780638da5cb5b1461082d578063918ae0db1461084b57610377565b806381cee15f116101ad57806381cee15f146107875780638456cb59146107a557806387312309146107af57806387994e28146107e157610377565b806379c940621461071f5780637ffbe2411461073b578063819bfd9e1461076b57610377565b80633f4ba83a116102ad578063568914121161024b578063685cacee11610225578063685cacee146106ab57806370a08231146106c9578063715018a6146106f957806374841a7b1461070357610377565b806356891412146106535780635c975abb146106715780636198e3391461068f57610377565b80634a435f49116102875780634a435f49146105f157806351a2c22d146105fb5780635351fdec14610617578063564a5e751461063557610377565b80633f4ba83a146105875780633f4fb28114610591578063468fa7ee146105c157610377565b806322607c611161031a578063313ce567116102f4578063313ce567146104ec578063376cfef51461050a5780633804f0d01461053b578063395093511461055757610377565b806322607c611461047057806323b872dd146104a057806325f62b2a146104d057610377565b806318160ddd1161035657806318160ddd146103e85780631986d5a11461040657806322221a4d14610424578063225d95a71461045457610377565b80626cc35e1461037c57806306fdde031461039a578063095ea7b3146103b8575b600080fd5b610384610ae5565b604051610391919061451a565b60405180910390f35b6103a2610b0c565b6040516103af91906145c5565b60405180910390f35b6103d260048036038101906103cd919061464e565b610b9e565b6040516103df91906146a9565b60405180910390f35b6103f0610bc1565b6040516103fd91906146d3565b60405180910390f35b61040e610bcc565b60405161041b919061451a565b60405180910390f35b61043e600480360381019061043991906146ee565b610bf3565b60405161044b919061481b565b60405180910390f35b61046e60048036038101906104699190614869565b610d24565b005b61048a600480360381019061048591906146ee565b610dc1565b60405161049791906146d3565b60405180910390f35b6104ba60048036038101906104b591906148a9565b610e80565b6040516104c791906146a9565b60405180910390f35b6104ea60048036038101906104e591906148fc565b610eaf565b005b6104f46111ed565b6040516105019190614945565b60405180910390f35b610524600480360381019061051f91906148fc565b6111f6565b604051610532929190614960565b60405180910390f35b610555600480360381019061055091906146ee565b611362565b005b610571600480360381019061056c919061464e565b61146f565b60405161057e91906146a9565b60405180910390f35b61058f6114a6565b005b6105ab60048036038101906105a691906146ee565b6114b8565b6040516105b891906146d3565b60405180910390f35b6105db60048036038101906105d691906146ee565b611637565b6040516105e891906146d3565b60405180910390f35b6105f96118a6565b005b610615600480360381019061061091906146ee565b611a14565b005b61061f611b21565b60405161062c91906149e8565b60405180910390f35b61063d611b47565b60405161064a91906146d3565b60405180910390f35b61065b611b4d565b60405161066891906146d3565b60405180910390f35b610679611b69565b60405161068691906146a9565b60405180910390f35b6106a960048036038101906106a491906148fc565b611b80565b005b6106b3611d8d565b6040516106c0919061451a565b60405180910390f35b6106e360048036038101906106de91906146ee565b611db4565b6040516106f091906146d3565b60405180910390f35b610701611dd9565b005b61071d600480360381019061071891906146ee565b611ded565b005b610739600480360381019061073491906148fc565b611e94565b005b610755600480360381019061075091906146ee565b611f1a565b60405161076291906146a9565b60405180910390f35b610785600480360381019061078091906148fc565b611f3b565b005b61078f61209a565b60405161079c919061451a565b60405180910390f35b6107ad6120c1565b005b6107c960048036038101906107c4919061464e565b6120d3565b6040516107d893929190614a03565b60405180910390f35b6107fb60048036038101906107f691906148fc565b61211b565b005b610817600480360381019061081291906146ee565b6121e9565b60405161082491906146d3565b60405180910390f35b610835612236565b604051610842919061451a565b60405180910390f35b610853612260565b604051610860919061451a565b60405180910390f35b610871612286565b60405161087e91906146d3565b60405180910390f35b61088f61228c565b60405161089c91906145c5565b60405180910390f35b6108bf60048036038101906108ba919061464e565b61231e565b6040516108ce93929190614a03565b60405180910390f35b6108f160048036038101906108ec919061464e565b6123a3565b6040516108fe91906146a9565b60405180910390f35b61090f61241a565b60405161091c91906146d3565b60405180910390f35b61093f600480360381019061093a91906146ee565b612420565b60405161094c91906146d3565b60405180910390f35b61096f600480360381019061096a919061464e565b61250c565b60405161097c91906146a9565b60405180910390f35b61099f600480360381019061099a91906146ee565b61252f565b005b6109bb60048036038101906109b691906146ee565b61263c565b005b6109c5612771565b6040516109d291906146d3565b60405180910390f35b6109f560048036038101906109f091906146ee565b612777565b604051610a0291906146d3565b60405180910390f35b610a256004803603810190610a2091906148fc565b612820565b005b610a416004803603810190610a3c9190614a3a565b612a43565b005b610a5d6004803603810190610a5891906148fc565b612eec565b005b610a796004803603810190610a749190614a7a565b612fa6565b604051610a8691906146d3565b60405180910390f35b610a9761302d565b604051610aa491906146d3565b60405180910390f35b610ac76004803603810190610ac291906146ee565b613034565b005b610ae36004803603810190610ade9190614aba565b6130b7565b005b61010660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060368054610b1b90614b29565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4790614b29565b8015610b945780601f10610b6957610100808354040283529160200191610b94565b820191906000526020600020905b815481529060010190602001808311610b7757829003601f168201915b5050505050905090565b600080610ba9613172565b9050610bb681858561317a565b600191505092915050565b600061010554905090565b61010760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000610c00836121e9565b90508067ffffffffffffffff811115610c1c57610c1b614b5a565b5b604051908082528060200260200182016040528015610c5557816020015b610c426144b8565b815260200190600190039081610c3a5790505b50915060005b81811015610d1d5761010060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110610cb557610cb4614b89565b5b90600052602060002090600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050838281518110610cff57610cfe614b89565b5b60200260200101819052508080610d1590614be7565b915050610c5b565b5050919050565b610d2c613343565b8061010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0aa5ec5ffdc7f6f9c4d0dded489d7450297155cb2f71cb771e02427f7dff4f518282604051610db5929190614c2f565b60405180910390a15050565b60008060fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635750ec5330856040518363ffffffff1660e01b8152600401610e21929190614c58565b6040805180830381865afa158015610e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e619190614c96565b509050610e6d83612777565b81610e789190614cd6565b915050919050565b600080610e8b613172565b9050610e988582856133c1565b610ea385858561344d565b60019150509392505050565b610eb76136cf565b600260c95403610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390614d56565b60405180910390fd5b600260c981905550610f0d81613719565b610f16336138a9565b6000610f2133612420565b90508160ff6000828254610f359190614d76565b92505081905550610f45336121e9565b811015610ffa57604051806060016040528042815260200160fe5442610f6b9190614d76565b81526020018381525061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610fc657610fc5614b89565b5b90600052602060002090600302016000820151816000015560208201518160010155604082015181600201559050506110ac565b61010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806060016040528042815260200160fe54426110599190614d76565b815260200184815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000155602082015181600101556040820151816002015550505b600073ffffffffffffffffffffffffffffffffffffffff1661010660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111925761010660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338518d7d336040518263ffffffff1660e01b815260040161115f919061451a565b600060405180830381600087803b15801561117957600080fd5b505af115801561118d573d6000803e3d6000fd5b505050505b423373ffffffffffffffffffffffffffffffffffffffff167fc07f3591a13f4e6a3f0ce1c9d4073a81e3c8e3dc18cbde71be6e37b4823c43d8846040516111d991906146d3565b60405180910390a350600160c98190555050565b60006012905090565b600080600061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061124d5761124c614b89565b5b906000526020600020906003020190506000816002015490506000600583600201546112799190614dd9565b9050600081836112899190614cd6565b9050600064e8d4a510009050846000015485600101546112a99190614cd6565b8560000154426112b99190614cd6565b1161131b5764e8d4a510006002866000015487600101546112da9190614cd6565b64e8d4a510008860000154426112f09190614cd6565b6112fa9190614e0a565b6113049190614dd9565b61130e9190614f7f565b6113189190614dd9565b90505b600064e8d4a51000828461132f9190614e0a565b6113399190614dd9565b905080846113479190614d76565b965086856113559190614cd6565b9750505050505050915091565b61136a613343565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113d0576040517f1326d6d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061010760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0dddad01e4e280504b29be98658fdcaf87e08b69af06b1ee9c259f2f9e9d64dd61010760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611464919061451a565b60405180910390a150565b60008061147a613172565b905061149b81858561148c8589612fa6565b6114969190614d76565b61317a565b600191505092915050565b6114ae613343565b6114b6613a2f565b565b6000806114c4836121e9565b905060005b8181101561163057600061010060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061152557611524614b89565b5b9060005260206000209060030201600201541180156115a6575061010060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811061159157611590614b89565b5b90600052602060002090600302016001015442115b1561161d5761010060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106115fd576115fc614b89565b5b9060005260206000209060030201600201548361161a9190614d76565b92505b808061162890614be7565b9150506114c9565b5050919050565b60008061164383610dc1565b9050600061165084612777565b9050600081836116609190614d76565b90506000810361167657600093505050506118a1565b80670de0b6b3a76400008461168b9190614e0a565b6116959190614dd9565b93506000429050600061010060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060005b818054905081101561189a57600082828154811061170457611703614b89565b5b90600052602060002090600302016002015411156118875781818154811061172f5761172e614b89565b5b9060005260206000209060030201600101544211156118355781818154811061175b5761175a614b89565b5b906000526020600020906003020160000154836117789190614cd6565b8483838154811061178c5761178b614b89565b5b9060005260206000209060030201600001548484815481106117b1576117b0614b89565b5b9060005260206000209060030201600101546117cd9190614cd6565b670de0b6b3a76400008585815481106117e9576117e8614b89565b5b9060005260206000209060030201600201546118059190614e0a565b61180f9190614e0a565b6118199190614dd9565b6118239190614dd9565b8761182e9190614d76565b9650611886565b83670de0b6b3a764000083838154811061185257611851614b89565b5b90600052602060002090600302016002015461186e9190614e0a565b6118789190614dd9565b876118839190614d76565b96505b5b808061189290614be7565b9150506116e3565b5050505050505b919050565b6118ae613343565b600073ffffffffffffffffffffffffffffffffffffffff1661010260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611937576040517f99713e7a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119aa61010260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101035460fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613a929092919063ffffffff16565b7ff62882a4c50156e52922bf390691acb0cef0424976e1ce6fb8755fa2c34eab9361010260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661010354604051611a01929190614fca565b60405180910390a1600061010381905550565b611a1c613343565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a82576040517f1326d6d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061010460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbfadd6f8b782ea30bcb7295b3b55c2889165cc547a6bb2ff195845657aa5b5d461010460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611b16919061451a565b60405180910390a150565b60fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60fe5481565b600060ff54611b5a610bc1565b611b649190614cd6565b905090565b6000609760009054906101000a900460ff16905090565b611b886136cf565b600260c95403611bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc490614d56565b60405180910390fd5b600260c981905550611bdf3382613b18565b600061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611c3357611c32614b89565b5b906000526020600020906003020190504281600101541115611c81576040517fba28856500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816002015403611cbf576040517f840920d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611cc8336138a9565b600081600201549050611cda81613b98565b60008260020181905550611d31338260fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613a929092919063ffffffff16565b423373ffffffffffffffffffffffffffffffffffffffff167ff7870c5b224cbc19873599e46ccfc7103934650509b1af0c3ce90138377c200483604051611d7891906146d3565b60405180910390a35050600160c98190555050565b61010460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611dbf82612777565b611dc883610dc1565b611dd29190614d76565b9050919050565b611de1613343565b611deb6000613c5d565b565b611df5613343565b8061010260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9db59ef0c27af01d2c275b336b0e8f95fa3b1def6693975bb9e009b44a889db761010260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611e89919061451a565b60405180910390a150565b611e9c613343565b60fc548111611ed7576040517f877fccab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fc819055507fd47c02f96c4a46c9f2a757a1a8ae44a229f63b9c50b540380d92dea51bb81eaa60fc54604051611f0f91906146d3565b60405180910390a150565b6101016020528060005260406000206000915054906101000a900460ff1681565b611f436136cf565b600260c95403611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f90614d56565b60405180910390fd5b600260c981905550611f9a3382613b18565b600061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611fee57611fed614b89565b5b906000526020600020906003020190506120083383613d23565b612011336138a9565b6000816002015490508060ff600082825461202c9190614cd6565b92505081905550600082600201819055503373ffffffffffffffffffffffffffffffffffffffff167f176d0e0791987dcc139357460456c1f2b69cbc86efe54327be336cc1a9441ddc8483604051612085929190614960565b60405180910390a25050600160c98190555050565b61010260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6120c9613343565b6120d1613e07565b565b61010060205281600052604060002081815481106120f057600080fd5b9060005260206000209060030201600091509150508060000154908060010154908060020154905083565b612123613343565b70010000000000000000000000000000000081111561216e576040517f9698e9bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081036121a8576040517f844e73fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fe819055507f383fa804824389da2cf426b0412ba9268441cff39e81a861284fe8acd2ee2048816040516121de91906146d3565b60405180910390a150565b600061010060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61271081565b60606037805461229b90614b29565b80601f01602080910402602001604051908101604052809291908181526020018280546122c790614b29565b80156123145780601f106122e957610100808354040283529160200191612314565b820191906000526020600020905b8154815290600101906020018083116122f757829003601f168201915b5050505050905090565b60008060008061010060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811061237657612375614b89565b5b90600052602060002090600302019050806000015493508060010154925080600201549150509250925092565b6000806123ae613172565b905060006123bc8286612fa6565b905083811015612401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f890615065565b60405180910390fd5b61240e828686840361317a565b60019250505092915050565b60ff5481565b60008061242c836121e9565b905060fc548110156124415780915050612507565b60005b818110156124d457600061010060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106124a05761249f614b89565b5b906000526020600020906003020160020154036124c1578092505050612507565b80806124cc90614be7565b915050612444565b506040517f435bc5b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600080612517613172565b905061252481858561344d565b600191505092915050565b612537613343565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361259d576040517f1326d6d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061010660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f52a38ecbc861dae53f2f9a59136cb6bc4e3835b4b1eab203ca12822ea613c2be61010660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051612631919061451a565b60405180910390a150565b612644613343565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036126aa576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f480a08fa963e4b26d1261a3558ae7ecf5304e3fe04a8718c993682b7a0bcf2098160fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051612765929190614c58565b60405180910390a15050565b60fc5481565b600080612783836121e9565b90506000805b828110156128155761010060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106127e3576127e2614b89565b5b906000526020600020906003020160020154826128009190614d76565b9150808061280d90614be7565b915050612789565b508092505050919050565b6128286136cf565b600260c9540361286d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286490614d56565b60405180910390fd5b600260c98190555061287f3382613b18565b600061010060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106128d3576128d2614b89565b5b906000526020600020906003020190506000816002015403612921576040517f840920d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008082600201549050612934336138a9565b826001015442101561295c5761294a3385613d23565b612953846111f6565b80925081935050505b6129698360020154613b98565b6129b6338260fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613a929092919063ffffffff16565b8161010360008282546129c99190614d76565b92505081905550600083600201819055504283600101819055503373ffffffffffffffffffffffffffffffffffffffff167f79877461713348f098b74e44ee7f5085e25a32a5971d785177812b1b31fd8ad6858385604051612a2d93929190614a03565b60405180910390a2505050600160c98190555050565b612a4b6136cf565b600260c95403612a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8790614d56565b60405180910390fd5b600260c981905550600073ffffffffffffffffffffffffffffffffffffffff1661010760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612b21576040517fd9350d3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb5919061509a565b15612bec576040517fa9a86fb000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612bf582613719565b612bfe336138a9565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384f31e9683336040518363ffffffff1660e01b8152600401612c5b9291906150c7565b600060405180830381600087803b158015612c7557600080fd5b505af1158015612c89573d6000803e3d6000fd5b50505050816101056000828254612ca09190614cd6565b92505081905550612d1761010760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613e6a9092919063ffffffff16565b61010760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663570dd66f3383856040518463ffffffff1660e01b8152600401612d77939291906150f0565b600060405180830381600087803b158015612d9157600080fd5b505af1158015612da5573d6000803e3d6000fd5b50505050600073ffffffffffffffffffffffffffffffffffffffff1661010660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e8f5761010660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338518d7d336040518263ffffffff1660e01b8152600401612e5c919061451a565b600060405180830381600087803b158015612e7657600080fd5b505af1158015612e8a573d6000803e3d6000fd5b505050505b423373ffffffffffffffffffffffffffffffffffffffff167f03ae89654a4d06bd74bbb459bd8157d1c863696660410831a467fbd3c73d95df8484604051612ed8929190614960565b60405180910390a3600160c9819055505050565b612ef46136cf565b600260c95403612f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3090614d56565b60405180910390fd5b600260c981905550612f4c333383613f7c565b423373ffffffffffffffffffffffffffffffffffffffff167f7879fe07a34927cf93a00574a8c2e55740a44179eb359ed6850e486df16c522283604051612f9391906146d3565b60405180910390a3600160c98190555050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6101035481565b61303c613343565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036130ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a290615199565b60405180910390fd5b6130b481613c5d565b50565b6130bf6136cf565b600260c95403613104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130fb90614d56565b60405180910390fd5b600260c981905550613117338284613f7c565b428173ffffffffffffffffffffffffffffffffffffffff167f7879fe07a34927cf93a00574a8c2e55740a44179eb359ed6850e486df16c52228460405161315e91906146d3565b60405180910390a3600160c9819055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036131e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131e09061522b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161324f906152bd565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161333691906146d3565b60405180910390a3505050565b61334b613172565b73ffffffffffffffffffffffffffffffffffffffff16613369612236565b73ffffffffffffffffffffffffffffffffffffffff16146133bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133b690615329565b60405180910390fd5b565b60006133cd8484612fa6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146134475781811015613439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161343090615395565b60405180910390fd5b613446848484840361317a565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036134bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134b390615427565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361352b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613522906154b9565b60405180910390fd5b61353683838361415f565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156135bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135b49061554b565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136529190614d76565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136b691906146d3565b60405180910390a36136c9848484614164565b50505050565b6136d7611b69565b15613717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161370e906155b7565b60405180910390fd5b565b61372233610dc1565b81111561375b576040517f7c7a87cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008161376733610dc1565b6137719190614cd6565b9050600073ffffffffffffffffffffffffffffffffffffffff1661010460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561386e575061010460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166354364416336040518263ffffffff1660e01b815260040161382a919061451a565b602060405180830381865afa158015613847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061386b91906155d7565b81105b156138a5576040517f7c7a87cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b6000600167ffffffffffffffff8111156138c6576138c5614b5a565b5b6040519080825280602002602001820160405280156138f45781602001602082028036833780820191505090505b5090506000600167ffffffffffffffff81111561391457613913614b5a565b5b60405190808252806020026020018201604052801561394757816020015b60608152602001906001900390816139325790505b509050308260008151811061395f5761395e614b89565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a1198e8383866040518463ffffffff1660e01b81526004016139f8939291906157f3565b600060405180830381600087803b158015613a1257600080fd5b505af1158015613a26573d6000803e3d6000fd5b50505050505050565b613a37614169565b6000609760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa613a7b613172565b604051613a88919061451a565b60405180910390a1565b613b138363a9059cbb60e01b8484604051602401613ab1929190614fca565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506141b2565b505050565b60fc548110613b53576040517f422c025600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613b5c826121e9565b8110613b94576040517fbd77ea1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384f31e9682336040518363ffffffff1660e01b8152600401613bf59291906150c7565b600060405180830381600087803b158015613c0f57600080fd5b505af1158015613c23573d6000803e3d6000fd5b505050508060ff6000828254613c399190614cd6565b92505081905550806101056000828254613c539190614cd6565b9250508190555050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061010060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613d7757613d76614b89565b5b906000526020600020906003020190506000816002015403613dc5576040517f840920d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42816001015411613e02576040517f708ccf9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b613e0f6136cf565b6001609760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613e53613172565b604051613e60919061451a565b60405180910390a1565b6000818473ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30866040518363ffffffff1660e01b8152600401613ea8929190614c58565b602060405180830381865afa158015613ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee991906155d7565b613ef39190614d76565b9050613f768463095ea7b360e01b8584604051602401613f14929190614fca565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506141b2565b50505050565b613fcb83308360fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16614279909392919063ffffffff16565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634570018c82846040518363ffffffff1660e01b81526004016140289291906150c7565b600060405180830381600087803b15801561404257600080fd5b505af1158015614056573d6000803e3d6000fd5b5050505080610105600082825461406d9190614d76565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff1661010660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461415a5761010660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338518d7d836040518263ffffffff1660e01b8152600401614127919061451a565b600060405180830381600087803b15801561414157600080fd5b505af1158015614155573d6000803e3d6000fd5b505050505b505050565b505050565b505050565b614171611b69565b6141b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141a790615884565b60405180910390fd5b565b6000614214826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166143029092919063ffffffff16565b90506000815111156142745780806020019051810190614234919061509a565b614273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161426a90615916565b60405180910390fd5b5b505050565b6142fc846323b872dd60e01b85858560405160240161429a93929190615936565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506141b2565b50505050565b6060614311848460008561431a565b90509392505050565b60608247101561435f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614356906159df565b60405180910390fd5b6143688561442e565b6143a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161439e90615a4b565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516143d09190615ab2565b60006040518083038185875af1925050503d806000811461440d576040519150601f19603f3d011682016040523d82523d6000602084013e614412565b606091505b5091509150614422828286614451565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315614461578290506144b1565b6000835111156144745782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016144a891906145c5565b60405180910390fd5b9392505050565b60405180606001604052806000815260200160008152602001600081525090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614504826144d9565b9050919050565b614514816144f9565b82525050565b600060208201905061452f600083018461450b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561456f578082015181840152602081019050614554565b60008484015250505050565b6000601f19601f8301169050919050565b600061459782614535565b6145a18185614540565b93506145b1818560208601614551565b6145ba8161457b565b840191505092915050565b600060208201905081810360008301526145df818461458c565b905092915050565b600080fd5b6145f5816144f9565b811461460057600080fd5b50565b600081359050614612816145ec565b92915050565b6000819050919050565b61462b81614618565b811461463657600080fd5b50565b60008135905061464881614622565b92915050565b60008060408385031215614665576146646145e7565b5b600061467385828601614603565b925050602061468485828601614639565b9150509250929050565b60008115159050919050565b6146a38161468e565b82525050565b60006020820190506146be600083018461469a565b92915050565b6146cd81614618565b82525050565b60006020820190506146e860008301846146c4565b92915050565b600060208284031215614704576147036145e7565b5b600061471284828501614603565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61475081614618565b82525050565b60608201600082015161476c6000850182614747565b50602082015161477f6020850182614747565b5060408201516147926040850182614747565b50505050565b60006147a48383614756565b60608301905092915050565b6000602082019050919050565b60006147c88261471b565b6147d28185614726565b93506147dd83614737565b8060005b8381101561480e5781516147f58882614798565b9750614800836147b0565b9250506001810190506147e1565b5085935050505092915050565b6000602082019050818103600083015261483581846147bd565b905092915050565b6148468161468e565b811461485157600080fd5b50565b6000813590506148638161483d565b92915050565b600080604083850312156148805761487f6145e7565b5b600061488e85828601614603565b925050602061489f85828601614854565b9150509250929050565b6000806000606084860312156148c2576148c16145e7565b5b60006148d086828701614603565b93505060206148e186828701614603565b92505060406148f286828701614639565b9150509250925092565b600060208284031215614912576149116145e7565b5b600061492084828501614639565b91505092915050565b600060ff82169050919050565b61493f81614929565b82525050565b600060208201905061495a6000830184614936565b92915050565b600060408201905061497560008301856146c4565b61498260208301846146c4565b9392505050565b6000819050919050565b60006149ae6149a96149a4846144d9565b614989565b6144d9565b9050919050565b60006149c082614993565b9050919050565b60006149d2826149b5565b9050919050565b6149e2816149c7565b82525050565b60006020820190506149fd60008301846149d9565b92915050565b6000606082019050614a1860008301866146c4565b614a2560208301856146c4565b614a3260408301846146c4565b949350505050565b60008060408385031215614a5157614a506145e7565b5b6000614a5f85828601614639565b9250506020614a7085828601614639565b9150509250929050565b60008060408385031215614a9157614a906145e7565b5b6000614a9f85828601614603565b9250506020614ab085828601614603565b9150509250929050565b60008060408385031215614ad157614ad06145e7565b5b6000614adf85828601614639565b9250506020614af085828601614603565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614b4157607f821691505b602082108103614b5457614b53614afa565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614bf282614618565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c2457614c23614bb8565b5b600182019050919050565b6000604082019050614c44600083018561450b565b614c51602083018461469a565b9392505050565b6000604082019050614c6d600083018561450b565b614c7a602083018461450b565b9392505050565b600081519050614c9081614622565b92915050565b60008060408385031215614cad57614cac6145e7565b5b6000614cbb85828601614c81565b9250506020614ccc85828601614c81565b9150509250929050565b6000614ce182614618565b9150614cec83614618565b9250828203905081811115614d0457614d03614bb8565b5b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000614d40601f83614540565b9150614d4b82614d0a565b602082019050919050565b60006020820190508181036000830152614d6f81614d33565b9050919050565b6000614d8182614618565b9150614d8c83614618565b9250828201905080821115614da457614da3614bb8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614de482614618565b9150614def83614618565b925082614dff57614dfe614daa565b5b828204905092915050565b6000614e1582614618565b9150614e2083614618565b9250828202614e2e81614618565b91508282048414831517614e4557614e44614bb8565b5b5092915050565b60008160011c9050919050565b6000808291508390505b6001851115614ea357808604811115614e7f57614e7e614bb8565b5b6001851615614e8e5780820291505b8081029050614e9c85614e4c565b9450614e63565b94509492505050565b600082614ebc5760019050614f78565b81614eca5760009050614f78565b8160018114614ee05760028114614eea57614f19565b6001915050614f78565b60ff841115614efc57614efb614bb8565b5b8360020a915084821115614f1357614f12614bb8565b5b50614f78565b5060208310610133831016604e8410600b8410161715614f4e5782820a905083811115614f4957614f48614bb8565b5b614f78565b614f5b8484846001614e59565b92509050818404811115614f7257614f71614bb8565b5b81810290505b9392505050565b6000614f8a82614618565b9150614f9583614929565b9250614fc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614eac565b905092915050565b6000604082019050614fdf600083018561450b565b614fec60208301846146c4565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061504f602583614540565b915061505a82614ff3565b604082019050919050565b6000602082019050818103600083015261507e81615042565b9050919050565b6000815190506150948161483d565b92915050565b6000602082840312156150b0576150af6145e7565b5b60006150be84828501615085565b91505092915050565b60006040820190506150dc60008301856146c4565b6150e9602083018461450b565b9392505050565b6000606082019050615105600083018661450b565b61511260208301856146c4565b61511f60408301846146c4565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615183602683614540565b915061518e82615127565b604082019050919050565b600060208201905081810360008301526151b281615176565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000615215602483614540565b9150615220826151b9565b604082019050919050565b6000602082019050818103600083015261524481615208565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006152a7602283614540565b91506152b28261524b565b604082019050919050565b600060208201905081810360008301526152d68161529a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000615313602083614540565b915061531e826152dd565b602082019050919050565b6000602082019050818103600083015261534281615306565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061537f601d83614540565b915061538a82615349565b602082019050919050565b600060208201905081810360008301526153ae81615372565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000615411602583614540565b915061541c826153b5565b604082019050919050565b6000602082019050818103600083015261544081615404565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006154a3602383614540565b91506154ae82615447565b604082019050919050565b600060208201905081810360008301526154d281615496565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615535602683614540565b9150615540826154d9565b604082019050919050565b6000602082019050818103600083015261556481615528565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006155a1601083614540565b91506155ac8261556b565b602082019050919050565b600060208201905081810360008301526155d081615594565b9050919050565b6000602082840312156155ed576155ec6145e7565b5b60006155fb84828501614c81565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615639816144f9565b82525050565b600061564b8383615630565b60208301905092915050565b6000602082019050919050565b600061566f82615604565b615679818561560f565b935061568483615620565b8060005b838110156156b557815161569c888261563f565b97506156a783615657565b925050600181019050615688565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061570a82615604565b61571481856156ee565b935061571f83615620565b8060005b83811015615750578151615737888261563f565b975061574283615657565b925050600181019050615723565b5085935050505092915050565b600061576983836156ff565b905092915050565b6000602082019050919050565b6000615789826156c2565b61579381856156cd565b9350836020820285016157a5856156de565b8060005b858110156157e157848403895281516157c2858261575d565b94506157cd83615771565b925060208a019950506001810190506157a9565b50829750879550505050505092915050565b6000606082019050818103600083015261580d8186615664565b90508181036020830152615821818561577e565b9050615830604083018461450b565b949350505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b600061586e601483614540565b915061587982615838565b602082019050919050565b6000602082019050818103600083015261589d81615861565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000615900602a83614540565b915061590b826158a4565b604082019050919050565b6000602082019050818103600083015261592f816158f3565b9050919050565b600060608201905061594b600083018661450b565b615958602083018561450b565b61596560408301846146c4565b949350505050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006159c9602683614540565b91506159d48261596d565b604082019050919050565b600060208201905081810360008301526159f8816159bc565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000615a35601d83614540565b9150615a40826159ff565b602082019050919050565b60006020820190508181036000830152615a6481615a28565b9050919050565b600081519050919050565b600081905092915050565b6000615a8c82615a6b565b615a968185615a76565b9350615aa6818560208601614551565b80840191505092915050565b6000615abe8284615a81565b91508190509291505056fea2646970667358221220aed3035b33a01af2013d46da2f9691f3b9ce6ce787fd3d27281d9fdddf60d45b64736f6c63430008130033