0 txs
3.5k calls
constructor
constructor()
functions
adminLock
viewfunction adminLock() view returns (bool)
avatar
viewfunction avatar() view returns (address)
encodeMultisend
purefunction encodeMultisend(bytes[] _calls, address _target) pure returns (bytes encodedMultisend)
getGuard
viewfunction getGuard() view returns (address _guard)
getProposalStatus
viewfunction getProposalStatus(uint32 id) view returns (bool[4])
governorLock
viewfunction governorLock() view returns (bool)
gracePeriod
viewfunction gracePeriod() view returns (uint32)
guard
viewfunction guard() view returns (address)
hashOperation
purefunction hashOperation(bytes _transactions) pure returns (bytes32 hash)
isAdmin
viewfunction isAdmin(address shaman) view returns (bool)
isGovernor
viewfunction isGovernor(address shaman) view returns (bool)
isManager
viewfunction isManager(address shaman) view returns (bool)
isTrustedForwarder
viewfunction isTrustedForwarder(address forwarder) view returns (bool)
latestSponsoredProposalId
viewfunction latestSponsoredProposalId() view returns (uint32)
lootToken
viewfunction lootToken() view returns (address)
managerLock
viewfunction managerLock() view returns (bool)
memberVoted
viewfunction memberVoted(address, uint32) view returns (bool)
minRetentionPercent
viewfunction minRetentionPercent() view returns (uint256)
multisendLibrary
viewfunction multisendLibrary() view returns (address)
owner
viewfunction owner() view returns (address)
proposalCount
viewfunction proposalCount() view returns (uint32)
proposalOffering
viewfunction proposalOffering() view returns (uint256)
proposals
viewfunction proposals(uint256) view returns (uint32 id, uint32 prevProposalId, uint32 votingStarts, uint32 votingEnds, uint32 graceEnds, uint32 expiration, uint256 baalGas, uint256 yesVotes, uint256 noVotes, uint256 maxTotalSharesAndLootAtVote, uint256 maxTotalSharesAtSponsor, address sponsor, bytes32 proposalDataHash)
quorumPercent
viewfunction quorumPercent() view returns (uint256)
shamans
viewfunction shamans(address) view returns (uint256)
sharesToken
viewfunction sharesToken() view returns (address)
sponsorThreshold
viewfunction sponsorThreshold() view returns (uint256)
state
viewfunction state(uint32 id) view returns (uint8)
target
viewfunction target() view returns (address)
totalLoot
viewfunction totalLoot() view returns (uint256)
totalShares
viewfunction totalShares() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
trustedForwarder
viewfunction trustedForwarder() view returns (address)
versionRecipient
viewfunction versionRecipient() view returns (string)
votingNonces
viewfunction votingNonces(address) view returns (uint256)
votingPeriod
viewfunction votingPeriod() view returns (uint32)
burnLoot
nonpayablefunction burnLoot(address[] from, uint256[] amount)
burnShares
nonpayablefunction burnShares(address[] from, uint256[] amount)
cancelProposal
nonpayablefunction cancelProposal(uint32 id)
executeAsBaal
nonpayablefunction executeAsBaal(address _to, uint256 _value, bytes _data)
lockAdmin
nonpayablefunction lockAdmin()
lockGovernor
nonpayablefunction lockGovernor()
lockManager
nonpayablefunction lockManager()
mintLoot
nonpayablefunction mintLoot(address[] to, uint256[] amount)
mintShares
nonpayablefunction mintShares(address[] to, uint256[] amount)
processProposal
nonpayablefunction processProposal(uint32 id, bytes proposalData)
ragequit
nonpayablefunction ragequit(address to, uint256 sharesToBurn, uint256 lootToBurn, address[] tokens)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdminConfig
nonpayablefunction setAdminConfig(bool pauseShares, bool pauseLoot)
setAvatar
nonpayablefunction setAvatar(address _avatar)
setGovernanceConfig
nonpayablefunction setGovernanceConfig(bytes _governanceConfig)
setGuard
nonpayablefunction setGuard(address _guard)
setShamans
nonpayablefunction setShamans(address[] _shamans, uint256[] _permissions)
setTarget
nonpayablefunction setTarget(address _target)
setTrustedForwarder
nonpayablefunction setTrustedForwarder(address _trustedForwarderAddress)
setUp
nonpayablefunction setUp(bytes _initializationParams)
sponsorProposal
nonpayablefunction sponsorProposal(uint32 id)
submitProposal
payablefunction submitProposal(bytes proposalData, uint32 expiration, uint256 baalGas, string details) payable returns (uint256)
submitVote
nonpayablefunction submitVote(uint32 id, bool approved)
submitVoteWithSig
nonpayablefunction submitVoteWithSig(address voter, uint256 expiry, uint256 nonce, uint32 id, bool approved, uint8 v, bytes32 r, bytes32 s)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 amount)
AvatarSet
event AvatarSet(address indexed previousAvatar, address indexed newAvatar)
CancelProposal
event CancelProposal(uint256 indexed proposal)
ChangedGuard
event ChangedGuard(address guard)
GovernanceConfigSet
event GovernanceConfigSet(uint32 voting, uint32 grace, uint256 newOffering, uint256 quorum, uint256 sponsor, uint256 minRetention)
Initialized
event Initialized(uint8 version)
LockAdmin
event LockAdmin(bool adminLock)
LockGovernor
event LockGovernor(bool governorLock)
LockManager
event LockManager(bool managerLock)
LootPaused
event LootPaused(bool paused)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ProcessProposal
event ProcessProposal(uint256 indexed proposal, bool passed, bool actionFailed)
Ragequit
event Ragequit(address indexed member, address to, uint256 indexed lootToBurn, uint256 indexed sharesToBurn, address[] tokens)
SetTrustedForwarder
event SetTrustedForwarder(address indexed forwarder)
SetupComplete
event SetupComplete(bool lootPaused, bool sharesPaused, uint32 gracePeriod, uint32 votingPeriod, uint256 proposalOffering, uint256 quorumPercent, uint256 sponsorThreshold, uint256 minRetentionPercent, string name, string symbol, uint256 totalShares, uint256 totalLoot)
ShamanSet
event ShamanSet(address indexed shaman, uint256 permission)
SharesPaused
event SharesPaused(bool paused)
SponsorProposal
event SponsorProposal(address indexed member, uint256 indexed proposal, uint256 indexed votingStarts)
SubmitProposal
event SubmitProposal(uint256 indexed proposal, bytes32 indexed proposalDataHash, uint256 votingPeriod, bytes proposalData, uint256 expiration, uint256 baalGas, bool selfSponsor, uint256 timestamp, string details)
SubmitVote
event SubmitVote(address indexed member, uint256 balance, uint256 indexed proposal, bool indexed approved)
TargetSet
event TargetSet(address indexed previousTarget, address indexed newTarget)
errors
NotIERC165Compliant
error NotIERC165Compliant(address guard_)
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615bef80620000f46000396000f3fe6080604052600436106103a25760003560e01c80638009ba1f116101e7578063cf043df31161010d578063ed0cdf15116100a0578063f460124d1161006f578063f460124d14610b99578063f81cbd2614610bb9578063fab514c014610bcf578063fe47668614610bef57600080fd5b8063ed0cdf1514610b19578063ee4d88ed14610b39578063f2fde38b14610b59578063f3ae241514610b7957600080fd5b8063da35c664116100dc578063da35c66414610a95578063da74222814610ab9578063e19a9dd914610ad9578063e43581b814610af957600080fd5b8063cf043df3146109fa578063d33defc714610a1a578063d4b8399214610a55578063d61f27ae14610a7557600080fd5b8063a4f9edbf11610185578063b634e4e011610154578063b634e4e014610979578063c00d077514610996578063c4e931f6146109bd578063c9106389146109dc57600080fd5b8063a4f9edbf14610904578063acca30a214610924578063b1e3f40c14610939578063b3c98bbb1461095957600080fd5b806398a527cc116101c157806398a527cc1461088a5780639a2f747f146108aa578063a06db7dc146108c0578063a26ec96e146108e457600080fd5b80638009ba1f1461083657806383bf8459146108565780638da5cb5b1461086c57600080fd5b80634526d846116102cc5780635ec286961161026a578063715018a611610239578063715018a6146107c3578063776d1a01146107d85780637ceab3b1146107f85780637da0a8771461081857600080fd5b80635ec286961461074e578063635e99aa1461076e57806367f61f0714610783578063706a6e93146107a357600080fd5b806352ba1da7116102a657806352ba1da7146106a4578063572b6c05146106d15780635aef7de6146107005780635cfd6f7e1461073857600080fd5b80634526d846146106355780634630affc14610655578063486ff0cd1461068257600080fd5b8063136d731a11610344578063258bfe2f11610313578063258bfe2f146105c05780633232444c146105e05780633a82ffc81461060d5780633a98ef391461062057600080fd5b8063136d731a1461055357806316fd265d1461056857806318160ddd1461057d57806324d7806c146105a057600080fd5b8063056b0dcd11610380578063056b0dcd146104d1578063086cfca8146104f35780630a796e19146105135780630f656a211461053357600080fd5b8063013cf08b146103a7578063027cdf451461046e57806302a251a314610498575b600080fd5b3480156103b357600080fd5b5061044c6103c2366004614d28565b60d9602052600090815260409020805460018201546002830154600384015460048501546005860154600787015460089097015463ffffffff80881698600160201b8904821698600160401b8104831698600160601b8204841698600160801b8304851698600160a01b90930490941696909593949193909290916001600160a01b03909116908d565b6040516104659d9c9b9a99989796959493929190614d41565b60405180910390f35b34801561047a57600080fd5b5060d5546104889060ff1681565b6040519015158152602001610465565b3480156104a457600080fd5b5060d0546104bc90600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610465565b3480156104dd57600080fd5b506104f16104ec366004614ded565b610c1c565b005b3480156104ff57600080fd5b506104f161050e366004614e4b565b611127565b34801561051f57600080fd5b506104f161052e366004614e7a565b611181565b34801561053f57600080fd5b506104f161054e366004614ee2565b6114b5565b34801561055f57600080fd5b506104f1611763565b34801561057457600080fd5b506104f16117f4565b34801561058957600080fd5b5061059261186e565b604051908152602001610465565b3480156105ac57600080fd5b506104886105bb366004614e4b565b61188f565b3480156105cc57600080fd5b506105926105db366004615010565b6118d4565b3480156105ec57600080fd5b506105926105fb366004614e4b565b60d66020526000908152604090205481565b61059261061b36600461508d565b611904565b34801561062c57600080fd5b50610592611f55565b34801561064157600080fd5b506104f1610650366004614ee2565b611fc3565b34801561066157600080fd5b50610675610670366004614e7a565b612092565b604051610465919061511a565b34801561068e57600080fd5b50610697612103565b60405161046591906151a9565b3480156106b057600080fd5b506105926106bf366004614e4b565b60d86020526000908152604090205481565b3480156106dd57600080fd5b506104886106ec366004614e4b565b60ce546001600160a01b0391821691161490565b34801561070c57600080fd5b50606654610720906001600160a01b031681565b6040516001600160a01b039091168152602001610465565b34801561074457600080fd5b5061059260d35481565b34801561075a57600080fd5b506104f1610769366004614ee2565b612191565b34801561077a57600080fd5b50610592612260565b34801561078f57600080fd5b506104f161079e3660046151bc565b6122aa565b3480156107af57600080fd5b506104f16107be3660046151da565b6122ce565b3480156107cf57600080fd5b506104f16126ba565b3480156107e457600080fd5b506104f16107f3366004614e4b565b6126ce565b34801561080457600080fd5b50606554610720906001600160a01b031681565b34801561082457600080fd5b5060ce546001600160a01b0316610720565b34801561084257600080fd5b5060d054610720906001600160a01b031681565b34801561086257600080fd5b5061059260d45481565b34801561087857600080fd5b506033546001600160a01b0316610720565b34801561089657600080fd5b506104f16108a5366004614ee2565b612728565b3480156108b657600080fd5b5061059260d15481565b3480156108cc57600080fd5b5060d0546104bc90600160c01b900463ffffffff1681565b3480156108f057600080fd5b5060d5546104889062010000900460ff1681565b34801561091057600080fd5b506104f161091f366004615010565b6127f7565b34801561093057600080fd5b506104f1612d49565b34801561094557600080fd5b506104f1610954366004614ee2565b612dce565b34801561096557600080fd5b506104f161097436600461522e565b612e9d565b34801561098557600080fd5b5060da546104bc9063ffffffff1681565b3480156109a257600080fd5b5060da5461072090600160201b90046001600160a01b031681565b3480156109c957600080fd5b5060d55461048890610100900460ff1681565b3480156109e857600080fd5b506065546001600160a01b0316610720565b348015610a0657600080fd5b506104f1610a1536600461527d565b612f7e565b348015610a2657600080fd5b50610488610a35366004615306565b60d760209081526000928352604080842090915290825290205460ff1681565b348015610a6157600080fd5b50606754610720906001600160a01b031681565b348015610a8157600080fd5b50610697610a90366004615334565b613249565b348015610aa157600080fd5b5060d0546104bc90600160e01b900463ffffffff1681565b348015610ac557600080fd5b506104f1610ad4366004614e4b565b613310565b348015610ae557600080fd5b506104f1610af4366004614e4b565b6133bf565b348015610b0557600080fd5b50610488610b14366004614e4b565b6134c1565b348015610b2557600080fd5b506104f1610b34366004615408565b613502565b348015610b4557600080fd5b506104f1610b54366004615010565b613611565b348015610b6557600080fd5b506104f1610b74366004614e4b565b61386f565b348015610b8557600080fd5b50610488610b94366004614e4b565b6138e5565b348015610ba557600080fd5b5060cf54610720906001600160a01b031681565b348015610bc557600080fd5b5061059260d25481565b348015610bdb57600080fd5b506104f1610bea366004614e7a565b613925565b348015610bfb57600080fd5b50610c0f610c0a366004614e7a565b613aea565b6040516104659190615487565b6066546001600160a01b0316610c30613cc6565b6001600160a01b03161480610c4b5750610c4b6105bb613cc6565b610c8d5760405162461bcd60e51b815260206004820152600e60248201526d10b130b0b610131010b0b236b4b760911b60448201526064015b60405180910390fd5b818015610d0e575060d060009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0c91906154a1565b155b15610db55760d060009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d6357600080fd5b505af1158015610d77573d6000803e3d6000fd5b5050604051600181527f5544d0c1539dae939ba6e81485fb6352e3081f5a74f9bf445038bdcc358e34159250602001905060405180910390a1610ed8565b81158015610e35575060d060009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3591906154a1565b15610ed85760d060009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e8a57600080fd5b505af1158015610e9e573d6000803e3d6000fd5b5050604051600081527f5544d0c1539dae939ba6e81485fb6352e3081f5a74f9bf445038bdcc358e34159250602001905060405180910390a15b808015610f59575060cf60009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5791906154a1565b155b156110005760cf60009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610fae57600080fd5b505af1158015610fc2573d6000803e3d6000fd5b5050604051600181527f21b897e32ff7464f696022c4d6dfbf2d4eb300d162ad28e0d90f1136f5fea9cb925060200190505b60405180910390a15050565b80158015611080575060cf60009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108091906154a1565b156111235760cf60009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b5050604051600081527f21b897e32ff7464f696022c4d6dfbf2d4eb300d162ad28e0d90f1136f5fea9cb9250602001905060405180910390a15b5050565b61112f613cd0565b606680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f52ae88b092de36f87fb43fe794eb1381023b9c1bce563a871154022c63dce34290600090a35050565b611189613d49565b63ffffffff8116600090815260d96020526040902060d35460d0546001600160a01b0316639ab24eb06111ba613cc6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156111fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122291906154be565b101561125b5760405162461bcd60e51b815260206004820152600860248201526710b9b837b739b7b960c11b6044820152606401610c84565b600161126683613aea565b600781111561127757611277615471565b146112b15760405162461bcd60e51b815260206004820152600a602482015269085cdd589b5a5d1d195960b21b6044820152606401610c84565b8054600160a01b900463ffffffff161580611307575060d05463ffffffff600160c01b82048116916112ec91600160a01b90910416426154ed565b6112f691906154ed565b8154600160a01b900463ffffffff16115b61133d5760405162461bcd60e51b8152602060048201526007602482015266195e1c1a5c995960ca1b6044820152606401610c84565b805463ffffffff42818116600160401b026bffffffff00000000000000001984168117855560d08054600160a01b90819004851684018516600160601b0263ffffffff60601b1990931667ffffffffffffffff60401b19909616959095179190911780865590549384048316909101600160c01b9093048216929092018116600160801b0263ffffffff60801b1983168117845560da54600160201b92169190910267ffffffff000000001990911673ffffffff0000000000000000ffffffff000000001990921691909117178155611414613cc6565b6007820180546001600160a01b0319166001600160a01b039290921691909117905561143e61186e565b600482015561144b611f55565b600582015560da805463ffffffff191663ffffffff84169081179091554290611472613cc6565b6001600160a01b03167fd45ad122361f16d6f50d7c4a73638f20ee48eff6186af15224e2a4a1f6d5017160405160405180910390a4506114b26001609c55565b50565b6066546001600160a01b03166114c9613cc6565b6001600160a01b0316146114ef5760405162461bcd60e51b8152600401610c8490615505565b82811461150e5760405162461bcd60e51b8152600401610c8490615524565b60005b8381101561175c57600083838381811061152d5761152d61554b565b60d5546020909102929092013592505060ff16156115aa5780600114158015611557575080600314155b8015611564575080600514155b8015611571575080600714155b6115aa5760405162461bcd60e51b815260206004820152600a60248201526961646d696e206c6f636b60b01b6044820152606401610c84565b60d554610100900460ff161561162157806002141580156115cc575080600314155b80156115d9575080600614155b80156115e6575080600714155b6116215760405162461bcd60e51b815260206004820152600c60248201526b6d616e61676572206c6f636b60a01b6044820152606401610c84565b60d55462010000900460ff161561169a5780600414158015611644575080600514155b8015611651575080600614155b801561165e575080600714155b61169a5760405162461bcd60e51b815260206004820152600d60248201526c676f7665726e6f72206c6f636b60981b6044820152606401610c84565b8060d660008888868181106116b1576116b161554b565b90506020020160208101906116c69190614e4b565b6001600160a01b031681526020810191909152604001600020558585838181106116f2576116f261554b565b90506020020160208101906117079190614e4b565b6001600160a01b03167fc456d076c1245c6b9759b3cdcb169e14e00a7739897e501844c8fe5fca6cb2608260405161174191815260200190565b60405180910390a2508061175481615561565b915050611511565b5050505050565b6066546001600160a01b0316611777613cc6565b6001600160a01b03161461179d5760405162461bcd60e51b8152600401610c8490615505565b60d5805462ff0000191662010000908117918290556040517fd9574ee4ccdf21db87aa2c1d1fee3248522d79c07c54bde4a9edeb0620bef71f926117ea92900460ff161515815260200190565b60405180910390a1565b6066546001600160a01b0316611808613cc6565b6001600160a01b03161461182e5760405162461bcd60e51b8152600401610c8490615505565b60d5805460ff191660019081179091556040519081527f5e1c9f68365556a24387c25fd0922af31039bcfc65d36caac57401d310948e59906020016117ea565b6000611878611f55565b611880612260565b61188a91906154ed565b905090565b6001600160a01b038116600090815260d6602052604081205460018114806118b75750806003145b806118c25750806005145b806118cd5750806007145b9392505050565b6000816040516020016118e791906151a9565b604051602081830303815290604052805190602001209050919050565b600061190e613d49565b63ffffffff85161580611954575060d05463ffffffff600160c01b820481169161194191600160a01b90910416426154ed565b61194b91906154ed565b8563ffffffff16115b61198a5760405162461bcd60e51b8152602060048201526007602482015266195e1c1a5c995960ca1b6044820152606401610c84565b6301312d008411156119d05760405162461bcd60e51b815260206004820152600f60248201526e0c4c2c2d88ec2e640e8de40d0d2ced608b1b6044820152606401610c84565b60d35460d054600091906001600160a01b0316639ab24eb06119f0613cc6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5891906154be565b10611a6557506001611b4c565b60d1543414611ab65760405162461bcd60e51b815260206004820152601960248201527f4261616c20726571756972657320616e206f66666572696e67000000000000006044820152606401610c84565b6067546040516000916001600160a01b03169034908381818185875af1925050503d8060008114611b03576040519150601f19603f3d011682016040523d82523d6000602084013e611b08565b606091505b5050905080611b4a5760405162461bcd60e51b815260206004820152600e60248201526d18dbdd5b19081b9bdd081cd95b9960921b6044820152606401610c84565b505b6000611b8d89898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118d492505050565b60d08054919250600160e01b90910463ffffffff1690601c611bae8361557c565b91906101000a81548163ffffffff021916908363ffffffff16021790555050604051806101c0016040528060d0601c9054906101000a900463ffffffff1663ffffffff16815260200183611c03576000611c0d565b60da5463ffffffff165b63ffffffff16815260200183611c24576000611c26565b425b63ffffffff16815260200183611c3d576000611c57565b60d054611c5790600160a01b900463ffffffff16426155a0565b63ffffffff16815260200183611c6e576000611c9d565b60d05463ffffffff600160c01b8204811691611c9391600160a01b90910416426155a0565b611c9d91906155a0565b63ffffffff1681526020018863ffffffff168152602001878152602001600081526020016000815260200183611cd4576000611cdc565b611cdc61186e565b815260200183611ced576000611cf5565b611cf5611f55565b8152604080516080810182526000808252602082810182905282840182905260608301919091528301520183611d2c576000611d34565b611d34613cc6565b6001600160a01b03168152602090810183905260d054600160e01b900463ffffffff908116600090815260d983526040908190208451815494860151928601516060870151608088015160a089015193871667ffffffffffffffff1990981697909717600160201b958716959095029490941767ffffffffffffffff60401b1916600160401b9186169190910263ffffffff60601b191617600160601b938516939093029290921767ffffffffffffffff60801b1916600160801b9484169490940263ffffffff60a01b191693909317600160a01b919092160217815560c0820151600182015560e0820151600282015561010082015160038201556101208201516004808301919091556101408301516005830155610160830151611e5f91600684019190614bef565b506101808201516007820180546001600160a01b0319166001600160a01b039092169190911790556101a0909101516008909101558115611ebf5760d05460da8054600160e01b90920463ffffffff1663ffffffff199092169190911790555b8060d0601c9054906101000a900463ffffffff1663ffffffff167fb9956173924f9c1204bae41dd3737d7ed1161846d13183879cdc03c4b9f8d01960d060149054906101000a900463ffffffff168c8c8c8c89428e8e604051611f2a999897969594939291906155f1565b60405180910390a3505060d0546001609c55600160e01b900463ffffffff1690509695505050505050565b60d054604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611f9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188a91906154be565b6066546001600160a01b0316611fd7613cc6565b6001600160a01b03161480611ff25750611ff2610b94613cc6565b61200e5760405162461bcd60e51b8152600401610c8490615652565b82811461202d5760405162461bcd60e51b8152600401610c8490615524565b60005b8381101561175c5761208085858381811061204d5761204d61554b565b90506020020160208101906120629190614e4b565b8484848181106120745761207461554b565b90506020020135613daa565b8061208a81615561565b915050612030565b61209a614c81565b63ffffffff8216600090815260d9602052604080822081516080810192839052926006909101916004918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116120c8575094979650505050505050565b60db80546121109061567c565b80601f016020809104026020016040519081016040528092919081815260200182805461213c9061567c565b80156121895780601f1061215e57610100808354040283529160200191612189565b820191906000526020600020905b81548152906001019060200180831161216c57829003601f168201915b505050505081565b6066546001600160a01b03166121a5613cc6565b6001600160a01b031614806121c057506121c0610b94613cc6565b6121dc5760405162461bcd60e51b8152600401610c8490615652565b8281146121fb5760405162461bcd60e51b8152600401610c8490615524565b60005b8381101561175c5761224e85858381811061221b5761221b61554b565b90506020020160208101906122309190614e4b565b8484848181106122425761224261554b565b90506020020135613e15565b8061225881615561565b9150506121fe565b60cf54604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611f9f573d6000803e3d6000fd5b6122b2613d49565b6122c46122bd613cc6565b8383613e4e565b6111236001609c55565b6122d6613d49565b63ffffffff8316600090815260d96020526040902060078101546001600160a01b03166123305760405162461bcd60e51b815260206004820152600860248201526710b9b837b739b7b960c11b6044820152606401610c84565b600561233b85613aea565b600781111561234c5761234c615471565b146123825760405162461bcd60e51b815260206004820152600660248201526521726561647960d01b6044820152606401610c84565b805460009061239d90600160201b900463ffffffff16613aea565b905060068160078111156123b3576123b3615471565b14806123d0575060038160078111156123ce576123ce615471565b145b806123ec575060078160078111156123ea576123ea615471565b145b806124085750600081600781111561240657612406615471565b145b6124455760405162461bcd60e51b815260206004820152600e60248201526d1c1c995d885c1c9bd8d95cdcd95960921b6044820152606401610c84565b816008015461248985858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118d492505050565b146124cb5760405162461bcd60e51b8152602060048201526012602482015271696e636f72726563742063616c6c6461746160701b6044820152606401610c84565b600182015415806124e0575081600101545a10155b61251d5760405162461bcd60e51b815260206004820152600e60248201526d6e6f7420656e6f7567682067617360901b6044820152606401610c84565b60068201805461ff0019166101001790558154600190600160a01b900463ffffffff161580159061255c5750825442600160a01b90910463ffffffff16105b15612565575060005b8080156125915750826005015460d25461257f91906156b1565b600284015461258f9060646156b1565b105b1561259a575060005b8080156125ca5750606460d45484600401546125b691906156b1565b6125c091906156d0565b6125c861186e565b105b156125d3575060005b801561264c5760068301805462ff0000191662010000179055604080516020601f870181900481028201810190925285815260009161262d919088908890819084018382808284376000920191909152506140a292505050565b90508061264a5760068401805463ff000000191663010000001790555b505b60068301546040805160ff62010000840481161515825263010000009093049092161515602083015263ffffffff8816917fb4571f7e4e2c2b6e6185e47ab5caa5fe34087299bd49fbae945a4583101ee3f0910160405180910390a25050506126b56001609c55565b505050565b6126c2613cd0565b6126cc60006140cb565b565b6126d6613cd0565b606780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f90cc2f570a6eb594b1580ea3e41247d2d73a55281889e86bd4ec2fc29c7e62d690600090a35050565b6066546001600160a01b031661273c613cc6565b6001600160a01b031614806127575750612757610b94613cc6565b6127735760405162461bcd60e51b8152600401610c8490615652565b8281146127925760405162461bcd60e51b8152600401610c8490615524565b60005b8381101561175c576127e58585838181106127b2576127b261554b565b90506020020160208101906127c79190614e4b565b8484848181106127d9576127d961554b565b9050602002013561411d565b806127ef81615561565b915050612795565b600054610100900460ff16158080156128175750600054600160ff909116105b806128315750303b158015612831575060005460ff166001145b6128945760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c84565b6000805460ff1916600117905580156128b7576000805461ff0019166101001790555b6128bf613d49565b600080600080600080878060200190518101906128dc9190615742565b95509550955095509550955060006001600160a01b0316846001600160a01b03161415801561291357506001600160a01b03831615155b61294d5760405162461bcd60e51b815260206004820152600b60248201526a0c081859191c881d5cd95960aa1b6044820152606401610c84565b6040518060600160405280602d8152602001615b8d602d9139805161297a9160db91602090910190614c9f565b50612983614156565b61298b614185565b6129ca60405180604001604052806004815260200163566f746560e01b815250604051806040016040528060018152602001600d60fa1b8152506141b4565b6129d38361386f565b606680546001600160a01b0385166001600160a01b03199182168117909255606780549091169091179055612a07826141e5565b60cf80546001600160a01b03199081166001600160a01b038981169190911790925560d0805490911687831617905560da8054640100000000600160c01b031916600160201b87841681029190911791829055612a6b929104166000836001614207565b612aac5760405162461bcd60e51b8152602060048201526012602482015271063616c6c206661696c7572652073657475760741b6044820152606401610c84565b60cf5460408051635c975abb60e01b815290517f916f812584e0b001e8c6ab604fa549cc16c9d0b2f60b17aa0b4ff5eefe3e7725926001600160a01b031691635c975abb9160048083019260209291908290030181865afa158015612b15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3991906154a1565b60d060009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb091906154a1565b60d05460d15460d25460d35460d454604080516306fdde0360e01b8152905163ffffffff600160c01b8804811697600160a01b810490911696959493926001600160a01b03909116916306fdde03916004808201926000929091908290030181865afa158015612c24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c4c91908101906157df565b60d060009054906101000a90046001600160a01b03166001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015612c9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612cc791908101906157df565b612ccf611f55565b612cd7612260565b604051612cef9c9b9a99989796959493929190615827565b60405180910390a1505050505050612d076001609c55565b8015611123576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610ff4565b6066546001600160a01b0316612d5d613cc6565b6001600160a01b031614612d835760405162461bcd60e51b8152600401610c8490615505565b60d5805461ff001916610100908117918290556040517fb496b9628e839102454d8b483ba451c4be96675009b637273a00e4ab6a59db72926117ea92900460ff161515815260200190565b6066546001600160a01b0316612de2613cc6565b6001600160a01b03161480612dfd5750612dfd610b94613cc6565b612e195760405162461bcd60e51b8152600401610c8490615652565b828114612e385760405162461bcd60e51b8152600401610c8490615524565b60005b8381101561175c57612e8b858583818110612e5857612e5861554b565b9050602002016020810190612e6d9190614e4b565b848484818110612e7f57612e7f61554b565b9050602002013561421f565b80612e9581615561565b915050612e3b565b6066546001600160a01b0316612eb1613cc6565b6001600160a01b031614612ed75760405162461bcd60e51b8152600401610c8490615505565b6000846001600160a01b0316848484604051612ef49291906158ad565b60006040518083038185875af1925050503d8060008114612f31576040519150601f19603f3d011682016040523d82523d6000602084013e612f36565b606091505b505090508061175c5760405162461bcd60e51b815260206004820152601460248201527363616c6c206661696c757265206578656375746560601b6044820152606401610c84565b612f86613d49565b86421115612fd65760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610c84565b6001600160a01b038816600090815260d8602052604090205486146130265760405162461bcd60e51b8152602060048201526006602482015265216e6f6e636560d01b6044820152606401610c84565b60007f8698fbcc7273f96a670eb203cb707d8ec171123f24eaf075b1e754b71119e59e60d060009054906101000a90046001600160a01b03166001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801561309c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130c491908101906157df565b6040516020016130d491906158bd565b60408051601f198184030181528282528051602091820120908301939093528101919091526001600160a01b038a1660608201526080810189905260a0810188905263ffffffff871660c082015285151560e082015261010001604051602081830303815290604052805190602001209050600061315182614258565b90506000613161828787876142a6565b90508a6001600160a01b0316816001600160a01b0316146131b85760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606401610c84565b6001600160a01b0381166131f85760405162461bcd60e51b815260206004820152600760248201526610b9b4b3b732b960c91b6044820152606401610c84565b6001600160a01b038b16600090815260d8602052604081208054600192906132219084906154ed565b909155506132329050818989613e4e565b50505061323f6001609c55565b5050505050505050565b60608060005b84518110156132cc578160008560008885815181106132705761327061554b565b60200260200101515189868151811061328b5761328b61554b565b60200260200101516040516020016132a8969594939291906158d9565b604051602081830303815290604052915080806132c490615561565b91505061324f565b50806040516024016132de91906151a9565b60408051601f198184030181529190526020810180516001600160e01b03166346c07f8560e11b179052949350505050565b6066546001600160a01b0316613324613cc6565b6001600160a01b0316148061333f575061333f610b14613cc6565b61337f5760405162461bcd60e51b815260206004820152601160248201527010b130b0b610131010b3b7bb32b93737b960791b6044820152606401610c84565b613388816141e5565b6040516001600160a01b038216907f8c2bee8063bb4464870b7dfa415ebb2fe80bfa73ba20d6fbf0d42791274667ff90600090a250565b6133c7613cd0565b6001600160a01b0381161561346d576040516301ffc9a760e01b815263736bd41d60e11b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015613421573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061344591906154a1565b61346d576040516358b7533f60e11b81526001600160a01b0382166004820152602401610c84565b606580546001600160a01b0319166001600160a01b0383169081179091556040519081527f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa29060200160405180910390a150565b6001600160a01b038116600090815260d6602052604081205460048114806134e95750806005145b806118c2575080600614806118cd575060071492915050565b61350a613d49565b60015b818110156135c7578282613522600184615943565b8181106135315761353161554b565b90506020020160208101906135469190614e4b565b6001600160a01b03168383838181106135615761356161554b565b90506020020160208101906135769190614e4b565b6001600160a01b0316116135b55760405162461bcd60e51b815260206004820152600660248201526510b7b93232b960d11b6044820152606401610c84565b806135bf81615561565b91505061350d565b506136078585858585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506142c492505050565b61175c6001609c55565b6066546001600160a01b0316613625613cc6565b6001600160a01b031614806136405750613640610b14613cc6565b6136805760405162461bcd60e51b815260206004820152601160248201527010b130b0b610131010b3b7bb32b93737b960791b6044820152606401610c84565b6000806000806000808680602001905181019061369d919061595a565b949a5092985090965094509250905060648111156136ea5760405162461bcd60e51b815260206004820152600a6024820152696261642071756f72756d60b01b6044820152606401610c84565b606481111561372e5760405162461bcd60e51b815260206004820152601060248201526f3130b21036b4b72932ba32b73a34b7b760811b6044820152606401610c84565b600060d35411801561374a575060d0546001600160a01b031615155b1561379f57613757611f55565b82111561379f5760405162461bcd60e51b815260206004820152601660248201527573706f6e736f72203e20736861726573537570706c7960501b6044820152606401610c84565b63ffffffff8616156137ca5760d0805463ffffffff60a01b1916600160a01b63ffffffff8916021790555b63ffffffff8516156137f55760d0805463ffffffff60c01b1916600160c01b63ffffffff8816021790555b60d184905560d283905560d382905560d48190556040805163ffffffff808916825287166020820152908101859052606081018490526080810183905260a081018290527fc10758ccd7d1dd3330e7bbe13a1a1d6bbb414967932376ee24989bad95edcdc19060c00160405180910390a150505050505050565b613877613cd0565b6001600160a01b0381166138dc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c84565b6114b2816140cb565b6001600160a01b038116600090815260d6602052604081205460028114806134e9575080600314806118c2575080600614806118cd575060071492915050565b61392d613d49565b63ffffffff8116600090815260d960205260409020600261394d83613aea565b600781111561395e5761395e615471565b146139955760405162461bcd60e51b815260206004820152600760248201526621766f74696e6760c81b6044820152606401610c84565b60078101546001600160a01b03166139ab613cc6565b6001600160a01b03161480613a53575060d35460d05460078301546001600160a01b0391821691633a46b1a891166139e4600142615943565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015613a2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5191906154be565b105b80613a645750613a64610b14613cc6565b613a9f5760405162461bcd60e51b815260206004820152600c60248201526b2163616e63656c6c61626c6560a01b6044820152606401610c84565b60068101805460ff1916600117905560405163ffffffff8316907f8896f24cff41b54acf76c2560861f33cd20fd76c4df0b68a3515c354e4b6c81a90600090a2506114b26001609c55565b63ffffffff818116600090815260d96020908152604080832081516101c08101835281548087168252600160201b8104871694820194909452600160401b8404861681840152600160601b840486166060820152600160801b84048616608080830191909152600160a01b90940490951660a0860152600181015460c0860152600281015460e08601526003810154610100860152600480820154610120870152600582015461014087015282519384019283905293948594909391926101608501929160068501918288855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411613bb75750505092845250505060078201546001600160a01b03166020820152600890910154604090910152805190915063ffffffff16613c255750600092915050565b6101608101515115613c3a5750600392915050565b604081015163ffffffff16613c525750600192915050565b806060015163ffffffff164211613c6c5750600292915050565b806080015163ffffffff164211613c865750600492915050565b8060e0015181610100015110613c9f5750600792915050565b6101608101516020015115613cb75750600692915050565b50600592915050565b50919050565b600061188a614540565b613cd8613cc6565b6001600160a01b0316613cf36033546001600160a01b031690565b6001600160a01b0316146126cc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c84565b6002609c541415613d9c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c84565b6002609c55565b6001609c55565b60cf546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f19906044015b600060405180830381600087803b158015613df957600080fd5b505af1158015613e0d573d6000803e3d6000fd5b505050505050565b60cf54604051632770a7eb60e21b81526001600160a01b0384811660048301526024820184905290911690639dc29fac90604401613ddf565b63ffffffff8216600090815260d9602052604090206002613e6e84613aea565b6007811115613e7f57613e7f615471565b14613eb65760405162461bcd60e51b815260206004820152600760248201526621766f74696e6760c81b6044820152606401610c84565b60d0548154604051630748d63560e31b81526001600160a01b038781166004830152600160401b90920463ffffffff1660248201526000929190911690633a46b1a890604401602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d91906154be565b905060008111613f795760405162461bcd60e51b815260206004820152600760248201526610b6b2b6b132b960c91b6044820152606401610c84565b6001600160a01b038516600090815260d76020908152604080832063ffffffff8816845290915290205460ff1615613fdb5760405162461bcd60e51b81526020600482015260056024820152641d9bdd195960da1b6044820152606401610c84565b6001600160a01b038516600090815260d76020908152604080832063ffffffff881684529091528120805460ff1916600117905561401761186e565b9050826004015481111561402d57600483018190555b8315614042576002830180548301905561404d565b600383018054830190555b8315158563ffffffff16876001600160a01b03167f786755545a7e27c12c90cc7f0934514d03fdacfe3684a340b8c4100531e7ecd58560405161409291815260200190565b60405180910390a4505050505050565b60da546000906140c590600160201b90046001600160a01b031682846001614207565b92915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60d054604051632770a7eb60e21b81526001600160a01b0384811660048301526024820184905290911690639dc29fac90604401613ddf565b600054610100900460ff1661417d5760405162461bcd60e51b8152600401610c84906159b8565b6126cc614574565b600054610100900460ff166141ac5760405162461bcd60e51b8152600401610c84906159b8565b6126cc6145ab565b600054610100900460ff166141db5760405162461bcd60e51b8152600401610c84906159b8565b61112382826145d2565b60ce80546001600160a01b0319166001600160a01b0392909216919091179055565b600061421585858585614613565b5095945050505050565b60d0546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f1990604401613ddf565b60006140c5614265614812565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006142b78787878761488d565b9150915061421581614951565b60006142ce61186e565b905082156142e7576142e76142e1613cc6565b84613e15565b83156142fe576142fe6142f8613cc6565b8561411d565b60005b82518110156144ec57600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b031684838151811061433c5761433c61554b565b60200260200101516001600160a01b0316141561436657506067546001600160a01b031631614434565b600084838151811061437a5761437a61554b565b602090810291909101810151606754604080516001600160a01b03928316602480830191909152825180830390910181526044909101825293840180516001600160e01b03166370a0823160e01b179052519116916143d8916158bd565b600060405180830381855afa9150503d8060008114614413576040519150601f19603f3d011682016040523d82523d6000602084013e614418565b606091505b509150508080602001905181019061443091906154be565b9150505b6000838261444289896154ed565b61444c91906156b1565b61445691906156d0565b905080156144d75773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b031685848151811061448e5761448e61554b565b60200260200101516001600160a01b0316146144cd576144c88584815181106144b9576144b961554b565b60200260200101518983614a9f565b6144d7565b6144d78882614b6e565b505080806144e490615561565b915050614301565b5083836144f7613cc6565b6001600160a01b03167fa21c268847f2b8adac3751ed0683330abe9fdd6cc4a7a8fc6787633d4126e0d48886604051614531929190615a03565b60405180910390a45050505050565b60006014361080159061455d575060ce546001600160a01b031633145b1561456f575060131936013560601c90565b503390565b600054610100900460ff1661459b5760405162461bcd60e51b8152600401610c84906159b8565b6126cc6145a6613cc6565b6140cb565b600054610100900460ff16613da35760405162461bcd60e51b8152600401610c84906159b8565b600054610100900460ff166145f95760405162461bcd60e51b8152600401610c84906159b8565b815160209283012081519190920120606891909155606955565b6065546000906060906001600160a01b0316801561478557604051633af85da960e11b81526001600160a01b038216906375f0bb529061466a908a908a908a908a9060009081908190819081903390600401615a73565b600060405180830381600087803b15801561468457600080fd5b505af1158015614698573d6000803e3d6000fd5b5050606754604051635229073f60e01b81526001600160a01b039091169250635229073f91506146d2908a908a908a908a90600401615afd565b6000604051808303816000875af11580156146f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526147199190810190615b3c565b604051631264e26d60e31b815260006004820152821515602482015291945092506001600160a01b03821690639327136890604401600060405180830381600087803b15801561476857600080fd5b505af115801561477c573d6000803e3d6000fd5b50505050614808565b606754604051635229073f60e01b81526001600160a01b0390911690635229073f906147bb908a908a908a908a90600401615afd565b6000604051808303816000875af11580156147da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526148029190810190615b3c565b90935091505b5094509492505050565b600061188a7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61484160685490565b6069546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156148c45750600090506003614948565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614918573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661494157600060019250925050614948565b9150600090505b94509492505050565b600081600481111561496557614965615471565b141561496e5750565b600181600481111561498257614982615471565b14156149d05760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610c84565b60028160048111156149e4576149e4615471565b1415614a325760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610c84565b6003816004811115614a4657614a46615471565b14156114b25760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610c84565b600080614b0785600063a9059cbb8787604051602401614ad49291906001600160a01b03929092168252602082015260400190565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506000614bd2565b91509150818015614b30575080511580614b30575080806020019051810190614b3091906154a1565b61175c5760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610c84565b6000614b8c8383604051806020016040528060008152506000614bd2565b509050806126b55760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610c84565b60006060614be286868686614613565b9097909650945050505050565b600183019183908215614c715791602002820160005b83821115614c4257835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302614c05565b8015614c6f5782816101000a81549060ff0219169055600101602081600001049283019260010302614c42565b505b50614c7d929150614d13565b5090565b60405180608001604052806004906020820280368337509192915050565b828054614cab9061567c565b90600052602060002090601f016020900481019282614ccd5760008555614c71565b82601f10614ce657805160ff1916838001178555614c71565b82800160010185558215614c71579182015b82811115614c71578251825591602001919060010190614cf8565b5b80821115614c7d5760008155600101614d14565b600060208284031215614d3a57600080fd5b5035919050565b60006101a08201905063ffffffff8f16825263ffffffff8e16602083015263ffffffff8d16604083015263ffffffff8c16606083015263ffffffff8b16608083015263ffffffff8a1660a08301528860c08301528760e0830152866101008301528561012083015284610140830152614dc66101608301856001600160a01b03169052565b826101808301529e9d5050505050505050505050505050565b80151581146114b257600080fd5b60008060408385031215614e0057600080fd5b8235614e0b81614ddf565b91506020830135614e1b81614ddf565b809150509250929050565b6001600160a01b03811681146114b257600080fd5b8035614e4681614e26565b919050565b600060208284031215614e5d57600080fd5b81356118cd81614e26565b63ffffffff811681146114b257600080fd5b600060208284031215614e8c57600080fd5b81356118cd81614e68565b60008083601f840112614ea957600080fd5b5081356001600160401b03811115614ec057600080fd5b6020830191508360208260051b8501011115614edb57600080fd5b9250929050565b60008060008060408587031215614ef857600080fd5b84356001600160401b0380821115614f0f57600080fd5b614f1b88838901614e97565b90965094506020870135915080821115614f3457600080fd5b50614f4187828801614e97565b95989497509550505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614f8b57614f8b614f4d565b604052919050565b60006001600160401b03821115614fac57614fac614f4d565b50601f01601f191660200190565b600082601f830112614fcb57600080fd5b8135614fde614fd982614f93565b614f63565b818152846020838601011115614ff357600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561502257600080fd5b81356001600160401b0381111561503857600080fd5b61504484828501614fba565b949350505050565b60008083601f84011261505e57600080fd5b5081356001600160401b0381111561507557600080fd5b602083019150836020828501011115614edb57600080fd5b600080600080600080608087890312156150a657600080fd5b86356001600160401b03808211156150bd57600080fd5b6150c98a838b0161504c565b9098509650602089013591506150de82614e68565b90945060408801359350606088013590808211156150fb57600080fd5b5061510889828a0161504c565b979a9699509497509295939492505050565b60808101818360005b60048110156151445781511515835260209283019290910190600101615123565b50505092915050565b60005b83811015615168578181015183820152602001615150565b83811115615177576000848401525b50505050565b6000815180845261519581602086016020860161514d565b601f01601f19169290920160200192915050565b6020815260006118cd602083018461517d565b600080604083850312156151cf57600080fd5b8235614e0b81614e68565b6000806000604084860312156151ef57600080fd5b83356151fa81614e68565b925060208401356001600160401b0381111561521557600080fd5b6152218682870161504c565b9497909650939450505050565b6000806000806060858703121561524457600080fd5b843561524f81614e26565b93506020850135925060408501356001600160401b0381111561527157600080fd5b614f418782880161504c565b600080600080600080600080610100898b03121561529a57600080fd5b88356152a581614e26565b9750602089013596506040890135955060608901356152c381614e68565b945060808901356152d381614ddf565b935060a089013560ff811681146152e957600080fd5b979a969950949793969295929450505060c08201359160e0013590565b6000806040838503121561531957600080fd5b823561532481614e26565b91506020830135614e1b81614e68565b6000806040838503121561534757600080fd5b82356001600160401b038082111561535e57600080fd5b818501915085601f83011261537257600080fd5b813560208282111561538657615386614f4d565b8160051b615395828201614f63565b928352848101820192828101908a8511156153af57600080fd5b83870192505b848310156153eb578235868111156153cd5760008081fd5b6153db8c86838b0101614fba565b83525091830191908301906153b5565b97506153fb915050878201614e3b565b9450505050509250929050565b60008060008060006080868803121561542057600080fd5b853561542b81614e26565b9450602086013593506040860135925060608601356001600160401b0381111561545457600080fd5b61546088828901614e97565b969995985093965092949392505050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061549b5761549b615471565b91905290565b6000602082840312156154b357600080fd5b81516118cd81614ddf565b6000602082840312156154d057600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115615500576155006154d7565b500190565b602080825260059082015264085898585b60da1b604082015260600190565b6020808252600d908201526c2161727261792070617269747960981b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415615575576155756154d7565b5060010190565b600063ffffffff80831681811415615596576155966154d7565b6001019392505050565b600063ffffffff8083168185168083038211156155bf576155bf6154d7565b01949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600063ffffffff808c16835260e0602084015261561260e084018b8d6155c8565b818a16604085015288606085015287151560808501528660a085015283810360c08501526156418186886155c8565b9d9c50505050505050505050505050565b60208082526010908201526f10b130b0b610131010b6b0b730b3b2b960811b604082015260600190565b600181811c9082168061569057607f821691505b60208210811415613cc057634e487b7160e01b600052602260045260246000fd5b60008160001904831182151516156156cb576156cb6154d7565b500290565b6000826156ed57634e487b7160e01b600052601260045260246000fd5b500490565b6000615700614fd984614f93565b905082815283838301111561571457600080fd5b6118cd83602083018461514d565b600082601f83011261573357600080fd5b6118cd838351602085016156f2565b60008060008060008060c0878903121561575b57600080fd5b865161576681614e26565b602088015190965061577781614e26565b604088015190955061578881614e26565b606088015190945061579981614e26565b60808801519093506157aa81614e26565b60a08801519092506001600160401b038111156157c657600080fd5b6157d289828a01615722565b9150509295509295509295565b6000602082840312156157f157600080fd5b81516001600160401b0381111561580757600080fd5b8201601f8101841361581857600080fd5b615044848251602084016156f2565b60006101808e151583528d1515602084015263ffffffff808e166040850152808d166060850152508a60808401528960a08401528860c08401528760e08401528061010084015261587a8184018861517d565b905082810361012084015261588f818761517d565b610140840195909552505061016001529a9950505050505050505050565b8183823760009101908152919050565b600082516158cf81846020870161514d565b9190910192915050565b600087516158eb818460208c0161514d565b808301905060ff60f81b8860f81b1681526bffffffffffffffffffffffff198760601b166001820152856015820152846035820152835161593381605584016020880161514d565b0160550198975050505050505050565b600082821015615955576159556154d7565b500390565b60008060008060008060c0878903121561597357600080fd5b865161597e81614e68565b602088015190965061598f81614e68565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015615a51578551851683529483019491830191600101615a33565b509098975050505050505050565b60028110615a6f57615a6f615471565b9052565b6001600160a01b038b81168252602082018b905261016060408301819052600091615aa08483018d61517d565b9150615aaf606085018c615a5f565b608084019990995260a08301979097525060c081019490945291851660e084015284166101008301528183036101208301526000835290921661014090920191909152602001949350505050565b60018060a01b0385168152836020820152608060408201526000615b24608083018561517d565b9050615b336060830184615a5f565b95945050505050565b60008060408385031215615b4f57600080fd5b8251615b5a81614ddf565b60208401519092506001600160401b03811115615b7657600080fd5b615b8285828601615722565b915050925092905056fe322e322e352b6f70656e67736e2e70617961626c65776974686261616c2e6972656c6179726563697069656e74a2646970667358221220e7f7a8af70f47c4c0a43ae70fdb50ef5f9643adc80e4e50e8e0c3ddc18ff5f7f64736f6c634300080a0033